Hello,
BCP47 script names cannot be numbers, numbers in subtags 4 and more
characters long are reserved for variants, for which they are valid.
For example 1901 is a registered variant.
https://www.rfc-editor.org/rfc/rfc5646.html#section-2.2.3
I attach a patch for lib/bcp47.c. The git log/ChangeLog entry could be
along:
bcp47: only letters in BCP47 script subtag
* lib/bcp47.c (bcp47_to_xpg): do not consider a subtag with numbers to
possibly be a script subtag.
--
Pat
diff --git a/lib/bcp47.c b/lib/bcp47.c
index ffc5946731..f35779a32e 100644
--- a/lib/bcp47.c
+++ b/lib/bcp47.c
@@ -405,7 +405,11 @@ bcp47_to_xpg (char *xpg, const char *bcp47, const char *codeset)
p++;
size_t subtag_len = p - subtag_start;
- if (!past_script && subtag_len == 4)
+ if (!past_script && subtag_len == 4
+ && (subtag_start[0] < '0' || subtag_start[0] > '9')
+ && (subtag_start[1] < '0' || subtag_start[0] > '9')
+ && (subtag_start[2] < '0' || subtag_start[0] > '9')
+ && (subtag_start[3] < '0' || subtag_start[0] > '9'))
{
/* Parsed -script. */
script_start = subtag_start;