Fixed parsing when space occurs at the end of the field value.
This commit is contained in:
parent
bcaff413ca
commit
29df79e4e5
@ -56,7 +56,8 @@ charset::charset(const char* name)
|
|||||||
void charset::parse(const string& buffer, const string::size_type position,
|
void charset::parse(const string& buffer, const string::size_type position,
|
||||||
const string::size_type end, string::size_type* newPosition)
|
const string::size_type end, string::size_type* newPosition)
|
||||||
{
|
{
|
||||||
m_name = string(buffer.begin() + position, buffer.begin() + end);
|
m_name = utility::stringUtils::trim
|
||||||
|
(string(buffer.begin() + position, buffer.begin() + end));
|
||||||
|
|
||||||
setParsedBounds(position, end);
|
setParsedBounds(position, end);
|
||||||
|
|
||||||
|
@ -50,8 +50,8 @@ contentDisposition::contentDisposition(const contentDisposition& type)
|
|||||||
void contentDisposition::parse(const string& buffer, const string::size_type position,
|
void contentDisposition::parse(const string& buffer, const string::size_type position,
|
||||||
const string::size_type end, string::size_type* newPosition)
|
const string::size_type end, string::size_type* newPosition)
|
||||||
{
|
{
|
||||||
m_name = utility::stringUtils::toLower
|
m_name = utility::stringUtils::trim(utility::stringUtils::toLower
|
||||||
(string(buffer.begin() + position, buffer.begin() + end));
|
(string(buffer.begin() + position, buffer.begin() + end)));
|
||||||
|
|
||||||
setParsedBounds(position, end);
|
setParsedBounds(position, end);
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ const ref <const encoderFactory::registeredEncoder> encoderFactory::getEncoderBy
|
|||||||
return (*it);
|
return (*it);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw exceptions::no_encoder_available();
|
throw exceptions::no_encoder_available(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,8 +53,8 @@ encoding::encoding(const encoding& enc)
|
|||||||
void encoding::parse(const string& buffer, const string::size_type position,
|
void encoding::parse(const string& buffer, const string::size_type position,
|
||||||
const string::size_type end, string::size_type* newPosition)
|
const string::size_type end, string::size_type* newPosition)
|
||||||
{
|
{
|
||||||
m_name = utility::stringUtils::toLower
|
m_name = utility::stringUtils::trim(utility::stringUtils::toLower
|
||||||
(string(buffer.begin() + position, buffer.begin() + end));
|
(string(buffer.begin() + position, buffer.begin() + end)));
|
||||||
|
|
||||||
setParsedBounds(position, end);
|
setParsedBounds(position, end);
|
||||||
|
|
||||||
|
@ -123,8 +123,8 @@ const char* charset_conv_error::name() const throw() { return "charset_conv_erro
|
|||||||
//
|
//
|
||||||
|
|
||||||
no_encoder_available::~no_encoder_available() throw() {}
|
no_encoder_available::~no_encoder_available() throw() {}
|
||||||
no_encoder_available::no_encoder_available(const exception& other)
|
no_encoder_available::no_encoder_available(const string& name, const exception& other)
|
||||||
: exception("No encoder available.", other) {}
|
: exception("No encoder available: '" + name + "'.", other) {}
|
||||||
|
|
||||||
exception* no_encoder_available::clone() const { return new no_encoder_available(*this); }
|
exception* no_encoder_available::clone() const { return new no_encoder_available(*this); }
|
||||||
const char* no_encoder_available::name() const throw() { return "no_encoder_available"; }
|
const char* no_encoder_available::name() const throw() { return "no_encoder_available"; }
|
||||||
|
@ -60,9 +60,9 @@ void mediaType::parse(const string& buffer, const string::size_type position,
|
|||||||
|
|
||||||
while (p < pend && *p != '/') ++p;
|
while (p < pend && *p != '/') ++p;
|
||||||
|
|
||||||
m_type = utility::stringUtils::toLower(
|
m_type = utility::stringUtils::trim(utility::stringUtils::toLower(
|
||||||
string(buffer.begin() + typeStart,
|
string(buffer.begin() + typeStart,
|
||||||
buffer.begin() + position + (p - pstart)));
|
buffer.begin() + position + (p - pstart))));
|
||||||
|
|
||||||
if (p < pend)
|
if (p < pend)
|
||||||
{
|
{
|
||||||
@ -70,9 +70,9 @@ void mediaType::parse(const string& buffer, const string::size_type position,
|
|||||||
++p;
|
++p;
|
||||||
|
|
||||||
// Extract the sub-type
|
// Extract the sub-type
|
||||||
m_subType = utility::stringUtils::toLower(
|
m_subType = utility::stringUtils::trim(utility::stringUtils::toLower(
|
||||||
string(buffer.begin() + position + (p - pstart),
|
string(buffer.begin() + position + (p - pstart),
|
||||||
buffer.begin() + end));
|
buffer.begin() + end)));
|
||||||
}
|
}
|
||||||
|
|
||||||
setParsedBounds(position, end);
|
setParsedBounds(position, end);
|
||||||
|
@ -129,7 +129,7 @@ class no_encoder_available : public vmime::exception
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
no_encoder_available(const exception& other = NO_EXCEPTION);
|
no_encoder_available(const string& name, const exception& other = NO_EXCEPTION);
|
||||||
~no_encoder_available() throw();
|
~no_encoder_available() throw();
|
||||||
|
|
||||||
exception* clone() const;
|
exception* clone() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user