diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2014-02-04 16:02:06 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2014-07-31 18:51:40 +0200 |
commit | 7f9398fd4d23469c77c6a53eac0819f92dfc3928 (patch) | |
tree | a4199487316639bda5b49b981cc99e21b6aeb9ab /src/corelib/tools/qlocale_p.h | |
parent | 571f52920bce5e62e9d4ae67dc605839c81c4136 (diff) |
Add ascii_isspace to replace the locale-dependent isspace(3)
Change-Id: Icee42515179e6f3ddefe0692af69e90054449618
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/corelib/tools/qlocale_p.h')
-rw-r--r-- | src/corelib/tools/qlocale_p.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/corelib/tools/qlocale_p.h b/src/corelib/tools/qlocale_p.h index 917e83834a..da8a820234 100644 --- a/src/corelib/tools/qlocale_p.h +++ b/src/corelib/tools/qlocale_p.h @@ -402,6 +402,33 @@ QString qt_readEscapedFormatString(const QString &format, int *idx); bool qt_splitLocaleName(const QString &name, QString &lang, QString &script, QString &cntry); int qt_repeatCount(const QString &s, int i); +enum { AsciiSpaceMask = (1 << (' ' - 1)) | + (1 << ('\t' - 1)) | // 9: HT - horizontal tab + (1 << ('\n' - 1)) | // 10: LF - line feed + (1 << ('\v' - 1)) | // 11: VT - vertical tab + (1 << ('\f' - 1)) | // 12: FF - form feed + (1 << ('\r' - 1)) }; // 13: CR - carriage return +Q_DECL_CONSTEXPR inline bool ascii_isspace(uchar c) +{ + return c >= 1U && c <= 32U && (uint(AsciiSpaceMask) >> uint(c - 1)) & 1U; +} + +#if defined(Q_COMPILER_CONSTEXPR) +Q_STATIC_ASSERT(ascii_isspace(' ')); +Q_STATIC_ASSERT(ascii_isspace('\t')); +Q_STATIC_ASSERT(ascii_isspace('\n')); +Q_STATIC_ASSERT(ascii_isspace('\v')); +Q_STATIC_ASSERT(ascii_isspace('\f')); +Q_STATIC_ASSERT(ascii_isspace('\r')); +Q_STATIC_ASSERT(!ascii_isspace('\0')); +Q_STATIC_ASSERT(!ascii_isspace('\a')); +Q_STATIC_ASSERT(!ascii_isspace('a')); +Q_STATIC_ASSERT(!ascii_isspace('\177')); +Q_STATIC_ASSERT(!ascii_isspace('\200')); +Q_STATIC_ASSERT(!ascii_isspace('\xA0')); +Q_STATIC_ASSERT(!ascii_isspace('\377')); +#endif + QT_END_NAMESPACE Q_DECLARE_METATYPE(QStringRef) |