quoted_printable.h revision dc0f95d653279beabeb9817299e2902918ba123e
1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_NET_QUOTED_PRINTABLE_H_
6#define CHROME_BROWSER_NET_QUOTED_PRINTABLE_H_
7#pragma once
8
9#include <string>
10
11// Some functions to encode/decode with the quoted-printable encoding.
12// See http://tools.ietf.org/html/rfc2045#section-6.7
13
14namespace chrome {
15namespace browser {
16namespace net {
17
18// Encodes the input string with the quoted-printable encoding.
19void QuotedPrintableEncode(const std::string& input, std::string* output);
20
21// Decodes the quoted-printable input string.  Returns true if the input string
22// was wellformed quoted-printable, false otherwise, in which case it still
23// decodes as much of the message as possible.
24bool QuotedPrintableDecode(const std::string& input, std::string* output);
25
26// Returns 0 if |iter| does not point to an end-of-line, the number of chars
27// that constitutes that EOL otherwise (1 for LF, 2 for CR-LF).
28// Exposed as it is also used in unit-tests.
29int IsEOL(const std::string::const_iterator& iter, const std::string& input);
30
31}  // namespace net
32}  // namespace browser
33}  // namespace chrome
34
35#endif  // CHROME_BROWSER_NET_QUOTED_PRINTABLE_H_
36