parent
57bbe558e4
commit
6f4ac9e572
@ -0,0 +1,26 @@
|
||||
#include "crlf.hh"
|
||||
|
||||
namespace pEp
|
||||
{
|
||||
|
||||
std::string operator""_CRLF(const char* str, size_t length)
|
||||
{
|
||||
static const std::string CRLF{"\r\n"};
|
||||
|
||||
std::string ret;
|
||||
ret.reserve(length + ((length+29)/30) + 2 ); // rough guess for average line length of 30.
|
||||
const char* end = str + length;
|
||||
|
||||
// N.B.: Loop could be more optimized, but not necessary because it is only used for string literals.
|
||||
for(; str != end; ++str)
|
||||
{
|
||||
if(*str == '\n')
|
||||
ret += CRLF;
|
||||
else
|
||||
ret += *str;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
} // end of namespace pEp
|
@ -0,0 +1,19 @@
|
||||
// This file is under GNU General Public License 3.0
|
||||
// see LICENSE.txt
|
||||
|
||||
#ifndef LIBPEPDATATYPES_CRLF_HH
|
||||
#define LIBPEPDATATYPES_CRLF_HH
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace pEp
|
||||
{
|
||||
// creates a string where \n ("linefeed" a.k.a. LF) are replaced
|
||||
// by \r\n ("carriage return + linefeed" a.k.a. CRLF).
|
||||
// Useful to define strings in NET-ASCII or Net-Unicode (RFC5198) format
|
||||
// from string literals.
|
||||
std::string operator""_CRLF(const char* str, size_t length);
|
||||
|
||||
} // end of namespace pEp
|
||||
|
||||
#endif // LIBPEPDATATYPES_CRLF_HH
|
Loading…
Reference in new issue