summaryrefslogtreecommitdiff
path: root/include/rtl/character.hxx
diff options
context:
space:
mode:
authorArnaud Versini <arnaud.versini@libreoffice.org>2013-08-10 12:41:03 +0200
committerPetr Mladek <pmladek@suse.cz>2013-08-19 15:49:18 +0000
commitc8e39e66528affb66f1ae121fa36dd4ab31a9b0b (patch)
tree227691ebad802e87695bfffb96889a1ccfe147a4 /include/rtl/character.hxx
parent2e45813b7e5757bc050e121acfe942763b9544ff (diff)
Introduce rtl::compareIgnoreCase and deprecate rtl/character.hxx equivalents.
Change-Id: Id90935fd2b0f904f89477792edc8140cfc31e91f Reviewed-on: https://gerrit.libreoffice.org/5412 Reviewed-by: Petr Mladek <pmladek@suse.cz> Tested-by: Petr Mladek <pmladek@suse.cz>
Diffstat (limited to 'include/rtl/character.hxx')
-rw-r--r--include/rtl/character.hxx27
1 files changed, 26 insertions, 1 deletions
diff --git a/include/rtl/character.hxx b/include/rtl/character.hxx
index 0ba86d6c065b..01350e19ee78 100644
--- a/include/rtl/character.hxx
+++ b/include/rtl/character.hxx
@@ -21,8 +21,10 @@
#define INCLUDED_RTL_CHARACTER_HXX
#include "sal/config.h"
-
#include "sal/types.h"
+#include "sal/log.hxx"
+
+#include <assert.h>
namespace rtl
{
@@ -137,6 +139,29 @@ inline bool isAsciiHexDigit(sal_uInt32 nUtf32)
return isAsciiCanonicHexDigit(nUtf32) || (nUtf32 >= 'a' && nUtf32 <= 'f');
}
+/** Compare two US-ASCII characters.
+
+ @param nChar1 A Unicode scalar value (represented as a UTF-32 code unit).
+ @param nChar2 A unicode scalar value (represented as a UTF-32 code unit).
+
+ @return
+ 0 if both strings are equal
+ < 0 - if this string is less than the string argument
+ > 0 - if this string is greater than the string argument
+
+ @since LibreOffice 4.2
+ */
+inline sal_Int32 compareAsciiIgnoreCase(sal_uInt32 nChar1, sal_uInt32 nChar2)
+{
+ assert(isAscii(nChar1) && isAscii(nChar2));
+ if ( isAsciiUpperCase(nChar1) )
+ nChar1 += 32;
+ if ( isAsciiUpperCase(nChar2) )
+ nChar2 += 32;
+ return nChar1 - nChar2;
+}
+
+
}//rtl namespace
#endif