Skip to content

Commit 432872e

Browse files
author
livecodeali
committed
[[ Grapheme Handling ]] Remove locale parameter from map/unmap grapheme indices
1 parent 3d6448b commit 432872e

5 files changed

Lines changed: 14 additions & 17 deletions

File tree

engine/src/exec-strings.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,7 +1266,7 @@ void MCStringsEvalFormat(MCExecContext& ctxt, MCStringRef p_format, MCValueRef*
12661266
MCRange t_range;
12671267
t_range = MCRangeMake(0, t_length);
12681268
// Find the grapheme length of
1269-
MCStringUnmapGraphemeIndices(*t_string, kMCBasicLocale, t_range, t_range);
1269+
MCStringUnmapGraphemeIndices(*t_string, t_range, t_range);
12701270

12711271
// If the width sub-specifier is greater than the grapheme length of the string, then pad appropriately
12721272
if (width > (integer_t) t_range . length)
@@ -1509,10 +1509,10 @@ void MCStringsEvalConcatenateWithComma(MCExecContext& ctxt, MCStringRef p_left,
15091509
static bool MCStringsCheckGraphemeBoundaries(MCStringRef p_string, MCRange p_range)
15101510
{
15111511
MCRange t_grapheme_range;
1512-
MCStringUnmapGraphemeIndices(p_string, kMCBasicLocale, p_range, t_grapheme_range);
1512+
MCStringUnmapGraphemeIndices(p_string, p_range, t_grapheme_range);
15131513

15141514
MCRange t_grapheme_range_r;
1515-
MCStringMapGraphemeIndices(p_string, kMCBasicLocale, t_grapheme_range, t_grapheme_range_r);
1515+
MCStringMapGraphemeIndices(p_string, t_grapheme_range, t_grapheme_range_r);
15161516

15171517
if (t_grapheme_range_r . offset == p_range . offset &&
15181518
t_grapheme_range_r . length == p_range . length)

libfoundation/include/foundation.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2150,10 +2150,10 @@ MC_DLLEXPORT bool MCStringMapCodepointIndices(MCStringRef, MCRange p_codepoint_r
21502150
MC_DLLEXPORT bool MCStringUnmapCodepointIndices(MCStringRef, MCRange p_string_range, MCRange &r_codepoint_range);
21512151

21522152
// Maps from a grapheme (visual character) range to a code unit (StringRef) range
2153-
MC_DLLEXPORT bool MCStringMapGraphemeIndices(MCStringRef, MCLocaleRef, MCRange p_grapheme_range, MCRange& r_string_range);
2153+
MC_DLLEXPORT bool MCStringMapGraphemeIndices(MCStringRef, MCRange p_grapheme_range, MCRange& r_string_range);
21542154

21552155
// Maps from a code unit (StringRef) range to a grapheme (visual character) range
2156-
MC_DLLEXPORT bool MCStringUnmapGraphemeIndices(MCStringRef, MCLocaleRef, MCRange p_string_range, MCRange& r_grapheme_range);
2156+
MC_DLLEXPORT bool MCStringUnmapGraphemeIndices(MCStringRef, MCRange p_string_range, MCRange& r_grapheme_range);
21572157

21582158
// Maps from a word range to a codeunit (StringRef) range
21592159
MC_DLLEXPORT bool MCStringMapTrueWordIndices(MCStringRef, MCLocaleRef, MCRange p_word_range, MCRange& r_string_range);

libfoundation/src/foundation-chunk.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ uinteger_t MCChunkCountGraphemeChunkCallback(void *context)
6565
t_range = *t_state -> range;
6666

6767
MCRange t_grapheme_range;
68-
MCStringUnmapGraphemeIndices((MCStringRef)t_state -> value, kMCLocaleBasic, t_range, t_grapheme_range);
68+
MCStringUnmapGraphemeIndices((MCStringRef)t_state -> value, t_range, t_grapheme_range);
6969
return t_grapheme_range . length;
7070
}
7171

libfoundation/src/foundation-string.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1902,10 +1902,9 @@ bool MCStringMapIndices(MCStringRef self, MCBreakIteratorType p_type, MCLocaleRe
19021902
}
19031903

19041904
MC_DLLEXPORT_DEF
1905-
bool MCStringMapGraphemeIndices(MCStringRef self, MCLocaleRef p_locale, MCRange p_grapheme_range, MCRange &r_cu_range)
1905+
bool MCStringMapGraphemeIndices(MCStringRef self, MCRange p_grapheme_range, MCRange &r_cu_range)
19061906
{
19071907
__MCAssertIsString(self);
1908-
__MCAssertIsLocale(p_locale);
19091908

19101909
if (__MCStringIsIndirect(self))
19111910
self = self -> string;
@@ -2136,10 +2135,9 @@ uindex_t __MCStringCountGraphemesInRange(MCStringRef self, MCRange p_cu_range)
21362135
}
21372136

21382137
MC_DLLEXPORT_DEF
2139-
bool MCStringUnmapGraphemeIndices(MCStringRef self, MCLocaleRef p_locale, MCRange p_cu_range, MCRange &r_char_range)
2138+
bool MCStringUnmapGraphemeIndices(MCStringRef self, MCRange p_cu_range, MCRange &r_char_range)
21402139
{
21412140
__MCAssertIsString(self);
2142-
__MCAssertIsLocale(p_locale);
21432141

21442142
if (__MCStringIsIndirect(self))
21452143
self = self -> string;

libscript/src/module-char.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717
#include <foundation.h>
1818
#include <foundation-auto.h>
1919
#include <foundation-chunk.h>
20-
#include <foundation-locale.h>
2120

2221
bool MCCharEvaluateChunk(MCStringRef p_target, MCRange p_grapheme_range, MCStringRef& r_output)
2322
{
2423
MCRange t_range;
25-
MCStringMapGraphemeIndices(p_target, kMCLocaleBasic, p_grapheme_range, t_range);
24+
MCStringMapGraphemeIndices(p_target, p_grapheme_range, t_range);
2625

2726
return MCStringCopySubstring(p_target, t_range, r_output);
2827
}
@@ -34,7 +33,7 @@ bool MCCharStoreChunk(MCStringRef &x_target, MCStringRef p_value, MCRange p_grap
3433
return false;
3534

3635
MCRange t_range;
37-
MCStringMapGraphemeIndices(x_target, kMCLocaleBasic, p_grapheme_range, t_range);
36+
MCStringMapGraphemeIndices(x_target, p_grapheme_range, t_range);
3837

3938
if (!MCStringReplace(*t_string, MCRangeMake(t_range . offset, t_range . length), p_value))
4039
return false;
@@ -59,7 +58,7 @@ extern "C" MC_DLLEXPORT_DEF void MCCharEvalIsAmongTheCharsOf(MCStringRef p_needl
5958
// Error if there is more than one char in needle.
6059
MCRange t_range;
6160
// AL_2015-05-07: [[ Bug 15331 ]] Pass in correct code unit range as MCStringUnmapGraphemeIndices doesn't clamp.
62-
MCStringUnmapGraphemeIndices(p_needle, kMCLocaleBasic, MCRangeMake(0, MCStringGetLength(p_needle)), t_range);
61+
MCStringUnmapGraphemeIndices(p_needle, MCRangeMake(0, MCStringGetLength(p_needle)), t_range);
6362
if (t_range . length != 1)
6463
{
6564
MCErrorCreateAndThrow(kMCGenericErrorTypeInfo, "reason", MCSTR("needle must be a single char"), nil);
@@ -118,11 +117,11 @@ extern "C" MC_DLLEXPORT_DEF void MCCharEvalOffsetOfCharsInRange(bool p_is_last,
118117
MCRange t_range;
119118
if (p_range . length == UINDEX_MAX)
120119
{
121-
MCStringMapGraphemeIndices(p_target, kMCLocaleBasic, MCRangeMake(p_range . offset, 1), t_range);
120+
MCStringMapGraphemeIndices(p_target, MCRangeMake(p_range . offset, 1), t_range);
122121
t_range . length = UINDEX_MAX;
123122
}
124123
else
125-
MCStringMapGraphemeIndices(p_target, kMCLocaleBasic, p_range, t_range);
124+
MCStringMapGraphemeIndices(p_target, p_range, t_range);
126125

127126
bool t_found;
128127
if (p_is_last)
@@ -141,7 +140,7 @@ extern "C" MC_DLLEXPORT_DEF void MCCharEvalOffsetOfCharsInRange(bool p_is_last,
141140
t_offset++;
142141

143142
MCRange t_output_range;
144-
MCStringUnmapGraphemeIndices(p_target, kMCLocaleBasic, MCRangeMake(t_offset, 1), t_output_range);
143+
MCStringUnmapGraphemeIndices(p_target, MCRangeMake(t_offset, 1), t_output_range);
145144

146145
r_output = t_output_range . offset + p_range . offset;
147146
}

0 commit comments

Comments
 (0)