fix baseline build (old cairo) - 'cairo_rectangle_int_t' does not name a type
[LibreOffice.git] / external / boost / boost.property_tree.Wtype-limits.warnings.patch.1
blobe4c7ede0e3becbece1dc7a824da44472dcb405c2
1 diff -ur boost.org/boost/property_tree/detail/json_parser_write.hpp boost/boost/property_tree/detail/json_parser_write.hpp
2 --- boost.org/boost/property_tree/detail/json_parser_write.hpp  2014-04-20 13:27:59.126224368 +0300
3 +++ boost/boost/property_tree/detail/json_parser_write.hpp      2014-04-20 13:32:35.206229552 +0300
4 @@ -29,25 +29,26 @@
5          typename std::basic_string<Ch>::const_iterator e = s.end();
6          while (b != e)
7          {
8 +            typename std::basic_string<Ch>::traits_type::int_type bDref = *b;
9              // This assumes an ASCII superset. But so does everything in PTree.
10              // We escape everything outside ASCII, because this code can't
11              // handle high unicode characters.
12 -            if (*b == 0x20 || *b == 0x21 || (*b >= 0x23 && *b <= 0x2E) ||
13 -                (*b >= 0x30 && *b <= 0x5B) || (*b >= 0x5D && *b <= 0xFF))
14 -                result += *b;
15 -            else if (*b == Ch('\b')) result += Ch('\\'), result += Ch('b');
16 -            else if (*b == Ch('\f')) result += Ch('\\'), result += Ch('f');
17 -            else if (*b == Ch('\n')) result += Ch('\\'), result += Ch('n');
18 -            else if (*b == Ch('\r')) result += Ch('\\'), result += Ch('r');
19 -            else if (*b == Ch('/')) result += Ch('\\'), result += Ch('/');
20 -            else if (*b == Ch('"'))  result += Ch('\\'), result += Ch('"');
21 -            else if (*b == Ch('\\')) result += Ch('\\'), result += Ch('\\');
22 +            if (bDref == 0x20 || bDref == 0x21 || (bDref >= 0x23 && bDref <= 0x2E) ||
23 +                (bDref >= 0x30 && bDref <= 0x5B) || (bDref >= 0x5D && bDref <= 0xFF))
24 +                result += bDref;
25 +            else if (bDref == Ch('\b')) result += Ch('\\'), result += Ch('b');
26 +            else if (bDref == Ch('\f')) result += Ch('\\'), result += Ch('f');
27 +            else if (bDref == Ch('\n')) result += Ch('\\'), result += Ch('n');
28 +            else if (bDref == Ch('\r')) result += Ch('\\'), result += Ch('r');
29 +            else if (bDref == Ch('/')) result += Ch('\\'), result += Ch('/');
30 +            else if (bDref == Ch('"'))  result += Ch('\\'), result += Ch('"');
31 +            else if (bDref == Ch('\\')) result += Ch('\\'), result += Ch('\\');
32              else
33              {
34                  const char *hexdigits = "0123456789ABCDEF";
35                  typedef typename make_unsigned<Ch>::type UCh;
36                  unsigned long u = (std::min)(static_cast<unsigned long>(
37 -                                                 static_cast<UCh>(*b)),
38 +                                                 static_cast<UCh>(bDref)),
39                                               0xFFFFul);
40                  int d1 = u / 4096; u -= d1 * 4096;
41                  int d2 = u / 256; u -= d2 * 256;