annotate src/vmime-1-fixes.patch @ 2826:27a99ab695d8

update package vmime
author Mark Brand <mabrand@mabrand.nl>
date Tue, 16 Oct 2012 16:15:57 +0200
parents 649d57cbb28e
children
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
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10 Subject: [PATCH 01/47] Started version 0.9.2.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
11
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
12
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
13 diff --git a/ChangeLog b/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
14 index 871d055..8fdcdb0 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
15 --- a/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
16 +++ b/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
17 @@ -1,4 +1,12 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
18
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
19 +VERSION 0.9.2svn
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
20 +================
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
21 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
22 +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
23 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
24 + * Started version 0.9.2.
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 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
27 VERSION 0.9.1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
28 =============
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 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
31 index fb01edf..55f9223 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
32 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
33 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
34 @@ -29,7 +29,7 @@ import string
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
35 # Package version number
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
36 packageVersionMajor = 0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
37 packageVersionMinor = 9
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
38 -packageVersionMicro = 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
39 +packageVersionMicro = 2
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
40
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
41 # API version number (libtool)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
42 #
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
43 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
44 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
45
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
46
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
47 From c12ee2b267b9dcfd092a298dfd9a8eec81ab3a0b Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
48 From: Vincent Richard <vincent@vincent-richard.net>
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
49 Date: Tue, 30 Nov 2010 14:57:03 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
50 Subject: [PATCH 02/47] Initialize and delete object.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
51
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
52
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
53 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
54 index 0f3e9ec..d71c3ca 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
55 --- a/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
56 +++ b/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
57 @@ -3823,7 +3823,9 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
58
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
59 msg_att_item()
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
60 : 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
61 - 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
62 + 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
63 + m_section(NULL)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
64 +
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 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
67
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
68 @@ -3836,6 +3838,7 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
69 delete (m_nstring);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
70 delete (m_body);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
71 delete (m_flag_list);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
72 + delete (m_section);
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 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
76 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
77 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
78
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
79
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
80 From fd277afe87485c9d3377964794b76006c6d36a56 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
81 From: Vincent Richard <vincent@vincent-richard.net>
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
82 Date: Wed, 8 Dec 2010 08:52:54 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
83 Subject: [PATCH 03/47] 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
84 RCPT TO. Wait for server response after QUIT and
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
85 before closing connection.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
86
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
87
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
88 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
89 index 204daae..d9fb7b8 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
90 --- a/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
91 +++ b/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
92 @@ -516,6 +516,7 @@ void SMTPTransport::internalDisconnect()
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
93 try
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
94 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
95 sendRequest("QUIT");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
96 + readResponse();
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 catch (exception&)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
99 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
100 @@ -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
101 // Emit the "MAIL" command
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
102 ref <SMTPResponse> resp;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
103
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
104 - sendRequest("MAIL FROM: <" + expeditor.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
105 + sendRequest("MAIL FROM:<" + expeditor.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
106
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
107 if ((resp = readResponse())->getCode() != 250)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
108 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
109 @@ -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
110 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
111 const mailbox& mbox = *recipients.getMailboxAt(i);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
112
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
113 - sendRequest("RCPT TO: <" + mbox.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
114 + sendRequest("RCPT TO:<" + mbox.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
115
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
116 if ((resp = readResponse())->getCode() != 250)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
117 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
118 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
119 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
120
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
121
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
122 From d64da50e879c0e480d2e65c43e3b903c3e80101f Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
123 From: Vincent Richard <vincent@vincent-richard.net>
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
124 Date: Fri, 10 Dec 2010 16:24:06 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
125 Subject: [PATCH 04/47] Fixed unit test after bug fix.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
126
1506
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 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
129 index 5015552..6552f9e 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
130 --- a/tests/net/smtp/SMTPTransportTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
131 +++ b/tests/net/smtp/SMTPTransportTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
132 @@ -165,7 +165,7 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
133 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
134 else if (cmd == "MAIL")
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
135 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
136 - 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
137 + 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
138
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
139 localSend("250 OK\r\n");
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 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
142 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
143
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
144
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
145 From 130d0aabda2a9988913ad201390796775dc16a65 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
146 From: Vincent Richard <vincent@vincent-richard.net>
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
147 Date: Fri, 10 Dec 2010 16:54:38 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
148 Subject: [PATCH 05/47] 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
149 Zarafa).
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
150
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 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
153 index 13dff6b..738d3e7 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
154 --- a/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
155 +++ b/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
156 @@ -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
157 const string boundarySep("--" + boundary);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
158
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
159 string::size_type partStart = position;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
160 - string::size_type pos = buffer.find(boundarySep, position);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
161 + string::size_type pos = position;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
162
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
163 bool lastPart = false;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
164
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
165 + while (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
166 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
167 + pos = buffer.find(boundarySep, pos);
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 + if (pos == string::npos ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
170 + ((pos == 0 || buffer[pos - 1] == '\n') &&
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
171 + (buffer[pos + boundarySep.length()] == '\r' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
172 + buffer[pos + boundarySep.length()] == '\n' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
173 + buffer[pos + boundarySep.length()] == '-'
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
174 + )
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 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
177 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
178 + break;
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 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
181 + // 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
182 + pos++;
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 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
185 if (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
186 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
187 m_prologText = string(buffer.begin() + position, buffer.begin() + pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
188 @@ -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
189 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
190
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
191 partStart = pos;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
192 - pos = buffer.find(boundarySep, partStart);
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 + while (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
195 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
196 + pos = buffer.find(boundarySep, pos);
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 + if (pos == string::npos ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
199 + ((pos == 0 || buffer[pos - 1] == '\n') &&
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
200 + (buffer[pos + boundarySep.length()] == '\r' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
201 + buffer[pos + boundarySep.length()] == '\n' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
202 + buffer[pos + boundarySep.length()] == '-'
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 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
205 + )
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 + break;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
208 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
209 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
210 + // 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
211 + pos++;
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 }
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 m_contents = vmime::create <emptyContentHandler>();
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
216 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
217 index 12c4f74..df2bf85 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
218 --- a/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
219 +++ b/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
220 @@ -84,7 +84,7 @@ VMIME_TEST_SUITE_BEGIN
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
221 vmime::string str =
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
222 "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
223 "\r\n\r\n"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
224 - "--MY-BOUNDARY\r\nHEADER1\r\n\r\nBODY1"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
225 + "--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
226 "--MY-BOUNDARY\r\nHEADER2\r\n\r\nBODY2";
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
227
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
228 vmime::bodyPart p;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
229 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
230 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
231
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
232
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
233 From c63f37c888798f0e7e99aa03afda16445a72b7b2 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
234 From: Vincent Richard <vincent@vincent-richard.net>
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
235 Date: Fri, 21 Jan 2011 15:28:06 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
236 Subject: [PATCH 06/47] 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
237 Kamp, Zarafa).
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
238
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
239
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
240 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
241 index db720dc..1c1c1a6 100644
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
242 --- a/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
243 +++ b/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
244 @@ -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
245
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
246 maxRunLength = std::max(maxRunLength, curRunLength);
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
247
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
248 - if (maxRunLength >= maxLineLength - 3)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
249 + 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
250 {
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
251 // Generate with encoding forced
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
252 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
253 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
254 index b84f376..746ac94 100644
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
255 --- a/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
256 +++ b/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
257 @@ -52,6 +52,7 @@ VMIME_TEST_SUITE_BEGIN
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
258 VMIME_TEST(testWhitespaceMBox)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
259
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
260 VMIME_TEST(testFoldingAscii)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
261 + VMIME_TEST(testForcedNonEncoding)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
262 VMIME_TEST_LIST_END
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
263
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
264
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
265 @@ -442,5 +443,15 @@ VMIME_TEST_SUITE_BEGIN
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
266 " =?us-ascii?Q?9012345678901234567890123456789?=", w.generate(50));
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
267 }
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 + void testForcedNonEncoding()
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
270 + {
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
271 + // Testing long unbreakable and unencodable header
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
272 + vmime::relay r;
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
273 + 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
274 + "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
275 +
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
276 + 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
277 + }
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
278 +
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
279 VMIME_TEST_SUITE_END
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 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
282 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
283
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
284
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
285 From 1fafad8f913e700b350e6915de8be710fc2d1ced Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
286 From: Vincent Richard <vincent@vincent-richard.net>
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
287 Date: Fri, 28 Jan 2011 12:11:08 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
288 Subject: [PATCH 07/47] Fixed possible read to invalid memory location (thanks
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
289 to Alexander Konovalov).
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
290
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
291
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
292 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
293 index 1c1c1a6..fa08d33 100644
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
294 --- a/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
295 +++ b/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
296 @@ -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
297
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
298 os << string(curLineStart, p);
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
299
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
300 - if (parserHelpers::isSpace(*(p - 1)))
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
301 + 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
302 state->lastCharIsSpace = true;
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
303 else
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
304 state->lastCharIsSpace = false;
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
305 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
306 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
307
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
308
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
309 From 73298423f695d7c4441d44619e4b7f9de75f566e Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
310 From: Vincent Richard <vincent@vincent-richard.net>
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
311 Date: Wed, 9 Mar 2011 18:03:31 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
312 Subject: [PATCH 08/47] Fixed bug #3174903. Fixed word parsing when buffer
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
313 does not end with NL. Fixed 'no encoding' when
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
314 forced.
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
315
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
316
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
317 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
318 index 738d3e7..8596833 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
319 --- a/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
320 +++ b/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
321 @@ -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
322
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
323 if (pos != string::npos && pos < end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
324 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
325 - 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
326 + vmime::text text;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
327 + text.parse(buffer, position, pos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
328 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
329 + m_prologText = text.getWholeBuffer();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
330 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
331
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
332 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
333 @@ -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
334 // Treat remaining text as epilog
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
335 else if (partStart < end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
336 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
337 - 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
338 + vmime::text text;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
339 + text.parse(buffer, partStart, end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
340 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
341 + m_epilogText = text.getWholeBuffer();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
342 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
343 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
344 // Treat the contents as 'simple' data
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
345 @@ -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
346
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
347 if (!prologText.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
348 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
349 - text prolog(word(prologText, getCharset()));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
350 + text prolog(prologText, vmime::charset("us-ascii"));
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 prolog.encodeAndFold(os, maxLineLength, 0,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
353 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
354 @@ -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
355
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
356 if (!epilogText.empty())
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 - text epilog(word(epilogText, getCharset()));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
359 + text epilog(epilogText, vmime::charset("us-ascii"));
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 epilog.encodeAndFold(os, maxLineLength, 0,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
362 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
363 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
364 index fa08d33..aeaa737 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
365 --- a/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
366 +++ b/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
367 @@ -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
368 ++pos;
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 unencoded += buffer.substr(startPos, endPos - startPos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
371 - unencoded += ' ';
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 + if (pos != end) // ignore white-spaces at end
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
374 + unencoded += ' ';
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 startPos = pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
377 continue;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
378 @@ -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
379 ++pos;
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
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
382 - // 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
383 - if (end != startPos)
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 (startPos != pos && !isFirst && prevIsEncoded)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
386 - unencoded += whiteSpaces;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
387 + if (startPos != end && !isFirst && prevIsEncoded)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
388 + unencoded += whiteSpaces;
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 + if (startPos != end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
391 unencoded += buffer.substr(startPos, end - startPos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
392
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
393 + // 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
394 + if (!unencoded.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
395 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
396 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
397 w->setParsedBounds(position, end);
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 @@ -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
400 state = &defaultGeneratorState;
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 // 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
403 - bool encodingNeeded = (flags & text::FORCE_ENCODING) != 0;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
404 + bool encodingNeeded = false;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
405
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
406 - if (encodingNeeded == false)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
407 - encodingNeeded = wordEncoder::isEncodingNeeded(m_buffer, m_charset);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
408 - else if ((flags & text::FORCE_NO_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
409 + if ((flags & text::FORCE_NO_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
410 encodingNeeded = false;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
411 + else if ((flags & text::FORCE_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
412 + encodingNeeded = true;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
413 + else // auto-detect
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
414 + encodingNeeded = wordEncoder::isEncodingNeeded(m_buffer, m_charset);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
415
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
416 // 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
417 // Quoting is possible if and only if:
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
418 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
419 index df2bf85..b129913 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
420 --- a/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
421 +++ b/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
422 @@ -34,6 +34,8 @@ VMIME_TEST_SUITE_BEGIN
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
423 VMIME_TEST(testParse)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
424 VMIME_TEST(testGenerate)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
425 VMIME_TEST(testParseMissingLastBoundary)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
426 + VMIME_TEST(testPrologEpilog)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
427 + VMIME_TEST(testPrologEncoding)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
428 VMIME_TEST_LIST_END
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
429
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 @@ -105,5 +107,79 @@ VMIME_TEST_SUITE_BEGIN
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
432 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
433 }
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 + void testPrologEpilog()
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
436 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
437 + const char testMail[] =
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
438 + "To: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
439 + "From: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
440 + "Subject: Prolog and epilog test\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
441 + "Content-Type: multipart/mixed; \r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
442 + " boundary=\"=_boundary\"\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
443 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
444 + "Prolog text\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
445 + "--=_boundary\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
446 + "Content-Type: text/plain\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
447 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
448 + "Part1\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
449 + "--=_boundary--\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
450 + "Epilog text";
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
451 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
452 + vmime::bodyPart part;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
453 + part.parse(testMail);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
454 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
455 + VASSERT_EQ("prolog", "Prolog text", part.getBody()->getPrologText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
456 + VASSERT_EQ("epilog", "Epilog text", part.getBody()->getEpilogText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
457 + }
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 + // 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
460 + // 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
461 + void testPrologEncoding()
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 + const char testmail[] =
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
464 + "To: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
465 + "From: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
466 + "Subject: Prolog encoding test\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
467 + "Content-Type: multipart/mixed; \r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
468 + " boundary=\"=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\"\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
469 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
470 + "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
471 + "understand MIME message format.\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
472 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
473 + "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
474 + "Content-Transfer-Encoding: quoted-printable\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
475 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
476 + "=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
477 + "=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
478 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
479 + "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
480 + "Content-Disposition: attachment; filename=FNS.zip\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
481 + "Content-Transfer-Encoding: base64\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
482 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
483 + "UEsDBB...snap...EEAAAAAA==\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
484 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q--\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
485 + "Epilog text";
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 + 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
488 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
489 + std::string istr(testmail);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
490 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
491 + std::string ostr;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
492 + vmime::utility::outputStreamStringAdapter out(ostr);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
493 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
494 + for (int i = 0 ; i < 10 ; ++i)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
495 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
496 + ostr.clear();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
497 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
498 + msg->parse(istr);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
499 + msg->generate(out);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
500 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
501 + istr = ostr;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
502 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
503 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
504 + 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
505 + " 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
506 + VASSERT_EQ("epilog", "Epilog text", msg->getBody()->getEpilogText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
507 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
508 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
509 VMIME_TEST_SUITE_END
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
510
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
511 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
512 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
513
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
514
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
515 From 5f5757b9d4bb0febb1e2183578eb91e801a08038 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
516 From: Vincent Richard <vincent@vincent-richard.net>
1710
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
517 Date: Sun, 27 Mar 2011 11:26:55 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
518 Subject: [PATCH 09/47] 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
519 and uses 'ws2_32' instead of 'winsock32' (#3213487).
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
520
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
521
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
522 diff --git a/SConstruct b/SConstruct
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
523 index 55f9223..177f5b4 100644
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
524 --- a/SConstruct
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
525 +++ b/SConstruct
1668
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
526 @@ -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
527 vmime_pc_in.write("Description: " + packageDescription + "\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
528 vmime_pc_in.write("Version: @VERSION@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
529 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
530 - 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
531 + 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
532 #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
533 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
534 vmime_pc_in.close()
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
535 @@ -1709,7 +1709,7 @@ fi
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
536
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
537 # -- Link with Winsock (Windows)
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
538 if test "x$VMIME_DETECT_PLATFORM" = "xwindows"; then
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
539 - 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
540 + 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
541 fi
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
542
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
543 # -- getaddrinfo (POSIX)
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
544 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
545 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
546
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
547
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
548 From 2b48b4a68ce3e9b9b1a3f485123af5938a568324 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
549 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
550 Date: Thu, 31 Mar 2011 19:13:03 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
551 Subject: [PATCH 10/47] 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
552 Kamp, Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
553
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
554
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
555 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
556 index 38b9e5e..2135788 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
557 --- a/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
558 +++ b/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
559 @@ -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
560 size_t inPos = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
561
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
562 bool prevIsInvalid = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
563 + bool breakAfterNext = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
564
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
565 while (true)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
566 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
567 @@ -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
568 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
569 size_t outLength = sizeof(outBuffer);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
570
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
571 - const char* inPtr = inBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
572 + const char* inPtr = breakAfterNext ? NULL : inBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
573 + size_t *ptrLength = breakAfterNext ? NULL : &inLength;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
574 char* outPtr = outBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
575
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
576 // Convert input bytes
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
577 - if (iconv(cd, ICONV_HACK(&inPtr), &inLength,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
578 + if (iconv(cd, ICONV_HACK(&inPtr), ptrLength,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
579 &outPtr, &outLength) == static_cast <size_t>(-1))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
580 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
581 // Illegal input sequence or input sequence has no equivalent
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
582 @@ -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
583 prevIsInvalid = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
584 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
585
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
586 - // Check for end of data
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
587 - if (in.eof() && inPos == 0)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
588 + if (breakAfterNext)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
589 break;
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 + // 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
592 + if (in.eof() && inPos == 0)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
593 + breakAfterNext = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
594 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
595 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
596
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
597 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
598 index 8ad71d7..54a09a7 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
599 --- a/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
600 +++ b/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
601 @@ -100,6 +100,7 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
602 VMIME_TEST(testFilterValid1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
603 VMIME_TEST(testFilterValid2)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
604 VMIME_TEST(testFilterValid3)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
605 + VMIME_TEST(testEncodingHebrew1255)
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 // Test invalid input
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
608 VMIME_TEST(testFilterInvalid1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
609 @@ -227,6 +228,15 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
610 VASSERT_EQ("1", toHex(expectedOut), toHex(actualOut));
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
613 + void testEncodingHebrew1255()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
614 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
615 + // hewbrew string in windows-1255 charset
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
616 + 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
617 + vmime::word w = vmime::word(data, "windows-1255");
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
618 + vmime::string encoded = w.generate();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
619 + // less than 60% ascii, base64 received
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
620 + 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
621 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
622
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
623 // Conversion to hexadecimal for easier debugging
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
624 static const vmime::string toHex(const vmime::string str)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
625 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
626 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
627
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
628
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
629 From 8d2e039c5201e144ff08e2ff7cf9efe77fe4b3d0 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
630 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
631 Date: Fri, 10 Jun 2011 19:39:09 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
632 Subject: [PATCH 11/47] Requested email change.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
633
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
634
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
635 diff --git a/AUTHORS b/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
636 index 20a0181..bbddb30 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
637 --- a/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
638 +++ b/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
639 @@ -21,7 +21,7 @@ AUTHORS file.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
640 - Rafael Fernandez <prf@adinet.com.uy>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
641 - Xin Li <lixin3@staff.sina.com.cn>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
642 - Benjamin Biron <benbiron@gmail.com>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
643 - - Bertrand Benoit <bsquare@bsquare.levillage.org>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
644 + - Bertrand Benoit <projettwk@users.sourceforge.net>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
645 - Tim Teulings <rael@edge.ping.de>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
646 - Georg Sauthoff <gsauthof@techfak.uni-bielefeld.de>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
647 - 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
648 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
649 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
650
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
651
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
652 From cc6317f28ae0b61fea36e1bc78b09dc8300579f8 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
653 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
654 Date: Tue, 14 Jun 2011 18:37:54 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
655 Subject: [PATCH 12/47] Fixed compilation issue following namespace change.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
656
1891
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 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
659 index 1ddb3d0..243b1da 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
660 --- a/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
661 +++ b/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
662 @@ -43,18 +43,18 @@ int main()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
663 vmime::platform::setHandler<vmime::platforms::posix::posixHandler>();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
664
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
665 // Enumerate encoders
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
666 - vmime::encoderFactory* ef = vmime::encoderFactory::getInstance();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
667 + 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
668
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
669 std::cout << "Available encoders:" << std::endl;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
670
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
671 for (int i = 0 ; i < ef->getEncoderCount() ; ++i)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
672 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
673 - vmime::ref <const vmime::encoderFactory::registeredEncoder>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
674 + vmime::ref <const vmime::utility::encoder::encoderFactory::registeredEncoder>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
675 enc = ef->getEncoderAt(i);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
676
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
677 std::cout << " * " << enc->getName() << std::endl;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
678
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
679 - vmime::ref <vmime::encoder> e = enc->create();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
680 + vmime::ref <vmime::utility::encoder::encoder> e = enc->create();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
681
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
682 std::vector <vmime::string> props = e->getAvailableProperties();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
683
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
684 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
685 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
686
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
687
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
688 From a916d12d44ac43fc8e4729e0a91f4d6243f29a11 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
689 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
690 Date: Sun, 19 Jun 2011 17:51:33 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
691 Subject: [PATCH 13/47] Fixed parsing of an attachment filename that is
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
692 between 66 and 76 characters long (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
693
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
694
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
695 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
696 index 91a7e5c..f59d5ab 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
697 --- a/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
698 +++ b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
699 @@ -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
700 bool needQuoting = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
701 string::size_type valueLength = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
702
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
703 - 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
704 + // 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
705 + 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
706 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
707 switch (value[i])
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
708 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
709 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
710 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
711
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
712
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
713 From 9735165c57000a6368e91ce8852206a20930c1ca Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
714 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
715 Date: Sun, 19 Jun 2011 18:08:12 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
716 Subject: [PATCH 14/47] Correctly generate attachment names which are long and
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
717 have high characters for Outlook Express (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
718
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
719
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
720 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
721 index f59d5ab..d757e1b 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
722 --- a/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
723 +++ b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
724 @@ -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
725 // value is to be generated.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
726
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
727 // A stream for a temporary storage
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
728 - std::ostringstream sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
729 + std::string sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
730 + utility::outputStreamStringAdapter sevenBitStream(sevenBitBuffer);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
731
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
732 string::size_type pos = curLinePos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
733
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
734 if (pos + name.length() + 10 + value.length() > maxLineLength)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
735 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
736 - sevenBitBuffer << NEW_LINE_SEQUENCE;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
737 + sevenBitStream << NEW_LINE_SEQUENCE;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
738 pos = NEW_LINE_SEQUENCE_LENGTH;
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
741 bool needQuoting = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
742 + bool needQuotedPrintable = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
743 string::size_type valueLength = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
744
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
745 // 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
746 @@ -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
747
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
748 needQuoting = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
749 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
750 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
751 + default:
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
752 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
753 + if (!parserHelpers::isAscii(value[i]))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
754 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
755 + needQuotedPrintable = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
756 + needQuoting = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
757 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
758 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
759 + break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
760 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
761 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
762
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
763 @@ -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
764
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
765 if (needQuoting)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
766 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
767 - sevenBitBuffer << name << "=\"";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
768 + sevenBitStream << name << "=\"";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
769 pos += name.length() + 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
770 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
771 else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
772 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
773 - sevenBitBuffer << name << "=";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
774 + sevenBitStream << name << "=";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
775 pos += name.length() + 1;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
776 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
777
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
778 @@ -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
779 const bool alwaysEncode = m_value.getCharset().getRecommendedEncoding(recommendedEnc);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
780 bool extended = alwaysEncode;
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 - 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
783 + if (needQuotedPrintable)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
784 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
785 - const char_t c = value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
786 -
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
787 - if (/* needQuoting && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit
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 - sevenBitBuffer << '\\' << value[i]; // escape 'x' with '\x'
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
790 - pos += 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
791 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
792 - else if (parserHelpers::isAscii(c))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
793 - {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
794 - sevenBitBuffer << value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
795 - ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
796 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
797 - else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
798 + // 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
799 + // will understand the real filename
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
800 + size_t oldLen = sevenBitBuffer.length();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
801 + m_value.generate(sevenBitStream);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
802 + pos += sevenBitBuffer.length() - oldLen;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
803 + extended = true; // also send with RFC-2231 encoding
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
804 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
805 + else
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 + // 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
808 + 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
809 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
810 - extended = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
811 + const char_t c = value[i];
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 && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit
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 + sevenBitStream << '\\' << value[i]; // escape 'x' with '\x'
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
816 + pos += 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
817 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
818 + else if (parserHelpers::isAscii(c))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
819 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
820 + sevenBitStream << value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
821 + ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
822 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
823 + else
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 + extended = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
826 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
827 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
828 - }
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 + } // !needQuotedPrintable
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
831
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
832 if (needQuoting)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
833 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
834 - sevenBitBuffer << '"';
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
835 + sevenBitStream << '"';
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
836 ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
837 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
838
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
839 @@ -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
840 // "7bit/us-ascii" will suffice in this case.
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 // 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
843 - os << sevenBitBuffer.str();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
844 + os << sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
845 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
846 #endif // !VMIME_ALWAYS_GENERATE_7BIT_PARAMETER
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
847
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
848 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
849 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
850
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
851
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
852 From 8d69ad6849d8d6b211674942157f2af8bcd51c26 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
853 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
854 Date: Sun, 19 Jun 2011 18:16:49 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
855 Subject: [PATCH 15/47] Alias for UTF-7 charset.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
856
1891
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 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
859 index e043186..0fda450 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
860 --- a/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
861 +++ b/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
862 @@ -45,6 +45,9 @@ charset::charset()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
863 charset::charset(const string& name)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
864 : m_name(name)
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 + // 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
867 + 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
868 + m_name = "utf-7";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
869 }
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
872 @@ -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
873 m_name = utility::stringUtils::trim
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
874 (string(buffer.begin() + position, buffer.begin() + end));
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 + // 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
877 + 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
878 + m_name = "utf-7";
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 setParsedBounds(position, end);
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 if (newPosition)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
883 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
884 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
885
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
886
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
887 From ccd95daf9cdd7171fc2027afa5d0ad80b0475ded Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
888 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
889 Date: Sun, 19 Jun 2011 18:39:35 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
890 Subject: [PATCH 16/47] Fixed messageBuilder to accept an empty mailbox group
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
891 in 'To:' field, to allow for undisclosed-recipients
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
892 (Zarafa).
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
895 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
896 index 870d59e..3597b3a 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
897 --- a/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
898 +++ b/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
899 @@ -51,17 +51,15 @@ ref <message> messageBuilder::construct() const
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
900 // Generate the header fields
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
901 msg->getHeader()->Subject()->setValue(m_subject);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
902
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
903 - if (m_from.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
904 - throw exceptions::no_expeditor();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
905 -
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
906 - if ((m_to.isEmpty() || m_to.getAddressAt(0)->isEmpty()) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
907 + 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
908 (m_cc.isEmpty() || m_cc.getAddressAt(0)->isEmpty()) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
909 (m_bcc.isEmpty() || m_bcc.getAddressAt(0)->isEmpty()))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
910 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
911 throw exceptions::no_recipient();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
912 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
913
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
914 - msg->getHeader()->From()->setValue(m_from);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
915 + if (!m_from.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
916 + msg->getHeader()->From()->setValue(m_from);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
917
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
918 if (!m_to.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
919 msg->getHeader()->To()->setValue(m_to);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
920 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
921 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
922
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
923
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
924 From 583e25bcdee132e53e0792cd8f0d8e535cabb743 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
925 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
926 Date: Sun, 19 Jun 2011 18:49:55 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
927 Subject: [PATCH 17/47] Added support for mailboxes that specify an (encoded)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
928 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
929 marker (Zarafa).
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
932 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
933 index 5cb0139..fea7479 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
934 --- a/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
935 +++ b/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
936 @@ -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
937 // Temporary buffers for extracted name and address
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
938 string name;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
939 string address;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
940 + bool hadBrackets = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
941
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
942 while (p < pend)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
943 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
944 @@ -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
945 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
946 else if (*p == '>')
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
947 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
948 + hadBrackets = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
949 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
950 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
951 else if (!parserHelpers::isSpace(*p))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
952 @@ -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
953
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
954 // Swap name and address when no address was found
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
955 // (email address is mandatory, whereas name is optional).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
956 - if (address.empty() && !name.empty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
957 + if (address.empty() && !name.empty() && !hadBrackets)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
958 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
959 m_email.clear();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
960 m_email.reserve(name.size());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
961 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
962 index 8411daa..9ebadca 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
963 --- a/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
964 +++ b/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
965 @@ -32,6 +32,7 @@ VMIME_TEST_SUITE_BEGIN
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 VMIME_TEST_LIST_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
968 VMIME_TEST(testParse)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
969 + VMIME_TEST(testEmptyEmailAddress)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
970 VMIME_TEST_LIST_END
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
973 @@ -113,5 +114,19 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
974 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
975 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
976
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
977 + void testEmptyEmailAddress()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
978 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
979 + vmime::addressList addrList;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
980 + addrList.parse("\"Full Name\" <>");
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
981 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
982 + VASSERT_EQ("count", 1, addrList.getAddressCount());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
983 + VASSERT_EQ("!group", false, addrList.getAddressAt(0)->isGroup());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
984 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
985 + 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
986 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
987 + VASSERT_EQ("name", "Full Name", mbox->getName());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
988 + VASSERT_EQ("email", "", mbox->getEmail());
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 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
991 VMIME_TEST_SUITE_END
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
992
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
993 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
994 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
995
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
996
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
997 From 461b92f84d5c16b297d33610fcd89fc7ca5a161a Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
998 From: Vincent Richard <vincent@vincent-richard.net>
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
999 Date: Fri, 24 Jun 2011 15:46:23 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1000 Subject: [PATCH 18/47] Added missing libs in pkg-config file.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1001
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1002
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1003 diff --git a/SConstruct b/SConstruct
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1004 index 177f5b4..37c0ac6 100644
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1005 --- a/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1006 +++ b/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1007 @@ -1089,7 +1089,7 @@ def generateAutotools(target, source, env):
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1008 vmime_pc_in.write("Description: " + packageDescription + "\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1009 vmime_pc_in.write("Version: @VERSION@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1010 vmime_pc_in.write("Requires: @GSASL_REQUIRED@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1011 - 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
1012 + 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
1013 #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
1014 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
1015 vmime_pc_in.close()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1016 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1017 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1018
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1019
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1020 From 2b2c0abd02a17ccff7d49e266b9854f4ea47f8e4 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1021 From: Vincent Richard <vincent@vincent-richard.net>
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1022 Date: Sat, 25 Jun 2011 17:07:53 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1023 Subject: [PATCH 19/47] 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
1024 der Kamp, from Zarafa).
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1025
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1026
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1027 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
1028 index 8596833..9d7d57f 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1029 --- a/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1030 +++ b/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1031 @@ -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
1032 {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1033 ref <bodyPart> part = vmime::create <bodyPart>();
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1034
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1035 + // End before start may happen on empty bodyparts (directly
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1036 + // successive boundaries without even a line-break)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1037 + if (partEnd < partStart)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1038 + std::swap(partStart, partEnd);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1039 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1040 part->parse(buffer, partStart, partEnd, NULL);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1041 part->m_parent = m_part;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1042
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1043 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
1044 index b129913..075b8f9 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1045 --- a/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1046 +++ b/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1047 @@ -36,6 +36,7 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1048 VMIME_TEST(testParseMissingLastBoundary)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1049 VMIME_TEST(testPrologEpilog)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1050 VMIME_TEST(testPrologEncoding)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1051 + VMIME_TEST(testSuccessiveBoundaries)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1052 VMIME_TEST_LIST_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1053
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1054
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1055 @@ -181,5 +182,23 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1056 VASSERT_EQ("epilog", "Epilog text", msg->getBody()->getEpilogText());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1057 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1058
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1059 + void testSuccessiveBoundaries()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1060 + {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1061 + vmime::string str =
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1062 + "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1063 + "\r\n\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1064 + "--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
1065 + "--MY-BOUNDARY\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1066 + "--MY-BOUNDARY--\r\n";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1067 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1068 + vmime::bodyPart p;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1069 + p.parse(str);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1070 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1071 + VASSERT_EQ("count", 2, p.getBody()->getPartCount());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1072 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1073 + 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
1074 + 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
1075 + }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1076 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1077 VMIME_TEST_SUITE_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1078
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1079 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1080 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1081
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1082
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1083 From 2648d744da0e2e744c7959999ac513c3016072b4 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1084 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
1085 Date: Sun, 26 Jun 2011 08:19:11 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1086 Subject: [PATCH 20/47] 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
1087 deprecated functions.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1088
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1089
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1090 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1091 index 37c0ac6..01ad3f3 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1092 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1093 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1094 @@ -816,6 +816,7 @@ else:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1095 config_hpp.write('// -- TLS/SSL support\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1096 if env['with_tls'] == 'yes':
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1097 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
1098 + 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
1099 else:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1100 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
1101
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1102 @@ -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
1103 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1104 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
1105 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1106 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1107 + # -- check for gnutls_priority_set_direct() function
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1108 + if test "x$have_gnutls" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1109 + 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
1110 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1111 + LIBS_save="$LIBS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1112 + LIBS="$LIBS $LIBGNUTLS_LIBS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1113 + CPPFLAGS_save="$CPPFLAGS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1114 + CPPFLAGS="$CPPFLAGS $LIBGNUTLS_CFLAGS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1115 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1116 + 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
1117 + [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
1118 + [have_gnutls_priority_funcs=yes],
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1119 + [have_gnutls_priority_funcs=no])
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1120 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1121 + CPPFLAGS="$CPPFLAGS_save"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1122 + LIBS="$LIBS_save"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1123 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1124 + AC_MSG_RESULT([$have_gnutls_priority_funcs])
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1125 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1126 + 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
1127 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, true)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1128 + HAVE_GNUTLS_PRIORITY_FUNCS=1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1129 + else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1130 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1131 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1132 + fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1133 + fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1134 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1135 AM_CONDITIONAL(VMIME_HAVE_TLS_SUPPORT, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1136 VMIME_HAVE_TLS_SUPPORT=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1137 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1138
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1139 +AC_SUBST(LIBGNUTLS_CFLAGS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1140 +AC_SUBST(LIBGNUTLS_LIBS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1141 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1142 # ** platform handlers
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1143
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1144 VMIME_BUILTIN_PLATFORMS=''
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1145 @@ -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
1146 #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
1147 // -- TLS support
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1148 #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
1149 +#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
1150 // -- Messaging support
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1151 #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
1152 """)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1153 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
1154 index 010c007..af73a05 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1155 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1156 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1157 @@ -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
1158
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1159 // 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
1160 // macs and compression methods.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1161 +#if HAVE_GNUTLS_PRIORITY_FUNCS
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1162 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1163 + if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1164 + (*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
1165 + {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1166 + if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1167 + (*m_gnutlsSession, "NORMAL", NULL)) != 0)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1168 + {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1169 + throwTLSException
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1170 + ("gnutls_priority_set_direct", res);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1171 + }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1172 + }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1173 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1174 +#else // !HAVE_GNUTLS_PRIORITY_FUNCS
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 gnutls_set_default_priority(*m_gnutlsSession);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1177
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1178 // 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
1179 @@ -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
1180
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1181 gnutls_compression_set_priority(*m_gnutlsSession, compressionPriority);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1182
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1183 +#endif // !HAVE_GNUTLS_PRIORITY_FUNCS
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 // Initialize credentials
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1186 gnutls_credentials_set(*m_gnutlsSession,
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1187 GNUTLS_CRD_ANON, g_gnutlsGlobal.anonCred);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1188 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1189 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1190
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1191
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1192 From 1060121ffd4315c3158ffc001040f4f705514e7a Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1193 From: Vincent Richard <vincent@vincent-richard.net>
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1194 Date: Sun, 26 Jun 2011 12:47:25 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1195 Subject: [PATCH 21/47] Fixed encoding of whitespace. Fixed old test case.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1196
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1197
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1198 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
1199 index 2454456..66c3b35 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1200 --- a/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1201 +++ b/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1202 @@ -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
1203 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1204 else
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1205 {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1206 - if (count)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1207 - {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1208 - ref <word> w = getWordAt(getWordCount() - 1);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1209 - w->getBuffer() += ' ';
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1210 - }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1211 -
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1212 appendWord(vmime::create <word>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1213 (chunk, charset(charsets::US_ASCII)));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1214
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1215 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
1216 index 746ac94..43ec836 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1217 --- a/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1218 +++ b/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1219 @@ -53,6 +53,8 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1220
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1221 VMIME_TEST(testFoldingAscii)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1222 VMIME_TEST(testForcedNonEncoding)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1223 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1224 + VMIME_TEST(testBugFix20110511)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1225 VMIME_TEST_LIST_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1226
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1227
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1228 @@ -149,7 +151,7 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1229 VASSERT_EQ("2.1", 3, t2.getWordCount());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1230 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
1231 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
1232 - 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
1233 + 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
1234 VASSERT_EQ("2.5", c2, t2.getWordAt(1)->getCharset());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1235 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
1236 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
1237 @@ -453,5 +455,43 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1238 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
1239 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1240
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1241 + void testBugFix20110511()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1242 + {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1243 + /*
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1244 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1245 + 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
1246 + Gwenaël Dutourd will result in:
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1247 + Jean =?utf-8?Q?Gwena=C3=ABl_?= Dutourd
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1248 + 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
1249 + 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
1250 + 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
1251 + is decoded into an additional space.
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1252 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1253 + 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
1254 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1255 + */
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1256 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1257 + const std::string DECODED_TEXT = "Jean Gwenaël Dutourd";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1258 + 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
1259 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1260 + // Encode
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1261 + VASSERT_EQ("encode", ENCODED_TEXT,
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1262 + 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
1263 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1264 + // Decode
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1265 + vmime::text t;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1266 + t.parse(ENCODED_TEXT);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1267 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1268 + // -- words
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1269 + std::ostringstream oss; oss << t;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1270 + VASSERT_EQ("decode1",
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1271 + "[text: [[word: charset=us-ascii, buffer=Jean ],"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1272 + "[word: charset=utf-8, buffer=Gwenaël],"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1273 + "[word: charset=us-ascii, buffer= Dutourd]]]", oss.str());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1274 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1275 + // -- getWholeBuffer
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1276 + VASSERT_EQ("decode2", DECODED_TEXT, t.getWholeBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1277 + }
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 VMIME_TEST_SUITE_END
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 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1282 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1283
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1284
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1285 From dc6dc039fc0edccf4630894fa6ed8cd4bf3bb3ce Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1286 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
1287 Date: Sat, 20 Aug 2011 06:35:06 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1288 Subject: [PATCH 22/47] Use gnutls_strerror() for reporting errors.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1289
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1290
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1291 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
1292 index af73a05..7426a73 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1293 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1294 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1295 @@ -41,6 +41,9 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1296 //#define GNUTLS_DEBUG 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1297
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1298
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1299 +#include <sstream>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1300 +#include <iomanip>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1301 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1302 #if VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1303 #include <iostream>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1304 #endif // VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1305 @@ -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
1306
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1307 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
1308 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1309 - string msg = fname + "() returned ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1310 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1311 -#define ERROR(x) \
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1312 - case x: msg += #x; break;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1313 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1314 - switch (code)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1315 - {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1316 - ERROR(GNUTLS_E_SUCCESS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1317 - ERROR(GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1318 - ERROR(GNUTLS_E_UNKNOWN_CIPHER_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1319 - ERROR(GNUTLS_E_LARGE_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1320 - ERROR(GNUTLS_E_UNSUPPORTED_VERSION_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1321 - ERROR(GNUTLS_E_UNEXPECTED_PACKET_LENGTH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1322 - ERROR(GNUTLS_E_INVALID_SESSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1323 - ERROR(GNUTLS_E_FATAL_ALERT_RECEIVED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1324 - ERROR(GNUTLS_E_UNEXPECTED_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1325 - ERROR(GNUTLS_E_WARNING_ALERT_RECEIVED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1326 - ERROR(GNUTLS_E_ERROR_IN_FINISHED_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1327 - ERROR(GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1328 - ERROR(GNUTLS_E_UNKNOWN_CIPHER_SUITE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1329 - ERROR(GNUTLS_E_UNWANTED_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1330 - ERROR(GNUTLS_E_MPI_SCAN_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1331 - ERROR(GNUTLS_E_DECRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1332 - ERROR(GNUTLS_E_MEMORY_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1333 - ERROR(GNUTLS_E_DECOMPRESSION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1334 - ERROR(GNUTLS_E_COMPRESSION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1335 - ERROR(GNUTLS_E_AGAIN)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1336 - ERROR(GNUTLS_E_EXPIRED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1337 - ERROR(GNUTLS_E_DB_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1338 - ERROR(GNUTLS_E_SRP_PWD_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1339 - ERROR(GNUTLS_E_INSUFFICIENT_CREDENTIALS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1340 - ERROR(GNUTLS_E_HASH_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1341 - ERROR(GNUTLS_E_BASE64_DECODING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1342 - ERROR(GNUTLS_E_MPI_PRINT_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1343 - ERROR(GNUTLS_E_REHANDSHAKE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1344 - ERROR(GNUTLS_E_GOT_APPLICATION_DATA)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1345 - ERROR(GNUTLS_E_RECORD_LIMIT_REACHED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1346 - ERROR(GNUTLS_E_ENCRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1347 - ERROR(GNUTLS_E_PK_ENCRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1348 - ERROR(GNUTLS_E_PK_DECRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1349 - ERROR(GNUTLS_E_PK_SIGN_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1350 - ERROR(GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1351 - ERROR(GNUTLS_E_KEY_USAGE_VIOLATION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1352 - ERROR(GNUTLS_E_NO_CERTIFICATE_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1353 - ERROR(GNUTLS_E_INVALID_REQUEST)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1354 - ERROR(GNUTLS_E_SHORT_MEMORY_BUFFER)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1355 - ERROR(GNUTLS_E_INTERRUPTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1356 - ERROR(GNUTLS_E_PUSH_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1357 - ERROR(GNUTLS_E_PULL_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1358 - ERROR(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1359 - ERROR(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1360 - ERROR(GNUTLS_E_PKCS1_WRONG_PAD)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1361 - ERROR(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1362 - ERROR(GNUTLS_E_INTERNAL_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1363 - ERROR(GNUTLS_E_DH_PRIME_UNACCEPTABLE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1364 - ERROR(GNUTLS_E_FILE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1365 - ERROR(GNUTLS_E_TOO_MANY_EMPTY_PACKETS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1366 - ERROR(GNUTLS_E_UNKNOWN_PK_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1367 - ERROR(GNUTLS_E_INIT_LIBEXTRA)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1368 - ERROR(GNUTLS_E_LIBRARY_VERSION_MISMATCH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1369 - ERROR(GNUTLS_E_NO_TEMPORARY_RSA_PARAMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1370 - ERROR(GNUTLS_E_LZO_INIT_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1371 - ERROR(GNUTLS_E_NO_COMPRESSION_ALGORITHMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1372 - ERROR(GNUTLS_E_NO_CIPHER_SUITES)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1373 - ERROR(GNUTLS_E_OPENPGP_GETKEY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1374 - ERROR(GNUTLS_E_PK_SIG_VERIFY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1375 - ERROR(GNUTLS_E_ILLEGAL_SRP_USERNAME)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1376 - ERROR(GNUTLS_E_SRP_PWD_PARSING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1377 - ERROR(GNUTLS_E_NO_TEMPORARY_DH_PARAMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1378 - ERROR(GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1379 - ERROR(GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1380 - ERROR(GNUTLS_E_ASN1_DER_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1381 - ERROR(GNUTLS_E_ASN1_VALUE_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1382 - ERROR(GNUTLS_E_ASN1_GENERIC_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1383 - ERROR(GNUTLS_E_ASN1_VALUE_NOT_VALID)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1384 - ERROR(GNUTLS_E_ASN1_TAG_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1385 - ERROR(GNUTLS_E_ASN1_TAG_IMPLICIT)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1386 - ERROR(GNUTLS_E_ASN1_TYPE_ANY_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1387 - ERROR(GNUTLS_E_ASN1_SYNTAX_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1388 - ERROR(GNUTLS_E_ASN1_DER_OVERFLOW)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1389 - //ERROR(GNUTLS_E_OPENPGP_TRUSTDB_VERSION_UNSUPPORTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1390 - ERROR(GNUTLS_E_OPENPGP_UID_REVOKED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1391 - ERROR(GNUTLS_E_CERTIFICATE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1392 - //ERROR(GNUTLS_E_X509_CERTIFICATE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1393 - ERROR(GNUTLS_E_CERTIFICATE_KEY_MISMATCH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1394 - ERROR(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1395 - ERROR(GNUTLS_E_X509_UNKNOWN_SAN)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1396 - ERROR(GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1397 - ERROR(GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1398 - ERROR(GNUTLS_E_UNKNOWN_HASH_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1399 - ERROR(GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1400 - ERROR(GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1401 - ERROR(GNUTLS_E_INVALID_PASSWORD)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1402 - ERROR(GNUTLS_E_MAC_VERIFY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1403 - ERROR(GNUTLS_E_CONSTRAINT_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1404 - ERROR(GNUTLS_E_BASE64_ENCODING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1405 - ERROR(GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1406 - //ERROR(GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1407 - ERROR(GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1408 - ERROR(GNUTLS_E_OPENPGP_KEYRING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1409 - ERROR(GNUTLS_E_X509_UNSUPPORTED_OID)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1410 - //ERROR(GNUTLS_E_RANDOM_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1411 - ERROR(GNUTLS_E_UNIMPLEMENTED_FEATURE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1412 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1413 - default:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1414 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1415 - msg += "unknown error";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1416 - break;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1417 - }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1418 + std::ostringstream msg;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1419
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1420 -#undef ERROR
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1421 + msg << fname + "() returned code ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1422 + msg << std::hex << code;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1423 + msg << ": ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1424 + msg << gnutls_strerror(code);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1425
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1426 - throw exceptions::tls_exception(msg);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1427 + throw exceptions::tls_exception(msg.str());
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1428 }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1429
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1430
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1431 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1432 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1433
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1434
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1435 From 7ea6fc3737ef36407e1c90f3aa05f89a39bdefb7 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1436 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
1437 Date: Sun, 21 Aug 2011 08:55:46 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1438 Subject: [PATCH 23/47] 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
1439 2.12.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1440
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1441
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1442 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
1443 index 7426a73..d3f6d49 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1444 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1445 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1446 @@ -26,9 +26,17 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1447
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1448 #include "vmime/config.hpp"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1449
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1450 +// 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
1451 +// 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
1452 +#if GNUTLS_VERSION_NUMBER <= 0x020b00
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1453 +# define VMIME_GNUTLS_NEEDS_GCRYPT 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1454 +#endif
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1455 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1456 #if VMIME_HAVE_PTHREAD
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1457 # include <pthread.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1458 -# include <gcrypt.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1459 +# if VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1460 +# include <gcrypt.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1461 +# endif
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1462 # include <errno.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1463 #endif // VMIME_HAVE_PTHREAD
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1464
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1465 @@ -49,7 +57,7 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1466 #endif // VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1467
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1468
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1469 -#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
1470 +#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
1471 extern "C"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1472 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1473 GCRY_THREAD_OPTION_PTHREAD_IMPL;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1474 @@ -70,7 +78,9 @@ struct TLSGlobal
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1475 TLSGlobal()
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1476 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1477 #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
1478 + #if VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1479 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
1480 + #endif // VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1481 #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
1482
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1483 gnutls_global_init();
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1484 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1485 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1486
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1487
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1488 From f21c55be642b166a2f0518ace2b179bed3916b23 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1489 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
1490 Date: Sun, 21 Aug 2011 09:04:46 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1491 Subject: [PATCH 24/47] 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
1492 configured with no TLS support.
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
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1495 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1496 index 01ad3f3..11e884b 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1497 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1498 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1499 @@ -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
1500 AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1501 HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1502 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1503 + else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1504 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1505 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1506 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1507 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1508 AM_CONDITIONAL(VMIME_HAVE_TLS_SUPPORT, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1509 VMIME_HAVE_TLS_SUPPORT=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1510 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1511 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1512 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1513 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1514
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1515 AC_SUBST(LIBGNUTLS_CFLAGS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1516 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1517 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1518
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1519
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1520 From d4e66226a696745adafa1767210580f8fbb7ae00 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1521 From: Vincent Richard <vincent@vincent-richard.net>
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1522 Date: Tue, 15 Nov 2011 11:40:42 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1523 Subject: [PATCH 25/47] GNU TLS 3 has no 'extra' (thanks to mabrand).
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1524
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1525
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1526 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
1527 index d3f6d49..cb50acc 100644
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1528 --- a/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1529 +++ b/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1530 @@ -22,7 +22,9 @@
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1531 //
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1532
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1533 #include <gnutls/gnutls.h>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1534 +#if GNUTLS_VERSION_NUMBER < 0x030000
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1535 #include <gnutls/extra.h>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1536 +#endif
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1537
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1538 #include "vmime/config.hpp"
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1539
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1540 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1541 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1542
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1543
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1544 From bacbe512e406d22f6acc83597fcdfc2d624cf82b Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1545 From: Vincent Richard <vincent@vincent-richard.net>
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1546 Date: Tue, 15 Nov 2011 11:46:07 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1547 Subject: [PATCH 26/47] Set Diffie-Hellman prime size (bug SF#3434852).
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1548
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1549
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1550 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
1551 index cb50acc..0606808 100644
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1552 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1553 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1554 @@ -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
1555 // 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
1556 // macs and compression methods.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1557 #if HAVE_GNUTLS_PRIORITY_FUNCS
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1558 + 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
1559
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1560 if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1561 (*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
1562 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1563 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1564
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 From 6574b60a303c5d864e840aa23959656bb2803485 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1567 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1568 Date: Thu, 22 Dec 2011 08:51:28 +0000
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1569 Subject: [PATCH 27/47] Updated coding conventions.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1570
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1571
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1572 diff --git a/HACKING b/HACKING
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1573 index 4f35a53..f51d738 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1574 --- a/HACKING
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1575 +++ b/HACKING
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1576 @@ -1,10 +1,10 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1577
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1578 -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
1579 -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
1580 -quality of the code.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1581 +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
1582 +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
1583 +or recommendations, but strict rules.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1584
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1585
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1586 -1. General guidelines
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1587 +1. General rules
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1588 1.1. Language
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1589 1.2. Unit tests
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1590 1.3. CVS
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1591 @@ -18,19 +18,22 @@ quality of the code.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1592 2.5. Line length
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1593 2.6. Spaces and parentheses
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1594 2.7. End-of-line character
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1595 + 2.8. Short functions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1596 + 2.9. Limit Variable Scope
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1597 3. Naming conventions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1598 3.1. Classes
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1599 3.2. Variables/parameters/member variables
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1600 3.3. Member variables
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1601 3.4. Files
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1602 3.5. Namespaces
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1603 + 3.6. Constants
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1604 4. Comments
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1605 5. Miscellaneous
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1609 -1. General guidelines
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1610 -=====================
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1611 +1. General rules
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1612 +================
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1613
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1614 1.1. Language
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1615 -------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1616 @@ -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
1617 happen anymore.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1618
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1619
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1620 -1.3. CVS
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1621 +1.3. SVN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1622 --------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1623
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1624 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
1625 @@ -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
1626 2.5. Line length
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 -Line length should not exceed 80 characters.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1630 +Each line of text should not exceed 80 characters.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1631 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1632 +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
1633 +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
1634 +for ease of cut and paste.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1635
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1636
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1637 2.6. Spaces and parentheses
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1638 @@ -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
1639 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
1640
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1641
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1642 +2.8. Short functions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1643 +--------------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1644 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1645 +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
1646 +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
1647 +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
1648 +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
1649 +program.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1650 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1651 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1652 +2.9. Limit Variable Scope
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1655 +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
1656 +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
1657 +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
1658 +that encloses all uses of the variable.
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 +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
1661 +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
1662 +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
1663 +postpone the declaration until you do.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1664 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1665 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1666
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1667 3. Naming conventions
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 @@ -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
1670 Namespaces are named exactly like variables.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1671
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1672
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1673 +3.6. Constants
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1674 +--------------
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 +Constants are ALL_CAPS_WITH_UNDERSCORES.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1677 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1678 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1679
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1680 4. Comments
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1681 ===========
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1682 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1683 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1684
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1685
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1686 From 130e5223dea0af2f8d9d01cca7845be4e1a08d13 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1687 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1688 Date: Thu, 5 Apr 2012 11:46:39 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1689 Subject: [PATCH 28/47] Added function to retrieve sequence numbers of
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1690 messages whose UID is greater or equal than a
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1691 specified UID (thanks to Zahi Mashael).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1692
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1693
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1694 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
1695 index 0122d21..50a2f2b 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1696 --- a/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1697 +++ b/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1698 @@ -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
1699 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1700
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 +std::vector <int> IMAPFolder::getMessageNumbersStartingOnUID(const message::uid& uid)
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 + std::vector<int> v;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1705 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1706 + std::ostringstream command;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1707 + command.imbue(std::locale::classic());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1708 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1709 + command << "SEARCH UID " << uid;
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 + // Send the request
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1712 + m_connection->send(true, command.str(), true);
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 + // Get the response
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1715 + utility::auto_ptr <IMAPParser::response> resp(m_connection->readResponse());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1716 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1717 + if (resp->isBad() ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1718 + 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
1719 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1720 + throw exceptions::command_error("SEARCH",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1721 + m_connection->getParser()->lastLine(), "bad response");
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1724 + 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
1725 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1726 + 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
1727 + it = respDataList.begin() ; it != respDataList.end() ; ++it)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1728 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1729 + if ((*it)->response_data() == NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1730 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1731 + throw exceptions::command_error("SEARCH",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1732 + m_connection->getParser()->lastLine(), "invalid response");
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1733 + }
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 + const IMAPParser::mailbox_data* mailboxData =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1736 + (*it)->response_data()->mailbox_data();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1737 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1738 + // We are only interested in responses of type "SEARCH"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1739 + if (mailboxData == NULL ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1740 + mailboxData->type() != IMAPParser::mailbox_data::SEARCH)
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 + continue;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1743 + }
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 + for (std::vector <IMAPParser::nz_number*>::const_iterator
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1746 + it = mailboxData->search_nz_number_list().begin() ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1747 + it != mailboxData->search_nz_number_list().end();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1748 + ++it)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1749 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1750 + v.push_back((*it)->value());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1751 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1752 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1753 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1754 + return v;
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 } // imap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1759 } // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1760 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1761 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
1762 index dd680c9..d11ae3b 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1763 --- a/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1764 +++ b/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1765 @@ -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
1766 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1767
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 +std::vector <int> maildirFolder::getMessageNumbersStartingOnUID(const message::uid& /* uid */)
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 + throw exceptions::operation_not_supported();
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1775 } // maildir
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1776 } // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1777 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1778 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
1779 index d5fc687..e085609 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1780 --- a/src/net/pop3/POP3Folder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1781 +++ b/src/net/pop3/POP3Folder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1782 @@ -843,6 +843,12 @@ void POP3Folder::expunge()
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1786 +std::vector <int> POP3Folder::getMessageNumbersStartingOnUID(const message::uid& /* uid */)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1787 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1788 + throw exceptions::operation_not_supported();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1789 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1790 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1791 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1792 } // pop3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1793 } // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1794 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1795 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
1796 index b20e9c9..df9cbaf 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1797 --- a/vmime/net/folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1798 +++ b/vmime/net/folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1799 @@ -383,6 +383,13 @@ public:
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 virtual int getFetchCapabilities() const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1802
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1803 + /** 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
1804 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1805 + * @param uid the uid of the first message
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1806 + * @throw net_exception if an error occurs
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1807 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1808 + 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
1809 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1810 // Event listeners
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1811 void addMessageChangedListener(events::messageChangedListener* l);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1812 void removeMessageChangedListener(events::messageChangedListener* l);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1813 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
1814 index dec3878..cc52596 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1815 --- a/vmime/net/imap/IMAPFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1816 +++ b/vmime/net/imap/IMAPFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1817 @@ -120,6 +120,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1818
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1819 int getFetchCapabilities() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1820
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1821 + std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid);
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 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1824
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1825 void registerMessage(IMAPMessage* msg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1826 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
1827 index 7474b1a..68b5b89 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1828 --- a/vmime/net/maildir/maildirFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1829 +++ b/vmime/net/maildir/maildirFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1830 @@ -121,6 +121,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1831
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1832 int getFetchCapabilities() const;
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 + std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1835 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1836 private:
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 void scanFolder();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1839 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
1840 index abaa8eb..c482908 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1841 --- a/vmime/net/pop3/POP3Folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1842 +++ b/vmime/net/pop3/POP3Folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1843 @@ -119,6 +119,8 @@ public:
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 int getFetchCapabilities() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1846
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1847 + std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1848 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1849 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1850
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1851 void registerMessage(POP3Message* msg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1852 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1853 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1854
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 From 3f1a565b8b532f0d11a13d3f6d763b00c8ce625b Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1857 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1858 Date: Thu, 5 Apr 2012 11:55:07 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1859 Subject: [PATCH 29/47] Added .gitignore.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1860
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1861
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1862 diff --git a/.gitignore b/.gitignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1863 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1864 index 0000000..44e03a8
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1865 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1866 +++ b/.gitignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1867 @@ -0,0 +1,11 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1868 +*.o
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1869 +*.swp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1870 +build/
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1871 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1872 +/libvmime.a
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1873 +/vmime.pc
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1874 +/vmime/config.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1875 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1876 +# SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1877 +.sconsign.dblite
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1878 +/options.cache
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1879 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1880 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1881
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1882
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1883 From 5937bcda0fac9cb80d0cecbaa663ecdfe2839c09 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1884 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1885 Date: Thu, 5 Apr 2012 12:08:01 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1886 Subject: [PATCH 30/47] Added check before dereferencing.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1887
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1888
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1889 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
1890 index c448632..df63685 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1891 --- a/vmime/utility/smartPtr.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1892 +++ b/vmime/utility/smartPtr.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1893 @@ -338,7 +338,9 @@ protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1894 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1895 if (m_ptr)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1896 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1897 - m_ptr->getRefManager()->releaseStrong();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1898 + if (m_ptr->getRefManager())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1899 + m_ptr->getRefManager()->releaseStrong();
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 m_ptr = 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 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1904 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1905 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1906
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 From b0d74ce63ea9563ef4b218bce2497bd668dfad29 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1909 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1910 Date: Thu, 5 Apr 2012 12:34:51 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1911 Subject: [PATCH 31/47] Updated README.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1912
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1913
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1914 diff --git a/README b/README
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1915 index 6921cea..7db9175 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1916 --- a/README
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1917 +++ b/README
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1918 @@ -1,2 +1,30 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1919
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1920 -TODO
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1921 +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
1922 +and Internet messaging services like IMAP, POP or SMTP.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1923 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1924 +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
1925 +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
1926 +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
1927 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1928 +Key Features
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1929 +------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1930 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1931 +* 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
1932 +* fully RFC-compliant implementation
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1933 +* object-oriented and modular design
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1934 +* very easy-to-use (intuitive design)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1935 +* well documented code
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1936 +* very high reliability
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1937 +* maximum portability
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1938 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1939 +Features Overview
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1940 +-----------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1941 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1942 +* RFC-2822 and multipart messages
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1943 +* aggregate documents and embedded objects
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1944 +* 8-bit MIME and encoded word extensions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1945 +* full support for attachments
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1946 +* POP3, IMAP, SMTP, maildir and sendmail
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1947 +* 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
1948 +* SASL authentication (using GNU SASL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1949 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1950 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1951 1.7.10.4
2573
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1954 From 350fada21a4f11c2f633a3cde1f2195efefe7e32 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1955 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1956 Date: Thu, 5 Apr 2012 22:10:54 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1957 Subject: [PATCH 32/47] Added test: Ensure '7bit' encoding is used when body
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1958 is 7-bit only.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1959
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 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
1962 index 075b8f9..e1d47a3 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1963 --- a/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1964 +++ b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1965 @@ -37,6 +37,7 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1966 VMIME_TEST(testPrologEpilog)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1967 VMIME_TEST(testPrologEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1968 VMIME_TEST(testSuccessiveBoundaries)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1969 + VMIME_TEST(testGenerate7bit)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1970 VMIME_TEST_LIST_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1971
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1972
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1973 @@ -200,5 +201,18 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1974 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
1975 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1976
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1977 + /** 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
1978 + void testGenerate7bit()
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 + vmime::ref <vmime::plainTextPart> p1 = vmime::create <vmime::plainTextPart>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1981 + 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
1982 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1983 + vmime::ref <vmime::message> msg = vmime::create <vmime::message>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1984 + p1->generateIn(msg, msg);
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 + 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
1987 + VASSERT_EQ("1", "7bit", header1->ContentTransferEncoding()->getValue()->generate());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1988 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1989 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1990 VMIME_TEST_SUITE_END
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 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
1993 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1994
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 From 6c877ea41a2e408df61ac6f988c3bae7e0821141 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1997 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1998 Date: Thu, 5 Apr 2012 22:29:32 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
1999 Subject: [PATCH 33/47] Added tests for Quoted-Printable encoding.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
2000
2573
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 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
2003 index f2d42b6..b2d6bc8 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2004 --- a/tests/utility/encoderTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2005 +++ b/tests/utility/encoderTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2006 @@ -33,6 +33,8 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2007 VMIME_TEST_LIST_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2008 VMIME_TEST(testBase64)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2009 VMIME_TEST(testQuotedPrintable)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2010 + VMIME_TEST(testQuotedPrintable_SoftLineBreaks)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2011 + VMIME_TEST(testQuotedPrintable_CRLF)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2012 VMIME_TEST(testQuotedPrintable_RFC2047)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2013 VMIME_TEST_LIST_END
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 @@ -288,6 +290,35 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2016 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2017 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2018
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2019 + /** Tests Soft Line Breaks (RFC-2047/6.7(5). */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2020 + void testQuotedPrintable_SoftLineBreaks()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2021 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2022 + VASSERT_EQ("1", "Now's the time=\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2023 + " for all folk =\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2024 + "to come to the=\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2025 + " aid of their =\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2026 + "country.",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2027 + 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
2028 + "to come to the aid of their country.", 15));
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2031 + /** 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
2032 + * 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
2033 + void testQuotedPrintable_CRLF()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2034 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2035 + vmime::propertySet encProps;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2036 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2037 + // in "text" mode
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2038 + encProps["text"] = true;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2039 + VASSERT_EQ("text", "line1\r\nline2",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2040 + encode("quoted-printable", "line1\r\nline2", 80, encProps));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2041 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2042 + // in "binary" mode
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2043 + encProps["text"] = false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2044 + VASSERT_EQ("binary", "line1=0D=0Aline2",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2045 + encode("quoted-printable", "line1\r\nline2", 80, encProps));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2046 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2047 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2048 void testQuotedPrintable_RFC2047()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2049 {
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 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
2052 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2053
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2054
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2055 From e88f062ab58654aee3cf45f94e8a5dd6c1256279 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2056 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2057 Date: Thu, 5 Apr 2012 23:15:04 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
2058 Subject: [PATCH 34/47] Fixed wrong encoding of line breaks in QP-encoded text
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2059 (issue #7).
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2062 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
2063 index 0919d44..b4e79db 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2064 --- a/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2065 +++ b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2066 @@ -34,19 +34,28 @@ namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2067
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2068
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2069 encoding::encoding()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2070 - : m_name(encodingTypes::SEVEN_BIT)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2071 + : m_name(encodingTypes::SEVEN_BIT),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2072 + m_usage(USAGE_UNKNOWN)
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 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2075
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2076
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2077 encoding::encoding(const string& name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2078 - : m_name(utility::stringUtils::toLower(name))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2079 + : m_name(utility::stringUtils::toLower(name)),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2080 + m_usage(USAGE_UNKNOWN)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2081 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2082 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2083 +
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 +encoding::encoding(const string& name, const EncodingUsage usage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2086 + : m_name(utility::stringUtils::toLower(name)),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2087 + m_usage(usage)
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2091
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2092 encoding::encoding(const encoding& enc)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2093 - : headerFieldValue(), m_name(enc.m_name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2094 + : 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
2095 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2096 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2097
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2098 @@ -54,6 +63,8 @@ encoding::encoding(const encoding& enc)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2099 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
2100 const string::size_type end, string::size_type* newPosition)
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 + m_usage = USAGE_UNKNOWN;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2103 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2104 m_name = utility::stringUtils::toLower(utility::stringUtils::trim
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2105 (utility::stringUtils::unquote(utility::stringUtils::trim
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2106 (string(buffer.begin() + position, buffer.begin() + end)))));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2107 @@ -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
2108
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2109 ref <utility::encoder::encoder> encoding::getEncoder() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2110 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2111 - return (utility::encoder::encoderFactory::getInstance()->create(generate()));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2112 + ref <utility::encoder::encoder> encoder =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2113 + utility::encoder::encoderFactory::getInstance()->create(generate());
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 + // 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
2116 + 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
2117 + encoder->getProperties()["text"] = true;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2118 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2119 + return encoder;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2120 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2121
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2122
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2123 @@ -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
2124 encoding& encoding::operator=(const string& name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2125 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2126 m_name = utility::stringUtils::toLower(name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2127 + m_usage = USAGE_UNKNOWN;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2128 return (*this);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2129 }
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 @@ -167,6 +186,8 @@ const encoding encoding::decideImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2132 const encoding encoding::decide
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2133 (ref <const contentHandler> data, const EncodingUsage usage)
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 + encoding enc;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2136 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2137 if (usage == USAGE_TEXT && data->isBuffered() &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2138 data->getLength() > 0 && data->getLength() < 32768)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2139 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2140 @@ -177,12 +198,16 @@ const encoding encoding::decide
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2141 data->extract(os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2142 os.flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2143
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2144 - return decideImpl(buffer.begin(), buffer.end());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2145 + enc = decideImpl(buffer.begin(), buffer.end());
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 else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2148 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2149 - return encoding(encodingTypes::BASE64);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2150 + enc = encoding(encodingTypes::BASE64);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2151 }
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 + enc.setUsage(usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2154 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2155 + return enc;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2156 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2159 @@ -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
2160 encoding recEncoding;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2161
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2162 if (chset.getRecommendedEncoding(recEncoding))
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 + recEncoding.setUsage(usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2165 return recEncoding;
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2169 return decide(data, usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2170 @@ -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
2171 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2172
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2173
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2174 +encoding::EncodingUsage encoding::getUsage() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2175 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2176 + return m_usage;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2179 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2180 +void encoding::setUsage(const EncodingUsage usage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2181 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2182 + m_usage = usage;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2185 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2186 const std::vector <ref <const component> > encoding::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2187 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2188 return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2189 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
2190 index aa95022..ab8db2e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2191 --- a/src/utility/encoder/qpEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2192 +++ b/src/utility/encoder/qpEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2193 @@ -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
2194 case 13: // CR
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2195 case 10: // LF
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 - // 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
2198 - // care for a new line...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2199 - if (text)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2200 + // RFC-2045/6.7(4)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2201 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2202 + // Text data
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2203 + if (text && !rfc2047)
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 outBuffer[outBufferPos++] = c;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2206 ++curCol;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2207 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2208 - // Binary mode (where CR and LF bytes are important!)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2209 + // Binary data
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2210 else
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 QP_ENCODE_HEX(c);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2213 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
2214 index e1d47a3..9d51262 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2215 --- a/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2216 +++ b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2217 @@ -38,6 +38,7 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2218 VMIME_TEST(testPrologEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2219 VMIME_TEST(testSuccessiveBoundaries)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2220 VMIME_TEST(testGenerate7bit)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2221 + VMIME_TEST(testTextUsageForQPEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2222 VMIME_TEST_LIST_END
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2225 @@ -214,5 +215,28 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2226 VASSERT_EQ("1", "7bit", header1->ContentTransferEncoding()->getValue()->generate());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2227 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2228
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2229 + void testTextUsageForQPEncoding()
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 + vmime::ref <vmime::plainTextPart> part = vmime::create <vmime::plainTextPart>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2232 + 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
2233 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2234 + vmime::ref <vmime::message> msg = vmime::create <vmime::message>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2235 + part->generateIn(msg, msg);
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 + 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
2238 + 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
2239 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2240 + std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2241 + vmime::utility::outputStreamAdapter os(oss);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2242 + body->generate(os, 80);
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 + VASSERT_EQ("1", "quoted-printable", header->ContentTransferEncoding()->getValue()->generate());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2245 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2246 + // This should *NOT* be:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2247 + // Part1-line1=0D=0APart1-line2=0D=0A=89
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2248 + 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
2249 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2250 +
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 VMIME_TEST_SUITE_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2253
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2254 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
2255 index ba78081..42f5246 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2256 --- a/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2257 +++ b/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2258 @@ -47,6 +47,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2259
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2260 enum EncodingUsage
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 + USAGE_UNKNOWN,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2263 USAGE_TEXT, /**< Use for body text. */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2264 USAGE_BINARY_DATA /**< Use for attachment, image... */
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 @@ -54,6 +55,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2267
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2268 encoding();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2269 explicit encoding(const string& name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2270 + encoding(const string& name, const EncodingUsage usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2271 encoding(const encoding& enc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2272
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2273 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2274 @@ -72,6 +74,19 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2275 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2276 void setName(const string& name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2277
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2278 + /** 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
2279 + * See the EncodingUsage enum.
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 + EncodingUsage getUsage() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2282 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2283 + /** 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
2284 + * See the EncodingUsage enum.
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 + * @param usage type of contents
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2287 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2288 + void setUsage(const EncodingUsage usage);
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 encoding& operator=(const encoding& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2292 encoding& operator=(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 @@ -113,6 +128,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2295 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2296
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2297 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2298 + EncodingUsage 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 /** 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
2301 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2302 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
2303 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2304
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 From ea77bdba96588345090e3de81d9d6af116edeeb5 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2307 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2308 Date: Fri, 6 Apr 2012 22:26:18 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
2309 Subject: [PATCH 35/47] Fixed memory leak.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
2310
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2311
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2312 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
2313 index dab0338..3cccc1e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2314 --- a/src/net/tls/TLSSocket.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2315 +++ b/src/net/tls/TLSSocket.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2316 @@ -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
2317
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2318 TLSSocket::~TLSSocket()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2319 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2320 + if (m_ex)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2321 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2322 + delete m_ex;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2323 + m_ex = NULL;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2324 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2325 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2326 try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2327 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2328 disconnect();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2329 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
2330 1.7.10.4
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2331
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2332
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2333 From 440d491fd6da134fcb5f19416743e8f2044556bf Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2334 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2335 Date: Sat, 14 Apr 2012 13:46:05 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
2336 Subject: [PATCH 36/47] Split stream.hpp/.cpp into multiple source files.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
2337
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2338
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2339 diff --git a/SConstruct b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2340 index 11e884b..ea5c4eb 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2341 --- a/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2342 +++ b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2343 @@ -144,6 +144,20 @@ libvmime_sources = [
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2344 'utility/smartPtr.cpp', 'utility/smartPtr.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2345 'utility/smartPtrInt.cpp', 'utility/smartPtrInt.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2346 'utility/stream.cpp', 'utility/stream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2347 + 'utility/streamUtils.cpp', 'utility/streamUtils.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2348 + 'utility/filteredStream.cpp', 'utility/filteredStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2349 + 'utility/inputStream.cpp', 'utility/inputStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2350 + 'utility/inputStreamAdapter.cpp', 'utility/inputStreamAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2351 + 'utility/inputStreamByteBufferAdapter.cpp', 'utility/inputStreamByteBufferAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2352 + 'utility/inputStreamPointerAdapter.cpp', 'utility/inputStreamPointerAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2353 + 'utility/inputStreamSocketAdapter.cpp', 'utility/inputStreamSocketAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2354 + 'utility/inputStreamStringAdapter.cpp', 'utility/inputStreamStringAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2355 + 'utility/inputStreamStringProxyAdapter.cpp', 'utility/inputStreamStringProxyAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2356 + 'utility/outputStream.cpp', 'utility/outputStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2357 + 'utility/outputStreamAdapter.cpp', 'utility/outputStreamAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2358 + 'utility/outputStreamByteArrayAdapter.cpp', 'utility/outputStreamByteArrayAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2359 + 'utility/outputStreamSocketAdapter.cpp', 'utility/outputStreamSocketAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2360 + 'utility/outputStreamStringAdapter.cpp', 'utility/outputStreamStringAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2361 'utility/stringProxy.cpp', 'utility/stringProxy.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2362 'utility/stringUtils.cpp', 'utility/stringUtils.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2363 'utility/url.cpp', 'utility/url.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2364 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
2365 index 2135788..cf75bdd 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2366 --- a/src/charsetConverter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2367 +++ b/src/charsetConverter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2368 @@ -23,6 +23,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2369
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2370 #include "vmime/charsetConverter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2371 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2372 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2373 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2374
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 extern "C"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2377 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
2378 index fbf677b..139cf66 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2379 --- a/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2380 +++ b/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2381 @@ -23,6 +23,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2382
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2383 #include "vmime/component.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2384 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2385 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2386
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2387 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2388
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2389 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
2390 index b4e79db..5d99ab6 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2391 --- a/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2392 +++ b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2393 @@ -24,6 +24,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2394 #include "vmime/encoding.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2395 #include "vmime/contentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2396
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2397 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2398 #include "vmime/utility/encoder/encoderFactory.hpp"
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 #include <algorithm>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2401 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
2402 index da7c4b7..cb23cd0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2403 --- a/src/fileAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2404 +++ b/src/fileAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2405 @@ -28,6 +28,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2406 #include "vmime/exception.hpp"
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 #include "vmime/streamContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2409 +#include "vmime/utility/inputStreamPointerAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2410
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2411 #include "vmime/contentDispositionField.hpp"
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 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
2414 index e9bd1a6..443a9d3 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2415 --- a/src/generatedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2416 +++ b/src/generatedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2417 @@ -23,6 +23,8 @@
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 #include "vmime/generatedMessageAttachment.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2420
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2421 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2422 +
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 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2425 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2426 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
2427 index c845b57..98524af 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2428 --- a/src/htmlTextPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2429 +++ b/src/htmlTextPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2430 @@ -31,6 +31,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2431 #include "vmime/emptyContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2432 #include "vmime/stringContentHandler.hpp"
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 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2435 +
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 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2438 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2439 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
2440 index b419b85..1dd7ff3 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2441 --- a/src/mdn/MDNHelper.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2442 +++ b/src/mdn/MDNHelper.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2443 @@ -31,6 +31,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2444 #include "vmime/path.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2445 #include "vmime/dateTime.hpp"
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 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2448 +
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 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2451 namespace mdn {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2452 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
2453 index cff211c..f97a58d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2454 --- a/src/mdn/receivedMDNInfos.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2455 +++ b/src/mdn/receivedMDNInfos.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2456 @@ -23,6 +23,8 @@
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 #include "vmime/mdn/receivedMDNInfos.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2459
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2460 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2461 +
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 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2464 namespace mdn {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2465 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
2466 index 6f4b046..1b4f086 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2467 --- a/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2468 +++ b/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2469 @@ -24,6 +24,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2470 #include "vmime/message.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2471 #include "vmime/options.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2472
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2473 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2474 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2475 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2476
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2477
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2478 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
2479 index 50a2f2b..81bf386 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2480 --- a/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2481 +++ b/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2482 @@ -34,6 +34,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2483 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2484 #include "vmime/utility/smartPtr.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2485
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2486 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2487 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2488 #include <algorithm>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2489 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2490
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2491 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
2492 index bc661ed..702d5f2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2493 --- a/src/net/imap/IMAPMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2494 +++ b/src/net/imap/IMAPMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2495 @@ -31,6 +31,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2496 #include "vmime/net/imap/IMAPPart.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2497 #include "vmime/net/imap/IMAPMessagePartContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2498
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2499 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2500 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2501 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2502 #include <iterator>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2503 #include <typeinfo>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2504 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
2505 index 4e6ba97..85c6ec2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2506 --- a/src/net/imap/IMAPMessagePartContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2507 +++ b/src/net/imap/IMAPMessagePartContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2508 @@ -23,6 +23,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2509
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2510 #include "vmime/net/imap/IMAPMessagePartContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2511
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2512 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2513 +#include "vmime/utility/inputStreamStringProxyAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2514 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2515
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2516 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2517 namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2518 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
2519 index d11ae3b..8c4b275 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2520 --- a/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2521 +++ b/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2522 @@ -35,6 +35,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2523 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2524 #include "vmime/platform.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2525
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2526 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2527 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2528 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2529
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2530 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2531 namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2532 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
2533 index 51cd1ba..4ab75e7 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2534 --- a/src/net/maildir/maildirMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2535 +++ b/src/net/maildir/maildirMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2536 @@ -31,6 +31,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2537 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2538 #include "vmime/platform.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2539
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2540 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2541 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2542
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2543 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2544 namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2545 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
2546 index 50f4f87..69ef004 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2547 --- a/src/net/pop3/POP3Message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2548 +++ b/src/net/pop3/POP3Message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2549 @@ -25,6 +25,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2550 #include "vmime/net/pop3/POP3Folder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2551 #include "vmime/net/pop3/POP3Store.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2552
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2553 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2554 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2555 #include <sstream>
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2558 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
2559 index 9d554c6..793112a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2560 --- a/src/net/pop3/POP3Store.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2561 +++ b/src/net/pop3/POP3Store.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2562 @@ -30,6 +30,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2563 #include "vmime/security/digest/messageDigestFactory.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2564 #include "vmime/utility/filteredStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2565 #include "vmime/utility/stringUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2566 +#include "vmime/utility/inputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2567
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2568 #include "vmime/net/defaultConnectionInfos.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2569
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2570 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
2571 index 53ff0d1..e7762cc 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2572 --- a/src/net/sendmail/sendmailTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2573 +++ b/src/net/sendmail/sendmailTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2574 @@ -32,6 +32,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2575 #include "vmime/utility/childProcess.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2576 #include "vmime/utility/smartPtr.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2577
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2578 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2579 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2580 #include "vmime/net/defaultConnectionInfos.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2581
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2582 #include "vmime/config.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2583 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
2584 index d9fb7b8..bbbea75 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2585 --- a/src/net/smtp/SMTPTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2586 +++ b/src/net/smtp/SMTPTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2587 @@ -30,6 +30,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2588
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2589 #include "vmime/utility/filteredStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2590 #include "vmime/utility/stringUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2591 +#include "vmime/utility/outputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2592 +#include "vmime/utility/streamUtils.hpp"
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 #include "vmime/net/defaultConnectionInfos.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2595
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2596 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
2597 index dd4663d..f8ca7b7 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2598 --- a/src/net/transport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2599 +++ b/src/net/transport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2600 @@ -27,6 +27,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2601 #include "vmime/mailboxList.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2602 #include "vmime/message.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2603
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2604 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2605 +#include "vmime/utility/inputStreamStringAdapter.hpp"
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2608 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2609 namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2610 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
2611 index d757e1b..ccbe1a5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2612 --- a/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2613 +++ b/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2614 @@ -27,6 +27,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2615 #include "vmime/text.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2616 #include "vmime/encoding.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 "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2619 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2620 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2621
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2622 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2623 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2624 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
2625 index bde56aa..cb7d71d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2626 --- a/src/parsedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2627 +++ b/src/parsedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2628 @@ -26,6 +26,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2629 #include "vmime/stringContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2630 #include "vmime/contentDisposition.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2631
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2632 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2633 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2634
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2635 namespace vmime
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 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
2638 index 1cd079c..8df4e5e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2639 --- a/src/security/cert/X509Certificate.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2640 +++ b/src/security/cert/X509Certificate.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2641 @@ -28,6 +28,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2642
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2643 #include "vmime/security/cert/X509Certificate.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2645 +#include "vmime/utility/outputStreamByteArrayAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2646 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2647
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2648 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2649 namespace security {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2650 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
2651 index 51c2bed..4bb33c1 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2652 --- a/src/security/sasl/SASLContext.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2653 +++ b/src/security/sasl/SASLContext.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2654 @@ -33,6 +33,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2655 #include "vmime/utility/encoder/encoderFactory.hpp"
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 #include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2658 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2659 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2660 +#include "vmime/utility/inputStreamByteBufferAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2661
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2662
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2663 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2664 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
2665 index 2ebd073..89a36b4 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2666 --- a/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2667 +++ b/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2668 @@ -23,6 +23,10 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2669
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2670 #include "vmime/streamContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2671
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2672 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2673 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2674 +#include "vmime/utility/streamUtils.hpp"
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2677 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2678 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2679 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
2680 index 4e85a6c..5a1e72c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2681 --- a/src/stringContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2682 +++ b/src/stringContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2683 @@ -23,6 +23,10 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2684
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2685 #include "vmime/stringContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2686
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2687 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2688 +#include "vmime/utility/inputStreamStringProxyAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2689 +#include "vmime/utility/outputStreamAdapter.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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2692 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2693 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2694 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
2695 index 4d0ffb5..e2d226e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2696 --- a/src/utility/encoder/defaultEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2697 +++ b/src/utility/encoder/defaultEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2698 @@ -23,6 +23,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2699
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2700 #include "vmime/utility/encoder/defaultEncoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2701
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2702 +#include "vmime/utility/streamUtils.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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2705 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2706 namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2707 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
2708 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2709 index 0000000..dd0adf4
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2710 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2711 +++ b/src/utility/inputStream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2712 @@ -0,0 +1,33 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2713 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2714 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2715 +// 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
2716 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2717 +// 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
2718 +// 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
2719 +// 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
2720 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2721 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2722 +// 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
2723 +// 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
2724 +// 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
2725 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2726 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2727 +// 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
2728 +// 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
2729 +// 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
2730 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2731 +// 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
2732 +// 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
2733 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2734 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2735 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2736 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2737 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2738 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2739 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2740 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2741 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2742 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2743 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2744 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2745 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2746 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
2747 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2748 index 0000000..b44b084
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2749 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2750 +++ b/src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2751 @@ -0,0 +1,70 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2752 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2753 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2754 +// 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
2755 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2756 +// 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
2757 +// 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
2758 +// 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
2759 +// the License, or (at your option) any later version.
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 +// 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
2762 +// 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
2763 +// 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
2764 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2765 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2766 +// 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
2767 +// 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
2768 +// 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
2769 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2770 +// 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
2771 +// 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
2772 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2773 +//
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 +#include "vmime/utility/inputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2776 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2777 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2778 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2779 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2780 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2781 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2782 +inputStreamAdapter::inputStreamAdapter(std::istream& is)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2783 + : m_stream(is)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2784 +{
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 +
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 +bool inputStreamAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2789 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2790 + return (m_stream.eof());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2791 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2792 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2793 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2794 +void inputStreamAdapter::reset()
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 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2797 + m_stream.seekg(0, std::ios::beg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2798 + m_stream.clear();
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2801 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2802 +stream::size_type inputStreamAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2803 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2804 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2805 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2806 + m_stream.read(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2807 + return (m_stream.gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2808 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2809 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2810 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2811 +stream::size_type inputStreamAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2812 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2813 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2814 + m_stream.ignore(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2815 + return (m_stream.gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2816 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2817 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2818 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2819 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2820 +} // vmime
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 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
2823 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2824 index 0000000..92e779f
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2825 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2826 +++ b/src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2827 @@ -0,0 +1,90 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2828 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2829 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2830 +// 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
2831 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2832 +// 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
2833 +// 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
2834 +// 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
2835 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2836 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2837 +// 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
2838 +// 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
2839 +// 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
2840 +// General Public License for more details.
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 +// 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
2843 +// 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
2844 +// 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
2845 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2846 +// 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
2847 +// 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
2848 +// the GNU General Public License cover the whole combination.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2851 +#include "vmime/utility/inputStreamByteBufferAdapter.hpp"
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2854 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2855 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2856 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2857 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2858 +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
2859 + : m_buffer(buffer), m_length(length), m_pos(0)
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 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2864 +bool inputStreamByteBufferAdapter::eof() const
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 + return m_pos >= m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2867 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2868 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2869 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2870 +void inputStreamByteBufferAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2871 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2872 + m_pos = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2873 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2876 +stream::size_type inputStreamByteBufferAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2877 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2878 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2879 + const size_type remaining = m_length - m_pos;
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 + if (remaining < count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2882 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2883 + 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
2884 + m_pos += remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2885 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2886 + return remaining;
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 + else
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 + 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
2891 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2892 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2893 + return count;
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 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2898 +stream::size_type inputStreamByteBufferAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2899 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2900 + const size_type remaining = m_length - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2901 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2902 + if (remaining < count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2903 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2904 + m_pos += remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2905 + return remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2906 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2907 + else
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 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2910 + return count;
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 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2913 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2914 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2915 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2916 +} // vmime
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 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
2919 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2920 index 0000000..4d03e30
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2921 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2922 +++ b/src/utility/inputStreamPointerAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2923 @@ -0,0 +1,46 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2924 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2925 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2926 +// 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
2927 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2928 +// 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
2929 +// 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
2930 +// 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
2931 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2932 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2933 +// 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
2934 +// 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
2935 +// 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
2936 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2937 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2938 +// 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
2939 +// 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
2940 +// 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
2941 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2942 +// 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
2943 +// 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
2944 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2945 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2946 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2947 +#include "vmime/utility/inputStreamPointerAdapter.hpp"
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2950 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2951 +namespace utility {
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 +inputStreamPointerAdapter::inputStreamPointerAdapter(std::istream* is, const bool own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2955 + : inputStreamAdapter(*is), m_stream(is), m_own(own)
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 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2958 +
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 +inputStreamPointerAdapter::~inputStreamPointerAdapter()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2961 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2962 + if (m_own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2963 + delete (m_stream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2964 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2965 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2966 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2967 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2968 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2969 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2970 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
2971 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2972 index 0000000..b93cc3c
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2973 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2974 +++ b/src/utility/inputStreamSocketAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2975 @@ -0,0 +1,82 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2976 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2977 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2978 +// 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
2979 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2980 +// 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
2981 +// 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
2982 +// 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
2983 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2984 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2985 +// 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
2986 +// 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
2987 +// 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
2988 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2989 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2990 +// 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
2991 +// 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
2992 +// 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
2993 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2994 +// 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
2995 +// 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
2996 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2997 +//
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 +#include "vmime/utility/inputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3000 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3001 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3002 +#if VMIME_HAVE_MESSAGING_FEATURES
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 +#include "vmime/net/socket.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3006 +
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3009 +namespace utility {
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 +inputStreamSocketAdapter::inputStreamSocketAdapter(net::socket& sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3013 + : m_socket(sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3014 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3015 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3016 +
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 +bool inputStreamSocketAdapter::eof() const
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 + // Can't know...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3021 + return false;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3024 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3025 +void inputStreamSocketAdapter::reset()
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 + // Not supported
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 +
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 +stream::size_type inputStreamSocketAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3032 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3033 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3034 + return m_socket.receiveRaw(data, count);
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3038 +stream::size_type inputStreamSocketAdapter::skip
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3039 + (const size_type /* count */)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3040 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3041 + // Not supported
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3042 + return 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3043 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3044 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3045 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3046 +stream::size_type inputStreamSocketAdapter::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3047 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3048 + return m_socket.getBlockSize();
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3051 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3052 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3053 +} // vmime
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3056 +#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3057 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3058 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
3059 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3060 index 0000000..31c9fda
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3061 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3062 +++ b/src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3063 @@ -0,0 +1,94 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3064 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3065 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3066 +// 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
3067 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3068 +// 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
3069 +// 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
3070 +// 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
3071 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3072 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3073 +// 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
3074 +// 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
3075 +// 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
3076 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3077 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3078 +// 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
3079 +// 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
3080 +// 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
3081 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3082 +// 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
3083 +// 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
3084 +// the GNU General Public License cover the whole combination.
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 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3088 +
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3091 +namespace utility {
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 +inputStreamStringAdapter::inputStreamStringAdapter(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3095 + : 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
3096 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3097 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3100 +inputStreamStringAdapter::inputStreamStringAdapter(const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3101 + 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
3102 + : 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
3103 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3104 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3107 +bool inputStreamStringAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3108 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3109 + return (m_pos >= m_end);
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 +
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 +void inputStreamStringAdapter::reset()
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 + m_pos = m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3116 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3119 +stream::size_type inputStreamStringAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3120 + (value_type* const data, const size_type 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 + if (m_pos + count >= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3123 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3124 + const size_type remaining = m_end - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3125 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3126 + 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
3127 + m_pos = m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3128 + return (remaining);
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 + else
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 + 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
3133 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3134 + return (count);
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 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3137 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3138 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3139 +stream::size_type inputStreamStringAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3140 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3141 + if (m_pos + count >= m_end)
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 + const size_type remaining = m_end - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3144 + m_pos = m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3145 + return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3146 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3147 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3148 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3149 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3150 + return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3151 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3152 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3153 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3154 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3155 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3156 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3157 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3158 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
3159 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3160 index 0000000..5e4b60b
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3161 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3162 +++ b/src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3163 @@ -0,0 +1,89 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3166 +// 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
3167 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3168 +// 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
3169 +// 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
3170 +// 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
3171 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3172 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3173 +// 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
3174 +// 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
3175 +// 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
3176 +// General Public License for more details.
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 +// 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
3179 +// 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
3180 +// 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
3181 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3182 +// 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
3183 +// 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
3184 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3185 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3186 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3187 +#include "vmime/utility/inputStreamStringProxyAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3188 +#include "vmime/utility/stringProxy.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3189 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3190 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3191 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3192 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3193 +
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 +inputStreamStringProxyAdapter::inputStreamStringProxyAdapter(const stringProxy& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3196 + : m_buffer(buffer), m_pos(0)
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 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3199 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3200 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3201 +bool inputStreamStringProxyAdapter::eof() const
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 + return (m_pos >= m_buffer.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3204 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3205 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3206 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3207 +void inputStreamStringProxyAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3208 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3209 + m_pos = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3210 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3213 +stream::size_type inputStreamStringProxyAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3214 + (value_type* const data, const size_type count)
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 + const size_type remaining = m_buffer.length() - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3217 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3218 + if (count > remaining)
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 + 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
3221 + m_pos = m_buffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3222 + return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3223 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3224 + else
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 + 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
3227 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3228 + return (count);
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 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3231 +
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 +stream::size_type inputStreamStringProxyAdapter::skip(const size_type count)
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 + const size_type remaining = m_buffer.length() - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3236 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3237 + if (count > remaining)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3238 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3239 + m_pos = m_buffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3240 + return (remaining);
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 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3243 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3244 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3245 + return (count);
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3250 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3251 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3252 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3253 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
3254 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3255 index 0000000..8a65db5
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3256 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3257 +++ b/src/utility/outputStream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3258 @@ -0,0 +1,33 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3259 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3260 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3261 +// 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
3262 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3263 +// 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
3264 +// 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
3265 +// 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
3266 +// the License, or (at your option) any later version.
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 +// 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
3269 +// 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
3270 +// 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
3271 +// General Public License for more details.
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 +// 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
3274 +// 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
3275 +// 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
3276 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3277 +// 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
3278 +// 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
3279 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3280 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3281 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3282 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3283 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3284 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3285 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3286 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3287 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3288 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3289 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3290 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3291 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3292 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
3293 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3294 index 0000000..2da94f1
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3295 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3296 +++ b/src/utility/outputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3297 @@ -0,0 +1,54 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3298 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3299 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3300 +// 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
3301 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3302 +// 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
3303 +// 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
3304 +// 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
3305 +// the License, or (at your option) any later version.
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 +// 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
3308 +// 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
3309 +// 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
3310 +// General Public License for more details.
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 +// 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
3313 +// 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
3314 +// 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
3315 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3316 +// 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
3317 +// 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
3318 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3319 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3320 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3321 +#include "vmime/utility/outputStreamAdapter.hpp"
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3325 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3328 +outputStreamAdapter::outputStreamAdapter(std::ostream& os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3329 + : m_stream(os)
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 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3334 +void outputStreamAdapter::write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3335 + (const value_type* const data, const size_type count)
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 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3338 + m_stream.write(data, 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 +
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 +void outputStreamAdapter::flush()
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 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3345 + m_stream.flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3346 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3349 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3350 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3351 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3352 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
3353 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3354 index 0000000..97b27d2
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3355 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3356 +++ b/src/utility/outputStreamByteArrayAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3357 @@ -0,0 +1,51 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3360 +// 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
3361 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3362 +// 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
3363 +// 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
3364 +// 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
3365 +// the License, or (at your option) any later version.
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 +// 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
3368 +// 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
3369 +// 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
3370 +// General Public License for more details.
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 +// 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
3373 +// 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
3374 +// 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
3375 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3376 +// 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
3377 +// 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
3378 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3379 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3380 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3381 +#include "vmime/utility/outputStreamByteArrayAdapter.hpp"
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3384 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3385 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3386 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3387 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3388 +outputStreamByteArrayAdapter::outputStreamByteArrayAdapter(byteArray& array)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3389 + : m_array(array)
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 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3392 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3393 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3394 +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
3395 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3396 + m_array.insert(m_array.end(), data, data + count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3397 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3398 +
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 +void outputStreamByteArrayAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3401 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3402 + // Do nothing
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3406 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3407 +} // vmime
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 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
3410 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3411 index 0000000..d933e73
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3412 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3413 +++ b/src/utility/outputStreamSocketAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3414 @@ -0,0 +1,68 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3417 +// 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
3418 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3419 +// 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
3420 +// 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
3421 +// 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
3422 +// the License, or (at your option) any later version.
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 +// 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
3425 +// 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
3426 +// 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
3427 +// General Public License for more details.
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 +// 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
3430 +// 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
3431 +// 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
3432 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3433 +// 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
3434 +// 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
3435 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3436 +//
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 +#include "vmime/utility/outputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3439 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3440 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3441 +#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3442 +
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 +#include "vmime/net/socket.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3445 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3446 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3447 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3448 +namespace utility {
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 +outputStreamSocketAdapter::outputStreamSocketAdapter(net::socket& sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3452 + : m_socket(sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3453 +{
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 +
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 +void outputStreamSocketAdapter::write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3458 + (const value_type* const data, const size_type count)
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 + m_socket.sendRaw(data, count);
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3463 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3464 +void outputStreamSocketAdapter::flush()
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 + // Do nothing
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3469 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3470 +stream::size_type outputStreamSocketAdapter::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3471 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3472 + return m_socket.getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3473 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3474 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3475 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3476 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3477 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3478 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3479 +
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 +#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3482 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3483 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
3484 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3485 index 0000000..62b2a72
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3486 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3487 +++ b/src/utility/outputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3488 @@ -0,0 +1,51 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3489 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3490 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3491 +// 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
3492 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3493 +// 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
3494 +// 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
3495 +// 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
3496 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3497 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3498 +// 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
3499 +// 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
3500 +// 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
3501 +// General Public License for more details.
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 +// 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
3504 +// 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
3505 +// 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
3506 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3507 +// 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
3508 +// 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
3509 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3510 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3511 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3512 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3513 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3514 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3515 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3516 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3517 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3518 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3519 +outputStreamStringAdapter::outputStreamStringAdapter(string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3520 + : m_buffer(buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3521 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3522 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3523 +
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 +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
3526 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3527 + m_buffer.append(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3528 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3531 +void outputStreamStringAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3532 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3533 + // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3534 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3535 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3536 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3537 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3538 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3539 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3540 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
3541 index ec30b7d..1c940c2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3542 --- a/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3543 +++ b/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3544 @@ -22,503 +22,18 @@
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3547 #include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3548 -#include "vmime/utility/stringProxy.hpp"
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 -#include <algorithm> // for std::copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3551 -#include <iterator> // for std::back_inserter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3552 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3553 -#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3554 - #include "vmime/net/socket.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3555 -#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3556
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 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3559 namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3560
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 -// stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3563 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3564 stream::size_type stream::getBlockSize()
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 return 32768; // 32 KB
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3567 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3568
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 -// Helpers
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3571 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3572 -outputStream& operator<<(outputStream& os, const stream::value_type c)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3573 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3574 - os.write(&c, 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3575 - return (os);
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3578 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3579 -outputStream& operator<<(outputStream& os, const string& str)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3580 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3581 - os.write(str.data(), str.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3582 - return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3583 -}
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3586 -stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3587 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3588 - return bufferedStreamCopy(is, os, 0, NULL);
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3591 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3592 -stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3593 - const stream::size_type length, progressListener* progress)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3594 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3595 - const stream::size_type blockSize =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3596 - std::min(is.getBlockSize(), os.getBlockSize());
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 - std::vector <stream::value_type> vbuffer(blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3599 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3600 - stream::value_type* buffer = &vbuffer.front();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3601 - stream::size_type total = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3602 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3603 - if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3604 - progress->start(length);
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 - while (!is.eof())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3607 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3608 - const stream::size_type read = is.read(buffer, blockSize);
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 - if (read != 0)
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 - os.write(buffer, read);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3613 - total += read;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3614 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3615 - if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3616 - progress->progress(total, std::max(total, length));
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 - }
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 - if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3621 - progress->stop(total);
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 - return (total);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3624 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3625 -
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3628 -// outputStreamAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3629 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3630 -outputStreamAdapter::outputStreamAdapter(std::ostream& os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3631 - : m_stream(os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3632 -{
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3635 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3636 -void outputStreamAdapter::write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3637 - (const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3638 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3639 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3640 - m_stream.write(data, count);
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3643 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3644 -void outputStreamAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3645 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3646 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3647 - m_stream.flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3648 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3649 -
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3652 -// outputStreamStringAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3653 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3654 -outputStreamStringAdapter::outputStreamStringAdapter(string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3655 - : m_buffer(buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3656 -{
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3660 -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
3661 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3662 - m_buffer.append(data, count);
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3666 -void outputStreamStringAdapter::flush()
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 - // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3669 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3670 -
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 -// outputStreamByteArrayAdapter
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 -outputStreamByteArrayAdapter::outputStreamByteArrayAdapter(byteArray& array)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3676 - : m_array(array)
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 -}
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 -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
3682 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3683 - m_array.insert(m_array.end(), data, data + count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3684 -}
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 -void outputStreamByteArrayAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3688 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3689 - // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3690 -}
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 -// inputStreamAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3695 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3696 -inputStreamAdapter::inputStreamAdapter(std::istream& is)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3697 - : m_stream(is)
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 -}
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3702 -bool inputStreamAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3703 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3704 - return (m_stream.eof());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3705 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3706 -
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 -void inputStreamAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3709 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3710 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3711 - m_stream.seekg(0, std::ios::beg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3712 - m_stream.clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3713 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3714 -
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 -stream::size_type inputStreamAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3717 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3718 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3719 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3720 - m_stream.read(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3721 - return (m_stream.gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3722 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3723 -
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 -stream::size_type inputStreamAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3726 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3727 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3728 - m_stream.ignore(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3729 - return (m_stream.gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3730 -}
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3734 -// inputStreamStringAdapter
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 -inputStreamStringAdapter::inputStreamStringAdapter(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3737 - : 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
3738 -{
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 -inputStreamStringAdapter::inputStreamStringAdapter(const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3743 - 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
3744 - : 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
3745 -{
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 -bool inputStreamStringAdapter::eof() const
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 - return (m_pos >= m_end);
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 -void inputStreamStringAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3756 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3757 - m_pos = m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3758 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3759 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3760 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3761 -stream::size_type inputStreamStringAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3762 - (value_type* const data, const size_type count)
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 - if (m_pos + count >= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3765 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3766 - const size_type remaining = m_end - m_pos;
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 - 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
3769 - m_pos = m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3770 - return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3771 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3772 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3773 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3774 - 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
3775 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3776 - return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3777 - }
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3781 -stream::size_type inputStreamStringAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3782 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3783 - if (m_pos + count >= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3784 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3785 - const size_type remaining = m_end - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3786 - m_pos = m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3787 - return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3788 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3789 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3790 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3791 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3792 - return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3793 - }
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3798 -// inputStreamStringProxyAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3799 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3800 -inputStreamStringProxyAdapter::inputStreamStringProxyAdapter(const stringProxy& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3801 - : m_buffer(buffer), m_pos(0)
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 -
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 -bool inputStreamStringProxyAdapter::eof() const
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 - return (m_pos >= m_buffer.length());
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3811 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3812 -void inputStreamStringProxyAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3813 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3814 - m_pos = 0;
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 -
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::size_type inputStreamStringProxyAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3819 - (value_type* const data, const size_type count)
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 - const size_type remaining = m_buffer.length() - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3822 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3823 - if (count > remaining)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3824 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3825 - 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
3826 - m_pos = m_buffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3827 - return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3828 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3829 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3830 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3831 - 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
3832 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3833 - return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3834 - }
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 -stream::size_type inputStreamStringProxyAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3839 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3840 - const size_type remaining = m_buffer.length() - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3841 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3842 - if (count > remaining)
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 - m_pos = m_buffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3845 - return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3846 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3847 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3848 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3849 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3850 - return (count);
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3855 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3856 -// inputStreamPointerAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3857 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3858 -inputStreamPointerAdapter::inputStreamPointerAdapter(std::istream* is, const bool own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3859 - : m_stream(is), m_own(own)
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 -
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 -inputStreamPointerAdapter::inputStreamPointerAdapter(const inputStreamPointerAdapter&)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3865 - : inputStream(), m_stream(NULL), m_own(false)
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 - // Not copiable
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3871 -inputStreamPointerAdapter::~inputStreamPointerAdapter()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3872 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3873 - if (m_own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3874 - delete (m_stream);
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 -bool inputStreamPointerAdapter::eof() const
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 - return (m_stream->eof());
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 inputStreamPointerAdapter::reset()
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 - m_stream->exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3887 - m_stream->seekg(0, std::ios::beg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3888 - m_stream->clear();
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3892 -stream::size_type inputStreamPointerAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3893 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3894 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3895 - m_stream->exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3896 - m_stream->read(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3897 - return (m_stream->gcount());
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 -
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 -stream::size_type inputStreamPointerAdapter::skip(const size_type 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 - m_stream->exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3904 - m_stream->ignore(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3905 - return (m_stream->gcount());
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 -
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 -// inputStreamByteBufferAdapter
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 -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
3913 - : m_buffer(buffer), m_length(length), m_pos(0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3914 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3915 -}
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 -bool inputStreamByteBufferAdapter::eof() const
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 - return m_pos >= m_length;
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 -
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 -void inputStreamByteBufferAdapter::reset()
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 - m_pos = 0;
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3929 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3930 -stream::size_type inputStreamByteBufferAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3931 - (value_type* const data, const size_type count)
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 - const size_type remaining = m_length - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3934 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3935 - if (remaining < 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 - 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
3938 - m_pos += remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3939 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3940 - return remaining;
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 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3943 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3944 - 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
3945 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3946 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3947 - return count;
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 -stream::size_type inputStreamByteBufferAdapter::skip(const size_type count)
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 - const size_type remaining = m_length - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3955 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3956 - if (remaining < count)
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 - m_pos += remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3959 - return remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3960 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3961 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3962 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3963 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3964 - return count;
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 -
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3970 -#ifdef VMIME_HAVE_MESSAGING_FEATURES
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 -// outputStreamSocketAdapter
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 -outputStreamSocketAdapter::outputStreamSocketAdapter(net::socket& sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3976 - : m_socket(sok)
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3980 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3981 -void outputStreamSocketAdapter::write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3982 - (const value_type* const data, const size_type count)
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 - m_socket.sendRaw(data, count);
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3987 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3988 -void outputStreamSocketAdapter::flush()
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 - // Do nothing
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3993 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3994 -stream::size_type outputStreamSocketAdapter::getBlockSize()
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 - return m_socket.getBlockSize();
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 -
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 -// inputStreamSocketAdapter
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 -inputStreamSocketAdapter::inputStreamSocketAdapter(net::socket& sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4004 - : m_socket(sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4005 -{
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 -
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 -bool inputStreamSocketAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4010 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4011 - // Can't know...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4012 - return false;
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 -void inputStreamSocketAdapter::reset()
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 - // Not supported
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4019 -}
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 -stream::size_type inputStreamSocketAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4023 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4024 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4025 - return m_socket.receiveRaw(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4026 -}
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 -stream::size_type inputStreamSocketAdapter::skip
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4030 - (const size_type /* count */)
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 - // Not supported
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4033 - return 0;
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4037 -stream::size_type inputStreamSocketAdapter::getBlockSize()
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 - return m_socket.getBlockSize();
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 -
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 -#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4044 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4045 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4046 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4047 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4048 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
4049 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4050 index 0000000..f1d3b9d
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4051 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4052 +++ b/src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4053 @@ -0,0 +1,92 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4056 +// 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
4057 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4058 +// 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
4059 +// 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
4060 +// 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
4061 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4062 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4063 +// 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
4064 +// 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
4065 +// 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
4066 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4067 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4068 +// 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
4069 +// 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
4070 +// 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
4071 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4072 +// 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
4073 +// 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
4074 +// the GNU General Public License cover the whole combination.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4077 +#include "vmime/utility/streamUtils.hpp"
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 +#include <algorithm> // for std::copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4080 +#include <iterator> // for std::back_inserter
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4083 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4084 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4085 +namespace utility {
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 +outputStream& operator<<(outputStream& os, const stream::value_type c)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4089 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4090 + os.write(&c, 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4091 + return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4092 +}
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 +outputStream& operator<<(outputStream& os, const string& str)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4096 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4097 + os.write(str.data(), str.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4098 + return (os);
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 +stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os)
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 + return bufferedStreamCopy(is, os, 0, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4105 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4106 +
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 +stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4109 + const stream::size_type length, progressListener* progress)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4110 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4111 + const stream::size_type blockSize =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4112 + std::min(is.getBlockSize(), os.getBlockSize());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4113 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4114 + std::vector <stream::value_type> vbuffer(blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4115 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4116 + stream::value_type* buffer = &vbuffer.front();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4117 + stream::size_type total = 0;
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 + if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4120 + progress->start(length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4121 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4122 + while (!is.eof())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4123 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4124 + const stream::size_type read = is.read(buffer, blockSize);
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 + if (read != 0)
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 + os.write(buffer, read);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4129 + total += read;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4130 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4131 + if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4132 + progress->progress(total, std::max(total, length));
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 + if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4137 + progress->stop(total);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4138 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4139 + return (total);
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4143 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4144 +} // vmime
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 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
4147 index a4ba6d2..74344b5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4148 --- a/src/utility/stringProxy.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4149 +++ b/src/utility/stringProxy.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4150 @@ -23,6 +23,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4151
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4152 #include "vmime/utility/stringProxy.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4153
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4154 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4155 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4156 #include <iterator>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4157 #include <algorithm>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4158
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4159 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
4160 index aeaa737..79060a1 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4161 --- a/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4162 +++ b/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4163 @@ -28,6 +28,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4164 #include "vmime/utility/smartPtr.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4165 #include "vmime/parserHelpers.hpp"
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 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4168 +#include "vmime/utility/inputStreamStringAdapter.hpp"
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 #include "vmime/utility/encoder/encoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4171 #include "vmime/utility/encoder/b64Encoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4172 #include "vmime/utility/encoder/qpEncoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4173 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
4174 index 67bd7a1..194a189 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4175 --- a/src/wordEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4176 +++ b/src/wordEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4177 @@ -33,6 +33,9 @@
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 #include "vmime/utility/stringUtils.hpp"
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 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4182 +#include "vmime/utility/inputStreamStringAdapter.hpp"
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 namespace vmime
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 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
4188 index 60e637d..b794031 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4189 --- a/vmime/base.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4190 +++ b/vmime/base.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4191 @@ -35,7 +35,6 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4192 #include "vmime/config.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4193 #include "vmime/types.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4194 #include "vmime/constants.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4195 -#include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4196 #include "vmime/utility/smartPtr.hpp"
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 @@ -255,7 +254,26 @@ namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4200 return y.dynamicCast <X>();
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4203 + /** 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
4204 + * 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
4205 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4206 + class noncopyable
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 + protected:
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 + noncopyable() { }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4211 + virtual ~noncopyable() { }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4212 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4213 + private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4214 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4215 + noncopyable(const noncopyable&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4216 + void operator=(const noncopyable&);
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 } // vmime
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4222 +#include "vmime/utility/stream.hpp"
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 #endif // VMIME_BASE_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4226 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
4227 index b2e241c..5f5e8e5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4228 --- a/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4229 +++ b/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4230 @@ -26,6 +26,8 @@
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 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4234 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4235 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4236 #include "vmime/component.hpp"
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 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
4240 index b38127f..12b0406 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4241 --- a/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4242 +++ b/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4243 @@ -26,6 +26,8 @@
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 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4247 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4248 +#include "vmime/utility/outputStream.hpp"
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4251 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4252 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
4253 index d71c3ca..f430510 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4254 --- a/vmime/net/imap/IMAPParser.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4255 +++ b/vmime/net/imap/IMAPParser.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4256 @@ -37,6 +37,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4257 #include "vmime/utility/encoder/b64Encoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4258 #include "vmime/utility/encoder/qpEncoder.hpp"
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 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4261 +#include "vmime/utility/outputStreamStringAdapter.hpp"
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 #include "vmime/platform.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4264
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4265 #include "vmime/net/timeoutHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4266 @@ -3825,7 +3828,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4267 : 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
4268 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
4269 m_section(NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4270 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4271 +
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 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4274
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4275 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
4276 index 00be785..2a55edd 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4277 --- a/vmime/utility/filteredStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4278 +++ b/vmime/utility/filteredStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4279 @@ -27,7 +27,8 @@
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 #include <algorithm>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4282
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4283 -#include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4284 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4285 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4286
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4287
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4288 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4289 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
4290 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4291 index 0000000..4a76a7d
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4292 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4293 +++ b/vmime/utility/inputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4294 @@ -0,0 +1,76 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4295 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4296 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4297 +// 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
4298 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4299 +// 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
4300 +// 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
4301 +// 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
4302 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4303 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4304 +// 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
4305 +// 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
4306 +// 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
4307 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4308 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4309 +// 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
4310 +// 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
4311 +// 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
4312 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4313 +// 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
4314 +// 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
4315 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4316 +//
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 +#ifndef VMIME_UTILITY_INPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4319 +#define VMIME_UTILITY_INPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4320 +
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 +#include "vmime/utility/stream.hpp"
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4326 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4327 +
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 +/** Simple input stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4330 + */
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 +class inputStream : public stream
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 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4335 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4336 + /** 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
4337 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4338 + * @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
4339 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4340 + virtual bool eof() const = 0;
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 + /** 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
4343 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4344 + * @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
4345 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4346 + virtual void reset() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4347 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4348 + /** Read data from the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4349 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4350 + * @param data will receive the data read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4351 + * @param count maximum number of bytes to read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4352 + * @return number of bytes read
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 + 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
4355 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4356 + /** Skip a number of bytes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4357 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4358 + * @param count maximum number of bytes to ignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4359 + * @return number of bytes skipped
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 + virtual size_type skip(const size_type count) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4362 +};
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4365 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4366 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4367 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4368 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4369 +#endif // VMIME_UTILITY_INPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4370 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4371 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
4372 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4373 index 0000000..278ab52
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4374 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4375 +++ b/vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4376 @@ -0,0 +1,64 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4377 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4378 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4379 +// 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
4380 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4381 +// 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
4382 +// 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
4383 +// 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
4384 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4385 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4386 +// 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
4387 +// 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
4388 +// 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
4389 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4390 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4391 +// 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
4392 +// 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
4393 +// 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
4394 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4395 +// 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
4396 +// 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
4397 +// the GNU General Public License cover the whole combination.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4400 +#ifndef VMIME_UTILITY_INPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4401 +#define VMIME_UTILITY_INPUTSTREAMADAPTER_HPP_INCLUDED
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4404 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4405 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4406 +#include <istream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4407 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4408 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4409 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4410 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4411 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4412 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4413 +/** An adapter class for C++ standard input streams.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4414 + */
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 +class inputStreamAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4417 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4418 +public:
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 + /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4421 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4422 + inputStreamAdapter(std::istream& is);
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 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4425 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4426 + 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
4427 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4428 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4429 +private:
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 + std::istream& m_stream;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4434 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4435 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4436 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4437 +
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 +#endif // VMIME_UTILITY_INPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4440 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4441 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
4442 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4443 index 0000000..0f6a442
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4444 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4445 +++ b/vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4446 @@ -0,0 +1,63 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4447 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4448 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4449 +// 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
4450 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4451 +// 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
4452 +// 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
4453 +// 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
4454 +// the License, or (at your option) any later version.
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 +// 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
4457 +// 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
4458 +// 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
4459 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4460 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4461 +// 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
4462 +// 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
4463 +// 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
4464 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4465 +// 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
4466 +// 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
4467 +// the GNU General Public License cover the whole combination.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4470 +#ifndef VMIME_UTILITY_INPUTSTREAMBYTEBUFFERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4471 +#define VMIME_UTILITY_INPUTSTREAMBYTEBUFFERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4472 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4473 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4474 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4475 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4476 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4477 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4478 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4479 +
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 +/** 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
4482 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4483 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4484 +class inputStreamByteBufferAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4485 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4486 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4487 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4488 + inputStreamByteBufferAdapter(const byte_t* buffer, size_type length);
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 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4491 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4492 + 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
4493 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4494 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4495 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4496 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4497 + const byte_t* m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4498 + const size_type m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4499 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4500 + size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4501 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4502 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4503 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4504 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4505 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4506 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4507 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4508 +#endif // VMIME_UTILITY_INPUTSTREAMBYTEBUFFERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4509 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4510 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
4511 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4512 index 0000000..44e9bad
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4513 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4514 +++ b/vmime/utility/inputStreamPointerAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4515 @@ -0,0 +1,63 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4518 +// 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
4519 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4520 +// 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
4521 +// 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
4522 +// 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
4523 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4524 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4525 +// 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
4526 +// 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
4527 +// 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
4528 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4529 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4530 +// 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
4531 +// 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
4532 +// 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
4533 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4534 +// 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
4535 +// 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
4536 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4537 +//
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 +#ifndef VMIME_UTILITY_INPUTSTREAMPOINTERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4540 +#define VMIME_UTILITY_INPUTSTREAMPOINTERADAPTER_HPP_INCLUDED
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 +#include "vmime/utility/inputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4544 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4545 +#include <istream>
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4548 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4549 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4550 +
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 +/** 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
4553 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4554 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4555 +class inputStreamPointerAdapter : public inputStreamAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4556 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4557 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4558 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4559 + /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4560 + * @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
4561 + * this object is destroyed
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4562 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4563 + inputStreamPointerAdapter(std::istream* is, const bool own = true);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4564 + ~inputStreamPointerAdapter();
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 +private:
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 + std::istream* m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4569 + const bool m_own;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4570 +};
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4573 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4574 +} // vmime
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4577 +#endif // VMIME_UTILITY_INPUTSTREAMPOINTERADAPTER_HPP_INCLUDED
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 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
4580 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4581 index 0000000..0f99c21
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4582 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4583 +++ b/vmime/utility/inputStreamSocketAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4584 @@ -0,0 +1,77 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4587 +// 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
4588 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4589 +// 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
4590 +// 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
4591 +// 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
4592 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4593 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4594 +// 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
4595 +// 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
4596 +// 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
4597 +// General Public License for more details.
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 +// 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
4600 +// 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
4601 +// 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
4602 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4603 +// 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
4604 +// 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
4605 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4606 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4607 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4608 +#ifndef VMIME_UTILITY_INPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4609 +#define VMIME_UTILITY_INPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4610 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4611 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4612 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4613 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4614 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4615 +#if VMIME_HAVE_MESSAGING_FEATURES
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4619 +namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4620 + class socket; // forward reference
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4621 +} // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4622 +} // vmime
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4625 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4626 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4627 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4628 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4629 +/** An input stream that is connected to a socket.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4632 +class inputStreamSocketAdapter : public inputStream
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 +public:
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 + inputStreamSocketAdapter(net::socket& sok);
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 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4639 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4640 + 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
4641 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4642 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4643 + size_type getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4644 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4645 +private:
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 + inputStreamSocketAdapter(const inputStreamSocketAdapter&);
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 + net::socket& m_socket;
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_HAVE_MESSAGING_FEATURES
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4660 +#endif // VMIME_UTILITY_INPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4661 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4662 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
4663 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4664 index 0000000..a7d986f
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4665 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4666 +++ b/vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4667 @@ -0,0 +1,66 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4670 +// 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
4671 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4672 +// 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
4673 +// 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
4674 +// 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
4675 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4676 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4677 +// 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
4678 +// 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
4679 +// 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
4680 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4681 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4682 +// 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
4683 +// 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
4684 +// 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
4685 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4686 +// 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
4687 +// 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
4688 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4689 +//
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 +#ifndef VMIME_UTILITY_INPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4692 +#define VMIME_UTILITY_INPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
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 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4696 +
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4699 +namespace utility {
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 +/** An adapter class for string input.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4705 +class inputStreamStringAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4706 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4707 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4708 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4709 + inputStreamStringAdapter(const string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4710 + 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
4711 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4712 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4713 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4714 + 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
4715 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4716 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4717 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4718 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4719 + inputStreamStringAdapter(const inputStreamStringAdapter&);
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 + const string m_buffer; // do _NOT_ keep a reference...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4722 + const string::size_type m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4723 + const string::size_type m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4724 + string::size_type m_pos;
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 +
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 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4729 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4730 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4731 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4732 +#endif // VMIME_UTILITY_INPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4733 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4734 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
4735 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4736 index 0000000..74b3f60
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4737 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4738 +++ b/vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4739 @@ -0,0 +1,68 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4740 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4741 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4742 +// 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
4743 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4744 +// 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
4745 +// 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
4746 +// 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
4747 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4748 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4749 +// 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
4750 +// 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
4751 +// 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
4752 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4753 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4754 +// 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
4755 +// 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
4756 +// 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
4757 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4758 +// 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
4759 +// 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
4760 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4761 +//
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 +#ifndef VMIME_UTILITY_INPUTSTREAMSTRINGPROXYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4764 +#define VMIME_UTILITY_INPUTSTREAMSTRINGPROXYADAPTER_HPP_INCLUDED
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4767 +#include "vmime/utility/inputStream.hpp"
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4771 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4774 +class stringProxy;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4775 +
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 +/** An adapter class for stringProxy input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4778 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4779 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4780 +class inputStreamStringProxyAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4781 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4782 +public:
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 + /** @param buffer stringProxy object to wrap
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 + inputStreamStringProxyAdapter(const stringProxy& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4787 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4788 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4789 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4790 + 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
4791 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4792 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4793 +private:
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 + inputStreamStringProxyAdapter(const inputStreamStringProxyAdapter&);
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 + const stringProxy& m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4798 + string::size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4799 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4800 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4801 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4802 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4803 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4804 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4805 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4806 +#endif // VMIME_UTILITY_INPUTSTREAMSTRINGPROXYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4807 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4808 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
4809 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4810 index 0000000..7372d20
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4811 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4812 +++ b/vmime/utility/outputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4813 @@ -0,0 +1,107 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4814 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4815 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4816 +// 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
4817 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4818 +// 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
4819 +// 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
4820 +// 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
4821 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4822 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4823 +// 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
4824 +// 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
4825 +// 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
4826 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4827 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4828 +// 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
4829 +// 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
4830 +// 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
4831 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4832 +// 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
4833 +// 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
4834 +// the GNU General Public License cover the whole combination.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4837 +#ifndef VMIME_UTILITY_OUTPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4838 +#define VMIME_UTILITY_OUTPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4839 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4840 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4841 +#include "vmime/utility/stream.hpp"
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4844 +#if defined(_MSC_VER) && (_MSC_VER <= 1200) // VC++6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4845 +# include <cstring>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4846 +#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4847 +
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4850 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4853 +/** Simple output stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4854 + */
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 +class outputStream : public stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4857 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4858 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4859 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4860 + /** Write data to the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4861 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4862 + * @param data buffer containing data to write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4863 + * @param count number of bytes to write
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 + 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
4866 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4867 + /** Flush this output stream and forces any buffered output
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4868 + * bytes to be written out to the stream.
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 + virtual void flush() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4871 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4872 +
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 +// Helpers functions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4875 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4876 +outputStream& operator<<(outputStream& os, const string& str);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4877 +outputStream& operator<<(outputStream& os, const stream::value_type c);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4878 +
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 +#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
4881 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4882 +inline outputStream& operator<<(outputStream& os, const char* str)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4883 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4884 + os.write(str, ::strlen(str));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4885 + return (os);
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4888 +#else
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 +template <int N>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4891 +outputStream& operator<<(outputStream& os, const char (&str)[N])
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4892 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4893 + os.write(str, N - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4894 + return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4895 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4896 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4897 +#endif // defined(_MSC_VER) && (_MSC_VER <= 1200)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4898 +
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 +template <typename T>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4901 +outputStream& operator<<(outputStream& os, const T& t)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4902 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4903 + std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4904 + oss.imbue(std::locale::classic()); // no formatting
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4905 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4906 + oss << t;
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 + os << oss.str();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4909 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4910 + return (os);
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 +
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 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4916 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4917 +
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 +#endif // VMIME_UTILITY_OUTPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4920 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4921 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
4922 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4923 index 0000000..be55d8d
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4924 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4925 +++ b/vmime/utility/outputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4926 @@ -0,0 +1,62 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4927 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4928 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4929 +// 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
4930 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4931 +// 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
4932 +// 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
4933 +// 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
4934 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4935 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4936 +// 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
4937 +// 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
4938 +// 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
4939 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4940 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4941 +// 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
4942 +// 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
4943 +// 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
4944 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4945 +// 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
4946 +// 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
4947 +// the GNU General Public License cover the whole combination.
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 +#ifndef VMIME_UTILITY_OUTPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4951 +#define VMIME_UTILITY_OUTPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4952 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4953 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4954 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4955 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4956 +#include <ostream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4957 +
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4960 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4963 +/** An adapter class for C++ standard output streams.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4964 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4965 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4966 +class outputStreamAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4967 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4968 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4969 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4970 + /** @param os output stream to wrap
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 + outputStreamAdapter(std::ostream& os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4973 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4974 + 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
4975 + void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4976 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4977 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4978 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4979 + std::ostream& m_stream;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4982 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4983 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4984 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4985 +
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 +#endif // VMIME_UTILITY_OUTPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4988 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4989 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
4990 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4991 index 0000000..bf7d839
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4992 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4993 +++ b/vmime/utility/outputStreamByteArrayAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4994 @@ -0,0 +1,58 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4995 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4996 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4997 +// 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
4998 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4999 +// 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
5000 +// 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
5001 +// 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
5002 +// the License, or (at your option) any later version.
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 +// 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
5005 +// 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
5006 +// 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
5007 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5008 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5009 +// 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
5010 +// 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
5011 +// 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
5012 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5013 +// 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
5014 +// 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
5015 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5016 +//
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 +#ifndef VMIME_UTILITY_OUTPUTSTREAMBYTEARRAYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5019 +#define VMIME_UTILITY_OUTPUTSTREAMBYTEARRAYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5020 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5021 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5022 +#include "vmime/utility/outputStream.hpp"
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5025 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5026 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5027 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5028 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5029 +/** An adapter class for byte array output.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5030 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5031 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5032 +class outputStreamByteArrayAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5033 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5034 +public:
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 + outputStreamByteArrayAdapter(byteArray& array);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5037 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5038 + 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
5039 + void flush();
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 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5042 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5043 + byteArray& m_array;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5044 +};
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5047 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5048 +} // vmime
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5051 +#endif // VMIME_UTILITY_OUTPUTSTREAMBYTEARRAYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5052 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5053 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
5054 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5055 index 0000000..e3d3eb0
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5056 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5057 +++ b/vmime/utility/outputStreamSocketAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5058 @@ -0,0 +1,75 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5059 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5060 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5061 +// 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
5062 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5063 +// 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
5064 +// 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
5065 +// 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
5066 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5067 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5068 +// 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
5069 +// 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
5070 +// 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
5071 +// General Public License for more details.
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 +// 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
5074 +// 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
5075 +// 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
5076 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5077 +// 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
5078 +// 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
5079 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5080 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5081 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5082 +#ifndef VMIME_UTILITY_OUTPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5083 +#define VMIME_UTILITY_OUTPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5086 +#include "vmime/utility/outputStream.hpp"
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5089 +#if VMIME_HAVE_MESSAGING_FEATURES
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5093 +namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5094 + class socket; // forward reference
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5095 +} // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5096 +} // vmime
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5099 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5100 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5103 +/** An output stream that is connected to a socket.
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 +class outputStreamSocketAdapter : public outputStream
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 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5109 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5110 + outputStreamSocketAdapter(net::socket& sok);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5111 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5112 + 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
5113 + void flush();
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 + size_type getBlockSize();
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 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5118 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5119 + outputStreamSocketAdapter(const outputStreamSocketAdapter&);
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 + net::socket& m_socket;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5122 +};
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5125 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5126 +} // vmime
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5129 +#endif // VMIME_HAVE_MESSAGING_FEATURES
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 +#endif // VMIME_UTILITY_OUTPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5133 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5134 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
5135 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5136 index 0000000..8c8b304
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5137 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5138 +++ b/vmime/utility/outputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5139 @@ -0,0 +1,59 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5140 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5141 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5142 +// 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
5143 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5144 +// 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
5145 +// 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
5146 +// 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
5147 +// the License, or (at your option) any later version.
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 distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5150 +// 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
5151 +// 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
5152 +// General Public License for more details.
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 +// 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
5155 +// 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
5156 +// 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
5157 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5158 +// 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
5159 +// 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
5160 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5161 +//
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 +#ifndef VMIME_UTILITY_OUTPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5164 +#define VMIME_UTILITY_OUTPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5165 +
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 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5168 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5169 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5170 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5171 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5172 +
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 +/** An adapter class for string output.
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 +class outputStreamStringAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5178 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5179 +public:
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 + outputStreamStringAdapter(string& buffer);
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 + 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
5184 + void flush();
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 +size_type getBlockSize(){return 8192;}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5187 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5188 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5189 + string& m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5190 +};
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5193 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5194 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5195 +
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 +#endif // VMIME_UTILITY_OUTPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
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 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
5200 index 1faab55..566ab9d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5201 --- a/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5202 +++ b/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5203 @@ -25,40 +25,22 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5204 #define VMIME_UTILITY_STREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5205
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 -#include <istream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5208 -#include <ostream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5209 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5210
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5211 #include "vmime/config.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5212 #include "vmime/types.hpp"
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 -#include "vmime/utility/progressListener.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5215 -
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 -#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5218 - namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5219 - namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5220 - class socket; // forward reference
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5221 - } // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5222 - } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5223 -#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5224 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5225 -#if defined(_MSC_VER) && (_MSC_VER <= 1200) // VC++6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5226 -# include <cstring>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5227 -#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5228 +#include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5229
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 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5232 namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5233
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 -class stringProxy;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5236 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5237
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5238 /** Base class for input/output stream.
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5241 -class stream : public object
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5242 +class stream : public object, private noncopyable
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5243 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5244 public:
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 @@ -81,365 +63,6 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5247 };
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5251 -/** Simple output stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5252 - */
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 -class outputStream : public stream
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 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5257 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5258 - /** Write data to the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5259 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5260 - * @param data buffer containing data to write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5261 - * @param count number of bytes to write
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 - 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
5264 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5265 - /** Flush this output stream and forces any buffered output
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5266 - * bytes to be written out to the stream.
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 - virtual void flush() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5269 -};
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5272 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5273 -/** Simple input stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5274 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5275 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5276 -class inputStream : public stream
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 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5279 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5280 - /** 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
5281 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5282 - * @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
5283 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5284 - virtual bool eof() const = 0;
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 - /** 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
5287 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5288 - * @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
5289 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5290 - virtual void reset() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5291 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5292 - /** Read data from the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5293 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5294 - * @param data will receive the data read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5295 - * @param count maximum number of bytes to read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5296 - * @return number of bytes read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5297 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5298 - 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
5299 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5300 - /** Skip a number of bytes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5301 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5302 - * @param count maximum number of bytes to ignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5303 - * @return number of bytes skipped
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5304 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5305 - virtual size_type skip(const size_type count) = 0;
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 -
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 -// Helpers functions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5311 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5312 -outputStream& operator<<(outputStream& os, const string& str);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5313 -outputStream& operator<<(outputStream& os, const stream::value_type c);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5314 -
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 -#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
5317 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5318 -inline outputStream& operator<<(outputStream& os, const char* str)
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 - os.write(str, ::strlen(str));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5321 - return (os);
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 -#else
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 -template <int N>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5327 -outputStream& operator<<(outputStream& os, const char (&str)[N])
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5328 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5329 - os.write(str, N - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5330 - return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5331 -}
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 -#endif // defined(_MSC_VER) && (_MSC_VER <= 1200)
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5336 -template <typename T>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5337 -outputStream& operator<<(outputStream& os, const T& t)
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 - std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5340 - oss.imbue(std::locale::classic()); // no formatting
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 - oss << t;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5343 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5344 - os << oss.str();
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 - return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5347 -}
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 -/** 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
5351 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5352 - * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5353 - * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5354 - * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5355 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5356 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5357 -stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os);
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 -/** 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
5360 - * and notify progress state of the operation.
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 - * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5363 - * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5364 - * @param length predicted number of bytes to copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5365 - * @param progress listener to notify
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5366 - * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5367 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5368 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5369 -stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5370 - const stream::size_type length, progressListener* progress);
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5373 -// Adapters
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5374 -
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 -/** An adapter class for C++ standard output streams.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5377 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5378 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5379 -class outputStreamAdapter : public outputStream
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 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5382 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5383 - /** @param os output stream to wrap
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 - outputStreamAdapter(std::ostream& os);
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 - 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
5388 - void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5389 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5390 -private:
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 - std::ostream& m_stream;
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5396 -/** An adapter class for string output.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5397 - */
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 -class outputStreamStringAdapter : public outputStream
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 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5402 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5403 - outputStreamStringAdapter(string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5404 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5405 - 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
5406 - void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5407 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5408 -size_type getBlockSize(){return 8192;}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5409 -private:
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 - string& m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5412 -};
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 -/** An adapter class for byte array output.
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5418 -class outputStreamByteArrayAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5419 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5420 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5421 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5422 - outputStreamByteArrayAdapter(byteArray& array);
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 - 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
5425 - void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5426 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5427 -private:
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 - byteArray& m_array;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5430 -};
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5433 -/** An adapter class for C++ standard input streams.
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5436 -class inputStreamAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5437 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5438 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5439 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5440 - /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5441 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5442 - inputStreamAdapter(std::istream& is);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5443 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5444 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5445 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5446 - 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
5447 - size_type skip(const size_type count);
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 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5450 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5451 - std::istream& m_stream;
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 -
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 -/** An adapter class for string input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5456 - */
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 -class inputStreamStringAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5459 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5460 -public:
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 - inputStreamStringAdapter(const string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5463 - 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
5464 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5465 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5466 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5467 - 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
5468 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5469 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5470 -private:
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 - inputStreamStringAdapter(const inputStreamStringAdapter&);
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 - const string m_buffer; // do _NOT_ keep a reference...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5475 - const string::size_type m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5476 - const string::size_type m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5477 - string::size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5478 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5479 -
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 -/** An adapter class for stringProxy input.
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5484 -class inputStreamStringProxyAdapter : public inputStream
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 -public:
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 - /** @param buffer stringProxy object to wrap
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 - inputStreamStringProxyAdapter(const stringProxy& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5491 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5492 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5493 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5494 - 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
5495 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5496 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5497 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5498 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5499 - inputStreamStringProxyAdapter(const inputStreamStringProxyAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5500 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5501 - const stringProxy& m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5502 - string::size_type m_pos;
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 -
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 -/** 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
5507 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5508 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5509 -class inputStreamPointerAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5510 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5511 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5512 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5513 - /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5514 - * @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
5515 - * this object is destroyed
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5516 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5517 - inputStreamPointerAdapter(std::istream* is, const bool own = true);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5518 - ~inputStreamPointerAdapter();
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 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5521 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5522 - 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
5523 - size_type skip(const size_type count);
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 -private:
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 - inputStreamPointerAdapter(const inputStreamPointerAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5528 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5529 - std::istream* m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5530 - const bool m_own;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5531 -};
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 -/** 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
5535 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5536 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5537 -class inputStreamByteBufferAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5538 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5539 -public:
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 - inputStreamByteBufferAdapter(const byte_t* buffer, size_type length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5542 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5543 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5544 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5545 - 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
5546 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5547 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5548 -private:
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 - const byte_t* m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5551 - const size_type m_length;
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 - size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5554 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5555 -
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 -#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5558 -
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 -/** An output stream that is connected to a socket.
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5563 -class outputStreamSocketAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5564 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5565 -public:
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 - outputStreamSocketAdapter(net::socket& sok);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5568 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5569 - 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
5570 - void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5571 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5572 - size_type getBlockSize();
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 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5575 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5576 - outputStreamSocketAdapter(const outputStreamSocketAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5577 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5578 - net::socket& m_socket;
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5581 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5582 -/** An input stream that is connected to a socket.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5583 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5584 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5585 -class inputStreamSocketAdapter : public inputStream
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 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5588 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5589 - inputStreamSocketAdapter(net::socket& sok);
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 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5592 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5593 - 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
5594 - size_type skip(const size_type count);
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 - size_type getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5597 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5598 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5599 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5600 - inputStreamSocketAdapter(const inputStreamSocketAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5601 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5602 - net::socket& m_socket;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5603 -};
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5606 -#endif // VMIME_HAVE_MESSAGING_FEATURES
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5609 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5610 } // vmime
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 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
5613 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5614 index 0000000..cdf70aa
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5615 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5616 +++ b/vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5617 @@ -0,0 +1,66 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5620 +// 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
5621 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5622 +// 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
5623 +// 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
5624 +// 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
5625 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5626 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5627 +// 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
5628 +// 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
5629 +// 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
5630 +// General Public License for more details.
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 +// 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
5633 +// 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
5634 +// 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
5635 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5636 +// 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
5637 +// 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
5638 +// the GNU General Public License cover the whole combination.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5641 +#ifndef VMIME_UTILITY_STREAMUTILS_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5642 +#define VMIME_UTILITY_STREAMUTILS_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5643 +
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 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5646 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5647 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5648 +#include "vmime/utility/progressListener.hpp"
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5652 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5655 +/** 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
5656 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5657 + * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5658 + * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5659 + * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5660 + */
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 +stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5663 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5664 +/** 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
5665 + * and notify progress state of the operation.
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 + * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5668 + * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5669 + * @param length predicted number of bytes to copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5670 + * @param progress listener to notify
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5671 + * @return number of bytes copied
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5674 +stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5675 + const stream::size_type length, progressListener* progress);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5676 +
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 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5679 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5680 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5681 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5682 +#endif // VMIME_UTILITY_STREAMUTILS_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5683 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5684 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
5685 index 21c65ea..66a6dfd 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5686 --- a/vmime/utility/stringProxy.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5687 +++ b/vmime/utility/stringProxy.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5688 @@ -29,6 +29,7 @@
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 #include "vmime/types.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5691 #include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5692 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5693 #include "vmime/utility/progressListener.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5694
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5695
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5696 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
5697 index f187b9e..fd04853 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5698 --- a/vmime/vmime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5699 +++ b/vmime/vmime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5700 @@ -68,6 +68,22 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5701 // Encoders
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5702 #include "vmime/utility/encoder/encoderFactory.hpp"
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 +// Streams
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5705 +#include "vmime/utility/filteredStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5706 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5707 +#include "vmime/utility/inputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5708 +#include "vmime/utility/inputStreamByteBufferAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5709 +#include "vmime/utility/inputStreamPointerAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5710 +#include "vmime/utility/inputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5711 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5712 +#include "vmime/utility/inputStreamStringProxyAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5713 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5714 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5715 +#include "vmime/utility/outputStreamByteArrayAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5716 +#include "vmime/utility/outputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5717 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5718 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5719 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5720 // Message builder/parser
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5721 #include "vmime/messageBuilder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5722 #include "vmime/messageParser.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5723 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
5724 1.7.10.4
2573
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 From be30b47f09c5358db2ac8e42fa2bb4a14ec24c51 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5728 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5729 Date: Mon, 16 Apr 2012 22:32:33 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
5730 Subject: [PATCH 37/47] Added ability to parse directly from an input stream
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5731 (eg. file). This allows very big messages to be
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5732 parsed without loading the whole message data into
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5733 memory.
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5736 diff --git a/ChangeLog b/ChangeLog
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5737 index 8fdcdb0..1b5b2cf 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5738 --- a/ChangeLog
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5739 +++ b/ChangeLog
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5740 @@ -2,6 +2,12 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5741 VERSION 0.9.2svn
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5744 +2012-04-16 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5745 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5746 + * 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
5747 + 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
5748 + message data into memory.
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 2010-11-16 Vincent Richard <vincent@vincent-richard.net>
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 * Started version 0.9.2.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5753 diff --git a/SConstruct b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5754 index ea5c4eb..2690172 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5755 --- a/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5756 +++ b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5757 @@ -153,11 +153,14 @@ libvmime_sources = [
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5758 'utility/inputStreamSocketAdapter.cpp', 'utility/inputStreamSocketAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5759 'utility/inputStreamStringAdapter.cpp', 'utility/inputStreamStringAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5760 'utility/inputStreamStringProxyAdapter.cpp', 'utility/inputStreamStringProxyAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5761 + 'utility/seekableInputStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5762 + 'utility/seekableInputStreamRegionAdapter.cpp', 'utility/seekableInputStreamRegionAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5763 'utility/outputStream.cpp', 'utility/outputStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5764 'utility/outputStreamAdapter.cpp', 'utility/outputStreamAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5765 'utility/outputStreamByteArrayAdapter.cpp', 'utility/outputStreamByteArrayAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5766 'utility/outputStreamSocketAdapter.cpp', 'utility/outputStreamSocketAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5767 'utility/outputStreamStringAdapter.cpp', 'utility/outputStreamStringAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5768 + 'utility/parserInputStreamAdapter.cpp', 'utility/parserInputStreamAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5769 'utility/stringProxy.cpp', 'utility/stringProxy.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5770 'utility/stringUtils.cpp', 'utility/stringUtils.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5771 'utility/url.cpp', 'utility/url.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5772 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
5773 index 31a2a3d..f06460d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5774 --- a/src/addressList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5775 +++ b/src/addressList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5776 @@ -50,7 +50,7 @@ addressList::~addressList()
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
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 -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
5781 +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
5782 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5783 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5784 removeAllAddresses();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5785 @@ -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
5786 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5787
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5788
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5789 -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
5790 +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
5791 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
5792 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5793 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5794 @@ -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
5795 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5796
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 -const std::vector <ref <const component> > addressList::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5799 +const std::vector <ref <component> > addressList::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5800 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5801 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5802 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5803
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5804 copy_vector(m_list, list);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5805
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5806 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
5807 index 9d7d57f..732fa8b 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5808 --- a/src/body.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5809 +++ b/src/body.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5810 @@ -31,10 +31,13 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5811
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5812 #include "vmime/utility/random.hpp"
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 +#include "vmime/utility/seekableInputStreamRegionAdapter.hpp"
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 #include "vmime/parserHelpers.hpp"
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 #include "vmime/emptyContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5819 #include "vmime/stringContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5820 +#include "vmime/streamContentHandler.hpp"
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 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5824 @@ -52,11 +55,28 @@ body::~body()
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5828 -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
5829 - const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5830 +void body::parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5831 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5832 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5833 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5834 + utility::stream::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5835 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5836 removeAllParts();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5837
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5838 + m_prologText.clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5839 + m_epilogText.clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5840 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5841 + if (end == position)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5842 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5843 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5844 + setParsedBounds(position, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5845 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5846 + if (newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5847 + *newPosition = end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5848 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5849 + return;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5850 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5851 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5852 // Check whether the body is a MIME-multipart
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5853 bool isMultipart = false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5854 string boundary;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5855 @@ -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
5856 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5857 // No "boundary" parameter specified: we can try to
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5858 // guess it by scanning the body contents...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5859 - string::size_type pos = buffer.find("\n--", position);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5860 + utility::stream::size_type pos = position;
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 + parser->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5863 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5864 + if (pos + 2 < end && parser->matchBytes("--", 2))
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 + pos += 2;
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 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5869 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5870 + pos = parser->findNext("\n--", position);
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 - if ((pos != string::npos) && (pos < end))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5873 + if ((pos != utility::stream::npos) && (pos + 3 < end))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5874 + pos += 3; // skip \n--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5875 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5876 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5877 + if ((pos != utility::stream::npos) && (pos < end))
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 - pos += 3;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5880 + parser->seek(pos);
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 - const string::size_type start = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5883 + // Read some bytes after boundary separator
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5884 + utility::stream::value_type buffer[256];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5885 + const utility::stream::size_type bufferLen =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5886 + 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
5887
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5888 - char_t c = buffer[pos];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5889 - string::size_type length = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5890 + buffer[sizeof(buffer) / sizeof(buffer[0]) - 1] = '\0';
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 + // 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
5893 // 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
5894 // 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
5895 - while (pos < end && length < 100 && !(c == '\r' || c == '\n'))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5896 + string::value_type boundaryBytes[100];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5897 + string::size_type boundaryLen = 0;
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 + for (string::value_type c = buffer[0] ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5900 + boundaryLen < bufferLen && boundaryLen < 100 && !(c == '\r' || c == '\n') ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5901 + c = buffer[++boundaryLen])
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5902 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5903 - ++length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5904 - c = buffer[pos++];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5905 + boundaryBytes[boundaryLen] = buffer[boundaryLen];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5906 }
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 - if (pos < end && length < 100)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5909 + if (boundaryLen >= 1 && boundaryLen < 100)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5910 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5911 // RFC #1521, Page 31:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5912 // "...the boundary parameter, which consists of 1 to 70
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5913 // 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
5914 // robust through email gateways, and NOT ending with
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5915 // white space..."
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5916 - while (pos != start && parserHelpers::isSpace(buffer[pos - 1]))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5917 - --pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5918 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5919 - boundary = string(buffer.begin() + start,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5920 - buffer.begin() + pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5921 + while (boundaryLen != 0 &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5922 + parserHelpers::isSpace(boundaryBytes[boundaryLen - 1]))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5923 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5924 + boundaryLen--;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5925 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5926 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5927 + if (boundaryLen >= 1)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5928 + boundary = string(boundaryBytes, boundaryBytes + boundaryLen);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5929 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5930 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5931 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5932 @@ -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
5933 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5934 const string boundarySep("--" + boundary);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5935
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5936 - string::size_type partStart = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5937 - string::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5938 + utility::stream::size_type partStart = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5939 + utility::stream::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5940
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5941 bool lastPart = false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5942
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5943 - while (pos != string::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5944 + while (pos != utility::stream::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5945 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5946 - pos = buffer.find(boundarySep, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5947 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5948 - if (pos == string::npos ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5949 - ((pos == 0 || buffer[pos - 1] == '\n') &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5950 - (buffer[pos + boundarySep.length()] == '\r' ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5951 - buffer[pos + boundarySep.length()] == '\n' ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5952 - buffer[pos + boundarySep.length()] == '-'
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 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5955 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5956 + pos = parser->findNext(boundarySep, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5957 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5958 + if (pos == utility::stream::npos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5959 + break; // not found
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5960 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5961 + if (pos != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5962 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5963 - break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5964 + parser->seek(pos - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5965 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5966 + if (parser->peekByte() != '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5967 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5968 + // Boundary is not at a beginning of a line
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5969 + pos++;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5970 + continue;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5971 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5972 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5973 + parser->skip(1 + boundarySep.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5974 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5975 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5976 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5977 + parser->seek(pos + boundarySep.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5978 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5979
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5980 - // 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
5981 + const utility::stream::value_type next = parser->peekByte();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5982 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5983 + if (next == '\r' || next == '\n' || next == '-')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5984 + break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5985 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5986 + // Boundary is a prefix of another, continue the search
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5987 pos++;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5988 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5989
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5990 - if (pos != string::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5991 + if (pos != utility::stream::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5992 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5993 vmime::text text;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5994 - text.parse(buffer, position, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5995 + text.parse(parser, position, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5996
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5997 m_prologText = text.getWholeBuffer();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5998 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5999
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6000 - 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
6001 + 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
6002 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6003 - string::size_type partEnd = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6004 + utility::stream::size_type partEnd = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6005
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6006 // 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
6007 - if (pos >= (position + 1) && buffer[pos - 1] == '\n') --partEnd;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6008 - if (pos >= (position + 2) && buffer[pos - 2] == '\r') --partEnd;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6009 + if (pos >= (position + 1))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6010 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6011 + parser->seek(pos - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6012 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6013 + if (parser->peekByte() == '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6014 + --partEnd;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6015 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6016 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6017 + if (pos >= (position + 2))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6018 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6019 + parser->seek(pos - 2);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6020 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6021 + if (parser->peekByte() == '\r')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6022 + --partEnd;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6023 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6024
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6025 // 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
6026 pos += boundarySep.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6027 + parser->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6028
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6029 - if (pos + 1 < end && buffer[pos] == '-' && buffer[pos + 1] == '-')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6030 + if (pos + 1 < end && parser->matchBytes("--", 2))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6031 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6032 lastPart = true;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6033 pos += 2;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6034 @@ -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
6035 // "...(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
6036 // 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
6037 // gateway, and must be deleted.)..."
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6038 - while (pos < end && (buffer[pos] == ' ' || buffer[pos] == '\t'))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6039 - ++pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6040 + parser->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6041 + pos += parser->skipIf(parserHelpers::isSpaceOrTab, end);
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 // End of boundary line
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6044 - 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
6045 + if (pos + 1 < end && parser->matchBytes("\r\n", 2))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6046 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6047 pos += 2;
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 - else if (pos < end && buffer[pos] == '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6050 + else if (pos < end && parser->peekByte() == '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6051 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6052 ++pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6053 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6054 @@ -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
6055 if (partEnd < partStart)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6056 std::swap(partStart, partEnd);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6057
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6058 - part->parse(buffer, partStart, partEnd, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6059 + part->parse(parser, partStart, partEnd, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6060 part->m_parent = m_part;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6061
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6062 m_parts.push_back(part);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6063 @@ -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
6064
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6065 partStart = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6066
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6067 - while (pos != string::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6068 + while (pos != utility::stream::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6069 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6070 - pos = buffer.find(boundarySep, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6071 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6072 - if (pos == string::npos ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6073 - ((pos == 0 || buffer[pos - 1] == '\n') &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6074 - (buffer[pos + boundarySep.length()] == '\r' ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6075 - buffer[pos + boundarySep.length()] == '\n' ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6076 - buffer[pos + boundarySep.length()] == '-'
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 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6080 + pos = parser->findNext(boundarySep, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6081 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6082 + if (pos == utility::stream::npos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6083 + break; // not found
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6084 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6085 + if (pos != 0)
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 - break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6088 + parser->seek(pos - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6089 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6090 + if (parser->peekByte() != '\n')
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 + // Boundary is not at a beginning of a line
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6093 + pos++;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6094 + continue;
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 + parser->skip(1 + boundarySep.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6098 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6099 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6100 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6101 + parser->seek(pos + boundarySep.length());
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6104 - // 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
6105 + const utility::stream::value_type next = parser->peekByte();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6106 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6107 + if (next == '\r' || next == '\n' || next == '-')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6108 + break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6109 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6110 + // Boundary is a prefix of another, continue the search
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6111 pos++;
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 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6114 @@ -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
6115 m_contents = vmime::create <emptyContentHandler>();
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 // Last part was not found: recover from missing boundary
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6118 - if (!lastPart && pos == string::npos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6119 + if (!lastPart && pos == utility::stream::npos)
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 ref <bodyPart> part = vmime::create <bodyPart>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6122
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6123 try
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 - part->parse(buffer, partStart, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6126 + part->parse(parser, partStart, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6127 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6128 catch (std::exception&)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6129 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6130 @@ -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
6131 else if (partStart < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6132 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6133 vmime::text text;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6134 - text.parse(buffer, partStart, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6135 + text.parse(parser, partStart, end);
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_epilogText = text.getWholeBuffer();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6138 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6139 @@ -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
6140 }
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 // Extract the (encoded) contents
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6143 - m_contents = vmime::create <stringContentHandler>(buffer, position, end, enc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6144 + const utility::stream::size_type length = end - position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6145 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6146 + ref <utility::inputStream> contentStream =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6147 + vmime::create <utility::seekableInputStreamRegionAdapter>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6148 + (parser->getUnderlyingStream(), position, length);
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 + m_contents = vmime::create <streamContentHandler>(contentStream, length, enc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6151 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6152
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6153 setParsedBounds(position, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6154 @@ -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
6155 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6156
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6157
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6158 -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
6159 +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
6160 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
6161 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6162 // MIME-Multipart
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6163 @@ -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
6164 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6165
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 -const std::vector <ref <const component> > body::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6168 +const std::vector <ref <component> > body::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6169 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6170 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6171 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6172
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6173 copy_vector(m_parts, list);
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 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
6176 index 7d60461..522cbb2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6177 --- a/src/bodyPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6178 +++ b/src/bodyPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6179 @@ -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
6180 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6181
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6182
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6183 -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
6184 - const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6185 +void bodyPart::parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6186 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6187 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6188 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6189 + utility::stream::size_type* newPosition)
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 // Parse the headers
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6192 string::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6193 - m_header->parse(buffer, pos, end, &pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6194 + m_header->parse(parser, pos, end, &pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6195
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6196 // Parse the body contents
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6197 - m_body->parse(buffer, pos, end, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6198 + m_body->parse(parser, pos, end, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6199
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6200 setParsedBounds(position, end);
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 @@ -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
6203 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6204
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 -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
6207 +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
6208 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
6209 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6210 m_header->generate(os, maxLineLength);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6211 @@ -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
6212 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6213
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6214
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6215 -const std::vector <ref <const component> > bodyPart::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6216 +const std::vector <ref <component> > bodyPart::getChildComponents()
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 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6219 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6220
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6221 list.push_back(m_header);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6222 list.push_back(m_body);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6223 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
6224 index 0fda450..705664f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6225 --- a/src/charset.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6226 +++ b/src/charset.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6227 @@ -57,7 +57,7 @@ charset::charset(const char* name)
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 -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
6232 +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
6233 const string::size_type end, string::size_type* newPosition)
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 m_name = utility::stringUtils::trim
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6236 @@ -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
6237 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6238
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 -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
6241 +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
6242 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
6243 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6244 os << m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6245 @@ -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
6246 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6247
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6248
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6249 -const std::vector <ref <const component> > charset::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6250 +const std::vector <ref <component> > charset::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6251 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6252 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6253 + return std::vector <ref <component> >();
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
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 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
6258 index 139cf66..e93aacf 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6259 --- a/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6260 +++ b/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6261 @@ -23,6 +23,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6262
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6263 #include "vmime/component.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6264 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6265 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6266 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6267 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6268 #include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6269
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6270 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6271 @@ -43,9 +46,102 @@ component::~component()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6272 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6275 +void component::parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6276 + (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
6277 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6278 + parse(inputStream, 0, length, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6279 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6280 +
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 +void component::parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6283 + (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
6284 + 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
6285 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6286 + m_parsedOffset = m_parsedLength = 0;
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 + ref <utility::seekableInputStream> seekableStream =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6289 + inputStream.dynamicCast <utility::seekableInputStream>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6290 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6291 + if (seekableStream == NULL || end == 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6292 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6293 + // Read the whole stream into a buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6294 + std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6295 + utility::outputStreamAdapter ossAdapter(oss);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6296 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6297 + utility::bufferedStreamCopyRange(*inputStream, ossAdapter, position, end - position);
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 + const string buffer = oss.str();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6300 + parseImpl(buffer, 0, buffer.length(), NULL);
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 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6303 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6304 + ref <utility::parserInputStreamAdapter> parser =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6305 + vmime::create <utility::parserInputStreamAdapter>(seekableStream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6306 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6307 + parseImpl(parser, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6308 + }
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 +
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 void component::parse(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6313 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6314 - parse(buffer, 0, buffer.length(), NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6315 + m_parsedOffset = m_parsedLength = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6316 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6317 + parseImpl(buffer, 0, buffer.length(), NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6318 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6321 +void component::parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6322 + (const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6323 + const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6324 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6325 + m_parsedOffset = m_parsedLength = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6326 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6327 + parseImpl(buffer, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6328 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6329 +
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 +void component::offsetParsedBounds(const utility::stream::size_type offset)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6332 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6333 + // Offset parsed bounds of this component
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6334 + if (m_parsedLength != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6335 + m_parsedOffset += offset;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6336 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6337 + // Offset parsed bounds of our children
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6338 + std::vector <ref <component> > children = getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6339 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6340 + 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
6341 + children[i]->offsetParsedBounds(offset);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6342 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6343 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6344 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6345 +void component::parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6346 + (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
6347 + 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
6348 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6349 + const std::string buffer = parser->extract(position, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6350 + parseImpl(buffer, 0, buffer.length(), newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6351 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6352 + // Recursivey offset parsed bounds on children
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6353 + if (position != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6354 + offsetParsedBounds(position);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6355 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6356 + if (newPosition != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6357 + *newPosition += position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6358 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6359 +
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 +void component::parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6362 + (const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6363 + const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6364 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6365 + ref <utility::seekableInputStream> stream =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6366 + vmime::create <utility::inputStreamStringAdapter>(buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6367 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6368 + ref <utility::parserInputStreamAdapter> parser =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6369 + vmime::create <utility::parserInputStreamAdapter>(stream);
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 + parseImpl(parser, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6372 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6373
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6374
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6375 @@ -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
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 +void component::generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6380 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6381 + const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6382 + const string::size_type curLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6383 + string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6384 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6385 + generateImpl(os, maxLineLength, curLinePos, newLinePos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6386 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6387 +
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 +void component::generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6390 + (ref <utility::outputStream> os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6391 + const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6392 + const string::size_type curLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6393 + string::size_type* newLinePos) const
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 + generateImpl(*os, maxLineLength, curLinePos, newLinePos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6396 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6399 string::size_type component::getParsedOffset() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6400 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6401 return (m_parsedOffset);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6402 @@ -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
6403 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6404
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 -const std::vector <ref <component> > component::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6407 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6408 - const std::vector <ref <const component> > constList =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6409 - const_cast <const component*>(this)->getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6410 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6411 - std::vector <ref <component> > list;
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 - 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
6414 +} // vmime
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 - list.resize(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6417 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6418 - 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
6419 - list[i] = constList[i].constCast <component>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6420 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6421 - return (list);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6422 -}
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 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6425 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6426 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
6427 index 0ab7c45..253dbba 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6428 --- a/src/contentDisposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6429 +++ b/src/contentDisposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6430 @@ -47,7 +47,7 @@ contentDisposition::contentDisposition(const contentDisposition& type)
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6433
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6434 -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
6435 +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
6436 const string::size_type end, string::size_type* newPosition)
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 m_name = utility::stringUtils::trim(utility::stringUtils::toLower
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6439 @@ -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
6440 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6441
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6442
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6443 -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
6444 +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
6445 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
6446 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6447 os << m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6448 @@ -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
6449 }
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 -const std::vector <ref <const component> > contentDisposition::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6453 +const std::vector <ref <component> > contentDisposition::getChildComponents()
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 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6456 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6457 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6458
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6459
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6460 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
6461 index 089a900..0d97b2f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6462 --- a/src/dateTime.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6463 +++ b/src/dateTime.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6464 @@ -67,7 +67,7 @@ zone = "UT" / "GMT" ; Universal Time
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6467
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6468 -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
6469 +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
6470 const string::size_type end, string::size_type* newPosition)
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 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6473 @@ -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
6474 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6475
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6476
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6477 -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
6478 +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
6479 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
6480 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6481 static const string::value_type* dayNames[] =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6482 @@ -784,9 +784,9 @@ ref <component> datetime::clone() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6483 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6484
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6485
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6486 -const std::vector <ref <const component> > datetime::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6487 +const std::vector <ref <component> > datetime::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6488 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6489 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6490 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6491 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6492
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6493
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6494 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
6495 index b8059a7..24a4579 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6496 --- a/src/disposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6497 +++ b/src/disposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6498 @@ -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
6499 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6502 -const std::vector <ref <const component> > disposition::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6503 +const std::vector <ref <component> > disposition::getChildComponents()
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 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6506 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6507 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6510 @@ -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
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 -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
6515 +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
6516 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6517 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6518 // disposition-mode ";" disposition-type
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6519 @@ -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
6520 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6521
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6522
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6523 -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
6524 +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
6525 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
6526 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6527 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6528 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
6529 index 5d99ab6..343a822 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6530 --- a/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6531 +++ b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6532 @@ -61,7 +61,7 @@ encoding::encoding(const encoding& enc)
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6535
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6536 -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
6537 +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
6538 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6539 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6540 m_usage = USAGE_UNKNOWN;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6541 @@ -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
6542 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6543
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6544
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6545 -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
6546 +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
6547 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
6548 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6549 os << m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6550 @@ -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
6551 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6552
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 -const std::vector <ref <const component> > encoding::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6555 +const std::vector <ref <component> > encoding::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6556 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6557 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6558 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6559 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6560
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 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
6563 index 443aab8..fcdca2c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6564 --- a/src/header.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6565 +++ b/src/header.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6566 @@ -61,7 +61,7 @@ field-body-contents =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6567 specials tokens, or else consisting of texts>
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6570 -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
6571 +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
6572 const string::size_type end, string::size_type* newPosition)
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 string::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6575 @@ -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
6576 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6577
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 -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
6580 +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
6581 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
6582 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6583 // Generate the fields
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6584 @@ -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
6585 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6588 -const std::vector <ref <const component> > header::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6589 +const std::vector <ref <component> > header::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6590 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6591 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6592 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6593
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6594 copy_vector(m_fields, list);
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 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
6597 index d1d4236..a8460aa 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6598 --- a/src/headerField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6599 +++ b/src/headerField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6600 @@ -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
6601 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6604 -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
6605 +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
6606 string::size_type* 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 m_value->parse(buffer, position, end, newPosition);
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6612 -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
6613 +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
6614 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
6615 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6616 os << m_name + ": ";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6617 @@ -296,9 +296,9 @@ bool headerField::isCustom() const
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6621 -const std::vector <ref <const component> > headerField::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6622 +const std::vector <ref <component> > headerField::getChildComponents()
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 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6625 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6626
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6627 if (m_value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6628 list.push_back(m_value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6629 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
6630 index fea7479..dfdccad 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6631 --- a/src/mailbox.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6632 +++ b/src/mailbox.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6633 @@ -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
6634
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6637 -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
6638 +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
6639 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6640 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6641 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6642 @@ -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
6643 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6645
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6646 -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
6647 +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
6648 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
6649 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6650 if (m_name.isEmpty())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6651 @@ -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
6652 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6653
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 -const std::vector <ref <const component> > mailbox::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6656 +const std::vector <ref <component> > mailbox::getChildComponents()
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 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6659 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6660 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6661
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6662
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6663 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
6664 index 94f7ba6..c37444a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6665 --- a/src/mailboxGroup.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6666 +++ b/src/mailboxGroup.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6667 @@ -54,7 +54,7 @@ mailboxGroup::~mailboxGroup()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6668 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6671 -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
6672 +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
6673 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6674 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6675 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6676 @@ -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
6677 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6678
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6679
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6680 -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
6681 +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
6682 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
6683 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6684 // We have to encode the name:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6685 @@ -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
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6689 -const std::vector <ref <const component> > mailboxGroup::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6690 +const std::vector <ref <component> > mailboxGroup::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6691 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6692 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6693 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6694
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6695 copy_vector(m_list, list);
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 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
6698 index 0023d9d..f87fb48 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6699 --- a/src/mailboxList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6700 +++ b/src/mailboxList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6701 @@ -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
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 <const component> > mailboxList::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6706 +const std::vector <ref <component> > mailboxList::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6707 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6708 return (m_list.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
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 -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
6713 +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
6714 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6715 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6716 m_list.parse(buffer, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6717 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6718
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 -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
6721 +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
6722 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
6723 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6724 m_list.generate(os, maxLineLength, curLinePos, newLinePos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6725 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
6726 index 725f933..627b276 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6727 --- a/src/mediaType.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6728 +++ b/src/mediaType.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6729 @@ -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
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 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
6734 +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
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 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6738 @@ -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
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 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
6743 +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
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 const string value = m_type + "/" + m_subType;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6747 @@ -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
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> > mediaType::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6752 +const std::vector <ref <component> > mediaType::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/message.cpp b/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6760 index 1b4f086..3fa9b6a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6761 --- a/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6762 +++ b/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6763 @@ -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
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 message::parse(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6768 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6769 +void message::generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6770 + (ref <utility::outputStream> os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6771 + const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6772 + const string::size_type curLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6773 + string::size_type* newLinePos) const
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 - bodyPart::parse(buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6776 + bodyPart::generate(os, maxLineLength, curLinePos, newLinePos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6777 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6778
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 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
6781 index 961fb63..1f4b186 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6782 --- a/src/messageId.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6783 +++ b/src/messageId.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6784 @@ -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
6785 msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS]
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6786 */
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 -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
6789 +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
6790 const string::size_type end, string::size_type* newPosition)
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 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6793 @@ -185,7 +185,7 @@ const string messageId::getId() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6794 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6795
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6796
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6797 -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
6798 +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
6799 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
6800 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6801 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6802 @@ -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
6803 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6804
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6805
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6806 -const std::vector <ref <const component> > messageId::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6807 +const std::vector <ref <component> > messageId::getChildComponents()
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 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6810 + return std::vector <ref <component> >();
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6814 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
6815 index 08103d0..0a5c9a0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6816 --- a/src/messageIdSequence.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6817 +++ b/src/messageIdSequence.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6818 @@ -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
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 -const std::vector <ref <const component> > messageIdSequence::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6823 +const std::vector <ref <component> > messageIdSequence::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6824 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6825 - std::vector <ref <const component> > res;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6826 + std::vector <ref <component> > res;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6827
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6828 copy_vector(m_list, res);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6829
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6830 @@ -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
6831 }
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 -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
6835 +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
6836 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6837 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6838 removeAllMessageIds();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6839 @@ -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
6840 }
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 -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
6844 +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
6845 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
6846 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6847 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6848 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
6849 index ccbe1a5..58d9a3e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6850 --- a/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6851 +++ b/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6852 @@ -36,19 +36,19 @@ namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6853
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6854
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6855 parameter::parameter(const string& name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6856 - : m_name(name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6857 + : m_name(name), m_value(vmime::create <word>())
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6862 parameter::parameter(const string& name, const word& value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6863 - : m_name(name), m_value(value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6864 + : m_name(name), m_value(vmime::create <word>(value))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6865 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6866 }
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 parameter::parameter(const string& name, const string& value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6870 - : m_name(name), m_value(value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6871 + : m_name(name), m_value(vmime::create <word>(value))
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 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6874
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6875 @@ -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
6876 const parameter& param = dynamic_cast <const parameter&>(other);
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 m_name = param.m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6879 - m_value.copyFrom(param.m_value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6880 + m_value->copyFrom(*param.m_value);
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6883
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6884 @@ -92,7 +92,7 @@ const string& parameter::getName() const
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 const word& parameter::getValue() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6887 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6888 - return m_value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6889 + return *m_value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6890 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6891
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 @@ -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
6894
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6895 void parameter::setValue(const word& value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6896 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6897 - m_value = value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6898 + *m_value = value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6899 }
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 -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
6903 +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
6904 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6905 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6906 - 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
6907 - m_value.setCharset(charset(charsets::US_ASCII));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6908 + 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
6909 + m_value->setCharset(charset(charsets::US_ASCII));
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 if (newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6912 *newPosition = end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6913 @@ -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
6914 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6915 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6916
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6917 - m_value.setBuffer(value.str());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6918 - m_value.setCharset(ch);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6919 + m_value->setBuffer(value.str());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6920 + m_value->setCharset(ch);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6921 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6924 -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
6925 +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
6926 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
6927 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6928 const string& name = m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6929 - const string& value = m_value.getBuffer();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6930 + const string& value = m_value->getBuffer();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6931
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6932 // 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
6933 // also generate a normal "7bit/us-ascii" parameter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6934 @@ -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
6935 // 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
6936 // we need to encode the whole buffer.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6937 encoding recommendedEnc;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6938 - const bool alwaysEncode = m_value.getCharset().getRecommendedEncoding(recommendedEnc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6939 + const bool alwaysEncode = m_value->getCharset().getRecommendedEncoding(recommendedEnc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6940 bool extended = alwaysEncode;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6941
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6942 if (needQuotedPrintable)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6943 @@ -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
6944 // 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
6945 // will understand the real filename
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6946 size_t oldLen = sevenBitBuffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6947 - m_value.generate(sevenBitStream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6948 + m_value->generate(sevenBitStream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6949 pos += sevenBitBuffer.length() - oldLen;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6950 extended = true; // also send with RFC-2231 encoding
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 @@ -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
6953 // + at least 5 characters for the value
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6954 const string::size_type firstSectionLength =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6955 name.length() + 4 /* *0*= */ + 2 /* '' */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6956 - + m_value.getCharset().getName().length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6957 + + m_value->getCharset().getName().length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6958
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6959 if (pos + firstSectionLength + 5 >= maxLineLength)
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 @@ -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
6962
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6963 if (sectionNumber == 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6964 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6965 - os << m_value.getCharset().getName();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6966 + os << m_value->getCharset().getName();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6967 os << '\'' << /* No language */ '\'';
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 @@ -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
6971 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6972
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 std::vector <ref <const component> > parameter::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6975 +const std::vector <ref <component> > parameter::getChildComponents()
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 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6978 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6979
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6980 - list.push_back(ref <const component>::fromPtr(&m_value));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6981 + list.push_back(m_value);
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 return list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6984 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6985 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
6986 index 464990e..756d02f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6987 --- a/src/parameterizedHeaderField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6988 +++ b/src/parameterizedHeaderField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6989 @@ -78,7 +78,7 @@ struct paramInfo
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6990 #endif // VMIME_BUILDING_DOC
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6991
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6992
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6993 -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
6994 +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
6995 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6996 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6997 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6998 @@ -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
6999 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7000
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 -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
7003 +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
7004 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
7005 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7006 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7007
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7008 // Parent header field
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7009 - headerField::generate(os, maxLineLength, pos, &pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7010 + headerField::generateImpl(os, maxLineLength, pos, &pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7011
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7012 // Parameters
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7013 for (std::vector <ref <parameter> >::const_iterator
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7014 @@ -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
7015 }
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 -const std::vector <ref <const component> > parameterizedHeaderField::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7019 +const std::vector <ref <component> > parameterizedHeaderField::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7020 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7021 - std::vector <ref <const component> > list = headerField::getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7022 + std::vector <ref <component> > list = headerField::getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7023
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7024 - 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
7025 + 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
7026 it != m_params.end() ; ++it)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7027 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7028 list.push_back(*it);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7029 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
7030 index 37a4090..d92bb0a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7031 --- a/src/path.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7032 +++ b/src/path.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7033 @@ -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
7034 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7037 -const std::vector <ref <const component> > path::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7038 +const std::vector <ref <component> > path::getChildComponents()
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 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7041 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7042 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7043
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 -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
7046 - const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7047 +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
7048 + const string::size_type end, string::size_type* newPosition)
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 string::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7051
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7052 @@ -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
7053 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7054
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 -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
7057 - 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
7058 +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
7059 + 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
7060 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7061 if (m_localPart.empty() && m_domain.empty())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7062 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7063 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
7064 index ec529eb..4087a21 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7065 --- a/src/platforms/posix/posixFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7066 +++ b/src/platforms/posix/posixFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7067 @@ -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
7068 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7069
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7070
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7071 +vmime::utility::stream::size_type posixFileReaderInputStream::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7072 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7073 + 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
7074 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7075 + if (curPos == off_t(-1))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7076 + posixFileSystemFactory::reportError(m_path, errno);
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 + return static_cast <size_type>(curPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7079 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7080 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7081 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7082 +void posixFileReaderInputStream::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7083 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7084 + 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
7085 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7086 + if (newPos == off_t(-1))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7087 + posixFileSystemFactory::reportError(m_path, errno);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7088 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7089 +
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7092 //
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7093 // posixFileWriter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7094 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
7095 index 624612a..5da786e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7096 --- a/src/platforms/windows/windowsFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7097 +++ b/src/platforms/windows/windowsFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7098 @@ -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
7099 return (dwNewPos - dwCurPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7100 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7101
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7102 +vmime::utility::stream::size_type windowsFileReaderInputStream::getPosition() const
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 + DWORD dwCurPos = SetFilePointer(m_hFile, 0, NULL, FILE_CURRENT);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7105 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7106 + if (dwCurPos == INVALID_SET_FILE_POINTER)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7107 + windowsFileSystemFactory::reportError(m_path, GetLastError());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7108 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7109 + return static_cast <size_type>(dwCurPos);
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 +void windowsFileReaderInputStream::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7113 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7114 + 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
7115 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7116 + if (dwNewPos == INVALID_SET_FILE_POINTER)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7117 + windowsFileSystemFactory::reportError(m_path, GetLastError());
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 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
7121 : m_path(path), m_nativePath(nativePath)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7122 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7123 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
7124 index 5cd454f..97f793d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7125 --- a/src/relay.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7126 +++ b/src/relay.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7127 @@ -57,7 +57,7 @@ relay::relay(const relay& r)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7128 ["for" addr-spec] ; initial form
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7129 */
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 -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
7132 +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
7133 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7134 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7135 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7136 @@ -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
7137 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7138
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 -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
7141 +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
7142 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
7143 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7144 std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7145 @@ -338,10 +338,10 @@ std::vector <string>& relay::getWithList()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7146 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7147
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7148
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7149 -const std::vector <ref <const component> > relay::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7150 +const std::vector <ref <component> > relay::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7151 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7152 // TODO: should fields inherit from 'component'? (using typeAdapter)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7153 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7154 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7155 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7156
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 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
7159 index 89a36b4..14837d2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7160 --- a/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7161 +++ b/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7162 @@ -25,6 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7163
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7164 #include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7165 #include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7166 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7167 #include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7168
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7169
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7170 @@ -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
7171
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7172 bool streamContentHandler::isBuffered() const
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 + if (m_stream.dynamicCast <utility::seekableInputStream>() != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7175 + return true;
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 // FIXME: some streams can be resetted
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7178 return false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7179 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7180 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
7181 index 66c3b35..91b81e1 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7182 --- a/src/text.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7183 +++ b/src/text.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7184 @@ -67,7 +67,7 @@ text::~text()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7185 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7188 -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
7189 +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
7190 const string::size_type end, string::size_type* newPosition)
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 removeAllWords();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7193 @@ -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
7194 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7197 -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
7198 +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
7199 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
7200 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7201 encodeAndFold(os, maxLineLength, curLinePos, newLinePos, 0);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7202 @@ -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
7203 }
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7206 -const std::vector <ref <const component> > text::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7207 +const std::vector <ref <component> > text::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7208 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7209 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7210 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7211
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7212 copy_vector(m_words, list);
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 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
7215 index b44b084..441307b 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7216 --- a/src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7217 +++ b/src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7218 @@ -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
7219 }
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 +stream::size_type inputStreamAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7223 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7224 + return m_stream.tellg();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7225 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7228 +void inputStreamAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7229 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7230 + m_stream.seekg(pos, std::ios_base::beg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7231 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7232 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7233 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7234 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7235 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7236
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7237 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
7238 index 92e779f..907f1ee 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7239 --- a/src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7240 +++ b/src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7241 @@ -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
7242 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7243
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7244
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7245 +stream::size_type inputStreamByteBufferAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7246 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7247 + return m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7248 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7249 +
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 +void inputStreamByteBufferAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7252 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7253 + if (pos <= m_length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7254 + m_pos = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7255 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7256 +
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 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7259 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7260
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7261 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
7262 index 31c9fda..9b8fb0c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7263 --- a/src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7264 +++ b/src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7265 @@ -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
7266 }
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 +stream::size_type inputStreamStringAdapter::getPosition() const
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 + return m_pos - m_begin;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7274 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7275 +void inputStreamStringAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7276 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7277 + if (m_begin + pos <= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7278 + m_pos = m_begin + pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7279 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7280 +
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 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7283 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7284
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7285 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
7286 index 5e4b60b..feecddd 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7287 --- a/src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7288 +++ b/src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7289 @@ -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
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7293 +stream::size_type inputStreamStringProxyAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7294 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7295 + return m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7296 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7297 +
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 +void inputStreamStringProxyAdapter::seek(const size_type pos)
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 + if (pos <= m_buffer.length())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7302 + m_pos = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7303 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7306 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7307 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7308
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7309 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
7310 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7311 index 0000000..7a38ef1
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7312 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7313 +++ b/src/utility/parserInputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7314 @@ -0,0 +1,162 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7317 +// 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
7318 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7319 +// 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
7320 +// 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
7321 +// 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
7322 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7323 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7324 +// 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
7325 +// 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
7326 +// 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
7327 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7328 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7329 +// 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
7330 +// 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
7331 +// 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
7332 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7333 +// 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
7334 +// 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
7335 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7336 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7337 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7338 +#include "vmime/utility/parserInputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7339 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7340 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7341 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7342 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7345 +parserInputStreamAdapter::parserInputStreamAdapter(ref <seekableInputStream> stream)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7346 + : m_stream(stream)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7347 +{
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 +
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 +bool parserInputStreamAdapter::eof() const
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 + return m_stream->eof();
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7356 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7357 +void parserInputStreamAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7358 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7359 + m_stream->reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7360 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7363 +stream::size_type parserInputStreamAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7364 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7365 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7366 + return m_stream->read(data, count);
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 +ref <seekableInputStream> parserInputStreamAdapter::getUnderlyingStream()
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 + return m_stream;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7375 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7376 +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
7377 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7378 + const size_type initialPos = m_stream->getPosition();
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 + try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7381 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7382 + value_type *buffer = new value_type[end - begin + 1];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7383 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7384 + m_stream->seek(begin);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7385 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7386 + 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
7387 + buffer[readBytes] = '\0';
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 + m_stream->seek(initialPos);
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 + string str(buffer, buffer + readBytes);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7392 + delete [] buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7393 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7394 + return str;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7395 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7396 + catch (...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7397 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7398 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7399 + throw;
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 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7404 +stream::size_type parserInputStreamAdapter::findNext
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7405 + (const std::string& token, const size_type startPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7406 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7407 + static const unsigned int BUFFER_SIZE = 4096;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7408 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7409 + // Token must not be longer than BUFFER_SIZE/2
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7410 + if (token.empty() || token.length() > BUFFER_SIZE / 2)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7411 + return npos;
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 + const size_type initialPos = getPosition();
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 + seek(startPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7416 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7417 + try
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 + value_type findBuffer[BUFFER_SIZE];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7420 + value_type* findBuffer1 = findBuffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7421 + 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
7422 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7423 + size_type findBufferLen = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7424 + size_type findBufferOffset = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7425 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7426 + // Fill in initial buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7427 + findBufferLen = read(findBuffer, BUFFER_SIZE * sizeof(value_type));
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 + for (;;)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7430 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7431 + // Find token
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7432 + 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
7433 + begin <= end ; ++begin)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7434 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7435 + if (begin[0] == token[0] &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7436 + (token.length() == 1 ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7437 + memcmp(static_cast <const void *>(&begin[1]),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7438 + static_cast <const void *>(token.data() + 1),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7439 + token.length() - 1) == 0))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7440 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7441 + seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7442 + return startPosition + findBufferOffset + (begin - findBuffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7443 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7444 + }
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 + // Rotate buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7447 + memcpy(findBuffer1, findBuffer2, (BUFFER_SIZE / 2) * sizeof(value_type));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7448 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7449 + // Read more bytes
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7450 + if (findBufferLen < BUFFER_SIZE && eof())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7451 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7452 + break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7453 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7454 + else
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 + 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
7457 + findBufferLen = (BUFFER_SIZE / 2) + bytesRead;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7458 + findBufferOffset += (BUFFER_SIZE / 2);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7459 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7460 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7461 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7462 + seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7463 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7464 + catch (...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7465 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7466 + seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7467 + throw;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7470 + return npos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7471 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7474 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7475 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7476 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7477 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
7478 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7479 index 0000000..348618c
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7480 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7481 +++ b/src/utility/seekableInputStreamRegionAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7482 @@ -0,0 +1,95 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7483 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7484 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7485 +// 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
7486 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7487 +// 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
7488 +// 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
7489 +// 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
7490 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7491 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7492 +// 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
7493 +// 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
7494 +// 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
7495 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7496 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7497 +// 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
7498 +// 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
7499 +// 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
7500 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7501 +// 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
7502 +// 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
7503 +// the GNU General Public License cover the whole combination.
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7506 +#include "vmime/utility/seekableInputStreamRegionAdapter.hpp"
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7509 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7510 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7511 +
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 +seekableInputStreamRegionAdapter::seekableInputStreamRegionAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7514 + (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
7515 + : m_stream(stream), m_begin(begin), m_length(length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7516 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7517 +}
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 +bool seekableInputStreamRegionAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7521 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7522 + return getPosition() >= m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7523 +}
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 +void seekableInputStreamRegionAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7527 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7528 + m_stream->seek(m_begin);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7529 +}
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 +stream::size_type seekableInputStreamRegionAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7533 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7534 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7535 + if (getPosition() + count >= m_length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7536 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7537 + const size_type remaining = m_length - getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7538 + return m_stream->read(data, remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7539 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7540 + else
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 + return m_stream->read(data, count);
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 +}
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7547 +stream::size_type seekableInputStreamRegionAdapter::skip(const size_type count)
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 + if (getPosition() + count >= m_length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7550 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7551 + const size_type remaining = m_length - getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7552 + m_stream->skip(remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7553 + return remaining;
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 + else
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 + m_stream->skip(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7558 + return count;
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 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7561 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7562 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7563 +stream::size_type seekableInputStreamRegionAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7564 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7565 + return m_stream->getPosition() - m_begin;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7569 +void seekableInputStreamRegionAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7570 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7571 + m_stream->seek(m_begin + pos);
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7575 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7576 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7577 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7578 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
7579 index 1c940c2..67c1f33 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7580 --- a/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7581 +++ b/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7582 @@ -29,6 +29,9 @@ namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7583 namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7584
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7585
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7586 +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
7587 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7588 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7589 stream::size_type stream::getBlockSize()
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 return 32768; // 32 KB
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7592 @@ -37,3 +40,4 @@ stream::size_type stream::getBlockSize()
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 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7595 } // vmime
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 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
7598 index f1d3b9d..f7ea62f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7599 --- a/src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7600 +++ b/src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7601 @@ -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
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 +stream::size_type bufferedStreamCopyRange(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7606 + 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
7607 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7608 + const stream::size_type blockSize =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7609 + std::min(is.getBlockSize(), os.getBlockSize());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7610 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7611 + is.skip(start);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7612 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7613 + std::vector <stream::value_type> vbuffer(blockSize);
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 + stream::value_type* buffer = &vbuffer.front();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7616 + stream::size_type total = 0;
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 + while (!is.eof() && total < length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7619 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7620 + 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
7621 + const stream::size_type read = is.read(buffer, blockSize);
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 + if (read != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7624 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7625 + os.write(buffer, read);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7626 + total += read;
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 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7629 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7630 + return total;
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7633 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7634 stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7635 const stream::size_type length, progressListener* progress)
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 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
7638 index 79060a1..2876ddf 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7639 --- a/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7640 +++ b/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7641 @@ -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
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7645 -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
7646 +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
7647 const string::size_type end, string::size_type* newPosition)
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 if (position + 6 < end && // 6 = "=?(.+)?(.*)?="
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7650 @@ -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
7651 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7652
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 -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
7655 +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
7656 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
7657 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7658 generate(os, maxLineLength, curLinePos, newLinePos, 0, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7659 @@ -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
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7663 -const std::vector <ref <const component> > word::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7664 +const std::vector <ref <component> > word::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7665 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7666 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7667 + return std::vector <ref <component> >();
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
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 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
7672 index 9d51262..deb4b9c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7673 --- a/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7674 +++ b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7675 @@ -33,12 +33,14 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7676 VMIME_TEST_LIST_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7677 VMIME_TEST(testParse)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7678 VMIME_TEST(testGenerate)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7679 + VMIME_TEST(testParseGuessBoundary)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7680 VMIME_TEST(testParseMissingLastBoundary)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7681 VMIME_TEST(testPrologEpilog)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7682 VMIME_TEST(testPrologEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7683 VMIME_TEST(testSuccessiveBoundaries)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7684 VMIME_TEST(testGenerate7bit)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7685 VMIME_TEST(testTextUsageForQPEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7686 + VMIME_TEST(testParseVeryBigMessage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7687 VMIME_TEST_LIST_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7688
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 @@ -237,6 +239,93 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7691 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
7692 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7693
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7694 + void testParseGuessBoundary()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7695 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7696 + // Boundary is not specified in "Content-Type" field
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7697 + // Parser will try to guess it from message contents.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7698 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7699 + vmime::string str =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7700 + "Content-Type: multipart/mixed"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7701 + "\r\n\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7702 + "--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
7703 + "--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
7704 + "--UNKNOWN-BOUNDARY--";
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 + vmime::bodyPart p;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7707 + p.parse(str);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7708 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7709 + VASSERT_EQ("count", 2, p.getBody()->getPartCount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7710 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7711 + 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
7712 + 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
7713 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7714 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7715 + void testParseVeryBigMessage()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7716 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7717 + // 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
7718 + // 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
7719 + // should be accessible via a "streamContentHandler" object.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7720 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7721 + static const std::string BODY1_BEGIN = "BEGIN1BEGIN1BEGIN1";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7722 + static const std::string BODY1_LINE = "BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7723 + static const std::string BODY1_END = "END1END1";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7724 + static const unsigned int BODY1_REPEAT = 35000;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7725 + static const unsigned int BODY1_LENGTH =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7726 + 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
7727 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7728 + static const std::string BODY2_LINE = "BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7729 + static const unsigned int BODY2_REPEAT = 20000;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7730 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7731 + std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7732 + oss << "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7733 + << "\r\n\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7734 + << "--MY-BOUNDARY\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7735 + << "HEADER1\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7736 + << "\r\n";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7737 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7738 + oss << BODY1_BEGIN;
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 + for (unsigned int i = 0 ; i < BODY1_REPEAT ; ++i)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7741 + oss << BODY1_LINE;
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 + oss << BODY1_END;
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 + oss << "\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7746 + << "--MY-BOUNDARY\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7747 + << "HEADER2\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7748 + << "\r\n";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7749 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7750 + for (unsigned int i = 0 ; i < BODY2_REPEAT ; ++i)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7751 + oss << BODY2_LINE;
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 + oss << "\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7754 + << "--MY-BOUNDARY--\r\n";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7755 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7756 + vmime::ref <vmime::utility::inputStreamStringAdapter> is =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7757 + vmime::create <vmime::utility::inputStreamStringAdapter>(oss.str());
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 + vmime::ref <vmime::message> msg = vmime::create <vmime::message>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7760 + msg->parse(is, oss.str().length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7761 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7762 + 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
7763 + vmime::ref <const vmime::contentHandler> body1Cts = body1->getContents();
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 + 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
7766 + vmime::ref <const vmime::contentHandler> body2Cts = body2->getContents();
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 + vmime::string body1CtsExtracted;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7769 + vmime::utility::outputStreamStringAdapter body1CtsExtractStream(body1CtsExtracted);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7770 + body1Cts->extract(body1CtsExtractStream);
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 + VASSERT_EQ("1.1", BODY1_LENGTH, body1Cts->getLength());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7773 + VASSERT("1.2", body1Cts.dynamicCast <const vmime::streamContentHandler>() != NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7774 + VASSERT_EQ("1.3", BODY1_LENGTH, body1CtsExtracted.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7775 + 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
7776 + 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
7777 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7778 + 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
7779 + VASSERT("2.2", body2Cts.dynamicCast <const vmime::streamContentHandler>() != NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7780 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7781
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7782 VMIME_TEST_SUITE_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7783
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7784 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
7785 index 2e537c0..9dc283c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7786 --- a/vmime/addressList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7787 +++ b/vmime/addressList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7788 @@ -56,7 +56,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7789 addressList& operator=(const addressList& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7790 addressList& operator=(const mailboxList& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7791
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7792 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7793 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7794
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 /** Add a address at the end of the list.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7797 @@ -163,14 +163,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7798
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7799 std::vector <ref <address> > m_list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7800
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7801 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7802 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7803 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7804 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7805 +protected:
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 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7808 - 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
7809 - 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
7810 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7811 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7812 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7813 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7814 + string::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7817 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7818 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7819 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7820 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7821 };
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 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
7825 index 9e83d6b..bd5bbb9 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7826 --- a/vmime/body.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7827 +++ b/vmime/body.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7828 @@ -278,7 +278,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7829 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7830 body& operator=(const body& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7831
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7832 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7833 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7834
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7835 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7836
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7837 @@ -299,14 +299,20 @@ private:
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 void initNewPart(ref <bodyPart> part);
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 -public:
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7844 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7845 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7846
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7847 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7848 - 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
7849 - 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
7850 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7851 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7852 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7853 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7854 + utility::stream::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7857 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7858 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7859 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7860 + string::size_type* newLinePos = NULL) const;
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
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 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
7865 index aa0f040..5f36d90 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7866 --- a/vmime/bodyPart.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7867 +++ b/vmime/bodyPart.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7868 @@ -89,7 +89,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7869 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7870 bodyPart& operator=(const bodyPart& other);
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 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7873 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7874
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7875 private:
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 @@ -98,14 +98,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7878
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7879 weak_ref <bodyPart> m_parent;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7880
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7881 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7882 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7883 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7884 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7885 +protected:
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 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7888 - 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
7889 - 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
7890 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7891 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7892 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7893 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7894 + utility::stream::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7897 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7898 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7899 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7900 + string::size_type* newLinePos = NULL) const;
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 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
7905 index 5f5e8e5..26abb4f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7906 --- a/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7907 +++ b/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7908 @@ -62,7 +62,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7909 bool operator==(const charset& value) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7910 bool operator!=(const charset& value) const;
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 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7913 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7914
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7915 /** Gets the recommended encoding for this charset.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7916 * Note: there may be no recommended encoding.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7917 @@ -117,14 +117,20 @@ private:
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 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7920
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7921 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7922 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7923 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7924 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7925 +protected:
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 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7928 - 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
7929 - 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
7930 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7931 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7932 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7933 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7934 + string::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7937 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7938 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7939 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7940 + string::size_type* newLinePos = NULL) 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 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
7945 index 12b0406..5e6f393 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7946 --- a/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7947 +++ b/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7948 @@ -27,6 +27,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7949
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7950 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7951 #include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7952 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7953 +#include "vmime/utility/parserInputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7954 #include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7955
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 @@ -51,6 +53,12 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7958 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7959 void parse(const string& buffer);
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 + /** 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
7962 + * 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
7963 + * be loaded into memory before parsing.
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 + 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
7966 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7967 /** Parse RFC-822/MIME data for this component.
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 * @param buffer input buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7970 @@ -58,7 +66,26 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7971 * @param end end position in the input buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7972 * @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
7973 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7974 - 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
7975 + void parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7976 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7977 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7978 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7979 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7980 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7981 + /** 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
7982 + * 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
7983 + * be loaded into memory before parsing.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7984 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7985 + * @param inputStream stream from which to read data
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7986 + * @param position current position in the input stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7987 + * @param end end position in the input stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7988 + * @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
7989 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7990 + void parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7991 + (ref <utility::inputStream> inputStream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7992 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7993 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7994 + utility::stream::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7995
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7996 /** Generate RFC-2822/MIME data for this component.
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 @@ -68,16 +95,35 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7999 * @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
8000 * @return generated data
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8001 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8002 - 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
8003 + virtual const string generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8004 + (const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8005 + const string::size_type curLinePos = 0) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8006
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8007 /** Generate RFC-2822/MIME data for this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8008 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8009 - * @param os output stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8010 + * @param outputStream output stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8011 * @param maxLineLength maximum line length for output
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8012 * @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
8013 * @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
8014 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8015 - 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
8016 + virtual void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8017 + (utility::outputStream& outputStream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8018 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8019 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8020 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8021 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8022 + /** Generate RFC-2822/MIME data for this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8023 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8024 + * @param outputStream output stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8025 + * @param maxLineLength maximum line length for output
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8026 + * @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
8027 + * @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
8028 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8029 + virtual void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8030 + (ref <utility::outputStream> outputStream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8031 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8032 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8033 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8034
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8035 /** Clone this component.
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 @@ -95,41 +141,56 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8038 virtual void copyFrom(const component& other) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8039
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8040 /** Return the start position of this component in the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8041 - * parsed message contents.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8042 + * parsed message contents. Use for debugging only.
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 * @return start position in parsed buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8045 * or 0 if this component has not been parsed
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8046 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8047 - string::size_type getParsedOffset() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8048 + utility::stream::size_type getParsedOffset() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8049
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8050 /** Return the length of this component in the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8051 - * parsed message contents.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8052 + * parsed message contents. Use for debugging only.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8053 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8054 * @return length of the component in parsed buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8055 * or 0 if this component has not been parsed
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8056 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8057 - string::size_type getParsedLength() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8058 + utility::stream::size_type getParsedLength() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8059
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8060 /** Return the list of children of this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8061 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8062 * @return list of child components
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 - const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8065 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8066 - /** 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
8067 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8068 - * @return list of child components
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8069 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8070 - 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
8071 + virtual const std::vector <ref <component> > getChildComponents() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8072
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8073 protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8074
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8075 - 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
8076 + 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
8077 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8078 + // 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
8079 + virtual void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8080 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8081 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8082 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8083 + utility::stream::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8084 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8085 + virtual void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8086 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8087 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8088 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8089 + string::size_type* newPosition = NULL);
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 + virtual void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8092 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8093 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8094 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8095 + string::size_type* newLinePos = NULL) const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8096
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8097 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8098
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8099 - string::size_type m_parsedOffset;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8100 - string::size_type m_parsedLength;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8101 + void offsetParsedBounds(const utility::stream::size_type offset);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8102 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8103 + utility::stream::size_type m_parsedOffset;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8104 + utility::stream::size_type m_parsedLength;
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8107
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8108 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
8109 index 9d1749b..abd2e1a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8110 --- a/vmime/contentDisposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8111 +++ b/vmime/contentDisposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8112 @@ -63,7 +63,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8113 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8114 contentDisposition& operator=(const contentDisposition& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8115
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8116 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8117 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8118
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8119
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8120 contentDisposition& operator=(const string& name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8121 @@ -75,14 +75,20 @@ private:
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 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8124
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8125 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8126 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8127 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8128 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8129 +protected:
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 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8132 - 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
8133 - 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
8134 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8135 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8136 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8137 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8138 + string::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8141 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8142 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8143 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8144 + string::size_type* newLinePos = NULL) const;
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8147
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8148 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
8149 index 8e99640..053f4a6 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8150 --- a/vmime/dateTime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8151 +++ b/vmime/dateTime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8152 @@ -237,16 +237,22 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8153 // Current date and time
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8154 static const datetime now();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8155
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8156 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8157 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8158
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8159 -public:
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8162 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8163 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8164
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8165 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8166 - 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
8167 - 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
8168 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8169 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8170 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8171 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8172 + string::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8175 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8176 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8177 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8178 + string::size_type* newLinePos = NULL) const;
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
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 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
8183 index 05bfca2..7bdc832 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8184 --- a/vmime/disposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8185 +++ b/vmime/disposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8186 @@ -50,7 +50,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8187 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8188 disposition& operator=(const disposition& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8189
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8190 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8191 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8192
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8193
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8194 /** Set the disposition action mode.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8195 @@ -134,14 +134,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8196
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8197 std::vector <string> m_modifiers;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8198
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8199 -public:
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8202 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8203 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8204
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8205 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8206 - 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
8207 - 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
8208 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8209 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8210 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8211 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8212 + string::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8215 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8216 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8217 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8218 + string::size_type* newLinePos = NULL) const;
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
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 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
8223 index 42f5246..4322b29 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8224 --- a/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8225 +++ b/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8226 @@ -93,7 +93,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8227 bool operator==(const encoding& value) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8228 bool operator!=(const encoding& value) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8229
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8230 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8231 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8232
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8233 /** 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
8234 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8235 @@ -141,14 +141,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8236 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8237 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
8238
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8239 -public:
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8242 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8243 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8244
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8245 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8246 - 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
8247 - 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
8248 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8249 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8250 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8251 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8252 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8253 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8254 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8255 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8256 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8257 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8258 + string::size_type* newLinePos = NULL) const;
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8261
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8262 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
8263 index 95a9326..ed555b0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8264 --- a/vmime/header.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8265 +++ b/vmime/header.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8266 @@ -220,7 +220,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8267 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8268 header& operator=(const header& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8269
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8270 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8271 + const std::vector <ref <component> > getChildComponents();
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 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8274
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8275 @@ -251,14 +251,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8276 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8277 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8278
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8279 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8280 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8281 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8282 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8283 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8284
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8285 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8286 - 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
8287 - 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
8288 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8289 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8290 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8291 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8292 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8293 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8294 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8295 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8296 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8297 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8298 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8299 };
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8302 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
8303 index 50494c9..61e01ee 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8304 --- a/vmime/headerField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8305 +++ b/vmime/headerField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8306 @@ -59,7 +59,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8307 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8308 headerField& operator=(const headerField& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8309
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8310 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8311 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8312
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8313 /** Sets the name of this field.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8314 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8315 @@ -118,15 +118,26 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8316 void setValue(const string& value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8317
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8318
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8319 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8320 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8321 +protected:
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 - 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
8324 - 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
8325 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8326 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8327 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8328 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8329 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8330 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8331 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8332 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8333 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8334 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8335 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8336
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8337 -protected:
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 - 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
8340 + static ref <headerField> parseNext
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8341 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8342 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8343 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8344 + string::size_type* newPosition = NULL);
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8347 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8348 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
8349 index 2072be8..2099355 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8350 --- a/vmime/mailbox.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8351 +++ b/vmime/mailbox.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8352 @@ -85,7 +85,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8353
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8354 void clear();
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 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8357 + const std::vector <ref <component> > getChildComponents();
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8360 bool isGroup() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8361 @@ -101,8 +101,17 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8362 using address::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8363
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8364 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8365 - 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
8366 - 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
8367 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8368 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8369 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8370 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8371 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8372 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8373 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8374 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8375 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8376 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8377 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8378 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8379
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8380
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8381 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
8382 index 0061d5b..1433141 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8383 --- a/vmime/mailboxGroup.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8384 +++ b/vmime/mailboxGroup.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8385 @@ -52,7 +52,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8386 ref <component> clone() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8387 mailboxGroup& operator=(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8388
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8389 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8390 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8391
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8392 /** Return the name of the group.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8393 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8394 @@ -165,14 +165,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8395 text m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8396 std::vector <ref <mailbox> > m_list;
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 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8399 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8400 - using address::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8401 - using address::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8402 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8403
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8404 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8405 - 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
8406 - 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
8407 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8408 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8409 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8410 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8411 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8412 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8413 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8414 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8415 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8416 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8417 + string::size_type* newLinePos = NULL) const;
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8420
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8421 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
8422 index 11e4e79..1b480c1 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8423 --- a/vmime/mailboxList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8424 +++ b/vmime/mailboxList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8425 @@ -51,7 +51,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8426 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8427 mailboxList& operator=(const mailboxList& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8428
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8429 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8430 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8431
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8432 /** Add a mailbox at the end of the list.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8433 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8434 @@ -155,14 +155,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8435
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8436 addressList m_list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8437
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8438 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8439 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8440 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8441 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8442 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8443
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8444 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8445 - 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
8446 - 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
8447 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8448 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8449 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8450 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8451 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8452 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8453 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8454 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8455 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8456 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8457 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8458 };
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8461 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
8462 index 658b21f..18182f0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8463 --- a/vmime/mediaType.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8464 +++ b/vmime/mediaType.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8465 @@ -55,7 +55,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8466 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8467 mediaType& operator=(const mediaType& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8468
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8469 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8470 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8471
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8472 /** Return the media type.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8473 * See the constants in vmime::mediaTypes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8474 @@ -97,14 +97,18 @@ protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8475 string m_type;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8476 string m_subType;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8477
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8478 -public:
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8481 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8482 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8483 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8484 - 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
8485 - 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
8486 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8487 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8488 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8489 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8490 + string::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8493 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8494 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8495 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8496 + string::size_type* newLinePos = NULL) const;
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
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 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
8501 index f3be229..9767564 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8502 --- a/vmime/message.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8503 +++ b/vmime/message.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8504 @@ -43,12 +43,25 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8505 message();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8506
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8507
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8508 - // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8509 - 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
8510 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8511 - 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
8512 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8513
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8514 - void parse(const string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8515 + // Override default generate() functions so that we can change
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8516 + // the default 'maxLineLength' value
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8517 + void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8518 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8519 + const string::size_type maxLineLength = options::getInstance()->message.maxLineLength(),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8520 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8521 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8522 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8523 + const string generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8524 + (const string::size_type maxLineLength = options::getInstance()->message.maxLineLength(),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8525 + const string::size_type curLinePos = 0) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8526 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8527 + void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8528 + (ref <utility::outputStream> os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8529 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8530 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8531 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8532 };
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8535 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
8536 index 3686b11..ac408e6 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8537 --- a/vmime/messageId.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8538 +++ b/vmime/messageId.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8539 @@ -97,23 +97,27 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8540 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8541 messageId& operator=(const messageId& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8542
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8543 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8544 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8545
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8546 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8547
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8548 string m_left;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8549 string m_right;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8550
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8551 -public:
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8554 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8555 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8556
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8557 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8558 - 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
8559 - 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
8560 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8561 -protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8562 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8563 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8564 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8565 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8566 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8567 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8568 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8569 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8570 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8571 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8572 + string::size_type* newLinePos = NULL) const;
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 /** Parse a message-id from an input buffer.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8575 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8576 @@ -123,7 +127,11 @@ protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8577 * @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
8578 * @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
8579 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8580 - 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
8581 + static ref <messageId> parseNext
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8582 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8583 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8584 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8585 + string::size_type* newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8586 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8587
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8588
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8589 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
8590 index 5dfb840..6736d0a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8591 --- a/vmime/messageIdSequence.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8592 +++ b/vmime/messageIdSequence.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8593 @@ -49,7 +49,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8594 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8595 messageIdSequence& operator=(const messageIdSequence& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8596
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8597 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8598 + const std::vector <ref <component> > getChildComponents();
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 /** 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
8602 @@ -148,14 +148,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8603
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8604 std::vector <ref <messageId> > m_list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8605
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8606 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8607 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8608 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8609 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8610 +protected:
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 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8613 - 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
8614 - 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
8615 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8616 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8617 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8618 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8619 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8620 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8621 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8622 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8623 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8624 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8625 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8626 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8627
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8628
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8629 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
8630 index e1b13a1..0773ea6 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8631 --- a/vmime/parameter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8632 +++ b/vmime/parameter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8633 @@ -67,7 +67,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8634 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8635 parameter& operator=(const parameter& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8636
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8637 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8638 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8639
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8640 /** Return the name of this parameter.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8641 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8642 @@ -104,7 +104,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8643 const T getValueAs() const
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 T ret;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8646 - ret.parse(m_value.getBuffer());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8647 + ret.parse(m_value->getBuffer());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8648
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8649 return ret;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8650 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8651 @@ -122,11 +122,19 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8652 void setValue(const word& value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8653
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8656 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8657 +protected:
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 - 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
8660 - 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
8661 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8662 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8663 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8664 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8665 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8666 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8667 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8668 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8669 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8670 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8671 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8672
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8673 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8674
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8675 @@ -134,7 +142,7 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8676
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 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8679 - word m_value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8680 + ref <word> m_value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8681 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8682
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8683
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8684 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
8685 index 2940ca3..d2c934f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8686 --- a/vmime/parameterizedHeaderField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8687 +++ b/vmime/parameterizedHeaderField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8688 @@ -172,19 +172,25 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8689 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8690 const std::vector <ref <parameter> > getParameterList();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8691
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8692 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8693 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8694 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8695
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8696 std::vector <ref <parameter> > m_params;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8697
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8698 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8699 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8700 - using headerField::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8701 - using headerField::generate;
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 - 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
8704 - 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
8705 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8706
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8707 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8708 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8709 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8710 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8711 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8712 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8713 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8714 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8715 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8716 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8717 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8718 + string::size_type* newLinePos = NULL) const;
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8721
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8722 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
8723 index 9b075f7..d4f1246 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8724 --- a/vmime/parserHelpers.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8725 +++ b/vmime/parserHelpers.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8726 @@ -45,6 +45,10 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8727 return (c == ' ' || c == '\t' || c == '\n' || c == '\r');
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8728 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8729
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8730 + static bool isSpaceOrTab(const char_t c)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8731 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8732 + return (c == ' ' || c == '\t');
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8733 + }
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 static bool isDigit(const char_t c)
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 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
8738 index beaa72b..eec8dfc 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8739 --- a/vmime/path.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8740 +++ b/vmime/path.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8741 @@ -76,21 +76,26 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8742 ref <component> clone() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8743 path& operator=(const path& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8744
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8745 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8746 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8747
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8748 protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8749
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8750 string m_localPart;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8751 string m_domain;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8752
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8753 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8754 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8755 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8756 - using component::generate;
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 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8759 - 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
8760 - 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
8761 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8762 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8763 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8764 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8765 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8766 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8767 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8768 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8769 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8770 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8771 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8772 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8773
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8774
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8775 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
8776 index 70986df..704b7b0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8777 --- a/vmime/platforms/posix/posixFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8778 +++ b/vmime/platforms/posix/posixFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8779 @@ -26,6 +26,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8780
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 #include "vmime/utility/file.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8783 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8784
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8785
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8786 #if VMIME_HAVE_FILESYSTEM_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8787 @@ -57,7 +58,7 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8788
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8789
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 -class posixFileReaderInputStream : public vmime::utility::inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8792 +class posixFileReaderInputStream : public vmime::utility::seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8793 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8794 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8795
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8796 @@ -72,6 +73,9 @@ public:
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 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8799
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8800 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8801 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8802 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8803 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8804
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8805 const vmime::utility::file::path m_path;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8806 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
8807 index 6e1c8fb..f417032 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8808 --- a/vmime/platforms/windows/windowsFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8809 +++ b/vmime/platforms/windows/windowsFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8810 @@ -26,6 +26,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8811
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 #include "vmime/utility/file.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8814 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8815
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8816 #include <windows.h>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8817
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8818 @@ -157,6 +158,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8819 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8820 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
8821 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8822 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8823 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8824
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8825 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8826
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8827 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
8828 index 583ad80..dbaedf2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8829 --- a/vmime/relay.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8830 +++ b/vmime/relay.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8831 @@ -51,7 +51,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8832 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8833 relay& operator=(const relay& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8834
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8835 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8836 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8837
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8838 const string& getFrom() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8839 void setFrom(const string& from);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8840 @@ -85,13 +85,19 @@ private:
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 datetime m_date;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8843
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8844 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8845 +protected:
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8848 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8849 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8850 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8851 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8852 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8853 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8854
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8855 - 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
8856 - 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
8857 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8858 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8859 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8860 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8861 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8862 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8863
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8864
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8865 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
8866 index 15e11ae..778ce86 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8867 --- a/vmime/text.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8868 +++ b/vmime/text.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8869 @@ -58,7 +58,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8870 text& operator=(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8871 text& operator=(const text& other);
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 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8874 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8875
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8876 /** Add a word at the end of the list.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8877 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8878 @@ -226,13 +226,20 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8879 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8880 static text* decodeAndUnfold(const string& in, text* generateInExisting);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8881
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8882 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8883 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8884 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8885 +protected:
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 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8888 - 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
8889 - 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
8890 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8891 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8892 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8893 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8894 + string::size_type* newPosition = NULL);
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 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8897 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8898 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8899 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8900 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8901
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8902 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8903
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8904 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
8905 index 278ab52..bd4d21e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8906 --- a/vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8907 +++ b/vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8908 @@ -25,7 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8909 #define VMIME_UTILITY_INPUTSTREAMADAPTER_HPP_INCLUDED
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8912 -#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8913 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8914
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8915 #include <istream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8916
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8917 @@ -37,7 +37,7 @@ namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8918 /** An adapter class for C++ standard input streams.
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8921 -class inputStreamAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8922 +class inputStreamAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8923 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8924 public:
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 @@ -49,6 +49,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8927 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8928 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
8929 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8930 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8931 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8932
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8933 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8934
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8935 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
8936 index 0f6a442..b3dafd9 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8937 --- a/vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8938 +++ b/vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8939 @@ -25,7 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8940 #define VMIME_UTILITY_INPUTSTREAMBYTEBUFFERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8941
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8942
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8943 -#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8944 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8945
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8946
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8947 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8948 @@ -35,7 +35,7 @@ namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8949 /** 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
8950 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8951
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8952 -class inputStreamByteBufferAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8953 +class inputStreamByteBufferAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8954 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8955 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8956
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8957 @@ -45,6 +45,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8958 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8959 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
8960 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8961 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8962 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8963
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8964 private:
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 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
8967 index a7d986f..18a9083 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8968 --- a/vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8969 +++ b/vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8970 @@ -25,7 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8971 #define VMIME_UTILITY_INPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8972
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 -#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8975 +#include "vmime/utility/seekableInputStream.hpp"
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8978 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8979 @@ -35,7 +35,7 @@ namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8980 /** An adapter class for string input.
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 -class inputStreamStringAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8984 +class inputStreamStringAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8985 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8986 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8987
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8988 @@ -46,6 +46,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8989 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8990 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
8991 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8992 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8993 + void seek(const size_type pos);
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 private:
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 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
8998 index 74b3f60..dc52637 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8999 --- a/vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9000 +++ b/vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9001 @@ -25,7 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9002 #define VMIME_UTILITY_INPUTSTREAMSTRINGPROXYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9003
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9004
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9005 -#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9006 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9007
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9008
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9009 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9010 @@ -38,7 +38,7 @@ class stringProxy;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9011 /** An adapter class for stringProxy input.
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9014 -class inputStreamStringProxyAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9015 +class inputStreamStringProxyAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9016 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9017 public:
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 @@ -50,6 +50,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9020 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9021 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
9022 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9023 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9024 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9025
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9026 private:
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 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
9029 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9030 index 0000000..c24fa44
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9031 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9032 +++ b/vmime/utility/parserInputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9033 @@ -0,0 +1,173 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9034 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9035 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9036 +// 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
9037 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9038 +// 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
9039 +// 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
9040 +// 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
9041 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9042 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9043 +// 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
9044 +// 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
9045 +// 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
9046 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9047 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9048 +// 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
9049 +// 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
9050 +// 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
9051 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9052 +// 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
9053 +// 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
9054 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9055 +//
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 +#ifndef VMIME_UTILITY_PARSERINPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9058 +#define VMIME_UTILITY_PARSERINPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9059 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9060 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9061 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9062 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9063 +#include <cstring>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9064 +
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9067 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9068 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9069 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9070 +/** 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
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 +class parserInputStreamAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9074 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9075 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9076 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9077 + /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9078 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9079 + parserInputStreamAdapter(ref <seekableInputStream> inputStream);
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 + ref <seekableInputStream> getUnderlyingStream();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9082 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9083 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9084 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9085 + 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
9086 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9087 + void seek(const size_type pos)
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 + m_stream->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9090 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9091 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9092 + size_type skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9093 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9094 + return m_stream->skip(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9095 + }
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 getPosition() const
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 + return m_stream->getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9100 + }
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 + /** 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
9103 + * current position.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9104 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9105 + * @return byte at the current position
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9106 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9107 + value_type peekByte() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9108 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9109 + const size_type initialPos = m_stream->getPosition();
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 + try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9112 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9113 + value_type buffer[1];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9114 + const size_type readBytes = m_stream->read(buffer, 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9115 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9116 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9117 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9118 + return (readBytes == 1 ? buffer[0] : 0);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9119 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9120 + catch (...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9121 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9122 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9123 + throw;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9124 + }
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9127 + /** 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
9128 + * position by one byte.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9129 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9130 + * @return byte at the current position
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9131 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9132 + value_type getByte()
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 + value_type buffer[1];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9135 + const size_type readBytes = m_stream->read(buffer, 1);
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 + return (readBytes == 1 ? buffer[0] : 0);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9138 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9139 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9140 + /** Check whether the bytes following the current position match
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9141 + * the specified bytes. Position is not updated.
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 + * @param bytes bytes to compare
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9144 + * @param length number of bytes
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9145 + * @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
9146 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9147 + 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
9148 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9149 + const size_type initialPos = m_stream->getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9150 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9151 + try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9152 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9153 + value_type buffer[32];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9154 + const size_type readBytes = m_stream->read(buffer, length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9155 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9156 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9157 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9158 + return readBytes == length &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9159 + ::memcmp(bytes, buffer, length) == 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9160 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9161 + catch (...)
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 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9164 + throw;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9165 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9166 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9167 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9168 + 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
9169 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9170 + /** Skips bytes matching a predicate from the current position.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9171 + * 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
9172 + * which does not match the predicate.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9173 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9174 + * @param pred predicate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9175 + * @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
9176 + * whichever comes first)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9177 + * @return number of bytes skipped
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 + template <typename PREDICATE>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9180 + size_type skipIf(PREDICATE pred, const size_type endPosition)
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 + const size_type initialPos = getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9183 + size_type pos = initialPos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9184 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9185 + while (!m_stream->eof() && pos < endPosition && pred(getByte()))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9186 + ++pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9187 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9188 + m_stream->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9189 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9190 + return pos - initialPos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9191 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9192 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9193 + 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
9194 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9195 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9196 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9197 + mutable ref <seekableInputStream> m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9198 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9199 +
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 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9202 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9203 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9204 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9205 +#endif // VMIME_UTILITY_PARSERINPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9206 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9207 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
9208 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9209 index 0000000..c2ab1bb
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9210 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9211 +++ b/vmime/utility/seekableInputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9212 @@ -0,0 +1,64 @@
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 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9215 +// 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
9216 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9217 +// 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
9218 +// 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
9219 +// 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
9220 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9221 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9222 +// 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
9223 +// 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
9224 +// 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
9225 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9226 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9227 +// 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
9228 +// 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
9229 +// 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
9230 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9231 +// 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
9232 +// 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
9233 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9234 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9235 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9236 +#ifndef VMIME_UTILITY_SEEKABLEINPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9237 +#define VMIME_UTILITY_SEEKABLEINPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9238 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9239 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9240 +#include "vmime/utility/inputStream.hpp"
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9243 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9244 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9247 +/** An input stream that allows seeking within the input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9248 + */
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 +class seekableInputStream : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9251 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9252 +public:
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 + /** Returns the current position in this stream.
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 + * @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
9257 + * at which the next read occurs
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9258 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9259 + virtual size_type getPosition() const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9260 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9261 + /** 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
9262 + * at which the next read occurs.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9263 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9264 + * @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
9265 + * 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
9266 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9267 + virtual void seek(const size_type pos) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9268 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9269 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9270 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9271 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9272 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9273 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9274 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9275 +#endif // VMIME_UTILITY_SEEKABLEINPUTSTREAM_HPP_INCLUDED
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 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
9278 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9279 index 0000000..5ebccc6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9280 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9281 +++ b/vmime/utility/seekableInputStreamRegionAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9282 @@ -0,0 +1,71 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9283 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9284 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9285 +// 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
9286 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9287 +// 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
9288 +// 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
9289 +// 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
9290 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9291 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9292 +// 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
9293 +// 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
9294 +// 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
9295 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9296 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9297 +// 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
9298 +// 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
9299 +// 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
9300 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9301 +// 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
9302 +// 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
9303 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9304 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9305 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9306 +#ifndef VMIME_UTILITY_SEEKABLEINPUTSTREAMREGIONADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9307 +#define VMIME_UTILITY_SEEKABLEINPUTSTREAMREGIONADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9308 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9309 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9310 +#include "vmime/utility/seekableInputStream.hpp"
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 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9314 +namespace utility {
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9317 +/** 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
9318 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9319 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9320 +class seekableInputStreamRegionAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9321 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9322 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9323 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9324 + /** Creates a new adapter for a seekableInputStream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9325 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9326 + * @param stream source stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9327 + * @param begin start position in source stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9328 + * @param length region length in source stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9329 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9330 + seekableInputStreamRegionAdapter(ref <seekableInputStream> stream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9331 + const size_type begin, const size_type length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9332 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9333 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9334 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9335 + 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
9336 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9337 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9338 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9339 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9340 +private:
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 + ref <seekableInputStream> m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9343 + size_type m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9344 + size_type m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9345 +};
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9348 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9349 +} // vmime
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 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9352 +#endif // VMIME_UTILITY_SEEKABLEINPUTSTREAMREGIONADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9353 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9354 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
9355 index 566ab9d..78be827 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9356 --- a/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9357 +++ b/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9358 @@ -54,6 +54,10 @@ public:
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 typedef string::size_type size_type;
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 + /** 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
9363 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9364 + static const size_type npos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9365 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9366 /** Return the preferred maximum block size when reading
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9367 * from or writing to this stream.
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 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
9370 index cdf70aa..87c8fc5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9371 --- a/vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9372 +++ b/vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9373 @@ -45,6 +45,19 @@ namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9374 stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os);
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 /** 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
9377 + * and copying only a specified range of data.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9378 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9379 + * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9380 + * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9381 + * @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
9382 + * @param length maximum number of bytes to copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9383 + * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9384 + */
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 +stream::size_type bufferedStreamCopyRange(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9387 + 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
9388 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9389 +/** 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
9390 * and notify progress state of the operation.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9391 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9392 * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9393 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
9394 index ad848ec..492aab5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9395 --- a/vmime/word.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9396 +++ b/vmime/word.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9397 @@ -128,21 +128,52 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9398 #endif
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 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9402 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9403 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9404
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9405 - 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
9406 - 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
9407 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9408 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9409 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9410 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9411 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9412
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9413 - 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
9414 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9415 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9416 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9417 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9418 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9419
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9420 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9421 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9422
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9423 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9424 + using component::generate;
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 - 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
9427 +#ifndef VMIME_BUILDING_DOC
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9428 + void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9429 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9430 + const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9431 + const string::size_type curLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9432 + string::size_type* newLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9433 + const int flags,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9434 + generatorState* state) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9435 +#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9436 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9437 + const std::vector <ref <component> > getChildComponents();
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 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9440
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9441 - 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
9442 + static ref <word> parseNext
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9443 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9444 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9445 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9446 + string::size_type* newPosition,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9447 + bool prevIsEncoded,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9448 + bool* isEncoded,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9449 + bool isFirst);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9450 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9451 + static const std::vector <ref <word> > parseMultiple
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9452 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9453 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9454 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9455 + string::size_type* newPosition);
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9458 // 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
9459 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9460 1.7.10.4
2573
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
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9463 From 2e05e574fde890c7ec6dd9f3930d06b1b492ea80 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9464 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9465 Date: Fri, 27 Apr 2012 08:34:26 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
9466 Subject: [PATCH 38/47] Fixed duplicate file reference (thanks to Enes Albay).
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9467
2573
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 diff --git a/SConstruct b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9470 index 2690172..1f3c7c9 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9471 --- a/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9472 +++ b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9473 @@ -137,7 +137,6 @@ libvmime_sources = [
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9474 'utility/childProcess.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9475 'utility/file.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9476 'utility/datetimeUtils.cpp', 'utility/datetimeUtils.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9477 - 'utility/filteredStream.cpp', 'utility/filteredStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9478 'utility/path.cpp', 'utility/path.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9479 'utility/progressListener.cpp', 'utility/progressListener.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9480 'utility/random.cpp', 'utility/random.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9481 --
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9482 1.7.10.4
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9483
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9484
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9485 From 799629fd8b21a716f3e3abc6e6a5264555470d85 Mon Sep 17 00:00:00 2001
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9486 From: Vincent Richard <vincent@vincent-richard.net>
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9487 Date: Fri, 6 Jul 2012 18:45:02 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
9488 Subject: [PATCH 39/47] Fixed issue #10.
2659
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9489
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9490
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9491 diff --git a/src/net/imap/IMAPMessage.cpp b/src/net/imap/IMAPMessage.cpp
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9492 index 702d5f2..8006920 100644
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9493 --- a/src/net/imap/IMAPMessage.cpp
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9494 +++ b/src/net/imap/IMAPMessage.cpp
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9495 @@ -279,8 +279,6 @@ void IMAPMessage::extract(ref <const part> p, utility::outputStream& os,
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9496 {
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9497 if (headerOnly)
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9498 command << "HEADER";
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9499 - else
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9500 - command << "TEXT";
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9501 }
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9502 else
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9503 {
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9504 --
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9505 1.7.10.4
49ecbfac69b1 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2573
diff changeset
9506
2711
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9507
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9508 From 72cf7a025f7764998609683904eea1046a766d97 Mon Sep 17 00:00:00 2001
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9509 From: Vincent Richard <vincent@vincent-richard.net>
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9510 Date: Sat, 28 Jul 2012 13:01:48 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
9511 Subject: [PATCH 40/47] Added functions to get messages by UID (IMAP only for
2711
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9512 now).
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9513
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9514
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9515 diff --git a/src/net/imap/IMAPFolder.cpp b/src/net/imap/IMAPFolder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9516 index 81bf386..3d8c17e 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9517 --- a/src/net/imap/IMAPFolder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9518 +++ b/src/net/imap/IMAPFolder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9519 @@ -208,7 +208,7 @@ void IMAPFolder::open(const int mode, bool failIfModeIsNotAvailable)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9520 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9521 case IMAPParser::resp_text_code::UIDVALIDITY:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9522
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9523 - m_uidValidity = code->nz_number()->value();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9524 + m_uidValidity = static_cast <unsigned int>(code->nz_number()->value());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9525 break;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9526
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9527 default:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9528 @@ -550,6 +550,109 @@ std::vector <ref <message> > IMAPFolder::getMessages(const std::vector <int>& nu
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9529 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9530
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9531
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9532 +ref <message> IMAPFolder::getMessageByUID(const message::uid& uid)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9533 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9534 + std::vector <message::uid> uids;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9535 + uids.push_back(uid);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9536 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9537 + std::vector <ref <message> > msgs = getMessagesByUID(uids);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9538 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9539 + if (msgs.size() == 0)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9540 + throw exceptions::message_not_found();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9541 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9542 + return msgs[0];
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9543 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9544 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9545 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9546 +std::vector <ref <message> > IMAPFolder::getMessagesByUID(const std::vector <message::uid>& uids)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9547 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9548 + if (!isOpen())
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9549 + throw exceptions::illegal_state("Folder not open");
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9550 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9551 + if (uids.size() == 0)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9552 + return std::vector <ref <message> >();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9553 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9554 + // C: . UID FETCH uuuu1,uuuu2,uuuu3 UID
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9555 + // S: * nnnn1 FETCH (UID uuuu1)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9556 + // S: * nnnn2 FETCH (UID uuuu2)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9557 + // S: * nnnn3 FETCH (UID uuuu3)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9558 + // S: . OK UID FETCH completed
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9559 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9560 + // Prepare command and arguments
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9561 + std::ostringstream cmd;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9562 + cmd.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9563 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9564 + cmd << "UID FETCH " << IMAPUtils::extractUIDFromGlobalUID(uids[0]);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9565 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9566 + for (unsigned int i = 1, n = uids.size() ; i < n ; ++i)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9567 + cmd << "," << IMAPUtils::extractUIDFromGlobalUID(uids[i]);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9568 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9569 + cmd << " UID";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9570 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9571 + // Send the request
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9572 + m_connection->send(true, cmd.str(), true);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9573 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9574 + // Get the response
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9575 + utility::auto_ptr <IMAPParser::response> resp(m_connection->readResponse());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9576 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9577 + if (resp->isBad() || resp->response_done()->response_tagged()->
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9578 + resp_cond_state()->status() != IMAPParser::resp_cond_state::OK)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9579 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9580 + throw exceptions::command_error("UID FETCH ... UID", m_connection->getParser()->lastLine(), "bad response");
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9581 + }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9582 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9583 + // Process the response
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9584 + const std::vector <IMAPParser::continue_req_or_response_data*>& respDataList =
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9585 + resp->continue_req_or_response_data();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9586 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9587 + std::vector <ref <message> > messages;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9588 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9589 + for (std::vector <IMAPParser::continue_req_or_response_data*>::const_iterator
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9590 + it = respDataList.begin() ; it != respDataList.end() ; ++it)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9591 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9592 + if ((*it)->response_data() == NULL)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9593 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9594 + throw exceptions::command_error("UID FETCH ... UID",
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9595 + m_connection->getParser()->lastLine(), "invalid response");
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9596 + }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9597 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9598 + const IMAPParser::message_data* messageData =
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9599 + (*it)->response_data()->message_data();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9600 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9601 + // We are only interested in responses of type "FETCH"
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9602 + if (messageData == NULL || messageData->type() != IMAPParser::message_data::FETCH)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9603 + continue;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9604 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9605 + // Get Process fetch response for this message
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9606 + const int msgNum = static_cast <int>(messageData->number());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9607 + message::uid msgUID, msgFullUID;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9608 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9609 + // Find UID in message attributes
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9610 + const std::vector <IMAPParser::msg_att_item*> atts = messageData->msg_att()->items();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9611 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9612 + for (std::vector <IMAPParser::msg_att_item*>::const_iterator
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9613 + it = atts.begin() ; it != atts.end() ; ++it)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9614 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9615 + if ((*it)->type() == IMAPParser::msg_att_item::UID)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9616 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9617 + msgFullUID = IMAPUtils::makeGlobalUID(m_uidValidity, (*it)->unique_id()->value());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9618 + msgUID = (*it)->unique_id()->value();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9619 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9620 + break;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9621 + }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9622 + }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9623 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9624 + if (!msgUID.empty())
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9625 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9626 + ref <IMAPFolder> thisFolder = thisRef().dynamicCast <IMAPFolder>();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9627 + messages.push_back(vmime::create <IMAPMessage>(thisFolder, msgNum, msgFullUID));
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9628 + }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9629 + }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9630 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9631 + return messages;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9632 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9633 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9634 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9635 int IMAPFolder::getMessageCount()
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9636 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9637 if (!isOpen())
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9638 @@ -730,7 +833,7 @@ void IMAPFolder::fetchMessages(std::vector <ref <message> >& msg, const int opti
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9639
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9640 if (msg != numberToMsg.end())
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9641 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9642 - (*msg).second->processFetchResponse(options, messageData->msg_att());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9643 + (*msg).second->processFetchResponse(options, messageData);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9645 if (progress)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9646 progress->progress(++current, total);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9647 @@ -1781,7 +1884,7 @@ std::vector <int> IMAPFolder::getMessageNumbersStartingOnUID(const message::uid&
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9648 std::ostringstream command;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9649 command.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9650
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9651 - command << "SEARCH UID " << uid;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9652 + command << "SEARCH UID " << uid << ":*";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9653
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9654 // Send the request
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9655 m_connection->send(true, command.str(), true);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9656 diff --git a/src/net/imap/IMAPMessage.cpp b/src/net/imap/IMAPMessage.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9657 index 8006920..7202a7d 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9658 --- a/src/net/imap/IMAPMessage.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9659 +++ b/src/net/imap/IMAPMessage.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9660 @@ -98,6 +98,14 @@ IMAPMessage::IMAPMessage(ref <IMAPFolder> folder, const int num)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9661 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9662
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9663
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9664 +IMAPMessage::IMAPMessage(ref <IMAPFolder> folder, const int num, const uid& uniqueId)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9665 + : m_folder(folder), m_num(num), m_size(-1), m_flags(FLAG_UNDEFINED),
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9666 + m_expunged(false), m_uid(uniqueId), m_structure(NULL)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9667 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9668 + folder->registerMessage(this);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9669 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9670 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9671 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9672 IMAPMessage::~IMAPMessage()
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9673 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9674 ref <IMAPFolder> folder = m_folder.acquire();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9675 @@ -271,7 +279,11 @@ void IMAPMessage::extract(ref <const part> p, utility::outputStream& os,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9676 std::ostringstream command;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9677 command.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9678
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9679 - command << "FETCH " << m_num << " BODY";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9680 + if (m_uid.empty())
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9681 + command << "FETCH " << m_num << " BODY";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9682 + else
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9683 + command << "UID FETCH " << IMAPUtils::extractUIDFromGlobalUID(m_uid) << " BODY";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9684 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9685 if (peek) command << ".PEEK";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9686 command << "[";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9687
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9688 @@ -361,19 +373,18 @@ void IMAPMessage::fetch(ref <IMAPFolder> msgFolder, const int options)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9689 continue;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9690
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9691 // Process fetch response for this message
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9692 - processFetchResponse(options, messageData->msg_att());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9693 + processFetchResponse(options, messageData);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9694 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9695 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9696
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9697
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9698 void IMAPMessage::processFetchResponse
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9699 - (const int options, const IMAPParser::msg_att* msgAtt)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9700 + (const int options, const IMAPParser::message_data* msgData)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9701 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9702 ref <IMAPFolder> folder = m_folder.acquire();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9703
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9704 // Get message attributes
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9705 - const std::vector <IMAPParser::msg_att_item*> atts =
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9706 - msgAtt->items();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9707 + const std::vector <IMAPParser::msg_att_item*> atts = msgData->msg_att()->items();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9708
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9709 int flags = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9710
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9711 @@ -389,12 +400,7 @@ void IMAPMessage::processFetchResponse
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9712 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9713 case IMAPParser::msg_att_item::UID:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9714 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9715 - std::ostringstream oss;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9716 - oss.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9717 -
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9718 - oss << folder->m_uidValidity << ":" << (*it)->unique_id()->value();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9719 -
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9720 - m_uid = oss.str();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9721 + m_uid = IMAPUtils::makeGlobalUID(folder->m_uidValidity, (*it)->unique_id()->value());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9722 break;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9723 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9724 case IMAPParser::msg_att_item::ENVELOPE:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9725 diff --git a/src/net/imap/IMAPUtils.cpp b/src/net/imap/IMAPUtils.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9726 index 0d6fc47..eceac16 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9727 --- a/src/net/imap/IMAPUtils.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9728 +++ b/src/net/imap/IMAPUtils.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9729 @@ -540,6 +540,24 @@ const string IMAPUtils::listToSet(const std::vector <int>& list, const int max,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9730
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9731
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9732 // static
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9733 +const string IMAPUtils::listToSet(const std::vector <message::uid>& list)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9734 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9735 + if (list.size() == 0)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9736 + return "";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9737 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9738 + std::ostringstream res;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9739 + res.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9740 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9741 + res << extractUIDFromGlobalUID(list[0]);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9742 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9743 + for (unsigned int i = 1, n = list.size() ; i < n ; ++i)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9744 + res << "," << extractUIDFromGlobalUID(list[i]);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9745 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9746 + return res.str();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9747 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9748 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9749 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9750 +// static
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9751 const string IMAPUtils::dateTime(const vmime::datetime& date)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9752 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9753 std::ostringstream res;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9754 @@ -609,7 +627,8 @@ const string IMAPUtils::dateTime(const vmime::datetime& date)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9755
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9756
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9757 // static
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9758 -const string IMAPUtils::buildFetchRequest(const std::vector <int>& list, const int options)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9759 +const string IMAPUtils::buildFetchRequestImpl
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9760 + (const std::string& mode, const std::string& set, const int options)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9761 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9762 // Example:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9763 // C: A654 FETCH 2:4 (FLAGS BODY[HEADER.FIELDS (DATE FROM)])
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9764 @@ -671,7 +690,10 @@ const string IMAPUtils::buildFetchRequest(const std::vector <int>& list, const i
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9765 std::ostringstream command;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9766 command.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9767
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9768 - command << "FETCH " << listToSet(list, -1, false) << " (";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9769 + if (mode == "uid")
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9770 + command << "UID FETCH " << set << " (";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9771 + else
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9772 + command << "FETCH " << set << " (";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9773
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9774 for (std::vector <string>::const_iterator it = items.begin() ;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9775 it != items.end() ; ++it)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9776 @@ -687,6 +709,20 @@ const string IMAPUtils::buildFetchRequest(const std::vector <int>& list, const i
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9777
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9778
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9779 // static
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9780 +const string IMAPUtils::buildFetchRequest(const std::vector <int>& list, const int options)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9781 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9782 + return buildFetchRequestImpl("number", listToSet(list, -1, false), options);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9783 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9784 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9785 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9786 +// static
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9787 +const string IMAPUtils::buildFetchRequest(const std::vector <message::uid>& list, const int options)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9788 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9789 + return buildFetchRequestImpl("uid", listToSet(list), options);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9790 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9791 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9792 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9793 +// static
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9794 void IMAPUtils::convertAddressList
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9795 (const IMAPParser::address_list& src, mailboxList& dest)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9796 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9797 @@ -706,6 +742,46 @@ void IMAPUtils::convertAddressList
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9798 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9799
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9800
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9801 +// static
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9802 +unsigned int IMAPUtils::extractUIDFromGlobalUID(const message::uid& uid)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9803 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9804 + message::uid::size_type colonPos = uid.find(':');
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9805 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9806 + if (colonPos == message::uid::npos)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9807 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9808 + std::istringstream iss(uid);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9809 + iss.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9810 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9811 + unsigned int n = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9812 + iss >> n;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9813 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9814 + return n;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9815 + }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9816 + else
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9817 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9818 + std::istringstream iss(uid.substr(colonPos + 1));
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9819 + iss.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9820 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9821 + unsigned int n = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9822 + iss >> n;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9823 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9824 + return n;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9825 + }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9826 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9827 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9828 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9829 +// static
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9830 +const message::uid IMAPUtils::makeGlobalUID(const unsigned int UIDValidity, const unsigned int messageUID)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9831 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9832 + std::ostringstream oss;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9833 + oss.imbue(std::locale::classic());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9834 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9835 + oss << UIDValidity << ":" << messageUID;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9836 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9837 + return message::uid(oss.str());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9838 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9839 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9840 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9841 } // imap
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9842 } // net
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9843 } // vmime
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9844 diff --git a/src/net/maildir/maildirFolder.cpp b/src/net/maildir/maildirFolder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9845 index 8c4b275..b606cda 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9846 --- a/src/net/maildir/maildirFolder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9847 +++ b/src/net/maildir/maildirFolder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9848 @@ -444,6 +444,18 @@ std::vector <ref <message> > maildirFolder::getMessages(const std::vector <int>&
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9849 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9850
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9851
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9852 +ref <message> maildirFolder::getMessageByUID(const message::uid& /* uid */)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9853 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9854 + throw exceptions::operation_not_supported();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9855 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9856 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9857 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9858 +std::vector <ref <message> > maildirFolder::getMessagesByUID(const std::vector <message::uid>& /* uids */)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9859 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9860 + throw exceptions::operation_not_supported();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9861 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9862 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9863 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9864 int maildirFolder::getMessageCount()
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9865 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9866 return (m_messageCount);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9867 diff --git a/src/net/pop3/POP3Folder.cpp b/src/net/pop3/POP3Folder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9868 index e085609..21e7a8b 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9869 --- a/src/net/pop3/POP3Folder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9870 +++ b/src/net/pop3/POP3Folder.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9871 @@ -249,6 +249,18 @@ std::vector <ref <message> > POP3Folder::getMessages(const int from, const int t
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9872 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9873
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9874
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9875 +ref <message> POP3Folder::getMessageByUID(const message::uid& /* uid */)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9876 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9877 + throw exceptions::operation_not_supported();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9878 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9879 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9880 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9881 +std::vector <ref <message> > POP3Folder::getMessagesByUID(const std::vector <message::uid>& /* uids */)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9882 +{
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9883 + throw exceptions::operation_not_supported();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9884 +}
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9885 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9886 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9887 std::vector <ref <message> > POP3Folder::getMessages(const std::vector <int>& nums)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9888 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9889 ref <POP3Store> store = m_store.acquire();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9890 diff --git a/vmime/net/folder.hpp b/vmime/net/folder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9891 index df9cbaf..a50ee0e 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9892 --- a/vmime/net/folder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9893 +++ b/vmime/net/folder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9894 @@ -169,7 +169,7 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9895 */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9896 virtual bool isOpen() const = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9897
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9898 - /** Get a new reference to a message in this folder.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9899 + /** Get a new reference to a message in this folder, given its number.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9900 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9901 * @param num message sequence number
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9902 * @return a new object referencing the specified message
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9903 @@ -177,7 +177,7 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9904 */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9905 virtual ref <message> getMessage(const int num) = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9906
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9907 - /** Get new references to messages in this folder.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9908 + /** Get new references to messages in this folder, given their numbers.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9909 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9910 * @param from sequence number of the first message to get
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9911 * @param to sequence number of the last message to get
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9912 @@ -186,14 +186,30 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9913 */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9914 virtual std::vector <ref <message> > getMessages(const int from = 1, const int to = -1) = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9915
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9916 - /** Get new references to messages in this folder.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9917 + /** Get new references to messages in this folder, given their numbers.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9918 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9919 - * @param nums sequence numbers of the messages to delete
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9920 + * @param nums sequence numbers of the messages to retrieve
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9921 * @return new objects referencing the specified messages
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9922 * @throw net_exception if an error occurs
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9923 */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9924 virtual std::vector <ref <message> > getMessages(const std::vector <int>& nums) = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9925
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9926 + /** Get message in this folder, given its UID.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9927 + *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9928 + * @param uid UID of message to retrieve
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9929 + * @return a new object referencing the specified message
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9930 + * @throw net_exception if an error occurs
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9931 + */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9932 + virtual ref <message> getMessageByUID(const message::uid& uid) = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9933 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9934 + /** Get messages in this folder, given their UIDs.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9935 + *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9936 + * @param uids UIDs of messages to retrieve
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9937 + * @return new objects referencing the specified messages
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9938 + * @throw net_exception if an error occurs
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9939 + */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9940 + virtual std::vector <ref <message> > getMessagesByUID(const std::vector <message::uid>& uids) = 0;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9941 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9942 /** Return the number of messages in this folder.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9943 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9944 * @return number of messages in the folder
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9945 diff --git a/vmime/net/imap/IMAPFolder.hpp b/vmime/net/imap/IMAPFolder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9946 index cc52596..3337858 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9947 --- a/vmime/net/imap/IMAPFolder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9948 +++ b/vmime/net/imap/IMAPFolder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9949 @@ -84,6 +84,12 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9950 ref <message> getMessage(const int num);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9951 std::vector <ref <message> > getMessages(const int from = 1, const int to = -1);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9952 std::vector <ref <message> > getMessages(const std::vector <int>& nums);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9953 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9954 + ref <message> getMessageByUID(const message::uid& uid);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9955 + std::vector <ref <message> > getMessagesByUID(const std::vector <message::uid>& uids);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9956 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9957 + std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9958 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9959 int getMessageCount();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9960
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9961 ref <folder> getFolder(const folder::path::component& name);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9962 @@ -120,8 +126,6 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9963
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9964 int getFetchCapabilities() const;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9965
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9966 - std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9967 -
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9968 private:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9969
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9970 void registerMessage(IMAPMessage* msg);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9971 @@ -152,7 +156,7 @@ private:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9972
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9973 int m_messageCount;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9974
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9975 - int m_uidValidity;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9976 + unsigned int m_uidValidity;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9977
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9978 std::vector <IMAPMessage*> m_messages;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9979 };
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9980 diff --git a/vmime/net/imap/IMAPMessage.hpp b/vmime/net/imap/IMAPMessage.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9981 index edbf69f..fbba6e7 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9982 --- a/vmime/net/imap/IMAPMessage.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9983 +++ b/vmime/net/imap/IMAPMessage.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9984 @@ -50,6 +50,7 @@ private:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9985 friend class vmime::creator; // vmime::create <IMAPMessage>
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9986
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9987 IMAPMessage(ref <IMAPFolder> folder, const int num);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9988 + IMAPMessage(ref <IMAPFolder> folder, const int num, const uid& uniqueId);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9989 IMAPMessage(const IMAPMessage&) : message() { }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9990
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9991 ~IMAPMessage();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9992 @@ -83,7 +84,7 @@ private:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9993
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9994 void fetch(ref <IMAPFolder> folder, const int options);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9995
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9996 - void processFetchResponse(const int options, const IMAPParser::msg_att* msgAtt);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9997 + void processFetchResponse(const int options, const IMAPParser::message_data* msgData);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9998
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
9999 /** Recursively fetch part header for all parts in the structure.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10000 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10001 diff --git a/vmime/net/imap/IMAPUtils.hpp b/vmime/net/imap/IMAPUtils.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10002 index d1ed5c8..9c9c420 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10003 --- a/vmime/net/imap/IMAPUtils.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10004 +++ b/vmime/net/imap/IMAPUtils.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10005 @@ -29,6 +29,7 @@
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10006 #include "vmime/dateTime.hpp"
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10007
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10008 #include "vmime/net/folder.hpp"
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10009 +#include "vmime/net/message.hpp"
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10010 #include "vmime/net/imap/IMAPParser.hpp"
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10011
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10012 #include "vmime/mailboxList.hpp"
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10013 @@ -65,8 +66,8 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10014
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10015 static const string messageFlagList(const int flags);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10016
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10017 - /** Build an "IMAP set" given a list. The function tries to group
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10018 - * consecutive message numbers to reduce the list.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10019 + /** Build an "IMAP set" given a list of message numbers. The function tries
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10020 + * to group consecutive message numbers to reduce the list.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10021 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10022 * Example:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10023 * IN = "1,2,3,4,5,7,8,13,15,16,17"
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10024 @@ -81,6 +82,13 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10025 static const string listToSet(const std::vector <int>& list,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10026 const int max = -1, const bool alreadySorted = false);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10027
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10028 + /** Build an "IMAP set" set given a list of message UIDs.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10029 + *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10030 + * @param list list of message UIDs
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10031 + * @return a set corresponding to the list
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10032 + */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10033 + static const string listToSet(const std::vector <message::uid>& list);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10034 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10035 /** Format a date/time to IMAP date/time format.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10036 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10037 * @param date date/time to format
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10038 @@ -88,7 +96,7 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10039 */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10040 static const string dateTime(const vmime::datetime& date);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10041
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10042 - /** Construct a fetch request for the specified messages.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10043 + /** Construct a fetch request for the specified messages, designated by their sequence numbers.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10044 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10045 * @param list list of message numbers
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10046 * @param options fetch options
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10047 @@ -96,12 +104,40 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10048 */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10049 static const string buildFetchRequest(const std::vector <int>& list, const int options);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10050
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10051 + /** Construct a fetch request for the specified messages, designated by their UIDs.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10052 + *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10053 + * @param list list of message UIDs
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10054 + * @param options fetch options
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10055 + * @return fetch request
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10056 + */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10057 + static const string buildFetchRequest(const std::vector <message::uid>& list, const int options);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10058 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10059 /** Convert a parser-style address list to a mailbox list.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10060 *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10061 * @param src input address list
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10062 * @param dest output mailbox list
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10063 */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10064 static void convertAddressList(const IMAPParser::address_list& src, mailboxList& dest);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10065 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10066 + /** Extract the message UID from a globally unique UID.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10067 + *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10068 + * @param uid globally unique UID (as returned by makeGlobalUID(), for example)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10069 + * @return message UID
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10070 + */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10071 + static unsigned int extractUIDFromGlobalUID(const message::uid& uid);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10072 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10073 + /** Construct a globally unique UID from UID Validity and a message UID.
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10074 + *
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10075 + * @param UIDValidity UID Validity of the folder
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10076 + * @param messageUID UID of the message
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10077 + * @return global UID
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10078 + */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10079 + static const message::uid makeGlobalUID(const unsigned int UIDValidity, const unsigned int messageUID);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10080 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10081 +private:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10082 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10083 + static const string buildFetchRequestImpl
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10084 + (const std::string& mode, const std::string& set, const int options);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10085 };
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10086
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10087
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10088 diff --git a/vmime/net/maildir/maildirFolder.hpp b/vmime/net/maildir/maildirFolder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10089 index 68b5b89..c9ba899 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10090 --- a/vmime/net/maildir/maildirFolder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10091 +++ b/vmime/net/maildir/maildirFolder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10092 @@ -85,6 +85,10 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10093 ref <message> getMessage(const int num);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10094 std::vector <ref <message> > getMessages(const int from = 1, const int to = -1);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10095 std::vector <ref <message> > getMessages(const std::vector <int>& nums);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10096 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10097 + ref <message> getMessageByUID(const message::uid& uid);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10098 + std::vector <ref <message> > getMessagesByUID(const std::vector <message::uid>& uids);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10099 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10100 int getMessageCount();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10101
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10102 ref <folder> getFolder(const folder::path::component& name);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10103 diff --git a/vmime/net/pop3/POP3Folder.hpp b/vmime/net/pop3/POP3Folder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10104 index c482908..090f948 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10105 --- a/vmime/net/pop3/POP3Folder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10106 +++ b/vmime/net/pop3/POP3Folder.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10107 @@ -83,6 +83,10 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10108 ref <message> getMessage(const int num);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10109 std::vector <ref <message> > getMessages(const int from = 1, const int to = -1);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10110 std::vector <ref <message> > getMessages(const std::vector <int>& nums);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10111 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10112 + ref <message> getMessageByUID(const message::uid& uid);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10113 + std::vector <ref <message> > getMessagesByUID(const std::vector <message::uid>& uids);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10114 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10115 int getMessageCount();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10116
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10117 ref <folder> getFolder(const folder::path::component& name);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10118 --
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10119 1.7.10.4
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10120
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10121
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10122 From 7501f61214b06a35c8fce7772fd48dded2cad335 Mon Sep 17 00:00:00 2001
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10123 From: Vincent Richard <vincent@vincent-richard.net>
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10124 Date: Mon, 30 Jul 2012 11:23:23 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10125 Subject: [PATCH 41/47] Fixed compilation warning.
2711
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10126
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10127
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10128 diff --git a/vmime/utility/parserInputStreamAdapter.hpp b/vmime/utility/parserInputStreamAdapter.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10129 index c24fa44..861e75b 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10130 --- a/vmime/utility/parserInputStreamAdapter.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10131 +++ b/vmime/utility/parserInputStreamAdapter.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10132 @@ -82,7 +82,7 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10133
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10134 m_stream->seek(initialPos);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10135
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10136 - return (readBytes == 1 ? buffer[0] : 0);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10137 + return (readBytes == 1 ? buffer[0] : static_cast <value_type>(0));
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10138 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10139 catch (...)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10140 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10141 @@ -101,7 +101,7 @@ public:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10142 value_type buffer[1];
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10143 const size_type readBytes = m_stream->read(buffer, 1);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10144
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10145 - return (readBytes == 1 ? buffer[0] : 0);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10146 + return (readBytes == 1 ? buffer[0] : static_cast <value_type>(0));
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10147 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10148
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10149 /** Check whether the bytes following the current position match
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10150 --
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10151 1.7.10.4
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10152
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10153
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10154 From f9f9b3bf52c76e1803855d1c44147f68ec9f62f2 Mon Sep 17 00:00:00 2001
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10155 From: Vincent Richard <vincent@vincent-richard.net>
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10156 Date: Mon, 30 Jul 2012 20:45:17 +0200
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10157 Subject: [PATCH 42/47] Fixed body part extraction (only body should be
2711
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10158 extracted).
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10159
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10160
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10161 diff --git a/src/net/imap/IMAPMessage.cpp b/src/net/imap/IMAPMessage.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10162 index 7202a7d..808f7d1 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10163 --- a/src/net/imap/IMAPMessage.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10164 +++ b/src/net/imap/IMAPMessage.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10165 @@ -192,7 +192,7 @@ void IMAPMessage::extract(utility::outputStream& os, utility::progressListener*
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10166 if (!folder)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10167 throw exceptions::folder_not_found();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10168
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10169 - extract(NULL, os, progress, start, length, false, peek);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10170 + extractImpl(NULL, os, progress, start, length, EXTRACT_HEADER | EXTRACT_BODY | (peek ? EXTRACT_PEEK : 0));
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10171 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10172
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10173
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10174 @@ -205,7 +205,7 @@ void IMAPMessage::extractPart
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10175 if (!folder)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10176 throw exceptions::folder_not_found();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10177
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10178 - extract(p, os, progress, start, length, false, peek);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10179 + extractImpl(p, os, progress, start, length, EXTRACT_HEADER | EXTRACT_BODY | (peek ? EXTRACT_PEEK : 0));
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10180 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10181
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10182
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10183 @@ -219,7 +219,7 @@ void IMAPMessage::fetchPartHeader(ref <part> p)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10184 std::ostringstream oss;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10185 utility::outputStreamAdapter ossAdapter(oss);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10186
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10187 - extract(p, ossAdapter, NULL, 0, -1, true, true);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10188 + extractImpl(p, ossAdapter, NULL, 0, -1, EXTRACT_HEADER | EXTRACT_PEEK);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10189
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10190 p.dynamicCast <IMAPPart>()->getOrCreateHeader().parse(oss.str());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10191 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10192 @@ -240,9 +240,9 @@ void IMAPMessage::fetchPartHeaderForStructure(ref <structure> str)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10193 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10194
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10195
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10196 -void IMAPMessage::extract(ref <const part> p, utility::outputStream& os,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10197 +void IMAPMessage::extractImpl(ref <const part> p, utility::outputStream& os,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10198 utility::progressListener* progress, const int start,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10199 - const int length, const bool headerOnly, const bool peek) const
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10200 + const int length, const int extractFlags) const
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10201 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10202 ref <const IMAPFolder> folder = m_folder.acquire();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10203
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10204 @@ -284,18 +284,45 @@ void IMAPMessage::extract(ref <const part> p, utility::outputStream& os,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10205 else
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10206 command << "UID FETCH " << IMAPUtils::extractUIDFromGlobalUID(m_uid) << " BODY";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10207
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10208 - if (peek) command << ".PEEK";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10209 + /*
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10210 + BODY[] header + body
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10211 + BODY.PEEK[] header + body (peek)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10212 + BODY[HEADER] header
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10213 + BODY.PEEK[HEADER] header (peek)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10214 + BODY[TEXT] body
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10215 + BODY.PEEK[TEXT] body (peek)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10216 + */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10217 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10218 + if (extractFlags & EXTRACT_PEEK)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10219 + command << ".PEEK";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10220 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10221 command << "[";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10222
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10223 if (section.str().empty())
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10224 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10225 - if (headerOnly)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10226 + // header + body
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10227 + if ((extractFlags & EXTRACT_HEADER) && (extractFlags & EXTRACT_BODY))
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10228 + command << "";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10229 + // body only
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10230 + else if (extractFlags & EXTRACT_BODY)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10231 + command << "TEXT";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10232 + // header only
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10233 + else if (extractFlags & EXTRACT_HEADER)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10234 command << "HEADER";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10235 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10236 else
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10237 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10238 command << section.str();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10239 - if (headerOnly) command << ".MIME"; // "MIME" not "HEADER" for parts
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10240 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10241 + // header + body
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10242 + if ((extractFlags & EXTRACT_HEADER) && (extractFlags & EXTRACT_BODY))
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10243 + *((int *) 0)=42;//throw exceptions::operation_not_supported();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10244 + // body only
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10245 + else if (extractFlags & EXTRACT_BODY)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10246 + command << ".TEXT";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10247 + // header only
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10248 + else if (extractFlags & EXTRACT_HEADER)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10249 + command << ".MIME"; // "MIME" not "HEADER" for parts
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10250 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10251
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10252 command << "]";
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10253 @@ -318,7 +345,7 @@ void IMAPMessage::extract(ref <const part> p, utility::outputStream& os,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10254 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10255
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10256
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10257 - if (!headerOnly)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10258 + if (extractFlags & EXTRACT_BODY)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10259 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10260 // TODO: update the flags (eg. flag "\Seen" may have been set)
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10261 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10262 diff --git a/src/net/imap/IMAPMessagePartContentHandler.cpp b/src/net/imap/IMAPMessagePartContentHandler.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10263 index 85c6ec2..c2cd647 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10264 --- a/src/net/imap/IMAPMessagePartContentHandler.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10265 +++ b/src/net/imap/IMAPMessagePartContentHandler.cpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10266 @@ -121,7 +121,7 @@ void IMAPMessagePartContentHandler::extract
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10267 // No decoding to perform
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10268 if (!isEncoded())
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10269 {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10270 - msg->extractPart(part, os, progress);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10271 + msg->extractImpl(part, os, progress, 0, -1, IMAPMessage::EXTRACT_BODY);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10272 }
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10273 // Need to decode data
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10274 else
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10275 @@ -130,7 +130,7 @@ void IMAPMessagePartContentHandler::extract
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10276 std::ostringstream oss;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10277 utility::outputStreamAdapter tmp(oss);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10278
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10279 - msg->extractPart(part, tmp, NULL);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10280 + msg->extractImpl(part, tmp, NULL, 0, -1, IMAPMessage::EXTRACT_BODY);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10281
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10282 // Encode temporary buffer to output stream
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10283 utility::inputStreamStringAdapter is(oss.str());
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10284 diff --git a/vmime/net/imap/IMAPMessage.hpp b/vmime/net/imap/IMAPMessage.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10285 index fbba6e7..06f8091 100644
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10286 --- a/vmime/net/imap/IMAPMessage.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10287 +++ b/vmime/net/imap/IMAPMessage.hpp
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10288 @@ -47,6 +47,7 @@ class IMAPMessage : public message
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10289 private:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10290
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10291 friend class IMAPFolder;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10292 + friend class IMAPMessagePartContentHandler;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10293 friend class vmime::creator; // vmime::create <IMAPMessage>
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10294
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10295 IMAPMessage(ref <IMAPFolder> folder, const int num);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10296 @@ -101,7 +102,16 @@ private:
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10297 */
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10298 void constructParsedMessage(ref <bodyPart> parentPart, ref <structure> str, int level = 0);
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10299
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10300 - void extract(ref <const part> p, utility::outputStream& os, utility::progressListener* progress, const int start, const int length, const bool headerOnly, const bool peek) const;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10301 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10302 + enum ExtractFlags
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10303 + {
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10304 + EXTRACT_HEADER = 0x1,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10305 + EXTRACT_BODY = 0x2,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10306 + EXTRACT_PEEK = 0x10
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10307 + };
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10308 +
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10309 + void extractImpl(ref <const part> p, utility::outputStream& os, utility::progressListener* progress,
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10310 + const int start, const int length, const int extractFlags) const;
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10311
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10312
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10313 ref <header> getOrCreateHeader();
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10314 --
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10315 1.7.10.4
649d57cbb28e update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2659
diff changeset
10316
2826
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10317
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10318 From 1c58fc9735c9832c8e849d4f37f4f502b1fc895c Mon Sep 17 00:00:00 2001
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10319 From: Vincent Richard <vincent@vincent-richard.net>
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10320 Date: Mon, 30 Jul 2012 21:28:59 +0200
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10321 Subject: [PATCH 43/47] Added README about autotools scripts. (cherry picked
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10322 from commit 99908ce889eaa7ea6ba917255f11bf9969515793)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10323
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10324
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10325 diff --git a/README.autotools b/README.autotools
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10326 new file mode 100644
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10327 index 0000000..4b83a22
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10328 --- /dev/null
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10329 +++ b/README.autotools
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10330 @@ -0,0 +1,8 @@
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10331 +Where are the ./configure script and the Makefile's?
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10332 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10333 +Configure and Make scripts are not included in the git source tree. They are
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10334 +automatically generated by the SConstruct script.
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10335 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10336 +Just type "scons autotools" to generate everything needed for the traditional
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10337 +./configure, make, make install build process.
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10338 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10339 --
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10340 1.7.10.4
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10341
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10342
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10343 From 1e3ba8c5d520a4b6ab85478672e96f219b9f6135 Mon Sep 17 00:00:00 2001
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10344 From: Vincent Richard <vincent@vincent-richard.net>
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10345 Date: Mon, 15 Oct 2012 11:19:53 +0200
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10346 Subject: [PATCH 45/47] Do not fail if charset is not recognized. (cherry
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10347 picked from commit
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10348 e4102b4374e3acde31c9d320166ef37855834c72)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10349
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10350
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10351 diff --git a/src/word.cpp b/src/word.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10352 index 2876ddf..1ea2293 100644
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10353 --- a/src/word.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10354 +++ b/src/word.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10355 @@ -695,7 +695,16 @@ const string word::getConvertedText(const charset& dest) const
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10356 {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10357 string out;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10358
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10359 - charset::convert(m_buffer, out, m_charset, dest);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10360 + try
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10361 + {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10362 + charset::convert(m_buffer, out, m_charset, dest);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10363 + }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10364 + catch (vmime::exceptions::charset_conv_error& e)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10365 + {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10366 + // Do not fail if charset is not recognized:
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10367 + // copy 'word' as raw text
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10368 + out = m_buffer;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10369 + }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10370
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10371 return (out);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10372 }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10373 --
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10374 1.7.10.4
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10375
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10376
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10377 From 927c052cafd65b14036834e9cb91a4b453aa2c5c Mon Sep 17 00:00:00 2001
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10378 From: Vincent Richard <vincent@vincent-richard.net>
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10379 Date: Mon, 15 Oct 2012 11:23:22 +0200
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10380 Subject: [PATCH 46/47] Support for bogus encoding name 'bmoted-printable'
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10381 (Zarafa). (cherry picked from commit
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10382 2b09c6ea6cfad29682976ea7748721551dd3db64)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10383
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10384
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10385 diff --git a/src/utility/encoder/encoderFactory.cpp b/src/utility/encoder/encoderFactory.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10386 index 2237178..1798ffa 100644
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10387 --- a/src/utility/encoder/encoderFactory.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10388 +++ b/src/utility/encoder/encoderFactory.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10389 @@ -50,6 +50,9 @@ encoderFactory::encoderFactory()
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10390 // Also register some non-standard encoding names
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10391 registerName <sevenBitEncoder>("7-bit");
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10392 registerName <eightBitEncoder>("8-bit");
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10393 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10394 + // Finally, register some bogus encoding names, for compatibility
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10395 + registerName <qpEncoder>("bmoted-printable");
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10396 }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10397
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10398
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10399 --
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10400 1.7.10.4
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10401
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10402
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10403 From fe3114a41e2803b2a6993e8dd03e1ed685e4570c Mon Sep 17 00:00:00 2001
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10404 From: Vincent Richard <vincent@vincent-richard.net>
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10405 Date: Mon, 15 Oct 2012 11:48:14 +0200
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10406 Subject: [PATCH 47/47] Added support for timeout when receiving data from a
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10407 socket (POSIX platform). (cherry picked from commit
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10408 794afe9a1b5ee36a5de8f90f3d789ca46f393bb7)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10409
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10410
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10411 diff --git a/src/platforms/posix/posixSocket.cpp b/src/platforms/posix/posixSocket.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10412 index b8bb8b1..f280dad 100644
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10413 --- a/src/platforms/posix/posixSocket.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10414 +++ b/src/platforms/posix/posixSocket.cpp
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10415 @@ -336,7 +336,45 @@ void posixSocket::receive(vmime::string& buffer)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10416
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10417 posixSocket::size_type posixSocket::receiveRaw(char* buffer, const size_type count)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10418 {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10419 - const int ret = ::recv(m_desc, buffer, count, 0);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10420 + // Check whether data is available
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10421 + fd_set fds;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10422 + FD_ZERO(&fds);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10423 + FD_SET(m_desc, &fds);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10424 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10425 + struct timeval tv;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10426 + tv.tv_sec = 1;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10427 + tv.tv_usec = 0;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10428 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10429 + int ret = ::select(m_desc + 1, &fds, NULL, NULL, &tv);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10430 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10431 + if (ret < 0)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10432 + {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10433 + if (errno != EAGAIN)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10434 + throwSocketError(errno);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10435 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10436 + // No data available at this time
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10437 + // Check if we are timed out
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10438 + if (m_timeoutHandler &&
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10439 + m_timeoutHandler->isTimeOut())
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10440 + {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10441 + if (!m_timeoutHandler->handleTimeOut())
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10442 + {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10443 + // Server did not react within timeout delay
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10444 + throwSocketError(errno);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10445 + }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10446 + else
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10447 + {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10448 + // Reset timeout
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10449 + m_timeoutHandler->resetTimeOut();
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10450 + }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10451 + }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10452 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10453 + // Continue waiting for data
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10454 + return 0;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10455 + }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10456 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10457 + // Read available data
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10458 + ret = ::recv(m_desc, buffer, count, 0);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10459
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10460 if (ret < 0)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10461 {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10462 @@ -351,6 +389,12 @@ posixSocket::size_type posixSocket::receiveRaw(char* buffer, const size_type cou
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10463 // Host shutdown
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10464 throwSocketError(ENOTCONN);
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10465 }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10466 + else
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10467 + {
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10468 + // Data received, reset timeout
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10469 + if (m_timeoutHandler)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10470 + m_timeoutHandler->resetTimeOut();
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10471 + }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10472
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10473 return ret;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10474 }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10475 @@ -383,6 +427,10 @@ void posixSocket::sendRaw(const char* buffer, const size_type count)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10476 size -= ret;
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10477 }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10478 }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10479 +
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10480 + // Reset timeout
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10481 + if (m_timeoutHandler)
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10482 + m_timeoutHandler->resetTimeOut();
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10483 }
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10484
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10485
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10486 --
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10487 1.7.10.4
27a99ab695d8 update package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 2711
diff changeset
10488