From 1149588836ed426c6ac44a6c200f60a75dfea11d Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Sun, 28 Jan 2024 00:13:00 +0100 Subject: libphobos: Merge upstream phobos c6e1f98fa Phobos changes: - std.uni has been upgraded from Unicode 15.0.0 to 15.1.0. libphobos/ChangeLog: * src/MERGE: Merge upstream phobos c6e1f98fa. --- libphobos/src/std/uni/package.d | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) (limited to 'libphobos/src/std/uni') diff --git a/libphobos/src/std/uni/package.d b/libphobos/src/std/uni/package.d index fec7e5f..632704b 100644 --- a/libphobos/src/std/uni/package.d +++ b/libphobos/src/std/uni/package.d @@ -8016,19 +8016,19 @@ if (isInputRange!S1 && isSomeChar!(ElementEncodingType!S1) if (idx2 != EMPTY_CASE_TRIE) {// both cased chars // adjust idx --> start of bucket - idx = idx - sTable[idx].n; - idx2 = idx2 - sTable[idx2].n; + idx = idx - sTable(idx).n; + idx2 = idx2 - sTable(idx2).n; if (idx == idx2)// one bucket, equivalent chars continue; else// not the same bucket - diff = sTable[idx].ch - sTable[idx2].ch; + diff = sTable(idx).ch - sTable(idx2).ch; } else - diff = sTable[idx - sTable[idx].n].ch - rhs; + diff = sTable(idx - sTable(idx).n).ch - rhs; } else if (idx2 != EMPTY_CASE_TRIE) { - diff = lhs - sTable[idx2 - sTable[idx2].n].ch; + diff = lhs - sTable(idx2 - sTable(idx2).n).ch; } // one of chars is not cased at all return diff; @@ -8073,22 +8073,23 @@ private int fullCasedCmp(Range)(dchar lhs, dchar rhs, ref Range rtail) // fullCaseTrie is packed index table if (idx == EMPTY_CASE_TRIE) return lhs; - immutable start = idx - fTable[idx].n; - immutable end = fTable[idx].size + start; - assert(fTable[start].entry_len == 1); + immutable start = idx - fTable(idx).n; + immutable end = fTable(idx).size + start; + assert(fTable(start).entry_len == 1); for (idx=start; idx> composeCntShift; // TODO: optimize this micro binary search (no more then 4-5 steps) - auto r = compositionTable[idx .. idx+cnt].map!"a.rhs"().assumeSorted(); + auto r = compositionTable.stride(2)[idx .. idx+cnt].assumeSorted(); immutable target = r.lowerBound(second).length; if (target == cnt) return dchar.init; - immutable entry = compositionTable[idx+target]; - if (entry.rhs != second) + immutable entry = compositionTable[(idx+target)*2]; + if (entry != second) return dchar.init; - return entry.composed; + return compositionTable[(idx+target)*2 + 1]; } /// -- cgit v1.1