summaryrefslogtreecommitdiff
path: root/include/rtl/character.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/rtl/character.hxx')
-rw-r--r--include/rtl/character.hxx23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/rtl/character.hxx b/include/rtl/character.hxx
index 4ccc632afb4a..b83121a4a6d4 100644
--- a/include/rtl/character.hxx
+++ b/include/rtl/character.hxx
@@ -239,6 +239,29 @@ template<typename T> inline bool isAsciiOctalDigit(T code)
{ return isAsciiOctalDigit(sal_uInt32(code)); }
#endif
+/** Check for ASCII white space character.
+
+ @param code A Unicode code point.
+
+ @return True if code is an ASCII white space character as defined by C for
+ isspace in the "C" locale (ASCII ' ', '\f', '\n', '\r', '\t' '\v').
+
+ @since LibreOffice 5.4
+*/
+inline bool isAsciiWhiteSpace(sal_uInt32 code)
+{
+ assert(isUnicodeCodePoint(code));
+ return code == ' ' || code == '\f' || code == '\n' || code == '\r'
+ || code == '\t' || code == '\v';
+}
+
+#if defined LIBO_INTERNAL_ONLY
+bool isAsciiWhiteSpace(char) = delete;
+bool isAsciiWhiteSpace(signed char) = delete;
+template<typename T> inline bool isAsciiWhiteSpace(T code)
+{ return isAsciiWhiteSpace(sal_uInt32(code)); }
+#endif
+
/** Convert a character, if ASCII, to upper case.
@param code A Unicode code point.