diff options
author | Arjun Shankar <arjun@redhat.com> | 2020-09-25 14:47:06 +0200 |
---|---|---|
committer | Arjun Shankar <arjun@redhat.com> | 2020-09-25 14:47:06 +0200 |
commit | 7d4ec75e111291851620c6aa2c4460647b7fd50d (patch) | |
tree | 1692804299aa1634e52cd2cf021ab4dbce2b01c6 /iconv/gconv_charset.c | |
parent | 06e95b93f0bb5943363ad3dcf0cd0fb9d8613b61 (diff) | |
download | glibc-7d4ec75e111291851620c6aa2c4460647b7fd50d.tar glibc-7d4ec75e111291851620c6aa2c4460647b7fd50d.tar.gz glibc-7d4ec75e111291851620c6aa2c4460647b7fd50d.tar.bz2 glibc-7d4ec75e111291851620c6aa2c4460647b7fd50d.zip |
intl: Handle translation output codesets with suffixes [BZ #26383]
Commit 91927b7c7643 (Rewrite iconv option parsing [BZ #19519]) did not
handle cases where the output codeset for translations (via the `gettext'
family of functions) might have a caller specified encoding suffix such as
TRANSLIT or IGNORE. This led to a regression where translations did not
work when the codeset had a suffix.
This commit fixes the above issue by parsing any suffixes passed to
__dcigettext and adds two new test-cases to intl/tst-codeset.c to
verify correct behaviour. The iconv-internal function __gconv_create_spec
and the static iconv-internal function gconv_destroy_spec are now visible
internally within glibc and used in intl/dcigettext.c.
Diffstat (limited to 'iconv/gconv_charset.c')
-rw-r--r-- | iconv/gconv_charset.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/iconv/gconv_charset.c b/iconv/gconv_charset.c index 6ccd0773cc..4ba0aa99f5 100644 --- a/iconv/gconv_charset.c +++ b/iconv/gconv_charset.c @@ -216,3 +216,13 @@ out: return ret; } libc_hidden_def (__gconv_create_spec) + + +void +__gconv_destroy_spec (struct gconv_spec *conv_spec) +{ + free (conv_spec->fromcode); + free (conv_spec->tocode); + return; +} +libc_hidden_def (__gconv_destroy_spec) |