aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/poco/Foundation/include/Poco/Ascii.h
diff options
context:
space:
mode:
authororivej <orivej@yandex-team.ru>2022-02-10 16:44:49 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:49 +0300
commit718c552901d703c502ccbefdfc3c9028d608b947 (patch)
tree46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/poco/Foundation/include/Poco/Ascii.h
parente9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff)
downloadydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/poco/Foundation/include/Poco/Ascii.h')
-rw-r--r--contrib/libs/poco/Foundation/include/Poco/Ascii.h440
1 files changed, 220 insertions, 220 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/Ascii.h b/contrib/libs/poco/Foundation/include/Poco/Ascii.h
index 5dd741df35..1ac5618592 100644
--- a/contrib/libs/poco/Foundation/include/Poco/Ascii.h
+++ b/contrib/libs/poco/Foundation/include/Poco/Ascii.h
@@ -1,220 +1,220 @@
-//
-// Ascii.h
-//
-// Library: Foundation
-// Package: Core
-// Module: Ascii
-//
-// Definition of the Ascii class.
-//
-// Copyright (c) 2010, Applied Informatics Software Engineering GmbH.
-// and Contributors.
-//
-// SPDX-License-Identifier: BSL-1.0
-//
-
-
-#ifndef Foundation_Ascii_INCLUDED
-#define Foundation_Ascii_INCLUDED
-
-
-#include "Poco/Foundation.h"
-
-
-namespace Poco {
-
-
-class Foundation_API Ascii
- /// This class contains enumerations and static
- /// utility functions for dealing with ASCII characters
- /// and their properties.
- ///
- /// The classification functions will also work if
- /// non-ASCII character codes are passed to them,
- /// but classification will only check for
- /// ASCII characters.
- ///
- /// This allows the classification methods to be used
- /// on the single bytes of a UTF-8 string, without
- /// causing assertions or inconsistent results (depending
- /// upon the current locale) on bytes outside the ASCII range,
- /// as may be produced by Ascii::isSpace(), etc.
-{
-public:
- enum CharacterProperties
- /// ASCII character properties.
- {
- ACP_CONTROL = 0x0001,
- ACP_SPACE = 0x0002,
- ACP_PUNCT = 0x0004,
- ACP_DIGIT = 0x0008,
- ACP_HEXDIGIT = 0x0010,
- ACP_ALPHA = 0x0020,
- ACP_LOWER = 0x0040,
- ACP_UPPER = 0x0080,
- ACP_GRAPH = 0x0100,
- ACP_PRINT = 0x0200
- };
-
- static int properties(int ch);
- /// Return the ASCII character properties for the
- /// character with the given ASCII value.
- ///
- /// If the character is outside the ASCII range
- /// (0 .. 127), 0 is returned.
-
- static bool hasSomeProperties(int ch, int properties);
- /// Returns true if the given character is
- /// within the ASCII range and has at least one of
- /// the given properties.
-
- static bool hasProperties(int ch, int properties);
- /// Returns true if the given character is
- /// within the ASCII range and has all of
- /// the given properties.
-
- static bool isAscii(int ch);
- /// Returns true iff the given character code is within
- /// the ASCII range (0 .. 127).
-
- static bool isSpace(int ch);
- /// Returns true iff the given character is a whitespace.
-
- static bool isDigit(int ch);
- /// Returns true iff the given character is a digit.
-
- static bool isHexDigit(int ch);
- /// Returns true iff the given character is a hexadecimal digit.
-
- static bool isPunct(int ch);
- /// Returns true iff the given character is a punctuation character.
-
- static bool isAlpha(int ch);
- /// Returns true iff the given character is an alphabetic character.
-
- static bool isAlphaNumeric(int ch);
- /// Returns true iff the given character is an alphabetic character.
-
- static bool isLower(int ch);
- /// Returns true iff the given character is a lowercase alphabetic
- /// character.
-
- static bool isUpper(int ch);
- /// Returns true iff the given character is an uppercase alphabetic
- /// character.
-
- static int toLower(int ch);
- /// If the given character is an uppercase character,
- /// return its lowercase counterpart, otherwise return
- /// the character.
-
- static int toUpper(int ch);
- /// If the given character is a lowercase character,
- /// return its uppercase counterpart, otherwise return
- /// the character.
-
-private:
- static const int CHARACTER_PROPERTIES[128];
-};
-
-
-//
-// inlines
-//
-inline int Ascii::properties(int ch)
-{
- if (isAscii(ch))
- return CHARACTER_PROPERTIES[ch];
- else
- return 0;
-}
-
-
-inline bool Ascii::isAscii(int ch)
-{
- return (static_cast<UInt32>(ch) & 0xFFFFFF80) == 0;
-}
-
-
-inline bool Ascii::hasProperties(int ch, int props)
-{
- return (properties(ch) & props) == props;
-}
-
-
-inline bool Ascii::hasSomeProperties(int ch, int props)
-{
- return (properties(ch) & props) != 0;
-}
-
-
-inline bool Ascii::isSpace(int ch)
-{
- return hasProperties(ch, ACP_SPACE);
-}
-
-
-inline bool Ascii::isDigit(int ch)
-{
- return hasProperties(ch, ACP_DIGIT);
-}
-
-
-inline bool Ascii::isHexDigit(int ch)
-{
- return hasProperties(ch, ACP_HEXDIGIT);
-}
-
-
-inline bool Ascii::isPunct(int ch)
-{
- return hasProperties(ch, ACP_PUNCT);
-}
-
-
-inline bool Ascii::isAlpha(int ch)
-{
- return hasProperties(ch, ACP_ALPHA);
-}
-
-
-inline bool Ascii::isAlphaNumeric(int ch)
-{
- return hasSomeProperties(ch, ACP_ALPHA | ACP_DIGIT);
-}
-
-
-inline bool Ascii::isLower(int ch)
-{
- return hasProperties(ch, ACP_LOWER);
-}
-
-
-inline bool Ascii::isUpper(int ch)
-{
- return hasProperties(ch, ACP_UPPER);
-}
-
-
-inline int Ascii::toLower(int ch)
-{
- if (isUpper(ch))
- return ch + 32;
- else
- return ch;
-}
-
-
-inline int Ascii::toUpper(int ch)
-{
- if (isLower(ch))
- return ch - 32;
- else
- return ch;
-}
-
-
-} // namespace Poco
-
-
-#endif // Foundation_Ascii_INCLUDED
+//
+// Ascii.h
+//
+// Library: Foundation
+// Package: Core
+// Module: Ascii
+//
+// Definition of the Ascii class.
+//
+// Copyright (c) 2010, Applied Informatics Software Engineering GmbH.
+// and Contributors.
+//
+// SPDX-License-Identifier: BSL-1.0
+//
+
+
+#ifndef Foundation_Ascii_INCLUDED
+#define Foundation_Ascii_INCLUDED
+
+
+#include "Poco/Foundation.h"
+
+
+namespace Poco {
+
+
+class Foundation_API Ascii
+ /// This class contains enumerations and static
+ /// utility functions for dealing with ASCII characters
+ /// and their properties.
+ ///
+ /// The classification functions will also work if
+ /// non-ASCII character codes are passed to them,
+ /// but classification will only check for
+ /// ASCII characters.
+ ///
+ /// This allows the classification methods to be used
+ /// on the single bytes of a UTF-8 string, without
+ /// causing assertions or inconsistent results (depending
+ /// upon the current locale) on bytes outside the ASCII range,
+ /// as may be produced by Ascii::isSpace(), etc.
+{
+public:
+ enum CharacterProperties
+ /// ASCII character properties.
+ {
+ ACP_CONTROL = 0x0001,
+ ACP_SPACE = 0x0002,
+ ACP_PUNCT = 0x0004,
+ ACP_DIGIT = 0x0008,
+ ACP_HEXDIGIT = 0x0010,
+ ACP_ALPHA = 0x0020,
+ ACP_LOWER = 0x0040,
+ ACP_UPPER = 0x0080,
+ ACP_GRAPH = 0x0100,
+ ACP_PRINT = 0x0200
+ };
+
+ static int properties(int ch);
+ /// Return the ASCII character properties for the
+ /// character with the given ASCII value.
+ ///
+ /// If the character is outside the ASCII range
+ /// (0 .. 127), 0 is returned.
+
+ static bool hasSomeProperties(int ch, int properties);
+ /// Returns true if the given character is
+ /// within the ASCII range and has at least one of
+ /// the given properties.
+
+ static bool hasProperties(int ch, int properties);
+ /// Returns true if the given character is
+ /// within the ASCII range and has all of
+ /// the given properties.
+
+ static bool isAscii(int ch);
+ /// Returns true iff the given character code is within
+ /// the ASCII range (0 .. 127).
+
+ static bool isSpace(int ch);
+ /// Returns true iff the given character is a whitespace.
+
+ static bool isDigit(int ch);
+ /// Returns true iff the given character is a digit.
+
+ static bool isHexDigit(int ch);
+ /// Returns true iff the given character is a hexadecimal digit.
+
+ static bool isPunct(int ch);
+ /// Returns true iff the given character is a punctuation character.
+
+ static bool isAlpha(int ch);
+ /// Returns true iff the given character is an alphabetic character.
+
+ static bool isAlphaNumeric(int ch);
+ /// Returns true iff the given character is an alphabetic character.
+
+ static bool isLower(int ch);
+ /// Returns true iff the given character is a lowercase alphabetic
+ /// character.
+
+ static bool isUpper(int ch);
+ /// Returns true iff the given character is an uppercase alphabetic
+ /// character.
+
+ static int toLower(int ch);
+ /// If the given character is an uppercase character,
+ /// return its lowercase counterpart, otherwise return
+ /// the character.
+
+ static int toUpper(int ch);
+ /// If the given character is a lowercase character,
+ /// return its uppercase counterpart, otherwise return
+ /// the character.
+
+private:
+ static const int CHARACTER_PROPERTIES[128];
+};
+
+
+//
+// inlines
+//
+inline int Ascii::properties(int ch)
+{
+ if (isAscii(ch))
+ return CHARACTER_PROPERTIES[ch];
+ else
+ return 0;
+}
+
+
+inline bool Ascii::isAscii(int ch)
+{
+ return (static_cast<UInt32>(ch) & 0xFFFFFF80) == 0;
+}
+
+
+inline bool Ascii::hasProperties(int ch, int props)
+{
+ return (properties(ch) & props) == props;
+}
+
+
+inline bool Ascii::hasSomeProperties(int ch, int props)
+{
+ return (properties(ch) & props) != 0;
+}
+
+
+inline bool Ascii::isSpace(int ch)
+{
+ return hasProperties(ch, ACP_SPACE);
+}
+
+
+inline bool Ascii::isDigit(int ch)
+{
+ return hasProperties(ch, ACP_DIGIT);
+}
+
+
+inline bool Ascii::isHexDigit(int ch)
+{
+ return hasProperties(ch, ACP_HEXDIGIT);
+}
+
+
+inline bool Ascii::isPunct(int ch)
+{
+ return hasProperties(ch, ACP_PUNCT);
+}
+
+
+inline bool Ascii::isAlpha(int ch)
+{
+ return hasProperties(ch, ACP_ALPHA);
+}
+
+
+inline bool Ascii::isAlphaNumeric(int ch)
+{
+ return hasSomeProperties(ch, ACP_ALPHA | ACP_DIGIT);
+}
+
+
+inline bool Ascii::isLower(int ch)
+{
+ return hasProperties(ch, ACP_LOWER);
+}
+
+
+inline bool Ascii::isUpper(int ch)
+{
+ return hasProperties(ch, ACP_UPPER);
+}
+
+
+inline int Ascii::toLower(int ch)
+{
+ if (isUpper(ch))
+ return ch + 32;
+ else
+ return ch;
+}
+
+
+inline int Ascii::toUpper(int ch)
+{
+ if (isLower(ch))
+ return ch - 32;
+ else
+ return ch;
+}
+
+
+} // namespace Poco
+
+
+#endif // Foundation_Ascii_INCLUDED