]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/collation.h
ICU-59180.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / collation.h
index 3d2ea8c6a1c9a5839a154a31ba658a0f97fe373a..e9256c9c12c5a7be31efdf2578451fa7f4b3fcf7 100644 (file)
@@ -1,6 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
 /*
 *******************************************************************************
-* Copyright (C) 2010-2014, International Business Machines
+* Copyright (C) 2010-2015, International Business Machines
 * Corporation and others.  All Rights Reserved.
 *******************************************************************************
 * collation.h
 * Corporation and others.  All Rights Reserved.
 *******************************************************************************
 * collation.h
@@ -29,17 +31,19 @@ public:
     // Special sort key bytes for all levels.
     static const uint8_t TERMINATOR_BYTE = 0;
     static const uint8_t LEVEL_SEPARATOR_BYTE = 1;
     // Special sort key bytes for all levels.
     static const uint8_t TERMINATOR_BYTE = 0;
     static const uint8_t LEVEL_SEPARATOR_BYTE = 1;
+
+    /** The secondary/tertiary lower limit for tailoring before any root elements. */
+    static const uint32_t BEFORE_WEIGHT16 = 0x0100;
+
     /**
      * Merge-sort-key separator.
     /**
      * Merge-sort-key separator.
-     * Must not be used as the lead byte of any CE weight,
-     * nor as primary compression low terminator.
+     * Same as the unique primary and identical-level weights of U+FFFE.
+     * Must not be used as primary compression low terminator.
      * Otherwise usable.
      */
     static const uint8_t MERGE_SEPARATOR_BYTE = 2;
     static const uint32_t MERGE_SEPARATOR_PRIMARY = 0x02000000;  // U+FFFE
      * Otherwise usable.
      */
     static const uint8_t MERGE_SEPARATOR_BYTE = 2;
     static const uint32_t MERGE_SEPARATOR_PRIMARY = 0x02000000;  // U+FFFE
-    static const uint32_t MERGE_SEPARATOR_WEIGHT16 = 0x0200;  // U+FFFE
-    static const uint32_t MERGE_SEPARATOR_LOWER32 = 0x02000200;  // U+FFFE
-    static const uint32_t MERGE_SEPARATOR_CE32 = 0x02000202;  // U+FFFE
+    static const uint32_t MERGE_SEPARATOR_CE32 = 0x02000505;  // U+FFFE
 
     /**
      * Primary compression low terminator, must be greater than MERGE_SEPARATOR_BYTE.
 
     /**
      * Primary compression low terminator, must be greater than MERGE_SEPARATOR_BYTE.
@@ -486,10 +490,6 @@ public:
         return makeCE(unassignedPrimaryFromCodePoint(c));
     }
 
         return makeCE(unassignedPrimaryFromCodePoint(c));
     }
 
-    static inline uint32_t reorder(const uint8_t reorderTable[256], uint32_t primary) {
-        return ((uint32_t)reorderTable[primary >> 24] << 24) | (primary & 0xffffff);
-    }
-
 private:
     Collation();  // No instantiation.
 };
 private:
     Collation();  // No instantiation.
 };