annotate src/vmime-1-fixes.patch @ 2055:c26efa95224d

packages curl gsoap vmime: gnutls 3 compatibility
author Mark Brand <mabrand@mabrand.nl>
date Fri, 28 Oct 2011 16:25:56 +0200
parents 5e36c7b9112f
children 79795dd7d90a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
1 This file is part of mingw-cross-env.
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
2 See doc/index.html for further information.
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
3
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
4 Cherry picked fixes from svn
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
5 http://sourceforge.net/projects/vmime/develop
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
6
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
7 Produced with this script:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
8 #--------------------------------------------------------------------#
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
9 #!/bin/bash
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
10
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
11 (
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
12 echo "This file is part of mingw-cross-env."
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
13 echo "See doc/index.html for further information."
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
14 echo
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
15 echo "Cherry picked fixes from svn"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
16 echo "http://sourceforge.net/projects/vmime/develop"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
17 echo
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
18 echo "Produced with this script:"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
19 echo "#--------------------------------------------------------------------#"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
20 cat "$0"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
21 echo "#--------------------------------------------------------------------#"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
22 ) > src/vmime-1-fixes.patch
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
23
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
24 # setup git svn clone
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
25 #cd ~/projects/vmime/git
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
26 #git svn clone -s https://vmime.svn.sourceforge.net/svnroot/vmime
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
27 #git reset --hard
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
28 # get updates
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
29 #git svn fetch
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
30 #git svn rebase
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
31 #git checkout v0.9.1
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
32 #git checkout -b 0.9.1-fixes
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
33 #git cherry-pick
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
34
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
35 GITDIR=~/projects/vmime/git/vmime
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
36
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
37 (
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
38 cd $GITDIR
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
39 echo
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
40 git format-patch -p --relative=vmime --stdout v0.9.1..0.9.1-fixes
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
41 ) >> src/vmime-1-fixes.patch
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
42 #--------------------------------------------------------------------#
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
43
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
44 From c6f077e695b75d9ff9a32d1621f6a320c8ce70f1 Mon Sep 17 00:00:00 2001
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
45 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
46 Date: Tue, 30 Nov 2010 14:57:03 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
47 Subject: [PATCH 01/20] Initialize and delete object.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
48
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
49 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@577 5301114d-f842-0410-bbdd-996ee0417009
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
50
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
51 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
52 index 0f3e9ec..d71c3ca 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
53 --- a/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
54 +++ b/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
55 @@ -3823,7 +3823,9 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
56
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
57 msg_att_item()
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
58 : 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
59 - 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
60 + 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
61 + m_section(NULL)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
62 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
63 {
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 @@ -3836,6 +3838,7 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
67 delete (m_nstring);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
68 delete (m_body);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
69 delete (m_flag_list);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
70 + delete (m_section);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
71 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
72
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
73 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
74 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
75 1.7.7
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
76
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
77
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
78 From 41203315eacf53230dd7bdb0cf2b0d1078ddee39 Mon Sep 17 00:00:00 2001
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
79 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
80 Date: Wed, 8 Dec 2010 08:52:54 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
81 Subject: [PATCH 02/20] 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
82 RCPT TO. Wait for server response after QUIT and
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
83 before closing connection.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
84
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
85 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@579 5301114d-f842-0410-bbdd-996ee0417009
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 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
88 index 204daae..d9fb7b8 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
89 --- a/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
90 +++ b/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
91 @@ -516,6 +516,7 @@ void SMTPTransport::internalDisconnect()
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
92 try
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
93 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
94 sendRequest("QUIT");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
95 + readResponse();
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
96 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
97 catch (exception&)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
98 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
99 @@ -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
100 // Emit the "MAIL" command
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
101 ref <SMTPResponse> resp;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
102
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
103 - sendRequest("MAIL FROM: <" + expeditor.getEmail() + ">");
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
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
106 if ((resp = readResponse())->getCode() != 250)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
107 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
108 @@ -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
109 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
110 const mailbox& mbox = *recipients.getMailboxAt(i);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
111
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
112 - sendRequest("RCPT TO: <" + mbox.getEmail() + ">");
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
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
115 if ((resp = readResponse())->getCode() != 250)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
116 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
117 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
118 1.7.7
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
119
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
120
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
121 From 969b56f4bd61ddb8277c04ac2a1e35e029ec058b Mon Sep 17 00:00:00 2001
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
122 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
123 Date: Fri, 10 Dec 2010 16:24:06 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
124 Subject: [PATCH 03/20] Fixed unit test after bug fix.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
125
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
126 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@580 5301114d-f842-0410-bbdd-996ee0417009
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 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
142 1.7.7
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
143
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
144
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
145 From 50743da0712b216533acdc09069f1bfc81f988c6 Mon Sep 17 00:00:00 2001
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
146 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
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
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
148 Subject: [PATCH 04/20] 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 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@581 5301114d-f842-0410-bbdd-996ee0417009
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
152
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
153 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
154 index 13dff6b..738d3e7 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
155 --- a/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
156 +++ b/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
157 @@ -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
158 const string boundarySep("--" + boundary);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
159
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
160 string::size_type partStart = position;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
161 - string::size_type pos = buffer.find(boundarySep, position);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
162 + string::size_type pos = position;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
163
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
164 bool lastPart = false;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
165
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
166 + while (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
167 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
168 + pos = buffer.find(boundarySep, pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
169 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
170 + if (pos == string::npos ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
171 + ((pos == 0 || buffer[pos - 1] == '\n') &&
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
172 + (buffer[pos + boundarySep.length()] == '\r' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
173 + buffer[pos + boundarySep.length()] == '\n' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
174 + buffer[pos + boundarySep.length()] == '-'
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 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
179 + break;
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 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
182 + // 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
183 + pos++;
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 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
186 if (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
187 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
188 m_prologText = string(buffer.begin() + position, buffer.begin() + pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
189 @@ -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
190 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
191
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
192 partStart = pos;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
193 - pos = buffer.find(boundarySep, partStart);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
194 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
195 + while (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
196 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
197 + pos = buffer.find(boundarySep, pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
198 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
199 + if (pos == string::npos ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
200 + ((pos == 0 || buffer[pos - 1] == '\n') &&
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
201 + (buffer[pos + boundarySep.length()] == '\r' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
202 + buffer[pos + boundarySep.length()] == '\n' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
203 + buffer[pos + boundarySep.length()] == '-'
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 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
208 + break;
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 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
211 + // 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
212 + pos++;
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
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
216 m_contents = vmime::create <emptyContentHandler>();
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
217 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
218 index 12c4f74..df2bf85 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
219 --- a/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
220 +++ b/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
221 @@ -84,7 +84,7 @@ VMIME_TEST_SUITE_BEGIN
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
222 vmime::string str =
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
223 "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
224 "\r\n\r\n"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
225 - "--MY-BOUNDARY\r\nHEADER1\r\n\r\nBODY1"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
226 + "--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
227 "--MY-BOUNDARY\r\nHEADER2\r\n\r\nBODY2";
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
228
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
229 vmime::bodyPart p;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
230 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
231 1.7.7
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
232
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
233
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
234 From b6d2b4765c9472ff333cace13c57c6af0e866ee0 Mon Sep 17 00:00:00 2001
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
235 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
236 Date: Fri, 21 Jan 2011 15:28:06 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
237 Subject: [PATCH 05/20] 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
238 Kamp, Zarafa).
1565
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 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@582 5301114d-f842-0410-bbdd-996ee0417009
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
241
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
242 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
243 index db720dc..1c1c1a6 100644
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
244 --- a/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
245 +++ b/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
246 @@ -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
247
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
248 maxRunLength = std::max(maxRunLength, curRunLength);
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
249
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
250 - if (maxRunLength >= maxLineLength - 3)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
251 + 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
252 {
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
253 // Generate with encoding forced
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
254 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
255 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
256 index b84f376..746ac94 100644
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
257 --- a/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
258 +++ b/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
259 @@ -52,6 +52,7 @@ VMIME_TEST_SUITE_BEGIN
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
260 VMIME_TEST(testWhitespaceMBox)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
261
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
262 VMIME_TEST(testFoldingAscii)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
263 + VMIME_TEST(testForcedNonEncoding)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
264 VMIME_TEST_LIST_END
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
265
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
266
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
267 @@ -442,5 +443,15 @@ VMIME_TEST_SUITE_BEGIN
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
268 " =?us-ascii?Q?9012345678901234567890123456789?=", w.generate(50));
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
269 }
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 + void testForcedNonEncoding()
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
272 + {
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
273 + // Testing long unbreakable and unencodable header
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
274 + vmime::relay r;
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
275 + 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
276 + "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
277 +
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
278 + 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
279 + }
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
280 +
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
281 VMIME_TEST_SUITE_END
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
282
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
283 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
284 1.7.7
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
285
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
286
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
287 From 022339ab63430d792d0314f51dd7854eabd5736e Mon Sep 17 00:00:00 2001
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
288 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
289 Date: Fri, 28 Jan 2011 12:11:08 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
290 Subject: [PATCH 06/20] Fixed possible read to invalid memory location (thanks
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
291 to Alexander Konovalov).
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
292
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
293 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@583 5301114d-f842-0410-bbdd-996ee0417009
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
294
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
295 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
296 index 1c1c1a6..fa08d33 100644
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
297 --- a/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
298 +++ b/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
299 @@ -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
300
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
301 os << string(curLineStart, p);
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
302
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
303 - if (parserHelpers::isSpace(*(p - 1)))
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
304 + 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
305 state->lastCharIsSpace = true;
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
306 else
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
307 state->lastCharIsSpace = false;
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
308 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
309 1.7.7
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
310
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
311
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
312 From 7f1024917b3df6be013e18a2e0f0f1b13f4d112b Mon Sep 17 00:00:00 2001
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
313 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
314 Date: Wed, 9 Mar 2011 18:03:31 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
315 Subject: [PATCH 07/20] Fixed bug #3174903. Fixed word parsing when buffer
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
316 does not end with NL. Fixed 'no encoding' when
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
317 forced.
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
318
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
319 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@584 5301114d-f842-0410-bbdd-996ee0417009
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
320 (cherry picked from commit 07ebf241115eba44675223e307d212c772e1cc08)
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
321
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
322 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
323 index 738d3e7..8596833 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
324 --- a/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
325 +++ b/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
326 @@ -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
327
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
328 if (pos != string::npos && pos < end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
329 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
330 - 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
331 + vmime::text text;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
332 + text.parse(buffer, position, pos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
333 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
334 + m_prologText = text.getWholeBuffer();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
335 }
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 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
338 @@ -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
339 // Treat remaining text as epilog
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
340 else if (partStart < end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
341 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
342 - 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
343 + vmime::text text;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
344 + text.parse(buffer, partStart, end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
345 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
346 + m_epilogText = text.getWholeBuffer();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
347 }
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 // Treat the contents as 'simple' data
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
350 @@ -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
351
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
352 if (!prologText.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
353 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
354 - text prolog(word(prologText, getCharset()));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
355 + text prolog(prologText, vmime::charset("us-ascii"));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
356
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
357 prolog.encodeAndFold(os, maxLineLength, 0,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
358 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
359 @@ -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
360
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
361 if (!epilogText.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
362 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
363 - text epilog(word(epilogText, getCharset()));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
364 + text epilog(epilogText, vmime::charset("us-ascii"));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
365
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
366 epilog.encodeAndFold(os, maxLineLength, 0,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
367 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
368 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
369 index fa08d33..aeaa737 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
370 --- a/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
371 +++ b/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
372 @@ -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
373 ++pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
374
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
375 unencoded += buffer.substr(startPos, endPos - startPos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
376 - unencoded += ' ';
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
377 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
378 + if (pos != end) // ignore white-spaces at end
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
379 + unencoded += ' ';
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 startPos = pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
382 continue;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
383 @@ -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
384 ++pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
385 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
386
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
387 - // 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
388 - if (end != startPos)
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 != pos && !isFirst && prevIsEncoded)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
391 - unencoded += whiteSpaces;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
392 + if (startPos != end && !isFirst && prevIsEncoded)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
393 + unencoded += whiteSpaces;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
394
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
395 + if (startPos != end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
396 unencoded += buffer.substr(startPos, end - startPos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
397
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
398 + // 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
399 + if (!unencoded.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
400 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
401 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
402 w->setParsedBounds(position, end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
403
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
404 @@ -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
405 state = &defaultGeneratorState;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
406
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
407 // 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
408 - bool encodingNeeded = (flags & text::FORCE_ENCODING) != 0;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
409 + bool encodingNeeded = false;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
410
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
411 - if (encodingNeeded == false)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
412 - encodingNeeded = wordEncoder::isEncodingNeeded(m_buffer, m_charset);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
413 - else if ((flags & text::FORCE_NO_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
414 + if ((flags & text::FORCE_NO_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
415 encodingNeeded = false;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
416 + else if ((flags & text::FORCE_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
417 + encodingNeeded = true;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
418 + else // auto-detect
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
419 + encodingNeeded = wordEncoder::isEncodingNeeded(m_buffer, m_charset);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
420
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
421 // 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
422 // Quoting is possible if and only if:
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
423 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
424 index df2bf85..b129913 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
425 --- a/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
426 +++ b/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
427 @@ -34,6 +34,8 @@ VMIME_TEST_SUITE_BEGIN
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
428 VMIME_TEST(testParse)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
429 VMIME_TEST(testGenerate)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
430 VMIME_TEST(testParseMissingLastBoundary)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
431 + VMIME_TEST(testPrologEpilog)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
432 + VMIME_TEST(testPrologEncoding)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
433 VMIME_TEST_LIST_END
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
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
436 @@ -105,5 +107,79 @@ VMIME_TEST_SUITE_BEGIN
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
437 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
438 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
439
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
440 + void testPrologEpilog()
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
441 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
442 + const char testMail[] =
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
443 + "To: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
444 + "From: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
445 + "Subject: Prolog and epilog test\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
446 + "Content-Type: multipart/mixed; \r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
447 + " boundary=\"=_boundary\"\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
448 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
449 + "Prolog text\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
450 + "--=_boundary\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
451 + "Content-Type: text/plain\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
452 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
453 + "Part1\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
454 + "--=_boundary--\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
455 + "Epilog text";
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
456 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
457 + vmime::bodyPart part;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
458 + part.parse(testMail);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
459 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
460 + VASSERT_EQ("prolog", "Prolog text", part.getBody()->getPrologText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
461 + VASSERT_EQ("epilog", "Epilog text", part.getBody()->getEpilogText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
462 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
463 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
464 + // 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
465 + // 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
466 + void testPrologEncoding()
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
467 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
468 + const char testmail[] =
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
469 + "To: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
470 + "From: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
471 + "Subject: Prolog encoding test\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
472 + "Content-Type: multipart/mixed; \r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
473 + " boundary=\"=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\"\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
474 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
475 + "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
476 + "understand MIME message format.\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
477 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
478 + "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
479 + "Content-Transfer-Encoding: quoted-printable\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
480 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
481 + "=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
482 + "=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
483 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
484 + "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
485 + "Content-Disposition: attachment; filename=FNS.zip\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
486 + "Content-Transfer-Encoding: base64\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
487 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
488 + "UEsDBB...snap...EEAAAAAA==\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
489 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q--\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
490 + "Epilog text";
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
491 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
492 + 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
493 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
494 + std::string istr(testmail);
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 + std::string ostr;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
497 + vmime::utility::outputStreamStringAdapter out(ostr);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
498 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
499 + for (int i = 0 ; i < 10 ; ++i)
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 + ostr.clear();
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 + msg->parse(istr);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
504 + msg->generate(out);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
505 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
506 + istr = ostr;
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 + 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
510 + " 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
511 + VASSERT_EQ("epilog", "Epilog text", msg->getBody()->getEpilogText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
512 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
513 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
514 VMIME_TEST_SUITE_END
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
515
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
516 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
517 1.7.7
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
518
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
519
1710
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
520 From 1c0648c2a3ee4072869446755c8a7604614752e1 Mon Sep 17 00:00:00 2001
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
521 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
522 Date: Sun, 27 Mar 2011 11:26:55 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
523 Subject: [PATCH 08/20] 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
524 and uses 'ws2_32' instead of 'winsock32' (#3213487).
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
525
1710
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
526 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@585 5301114d-f842-0410-bbdd-996ee0417009
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
527 (cherry picked from commit 22ca7dc23b6bbbc8cc6aedd569ec938ecae96e92)
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
528
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
529 diff --git a/SConstruct b/SConstruct
1668
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
530 index fb01edf..6e8aba2 100644
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
531 --- a/SConstruct
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
532 +++ b/SConstruct
1668
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
533 @@ -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
534 vmime_pc_in.write("Description: " + packageDescription + "\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
535 vmime_pc_in.write("Version: @VERSION@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
536 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
537 - 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
538 + 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
539 #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
540 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
541 vmime_pc_in.close()
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
542 @@ -1709,7 +1709,7 @@ fi
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
543
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
544 # -- Link with Winsock (Windows)
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
545 if test "x$VMIME_DETECT_PLATFORM" = "xwindows"; then
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
546 - 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
547 + 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
548 fi
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
549
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
550 # -- getaddrinfo (POSIX)
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
551 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
552 1.7.7
1891
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 From c6c596b10702a98b59978c81c01dc7f4f33157c9 Mon Sep 17 00:00:00 2001
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
556 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
557 Date: Thu, 31 Mar 2011 19:13:03 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
558 Subject: [PATCH 09/20] 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
559 Kamp, Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
560
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
561 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@586 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
562 (cherry picked from commit 9e06cc39d47e2eba8f554b337d472cc995be0d9d)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
563
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
564 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
565 index 38b9e5e..2135788 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
566 --- a/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
567 +++ b/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
568 @@ -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
569 size_t inPos = 0;
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 bool prevIsInvalid = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
572 + bool breakAfterNext = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
573
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
574 while (true)
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 @@ -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
577 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
578 size_t outLength = sizeof(outBuffer);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
579
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
580 - const char* inPtr = inBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
581 + const char* inPtr = breakAfterNext ? NULL : inBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
582 + size_t *ptrLength = breakAfterNext ? NULL : &inLength;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
583 char* outPtr = outBuffer;
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 // Convert input bytes
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
586 - if (iconv(cd, ICONV_HACK(&inPtr), &inLength,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
587 + if (iconv(cd, ICONV_HACK(&inPtr), ptrLength,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
588 &outPtr, &outLength) == static_cast <size_t>(-1))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
589 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
590 // Illegal input sequence or input sequence has no equivalent
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
591 @@ -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
592 prevIsInvalid = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
593 }
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 - // Check for end of data
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
596 - if (in.eof() && inPos == 0)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
597 + if (breakAfterNext)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
598 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
599 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
600 + // 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
601 + if (in.eof() && inPos == 0)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
602 + breakAfterNext = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
603 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
604 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
605
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
606 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
607 index 8ad71d7..54a09a7 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
608 --- a/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
609 +++ b/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
610 @@ -100,6 +100,7 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
611 VMIME_TEST(testFilterValid1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
612 VMIME_TEST(testFilterValid2)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
613 VMIME_TEST(testFilterValid3)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
614 + VMIME_TEST(testEncodingHebrew1255)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
615
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
616 // Test invalid input
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
617 VMIME_TEST(testFilterInvalid1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
618 @@ -227,6 +228,15 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
619 VASSERT_EQ("1", toHex(expectedOut), toHex(actualOut));
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
620 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
621
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
622 + void testEncodingHebrew1255()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
623 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
624 + // hewbrew string in windows-1255 charset
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
625 + 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
626 + vmime::word w = vmime::word(data, "windows-1255");
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
627 + vmime::string encoded = w.generate();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
628 + // less than 60% ascii, base64 received
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
629 + 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
630 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
631
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
632 // Conversion to hexadecimal for easier debugging
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
633 static const vmime::string toHex(const vmime::string str)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
634 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
635 1.7.7
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
636
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
637
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
638 From dce9b255556d59773bbbdd9027fd1b1bd5627886 Mon Sep 17 00:00:00 2001
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
639 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
640 Date: Fri, 10 Jun 2011 19:39:09 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
641 Subject: [PATCH 10/20] Requested email change.
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
642
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
643 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@587 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
644 (cherry picked from commit 418a39a7d33921672bd1c4beb31c8a31bc87d8dd)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
645
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
646 diff --git a/AUTHORS b/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
647 index 20a0181..bbddb30 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
648 --- a/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
649 +++ b/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
650 @@ -21,7 +21,7 @@ AUTHORS file.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
651 - Rafael Fernandez <prf@adinet.com.uy>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
652 - Xin Li <lixin3@staff.sina.com.cn>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
653 - Benjamin Biron <benbiron@gmail.com>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
654 - - Bertrand Benoit <bsquare@bsquare.levillage.org>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
655 + - Bertrand Benoit <projettwk@users.sourceforge.net>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
656 - Tim Teulings <rael@edge.ping.de>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
657 - Georg Sauthoff <gsauthof@techfak.uni-bielefeld.de>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
658 - 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
659 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
660 1.7.7
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
661
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
662
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
663 From 42612622a7c42aac7bef1605d9ba8117aa651789 Mon Sep 17 00:00:00 2001
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
664 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
665 Date: Tue, 14 Jun 2011 18:37:54 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
666 Subject: [PATCH 11/20] Fixed compilation issue following namespace change.
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
667
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
668 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@588 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
669 (cherry picked from commit 4008955783ef566b98b16762c7bfa28df26e9198)
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 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
672 index 1ddb3d0..243b1da 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
673 --- a/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
674 +++ b/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
675 @@ -43,18 +43,18 @@ int main()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
676 vmime::platform::setHandler<vmime::platforms::posix::posixHandler>();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
677
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
678 // Enumerate encoders
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
679 - vmime::encoderFactory* ef = vmime::encoderFactory::getInstance();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
680 + 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
681
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
682 std::cout << "Available encoders:" << std::endl;
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 for (int i = 0 ; i < ef->getEncoderCount() ; ++i)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
685 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
686 - vmime::ref <const vmime::encoderFactory::registeredEncoder>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
687 + vmime::ref <const vmime::utility::encoder::encoderFactory::registeredEncoder>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
688 enc = ef->getEncoderAt(i);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
689
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
690 std::cout << " * " << enc->getName() << std::endl;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
691
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
692 - vmime::ref <vmime::encoder> e = enc->create();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
693 + vmime::ref <vmime::utility::encoder::encoder> e = enc->create();
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 std::vector <vmime::string> props = e->getAvailableProperties();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
696
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
697 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
698 1.7.7
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
699
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
700
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
701 From 43346ae2d6c39af2ed16e64cc6d7f89f427a0fee Mon Sep 17 00:00:00 2001
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
702 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
703 Date: Sun, 19 Jun 2011 17:51:33 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
704 Subject: [PATCH 12/20] Fixed parsing of an attachment filename that is
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
705 between 66 and 76 characters long (Zarafa).
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 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@589 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
708 (cherry picked from commit e80db1ce802a45b71659d16d77ea47368beeabc1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
709
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
710 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
711 index 91a7e5c..f59d5ab 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
712 --- a/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
713 +++ b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
714 @@ -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
715 bool needQuoting = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
716 string::size_type valueLength = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
717
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
718 - 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
719 + // 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
720 + 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
721 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
722 switch (value[i])
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
723 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
724 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
725 1.7.7
1891
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
728 From 5ef189953965b639a9038da337e104592417c465 Mon Sep 17 00:00:00 2001
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
729 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
730 Date: Sun, 19 Jun 2011 18:08:12 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
731 Subject: [PATCH 13/20] Correctly generate attachment names which are long and
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
732 have high characters for Outlook Express (Zarafa).
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 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@590 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
735 (cherry picked from commit 58316dddddbfe8a7c582aa52e9abff8ca3a227b6)
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
736
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
737 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
738 index f59d5ab..d757e1b 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
739 --- a/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
740 +++ b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
741 @@ -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
742 // value is to be generated.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
743
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
744 // A stream for a temporary storage
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
745 - std::ostringstream sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
746 + std::string sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
747 + utility::outputStreamStringAdapter sevenBitStream(sevenBitBuffer);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
748
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
749 string::size_type pos = curLinePos;
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 if (pos + name.length() + 10 + value.length() > maxLineLength)
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 - sevenBitBuffer << NEW_LINE_SEQUENCE;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
754 + sevenBitStream << NEW_LINE_SEQUENCE;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
755 pos = NEW_LINE_SEQUENCE_LENGTH;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
756 }
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 bool needQuoting = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
759 + bool needQuotedPrintable = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
760 string::size_type valueLength = 0;
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 // 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
763 @@ -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
764
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
765 needQuoting = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
766 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
767 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
768 + default:
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
769 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
770 + if (!parserHelpers::isAscii(value[i]))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
771 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
772 + needQuotedPrintable = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
773 + needQuoting = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
774 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
775 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
776 + break;
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 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
779
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
780 @@ -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
781
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
782 if (needQuoting)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
783 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
784 - sevenBitBuffer << name << "=\"";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
785 + sevenBitStream << name << "=\"";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
786 pos += name.length() + 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
787 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
788 else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
789 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
790 - sevenBitBuffer << name << "=";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
791 + sevenBitStream << name << "=";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
792 pos += name.length() + 1;
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
795 @@ -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
796 const bool alwaysEncode = m_value.getCharset().getRecommendedEncoding(recommendedEnc);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
797 bool extended = alwaysEncode;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
798
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
799 - 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
800 + if (needQuotedPrintable)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
801 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
802 - const char_t c = value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
803 -
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
804 - if (/* needQuoting && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
805 - {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
806 - sevenBitBuffer << '\\' << value[i]; // escape 'x' with '\x'
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
807 - pos += 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
808 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
809 - else if (parserHelpers::isAscii(c))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
810 - {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
811 - sevenBitBuffer << value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
812 - ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
813 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
814 - else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
815 + // 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
816 + // will understand the real filename
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
817 + size_t oldLen = sevenBitBuffer.length();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
818 + m_value.generate(sevenBitStream);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
819 + pos += sevenBitBuffer.length() - oldLen;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
820 + extended = true; // also send with RFC-2231 encoding
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
821 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
822 + else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
823 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
824 + // 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
825 + 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
826 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
827 - extended = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
828 + const char_t c = value[i];
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 + if (/* needQuoting && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit
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 + sevenBitStream << '\\' << value[i]; // escape 'x' with '\x'
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
833 + pos += 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
834 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
835 + else if (parserHelpers::isAscii(c))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
836 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
837 + sevenBitStream << value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
838 + ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
839 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
840 + else
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 + extended = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
843 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
844 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
845 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
846 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
847 + } // !needQuotedPrintable
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
848
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
849 if (needQuoting)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
850 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
851 - sevenBitBuffer << '"';
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
852 + sevenBitStream << '"';
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
853 ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
854 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
855
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
856 @@ -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
857 // "7bit/us-ascii" will suffice in this case.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
858
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
859 // 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
860 - os << sevenBitBuffer.str();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
861 + os << sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
862 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
863 #endif // !VMIME_ALWAYS_GENERATE_7BIT_PARAMETER
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
864
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
865 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
866 1.7.7
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
867
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
868
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
869 From caa3cbc0fe9218d3d494bfed1afed2ee620a2e4e Mon Sep 17 00:00:00 2001
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
870 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
871 Date: Sun, 19 Jun 2011 18:16:49 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
872 Subject: [PATCH 14/20] Alias for UTF-7 charset.
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
873
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
874 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@591 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
875 (cherry picked from commit f7ad17cffea462faf8cbe4f785644da0f3ee812a)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
876
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
877 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
878 index e043186..0fda450 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
879 --- a/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
880 +++ b/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
881 @@ -45,6 +45,9 @@ charset::charset()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
882 charset::charset(const string& name)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
883 : m_name(name)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
884 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
885 + // 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
886 + 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
887 + m_name = "utf-7";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
888 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
889
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
890
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
891 @@ -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
892 m_name = utility::stringUtils::trim
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
893 (string(buffer.begin() + position, buffer.begin() + end));
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 + // 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
896 + 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
897 + m_name = "utf-7";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
898 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
899 setParsedBounds(position, end);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
900
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
901 if (newPosition)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
902 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
903 1.7.7
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
904
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 From 97d992cda306d96a8dda948abb9806ee2c2ce587 Mon Sep 17 00:00:00 2001
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
907 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
908 Date: Sun, 19 Jun 2011 18:39:35 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
909 Subject: [PATCH 15/20] Fixed messageBuilder to accept an empty mailbox group
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
910 in 'To:' field, to allow for undisclosed-recipients
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
911 (Zarafa).
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 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@592 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
914 (cherry picked from commit eac20f47a33a7fdd617f9fd905b8029621259269)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
915
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
916 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
917 index 870d59e..3597b3a 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
918 --- a/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
919 +++ b/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
920 @@ -51,17 +51,15 @@ ref <message> messageBuilder::construct() const
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
921 // Generate the header fields
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
922 msg->getHeader()->Subject()->setValue(m_subject);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
923
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
924 - if (m_from.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
925 - throw exceptions::no_expeditor();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
926 -
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
927 - if ((m_to.isEmpty() || m_to.getAddressAt(0)->isEmpty()) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
928 + 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
929 (m_cc.isEmpty() || m_cc.getAddressAt(0)->isEmpty()) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
930 (m_bcc.isEmpty() || m_bcc.getAddressAt(0)->isEmpty()))
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 throw exceptions::no_recipient();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
933 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
934
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
935 - msg->getHeader()->From()->setValue(m_from);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
936 + if (!m_from.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
937 + msg->getHeader()->From()->setValue(m_from);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
938
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
939 if (!m_to.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
940 msg->getHeader()->To()->setValue(m_to);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
941 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
942 1.7.7
1891
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
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
945 From db98569ef427f9f3fac9a9dcc25ab8b6f2b3bd91 Mon Sep 17 00:00:00 2001
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
946 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
947 Date: Sun, 19 Jun 2011 18:49:55 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
948 Subject: [PATCH 16/20] Added support for mailboxes that specify an (encoded)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
949 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
950 marker (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
951
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
952 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@593 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
953 (cherry picked from commit 1e5dfa80a63b0a7fe90406ce4a3de1593f2e4045)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
954
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
955 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
956 index 5cb0139..fea7479 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
957 --- a/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
958 +++ b/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
959 @@ -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
960 // Temporary buffers for extracted name and address
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
961 string name;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
962 string address;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
963 + bool hadBrackets = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
964
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
965 while (p < pend)
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 @@ -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
968 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
969 else if (*p == '>')
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
970 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
971 + hadBrackets = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
972 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
973 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
974 else if (!parserHelpers::isSpace(*p))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
975 @@ -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
976
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
977 // Swap name and address when no address was found
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
978 // (email address is mandatory, whereas name is optional).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
979 - if (address.empty() && !name.empty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
980 + if (address.empty() && !name.empty() && !hadBrackets)
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 m_email.clear();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
983 m_email.reserve(name.size());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
984 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
985 index 8411daa..9ebadca 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
986 --- a/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
987 +++ b/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
988 @@ -32,6 +32,7 @@ VMIME_TEST_SUITE_BEGIN
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 VMIME_TEST_LIST_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
991 VMIME_TEST(testParse)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
992 + VMIME_TEST(testEmptyEmailAddress)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
993 VMIME_TEST_LIST_END
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
994
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
995
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
996 @@ -113,5 +114,19 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
997 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
998 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
999
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1000 + void testEmptyEmailAddress()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1001 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1002 + vmime::addressList addrList;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1003 + addrList.parse("\"Full Name\" <>");
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1004 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1005 + VASSERT_EQ("count", 1, addrList.getAddressCount());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1006 + VASSERT_EQ("!group", false, addrList.getAddressAt(0)->isGroup());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1007 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1008 + 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
1009 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1010 + VASSERT_EQ("name", "Full Name", mbox->getName());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1011 + VASSERT_EQ("email", "", mbox->getEmail());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1012 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1013 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1014 VMIME_TEST_SUITE_END
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1015
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1016 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1017 1.7.7
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1018
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1019
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1020 From aa5ab140e90a6222e5f03b337711444be845fbd0 Mon Sep 17 00:00:00 2001
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1021 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1022 Date: Fri, 24 Jun 2011 15:46:23 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1023 Subject: [PATCH 17/20] Added missing libs in pkg-config file.
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1024
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1025 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@594 5301114d-f842-0410-bbdd-996ee0417009
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1026 (cherry picked from commit 960f2195516eb776eea7b7e4f92612192edfdcd9)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1027
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1028 diff --git a/SConstruct b/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1029 index 6e8aba2..4c0cb0e 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1030 --- a/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1031 +++ b/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1032 @@ -1089,7 +1089,7 @@ def generateAutotools(target, source, env):
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1033 vmime_pc_in.write("Description: " + packageDescription + "\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1034 vmime_pc_in.write("Version: @VERSION@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1035 vmime_pc_in.write("Requires: @GSASL_REQUIRED@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1036 - 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
1037 + 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
1038 #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
1039 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
1040 vmime_pc_in.close()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1041 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1042 1.7.7
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1043
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1044
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1045 From bf98b31b36ba2228d4f1c25cd3f7680d47cc8910 Mon Sep 17 00:00:00 2001
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1046 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1047 Date: Sat, 25 Jun 2011 17:07:53 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1048 Subject: [PATCH 18/20] 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
1049 der Kamp, from Zarafa).
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1050
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1051 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@595 5301114d-f842-0410-bbdd-996ee0417009
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1052 (cherry picked from commit 9f9084b71b4e3c96edc6513020984ef76fe26e0c)
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 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
1055 index 8596833..9d7d57f 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1056 --- a/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1057 +++ b/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1058 @@ -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
1059 {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1060 ref <bodyPart> part = vmime::create <bodyPart>();
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1061
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1062 + // End before start may happen on empty bodyparts (directly
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1063 + // successive boundaries without even a line-break)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1064 + if (partEnd < partStart)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1065 + std::swap(partStart, partEnd);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1066 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1067 part->parse(buffer, partStart, partEnd, NULL);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1068 part->m_parent = m_part;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1069
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1070 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
1071 index b129913..075b8f9 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1072 --- a/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1073 +++ b/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1074 @@ -36,6 +36,7 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1075 VMIME_TEST(testParseMissingLastBoundary)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1076 VMIME_TEST(testPrologEpilog)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1077 VMIME_TEST(testPrologEncoding)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1078 + VMIME_TEST(testSuccessiveBoundaries)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1079 VMIME_TEST_LIST_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1080
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1081
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1082 @@ -181,5 +182,23 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1083 VASSERT_EQ("epilog", "Epilog text", msg->getBody()->getEpilogText());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1084 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1085
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1086 + void testSuccessiveBoundaries()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1087 + {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1088 + vmime::string str =
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1089 + "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1090 + "\r\n\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1091 + "--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
1092 + "--MY-BOUNDARY\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1093 + "--MY-BOUNDARY--\r\n";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1094 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1095 + vmime::bodyPart p;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1096 + p.parse(str);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1097 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1098 + VASSERT_EQ("count", 2, p.getBody()->getPartCount());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1099 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1100 + 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
1101 + 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
1102 + }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1103 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1104 VMIME_TEST_SUITE_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1105
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1106 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1107 1.7.7
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1108
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1109
1948
5e36c7b9112f package vmime: remove cherry-picked change that breaks functionality
Mark Brand <mabrand@mabrand.nl>
parents: 1924
diff changeset
1110 From 35f5f5c7bcaca1a29e470c0e5d777817d1e89612 Mon Sep 17 00:00:00 2001
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1111 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1112 Date: Sun, 26 Jun 2011 12:47:25 +0000
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1113 Subject: [PATCH 19/20] Fixed encoding of whitespace. Fixed old test case.
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1114
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1115 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@597 5301114d-f842-0410-bbdd-996ee0417009
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1116 (cherry picked from commit 70a0282a3f96febf973475a298ac95ffaab82c3c)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1117
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1118 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
1119 index 2454456..66c3b35 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1120 --- a/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1121 +++ b/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1122 @@ -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
1123 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1124 else
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1125 {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1126 - if (count)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1127 - {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1128 - ref <word> w = getWordAt(getWordCount() - 1);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1129 - w->getBuffer() += ' ';
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1130 - }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1131 -
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1132 appendWord(vmime::create <word>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1133 (chunk, charset(charsets::US_ASCII)));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1134
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1135 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
1136 index 746ac94..43ec836 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1137 --- a/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1138 +++ b/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1139 @@ -53,6 +53,8 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1140
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1141 VMIME_TEST(testFoldingAscii)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1142 VMIME_TEST(testForcedNonEncoding)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1143 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1144 + VMIME_TEST(testBugFix20110511)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1145 VMIME_TEST_LIST_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1146
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1147
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1148 @@ -149,7 +151,7 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1149 VASSERT_EQ("2.1", 3, t2.getWordCount());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1150 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
1151 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
1152 - 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
1153 + 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
1154 VASSERT_EQ("2.5", c2, t2.getWordAt(1)->getCharset());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1155 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
1156 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
1157 @@ -453,5 +455,43 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1158 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
1159 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1160
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1161 + void testBugFix20110511()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1162 + {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1163 + /*
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1164 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1165 + 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
1166 + Gwenaël Dutourd will result in:
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1167 + Jean =?utf-8?Q?Gwena=C3=ABl_?= Dutourd
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1168 + 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
1169 + 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
1170 + 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
1171 + is decoded into an additional space.
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1172 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1173 + 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
1174 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1175 + */
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1176 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1177 + const std::string DECODED_TEXT = "Jean Gwenaël Dutourd";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1178 + 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
1179 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1180 + // Encode
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1181 + VASSERT_EQ("encode", ENCODED_TEXT,
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1182 + 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
1183 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1184 + // Decode
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1185 + vmime::text t;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1186 + t.parse(ENCODED_TEXT);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1187 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1188 + // -- words
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1189 + std::ostringstream oss; oss << t;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1190 + VASSERT_EQ("decode1",
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1191 + "[text: [[word: charset=us-ascii, buffer=Jean ],"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1192 + "[word: charset=utf-8, buffer=Gwenaël],"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1193 + "[word: charset=us-ascii, buffer= Dutourd]]]", oss.str());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1194 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1195 + // -- getWholeBuffer
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1196 + VASSERT_EQ("decode2", DECODED_TEXT, t.getWholeBuffer());
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 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1199 VMIME_TEST_SUITE_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1200
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1201 --
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1202 1.7.7
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1203
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1204
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1205 From e118e962db814585c9b71e2e067f2c09acb184a3 Mon Sep 17 00:00:00 2001
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1206 From: Mark Brand <mabrand@mabrand.nl>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1207 Date: Fri, 28 Oct 2011 14:48:03 +0200
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1208 Subject: [PATCH 20/20] gnutls 3 error code compatibility
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1209
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1210 taken from:
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1211 https://sourceforge.net/tracker/?func=detail&aid=3429714&group_id=69724&atid=525570
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1212
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1213 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1214 index 010c007..bea1156 100644
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1215 --- a/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1216 +++ b/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1217 @@ -22,7 +22,9 @@
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1218 //
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1219
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1220 #include <gnutls/gnutls.h>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1221 +#if GNUTLS_VERSION_NUMBER < 0x030000
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1222 #include <gnutls/extra.h>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1223 +#endif
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1224
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1225 #include "vmime/config.hpp"
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1226
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1227 @@ -298,10 +300,14 @@ void TLSSession::throwTLSException(const string& fname, const int code)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1228 ERROR(GNUTLS_E_FILE_ERROR)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1229 ERROR(GNUTLS_E_TOO_MANY_EMPTY_PACKETS)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1230 ERROR(GNUTLS_E_UNKNOWN_PK_ALGORITHM)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1231 +#if GNUTLS_VERSION_NUMBER < 0x030000
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1232 ERROR(GNUTLS_E_INIT_LIBEXTRA)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1233 ERROR(GNUTLS_E_LIBRARY_VERSION_MISMATCH)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1234 +#endif
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1235 ERROR(GNUTLS_E_NO_TEMPORARY_RSA_PARAMS)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1236 +#if GNUTLS_VERSION_NUMBER < 0x030000
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1237 ERROR(GNUTLS_E_LZO_INIT_FAILED)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1238 +#endif
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1239 ERROR(GNUTLS_E_NO_COMPRESSION_ALGORITHMS)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1240 ERROR(GNUTLS_E_NO_CIPHER_SUITES)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1241 ERROR(GNUTLS_E_OPENPGP_GETKEY_FAILED)
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1242 --
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1243 1.7.7
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1244