mirror of
https://github.com/postgres/postgres.git
synced 2025-08-27 07:42:10 +03:00
Add support for other normal forms to Unicode normalization API
It previously only supported NFKC, for use by SASLprep. This expands the API to offer the choice of all four normalization forms. Right now, there are no internal users of the forms other than NFKC. Reviewed-by: Daniel Verite <daniel@manitou-mail.org> Reviewed-by: Andreas Karlsson <andreas@proxel.se> Discussion: https://www.postgresql.org/message-id/flat/c1909f27-c269-2ed9-12f8-3ab72c8caf7a@2ndquadrant.com
This commit is contained in:
@@ -48,7 +48,7 @@ typedef struct
|
||||
{
|
||||
int linenum;
|
||||
pg_wchar input[50];
|
||||
pg_wchar output[50];
|
||||
pg_wchar output[4][50];
|
||||
} pg_unicode_test;
|
||||
|
||||
/* test table */
|
||||
@@ -89,13 +89,16 @@ while (my $line = <$INPUT>)
|
||||
my ($source, $nfc, $nfd, $nfkc, $nfkd) = split(';', $line);
|
||||
|
||||
my $source_utf8 = codepoint_string_to_hex($source);
|
||||
my $nfc_utf8 = codepoint_string_to_hex($nfc);
|
||||
my $nfd_utf8 = codepoint_string_to_hex($nfd);
|
||||
my $nfkc_utf8 = codepoint_string_to_hex($nfkc);
|
||||
my $nfkd_utf8 = codepoint_string_to_hex($nfkd);
|
||||
|
||||
print $OUTPUT "\t{ $linenum, { $source_utf8 }, { $nfkc_utf8 } },\n";
|
||||
print $OUTPUT "\t{ $linenum, { $source_utf8 }, { { $nfc_utf8 }, { $nfd_utf8 }, { $nfkc_utf8 }, { $nfkd_utf8 } } },\n";
|
||||
}
|
||||
|
||||
# Output terminator entry
|
||||
print $OUTPUT "\t{ 0, { 0 }, { 0 } }";
|
||||
print $OUTPUT "\t{ 0, { 0 }, { { 0 }, { 0 }, { 0 }, { 0 } } }";
|
||||
print $OUTPUT "\n};\n";
|
||||
|
||||
close $OUTPUT;
|
||||
|
Reference in New Issue
Block a user