This series adds a libunistring-optional module. The purpose of the module is to allow using a system libunistring whenever present, while leaving the source code in the package too for the case when it is absent.
The obvious step would be to make this the default. Unfortunately, this is hard because of two combined factors: 1) libunistring-optional requires changing the package (to add INCUNISTRING and LIBUNISTRING appropriately), and 2) via mbiter, any package that requires wchar.h replacements will require uniwidth too. The first four patches implement the infrastructure, everything else is just search-and-replace. Ok? Paolo Paolo Bonzini (15): gnulib-tool: let macros access gnulib-tool parameters havelib: allow expansions in $5 libunistring: improve diagnostics libunistring-optional: infrastructure unitypes: support libunistring-optional unicase: support libunistring-optional uniconv: support libunistring-optional unictype: support libunistring-optional unilbrk: support libunistring-optional uniname: support libunistring-optional uninorm: support libunistring-optional unistdio: support libunistring-optional unistr: support libunistring-optional uniwbrk: support libunistring-optional uniwidth: support libunistring-optional gnulib-tool | 3 ++ lib/{unicase.h => unicase.in.h} | 0 lib/{uniconv.h => uniconv.in.h} | 0 lib/{unictype.h => unictype.in.h} | 0 lib/{unilbrk.h => unilbrk.in.h} | 0 lib/{uniname.h => uniname.in.h} | 0 lib/{uninorm.h => uninorm.in.h} | 0 lib/{unistdio.h => unistdio.in.h} | 0 lib/{unistr.h => unistr.in.h} | 0 lib/{unitypes.h => unitypes.in.h} | 0 lib/{uniwbrk.h => uniwbrk.in.h} | 0 lib/{uniwidth.h => uniwidth.in.h} | 0 m4/gnulib-tool.m4 | 33 ++++++++++--------- m4/lib-link.m4 | 5 ++- m4/libunistring-optional.m4 | 22 +++++++++++++ m4/libunistring.m4 | 14 ++++++-- modules/libunistring-optional | 26 +++++++++++++++ modules/unicase/base | 4 ++- modules/unicase/cased | 2 +- modules/unicase/empty-prefix-context | 2 +- modules/unicase/empty-suffix-context | 2 +- modules/unicase/ignorable | 2 +- modules/unicase/locale-language | 4 +- modules/unicase/special-casing | 4 +- modules/unicase/tocasefold | 2 +- modules/unicase/tolower | 2 +- modules/unicase/totitle | 2 +- modules/unicase/toupper | 2 +- modules/unicase/u16-casecmp | 2 +- modules/unicase/u16-casecoll | 2 +- modules/unicase/u16-casefold | 2 +- modules/unicase/u16-casemap | 2 +- modules/unicase/u16-casexfrm | 2 +- modules/unicase/u16-ct-casefold | 2 +- modules/unicase/u16-ct-tolower | 2 +- modules/unicase/u16-ct-totitle | 2 +- modules/unicase/u16-ct-toupper | 2 +- modules/unicase/u16-is-cased | 2 +- modules/unicase/u16-is-casefolded | 2 +- modules/unicase/u16-is-invariant | 2 +- modules/unicase/u16-is-lowercase | 2 +- modules/unicase/u16-is-titlecase | 2 +- modules/unicase/u16-is-uppercase | 2 +- modules/unicase/u16-prefix-context | 2 +- modules/unicase/u16-suffix-context | 2 +- modules/unicase/u16-tolower | 2 +- modules/unicase/u16-totitle | 2 +- modules/unicase/u16-toupper | 2 +- modules/unicase/u32-casecmp | 2 +- modules/unicase/u32-casecoll | 2 +- modules/unicase/u32-casefold | 2 +- modules/unicase/u32-casemap | 2 +- modules/unicase/u32-casexfrm | 2 +- modules/unicase/u32-ct-casefold | 2 +- modules/unicase/u32-ct-tolower | 2 +- modules/unicase/u32-ct-totitle | 2 +- modules/unicase/u32-ct-toupper | 2 +- modules/unicase/u32-is-cased | 2 +- modules/unicase/u32-is-casefolded | 2 +- modules/unicase/u32-is-invariant | 2 +- modules/unicase/u32-is-lowercase | 2 +- modules/unicase/u32-is-titlecase | 2 +- modules/unicase/u32-is-uppercase | 2 +- modules/unicase/u32-prefix-context | 2 +- modules/unicase/u32-suffix-context | 2 +- modules/unicase/u32-tolower | 2 +- modules/unicase/u32-totitle | 2 +- modules/unicase/u32-toupper | 2 +- modules/unicase/u8-casecmp | 2 +- modules/unicase/u8-casecoll | 2 +- modules/unicase/u8-casefold | 2 +- modules/unicase/u8-casemap | 2 +- modules/unicase/u8-casexfrm | 2 +- modules/unicase/u8-ct-casefold | 2 +- modules/unicase/u8-ct-tolower | 2 +- modules/unicase/u8-ct-totitle | 2 +- modules/unicase/u8-ct-toupper | 2 +- modules/unicase/u8-is-cased | 2 +- modules/unicase/u8-is-casefolded | 2 +- modules/unicase/u8-is-invariant | 2 +- modules/unicase/u8-is-lowercase | 2 +- modules/unicase/u8-is-titlecase | 2 +- modules/unicase/u8-is-uppercase | 2 +- modules/unicase/u8-prefix-context | 2 +- modules/unicase/u8-suffix-context | 2 +- modules/unicase/u8-tolower | 2 +- modules/unicase/u8-totitle | 2 +- modules/unicase/u8-toupper | 2 +- modules/unicase/ulc-casecmp | 2 +- modules/unicase/ulc-casecoll | 2 +- modules/unicase/ulc-casexfrm | 2 +- modules/uniconv/base | 4 ++- modules/uniconv/u16-conv-from-enc | 2 +- modules/uniconv/u16-conv-to-enc | 2 +- modules/uniconv/u16-strconv-from-enc | 2 +- modules/uniconv/u16-strconv-from-locale | 2 +- modules/uniconv/u16-strconv-to-enc | 2 +- modules/uniconv/u16-strconv-to-locale | 2 +- modules/uniconv/u32-conv-from-enc | 2 +- modules/uniconv/u32-conv-to-enc | 2 +- modules/uniconv/u32-strconv-from-enc | 2 +- modules/uniconv/u32-strconv-from-locale | 2 +- modules/uniconv/u32-strconv-to-enc | 2 +- modules/uniconv/u32-strconv-to-locale | 2 +- modules/uniconv/u8-conv-from-enc | 2 +- modules/uniconv/u8-conv-to-enc | 2 +- modules/uniconv/u8-strconv-from-enc | 2 +- modules/uniconv/u8-strconv-from-locale | 2 +- modules/uniconv/u8-strconv-to-enc | 2 +- modules/uniconv/u8-strconv-to-locale | 2 +- modules/unictype/base | 4 ++- modules/unictype/bidicategory-byname | 2 +- modules/unictype/bidicategory-name | 2 +- modules/unictype/bidicategory-of | 2 +- modules/unictype/bidicategory-test | 2 +- modules/unictype/block-list | 2 +- modules/unictype/block-test | 2 +- modules/unictype/category-C | 4 +- modules/unictype/category-Cc | 4 +- modules/unictype/category-Cf | 4 +- modules/unictype/category-Cn | 4 +- modules/unictype/category-Co | 4 +- modules/unictype/category-Cs | 4 +- modules/unictype/category-L | 4 +- modules/unictype/category-Ll | 4 +- modules/unictype/category-Lm | 4 +- modules/unictype/category-Lo | 4 +- modules/unictype/category-Lt | 4 +- modules/unictype/category-Lu | 4 +- modules/unictype/category-M | 4 +- modules/unictype/category-Mc | 4 +- modules/unictype/category-Me | 4 +- modules/unictype/category-Mn | 4 +- modules/unictype/category-N | 4 +- modules/unictype/category-Nd | 4 +- modules/unictype/category-Nl | 4 +- modules/unictype/category-No | 4 +- modules/unictype/category-P | 4 +- modules/unictype/category-Pc | 4 +- modules/unictype/category-Pd | 4 +- modules/unictype/category-Pe | 4 +- modules/unictype/category-Pf | 4 +- modules/unictype/category-Pi | 4 +- modules/unictype/category-Po | 4 +- modules/unictype/category-Ps | 4 +- modules/unictype/category-S | 4 +- modules/unictype/category-Sc | 4 +- modules/unictype/category-Sk | 4 +- modules/unictype/category-Sm | 4 +- modules/unictype/category-So | 4 +- modules/unictype/category-Z | 4 +- modules/unictype/category-Zl | 4 +- modules/unictype/category-Zp | 4 +- modules/unictype/category-Zs | 4 +- modules/unictype/category-and | 2 +- modules/unictype/category-and-not | 2 +- modules/unictype/category-byname | 2 +- modules/unictype/category-name | 2 +- modules/unictype/category-none | 2 +- modules/unictype/category-of | 2 +- modules/unictype/category-or | 2 +- modules/unictype/category-test | 2 +- modules/unictype/combining-class | 2 +- modules/unictype/ctype-alnum | 2 +- modules/unictype/ctype-alpha | 2 +- modules/unictype/ctype-blank | 2 +- modules/unictype/ctype-cntrl | 2 +- modules/unictype/ctype-digit | 2 +- modules/unictype/ctype-graph | 2 +- modules/unictype/ctype-lower | 2 +- modules/unictype/ctype-print | 2 +- modules/unictype/ctype-punct | 2 +- modules/unictype/ctype-space | 2 +- modules/unictype/ctype-upper | 2 +- modules/unictype/ctype-xdigit | 2 +- modules/unictype/decimal-digit | 2 +- modules/unictype/digit | 2 +- modules/unictype/mirror | 2 +- modules/unictype/numeric | 2 +- modules/unictype/property-alphabetic | 2 +- modules/unictype/property-ascii-hex-digit | 2 +- modules/unictype/property-bidi-arabic-digit | 2 +- .../unictype/property-bidi-arabic-right-to-left | 2 +- modules/unictype/property-bidi-block-separator | 2 +- modules/unictype/property-bidi-boundary-neutral | 2 +- modules/unictype/property-bidi-common-separator | 2 +- modules/unictype/property-bidi-control | 2 +- .../unictype/property-bidi-embedding-or-override | 2 +- modules/unictype/property-bidi-eur-num-separator | 2 +- modules/unictype/property-bidi-eur-num-terminator | 2 +- modules/unictype/property-bidi-european-digit | 2 +- .../unictype/property-bidi-hebrew-right-to-left | 2 +- modules/unictype/property-bidi-left-to-right | 2 +- modules/unictype/property-bidi-non-spacing-mark | 2 +- modules/unictype/property-bidi-other-neutral | 2 +- modules/unictype/property-bidi-pdf | 2 +- modules/unictype/property-bidi-segment-separator | 2 +- modules/unictype/property-bidi-whitespace | 2 +- modules/unictype/property-byname | 4 +- modules/unictype/property-combining | 2 +- modules/unictype/property-composite | 2 +- modules/unictype/property-currency-symbol | 2 +- modules/unictype/property-dash | 2 +- modules/unictype/property-decimal-digit | 2 +- .../unictype/property-default-ignorable-code-point | 2 +- modules/unictype/property-deprecated | 2 +- modules/unictype/property-diacritic | 2 +- modules/unictype/property-extender | 2 +- modules/unictype/property-format-control | 2 +- modules/unictype/property-grapheme-base | 2 +- modules/unictype/property-grapheme-extend | 2 +- modules/unictype/property-grapheme-link | 2 +- modules/unictype/property-hex-digit | 2 +- modules/unictype/property-hyphen | 2 +- modules/unictype/property-id-continue | 2 +- modules/unictype/property-id-start | 2 +- modules/unictype/property-ideographic | 2 +- modules/unictype/property-ids-binary-operator | 2 +- modules/unictype/property-ids-trinary-operator | 2 +- modules/unictype/property-ignorable-control | 2 +- modules/unictype/property-iso-control | 2 +- modules/unictype/property-join-control | 2 +- modules/unictype/property-left-of-pair | 2 +- modules/unictype/property-line-separator | 2 +- modules/unictype/property-logical-order-exception | 2 +- modules/unictype/property-lowercase | 2 +- modules/unictype/property-math | 2 +- modules/unictype/property-non-break | 2 +- modules/unictype/property-not-a-character | 2 +- modules/unictype/property-numeric | 2 +- modules/unictype/property-other-alphabetic | 2 +- .../property-other-default-ignorable-code-point | 2 +- modules/unictype/property-other-grapheme-extend | 2 +- modules/unictype/property-other-id-continue | 2 +- modules/unictype/property-other-id-start | 2 +- modules/unictype/property-other-lowercase | 2 +- modules/unictype/property-other-math | 2 +- modules/unictype/property-other-uppercase | 2 +- modules/unictype/property-paired-punctuation | 2 +- modules/unictype/property-paragraph-separator | 2 +- modules/unictype/property-pattern-syntax | 2 +- modules/unictype/property-pattern-white-space | 2 +- modules/unictype/property-private-use | 2 +- modules/unictype/property-punctuation | 2 +- modules/unictype/property-quotation-mark | 2 +- modules/unictype/property-radical | 2 +- modules/unictype/property-sentence-terminal | 2 +- modules/unictype/property-soft-dotted | 2 +- modules/unictype/property-space | 2 +- modules/unictype/property-terminal-punctuation | 2 +- modules/unictype/property-test | 2 +- modules/unictype/property-titlecase | 2 +- modules/unictype/property-unassigned-code-value | 2 +- modules/unictype/property-unified-ideograph | 2 +- modules/unictype/property-uppercase | 2 +- modules/unictype/property-variation-selector | 2 +- modules/unictype/property-white-space | 2 +- modules/unictype/property-xid-continue | 2 +- modules/unictype/property-xid-start | 2 +- modules/unictype/property-zero-width | 2 +- modules/unictype/scripts | 4 +- modules/unictype/syntax-c-ident | 2 +- modules/unictype/syntax-c-whitespace | 2 +- modules/unictype/syntax-java-ident | 2 +- modules/unictype/syntax-java-whitespace | 2 +- modules/unilbrk/base | 4 ++- modules/unilbrk/tables | 2 +- modules/unilbrk/u16-possible-linebreaks | 2 +- modules/unilbrk/u16-width-linebreaks | 2 +- modules/unilbrk/u32-possible-linebreaks | 2 +- modules/unilbrk/u32-width-linebreaks | 2 +- modules/unilbrk/u8-possible-linebreaks | 2 +- modules/unilbrk/u8-width-linebreaks | 2 +- modules/unilbrk/ulc-common | 2 +- modules/unilbrk/ulc-possible-linebreaks | 2 +- modules/unilbrk/ulc-width-linebreaks | 2 +- modules/uniname/base | 4 ++- modules/uniname/uniname | 4 +- modules/uninorm/base | 4 ++- modules/uninorm/canonical-decomposition | 2 +- modules/uninorm/compat-decomposition | 2 +- modules/uninorm/composition | 4 +- modules/uninorm/decompose-internal | 2 +- modules/uninorm/decomposing-form | 2 +- modules/uninorm/decomposition | 2 +- modules/uninorm/decomposition-table | 2 +- modules/uninorm/filter | 2 +- modules/uninorm/nfc | 2 +- modules/uninorm/nfd | 2 +- modules/uninorm/nfkc | 2 +- modules/uninorm/nfkd | 2 +- modules/uninorm/u16-normalize | 2 +- modules/uninorm/u16-normcmp | 2 +- modules/uninorm/u16-normcoll | 2 +- modules/uninorm/u16-normxfrm | 2 +- modules/uninorm/u32-normalize | 2 +- modules/uninorm/u32-normcmp | 2 +- modules/uninorm/u32-normcoll | 2 +- modules/uninorm/u32-normxfrm | 2 +- modules/uninorm/u8-normalize | 2 +- modules/uninorm/u8-normcmp | 2 +- modules/uninorm/u8-normcoll | 2 +- modules/uninorm/u8-normxfrm | 2 +- modules/unistdio/base | 4 ++- modules/unistdio/u-printf-args | 2 +- modules/unistdio/u16-asnprintf | 2 +- modules/unistdio/u16-asprintf | 2 +- modules/unistdio/u16-printf-parse | 2 +- modules/unistdio/u16-snprintf | 2 +- modules/unistdio/u16-sprintf | 2 +- modules/unistdio/u16-u16-asnprintf | 2 +- modules/unistdio/u16-u16-asprintf | 2 +- modules/unistdio/u16-u16-snprintf | 2 +- modules/unistdio/u16-u16-sprintf | 2 +- modules/unistdio/u16-u16-vasnprintf | 2 +- modules/unistdio/u16-u16-vasprintf | 2 +- modules/unistdio/u16-u16-vsnprintf | 2 +- modules/unistdio/u16-u16-vsprintf | 2 +- modules/unistdio/u16-vasnprintf | 2 +- modules/unistdio/u16-vasprintf | 2 +- modules/unistdio/u16-vsnprintf | 2 +- modules/unistdio/u16-vsprintf | 2 +- modules/unistdio/u32-asnprintf | 2 +- modules/unistdio/u32-asprintf | 2 +- modules/unistdio/u32-printf-parse | 2 +- modules/unistdio/u32-snprintf | 2 +- modules/unistdio/u32-sprintf | 2 +- modules/unistdio/u32-u32-asnprintf | 2 +- modules/unistdio/u32-u32-asprintf | 2 +- modules/unistdio/u32-u32-snprintf | 2 +- modules/unistdio/u32-u32-sprintf | 2 +- modules/unistdio/u32-u32-vasnprintf | 2 +- modules/unistdio/u32-u32-vasprintf | 2 +- modules/unistdio/u32-u32-vsnprintf | 2 +- modules/unistdio/u32-u32-vsprintf | 2 +- modules/unistdio/u32-vasnprintf | 2 +- modules/unistdio/u32-vasprintf | 2 +- modules/unistdio/u32-vsnprintf | 2 +- modules/unistdio/u32-vsprintf | 2 +- modules/unistdio/u8-asnprintf | 2 +- modules/unistdio/u8-asprintf | 2 +- modules/unistdio/u8-printf-parse | 2 +- modules/unistdio/u8-snprintf | 2 +- modules/unistdio/u8-sprintf | 2 +- modules/unistdio/u8-u8-asnprintf | 2 +- modules/unistdio/u8-u8-asprintf | 2 +- modules/unistdio/u8-u8-snprintf | 2 +- modules/unistdio/u8-u8-sprintf | 2 +- modules/unistdio/u8-u8-vasnprintf | 2 +- modules/unistdio/u8-u8-vasprintf | 2 +- modules/unistdio/u8-u8-vsnprintf | 2 +- modules/unistdio/u8-u8-vsprintf | 2 +- modules/unistdio/u8-vasnprintf | 2 +- modules/unistdio/u8-vasprintf | 2 +- modules/unistdio/u8-vsnprintf | 2 +- modules/unistdio/u8-vsprintf | 2 +- modules/unistdio/ulc-asnprintf | 2 +- modules/unistdio/ulc-asprintf | 2 +- modules/unistdio/ulc-fprintf | 2 +- modules/unistdio/ulc-printf-parse | 2 +- modules/unistdio/ulc-snprintf | 2 +- modules/unistdio/ulc-sprintf | 2 +- modules/unistdio/ulc-vasnprintf | 2 +- modules/unistdio/ulc-vasprintf | 2 +- modules/unistdio/ulc-vfprintf | 2 +- modules/unistdio/ulc-vsnprintf | 2 +- modules/unistdio/ulc-vsprintf | 2 +- modules/unistr/base | 4 ++- modules/unistr/u16-check | 2 +- modules/unistr/u16-chr | 2 +- modules/unistr/u16-cmp | 2 +- modules/unistr/u16-cmp2 | 2 +- modules/unistr/u16-cpy | 2 +- modules/unistr/u16-cpy-alloc | 2 +- modules/unistr/u16-endswith | 2 +- modules/unistr/u16-mblen | 2 +- modules/unistr/u16-mbsnlen | 2 +- modules/unistr/u16-mbtouc | 2 +- modules/unistr/u16-mbtouc-unsafe | 2 +- modules/unistr/u16-mbtoucr | 2 +- modules/unistr/u16-move | 2 +- modules/unistr/u16-next | 2 +- modules/unistr/u16-prev | 2 +- modules/unistr/u16-set | 2 +- modules/unistr/u16-startswith | 2 +- modules/unistr/u16-stpcpy | 2 +- modules/unistr/u16-stpncpy | 2 +- modules/unistr/u16-strcat | 2 +- modules/unistr/u16-strchr | 2 +- modules/unistr/u16-strcmp | 2 +- modules/unistr/u16-strcoll | 2 +- modules/unistr/u16-strcpy | 2 +- modules/unistr/u16-strcspn | 2 +- modules/unistr/u16-strdup | 2 +- modules/unistr/u16-strlen | 2 +- modules/unistr/u16-strmblen | 2 +- modules/unistr/u16-strmbtouc | 2 +- modules/unistr/u16-strncat | 2 +- modules/unistr/u16-strncmp | 2 +- modules/unistr/u16-strncpy | 2 +- modules/unistr/u16-strnlen | 2 +- modules/unistr/u16-strpbrk | 2 +- modules/unistr/u16-strrchr | 2 +- modules/unistr/u16-strspn | 2 +- modules/unistr/u16-strstr | 2 +- modules/unistr/u16-strtok | 2 +- modules/unistr/u16-to-u32 | 2 +- modules/unistr/u16-to-u8 | 2 +- modules/unistr/u16-uctomb | 2 +- modules/unistr/u32-check | 2 +- modules/unistr/u32-chr | 2 +- modules/unistr/u32-cmp | 2 +- modules/unistr/u32-cmp2 | 2 +- modules/unistr/u32-cpy | 2 +- modules/unistr/u32-cpy-alloc | 2 +- modules/unistr/u32-endswith | 2 +- modules/unistr/u32-mblen | 2 +- modules/unistr/u32-mbsnlen | 2 +- modules/unistr/u32-mbtouc | 2 +- modules/unistr/u32-mbtouc-unsafe | 2 +- modules/unistr/u32-mbtoucr | 2 +- modules/unistr/u32-move | 2 +- modules/unistr/u32-next | 2 +- modules/unistr/u32-prev | 2 +- modules/unistr/u32-set | 2 +- modules/unistr/u32-startswith | 2 +- modules/unistr/u32-stpcpy | 2 +- modules/unistr/u32-stpncpy | 2 +- modules/unistr/u32-strcat | 2 +- modules/unistr/u32-strchr | 2 +- modules/unistr/u32-strcmp | 2 +- modules/unistr/u32-strcoll | 2 +- modules/unistr/u32-strcpy | 2 +- modules/unistr/u32-strcspn | 2 +- modules/unistr/u32-strdup | 2 +- modules/unistr/u32-strlen | 2 +- modules/unistr/u32-strmblen | 2 +- modules/unistr/u32-strmbtouc | 2 +- modules/unistr/u32-strncat | 2 +- modules/unistr/u32-strncmp | 2 +- modules/unistr/u32-strncpy | 2 +- modules/unistr/u32-strnlen | 2 +- modules/unistr/u32-strpbrk | 2 +- modules/unistr/u32-strrchr | 2 +- modules/unistr/u32-strspn | 2 +- modules/unistr/u32-strstr | 2 +- modules/unistr/u32-strtok | 2 +- modules/unistr/u32-to-u16 | 2 +- modules/unistr/u32-to-u8 | 2 +- modules/unistr/u32-uctomb | 2 +- modules/unistr/u8-check | 2 +- modules/unistr/u8-chr | 2 +- modules/unistr/u8-cmp | 2 +- modules/unistr/u8-cmp2 | 2 +- modules/unistr/u8-cpy | 2 +- modules/unistr/u8-cpy-alloc | 2 +- modules/unistr/u8-endswith | 2 +- modules/unistr/u8-mblen | 2 +- modules/unistr/u8-mbsnlen | 2 +- modules/unistr/u8-mbtouc | 2 +- modules/unistr/u8-mbtouc-unsafe | 2 +- modules/unistr/u8-mbtoucr | 2 +- modules/unistr/u8-move | 2 +- modules/unistr/u8-next | 2 +- modules/unistr/u8-prev | 2 +- modules/unistr/u8-set | 2 +- modules/unistr/u8-startswith | 2 +- modules/unistr/u8-stpcpy | 2 +- modules/unistr/u8-stpncpy | 2 +- modules/unistr/u8-strcat | 2 +- modules/unistr/u8-strchr | 2 +- modules/unistr/u8-strcmp | 2 +- modules/unistr/u8-strcoll | 2 +- modules/unistr/u8-strcpy | 2 +- modules/unistr/u8-strcspn | 2 +- modules/unistr/u8-strdup | 2 +- modules/unistr/u8-strlen | 2 +- modules/unistr/u8-strmblen | 2 +- modules/unistr/u8-strmbtouc | 2 +- modules/unistr/u8-strncat | 2 +- modules/unistr/u8-strncmp | 2 +- modules/unistr/u8-strncpy | 2 +- modules/unistr/u8-strnlen | 2 +- modules/unistr/u8-strpbrk | 2 +- modules/unistr/u8-strrchr | 2 +- modules/unistr/u8-strspn | 2 +- modules/unistr/u8-strstr | 2 +- modules/unistr/u8-strtok | 2 +- modules/unistr/u8-to-u16 | 2 +- modules/unistr/u8-to-u32 | 2 +- modules/unistr/u8-uctomb | 2 +- modules/unitypes | 3 +- modules/uniwbrk/base | 4 ++- modules/uniwbrk/table | 2 +- modules/uniwbrk/u16-wordbreaks | 2 +- modules/uniwbrk/u32-wordbreaks | 2 +- modules/uniwbrk/u8-wordbreaks | 2 +- modules/uniwbrk/ulc-wordbreaks | 2 +- modules/uniwbrk/wordbreak-property | 2 +- modules/uniwidth/base | 4 ++- modules/uniwidth/u16-strwidth | 2 +- modules/uniwidth/u16-width | 2 +- modules/uniwidth/u32-strwidth | 2 +- modules/uniwidth/u32-width | 2 +- modules/uniwidth/u8-strwidth | 2 +- modules/uniwidth/u8-width | 2 +- modules/uniwidth/width | 2 +- 507 files changed, 636 insertions(+), 554 deletions(-) rename lib/{unicase.h => unicase.in.h} (100%) rename lib/{uniconv.h => uniconv.in.h} (100%) rename lib/{unictype.h => unictype.in.h} (100%) rename lib/{unilbrk.h => unilbrk.in.h} (100%) rename lib/{uniname.h => uniname.in.h} (100%) rename lib/{uninorm.h => uninorm.in.h} (100%) rename lib/{unistdio.h => unistdio.in.h} (100%) rename lib/{unistr.h => unistr.in.h} (100%) rename lib/{unitypes.h => unitypes.in.h} (100%) rename lib/{uniwbrk.h => uniwbrk.in.h} (100%) rename lib/{uniwidth.h => uniwidth.in.h} (100%) create mode 100644 m4/libunistring-optional.m4 create mode 100644 modules/libunistring-optional