[libc++] Implements Unicode grapheme clustering
This implements the Grapheme clustering as required by
P1868R2 width: clarifying units of width and precision in std::format
This was omitted in the initial patch, but the paper was marked as completed. This really completes the paper.
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D126971
NOKEYCHECK=True
GitOrigin-RevId: 857a78c04deeb17cbea63224b9705710c42e97f6
diff --git a/include/module.modulemap.in b/include/module.modulemap.in
index 9114e78..cbf0b4f 100644
--- a/include/module.modulemap.in
+++ b/include/module.modulemap.in
@@ -616,32 +616,34 @@
export *
module __format {
- module buffer { private header "__format/buffer.h" }
- module concepts { private header "__format/concepts.h" }
- module enable_insertable { private header "__format/enable_insertable.h" }
- module format_arg { private header "__format/format_arg.h" }
- module format_arg_store { private header "__format/format_arg_store.h" }
- module format_args { private header "__format/format_args.h" }
+ module buffer { private header "__format/buffer.h" }
+ module concepts { private header "__format/concepts.h" }
+ module enable_insertable { private header "__format/enable_insertable.h" }
+ module extended_grapheme_cluster_table { private header "__format/extended_grapheme_cluster_table.h" }
+ module format_arg { private header "__format/format_arg.h" }
+ module format_arg_store { private header "__format/format_arg_store.h" }
+ module format_args { private header "__format/format_args.h" }
module format_context {
private header "__format/format_context.h"
export optional
export locale
}
- module format_error { private header "__format/format_error.h" }
- module format_fwd { private header "__format/format_fwd.h" }
- module format_parse_context { private header "__format/format_parse_context.h" }
- module format_string { private header "__format/format_string.h" }
- module format_to_n_result { private header "__format/format_to_n_result.h" }
- module formatter { private header "__format/formatter.h" }
- module formatter_bool { private header "__format/formatter_bool.h" }
- module formatter_char { private header "__format/formatter_char.h" }
- module formatter_floating_point { private header "__format/formatter_floating_point.h" }
- module formatter_integer { private header "__format/formatter_integer.h" }
- module formatter_integral { private header "__format/formatter_integral.h" }
- module formatter_output { private header "__format/formatter_output.h" }
- module formatter_pointer { private header "__format/formatter_pointer.h" }
- module formatter_string { private header "__format/formatter_string.h" }
- module parser_std_format_spec { private header "__format/parser_std_format_spec.h" }
+ module format_error { private header "__format/format_error.h" }
+ module format_fwd { private header "__format/format_fwd.h" }
+ module format_parse_context { private header "__format/format_parse_context.h" }
+ module format_string { private header "__format/format_string.h" }
+ module format_to_n_result { private header "__format/format_to_n_result.h" }
+ module formatter { private header "__format/formatter.h" }
+ module formatter_bool { private header "__format/formatter_bool.h" }
+ module formatter_char { private header "__format/formatter_char.h" }
+ module formatter_floating_point { private header "__format/formatter_floating_point.h" }
+ module formatter_integer { private header "__format/formatter_integer.h" }
+ module formatter_integral { private header "__format/formatter_integral.h" }
+ module formatter_output { private header "__format/formatter_output.h" }
+ module formatter_pointer { private header "__format/formatter_pointer.h" }
+ module formatter_string { private header "__format/formatter_string.h" }
+ module parser_std_format_spec { private header "__format/parser_std_format_spec.h" }
+ module unicode { private header "__format/unicode.h" }
}
}
module forward_list {