From 5891046a8615390bd96fb3cf1c4663bf00d12e47 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 1 Apr 1998 13:19:51 +0000 Subject: Update. * iconv/gconv_conf.c (builtin_aliases): New variable. (__gconv_read_conf): Add builtin aliases. * iconv/gconv_builtin.c (builtin_map): Define BUILTIN?ALIAS as an noop macro before including gconv_builtin.h. * iconv/gconv_builtin.h: Add alias names. --- ChangeLog | 6 ++++++ iconv/gconv_builtin.c | 3 ++- iconv/gconv_builtin.h | 7 +++++-- iconv/gconv_conf.c | 25 ++++++++++++++++++++++++- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4a90650..f1fe222 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 1998-04-01 Ulrich Drepper + * iconv/gconv_conf.c (builtin_aliases): New variable. + (__gconv_read_conf): Add builtin aliases. + * iconv/gconv_builtin.c (builtin_map): Define BUILTIN?ALIAS as an + noop macro before including gconv_builtin.h. + * iconv/gconv_builtin.h: Add alias names. + * iconv/gconv_simple.c (__gconv_transform_ucs4_utf8): Compute number of converted bytes correctly. diff --git a/iconv/gconv_builtin.c b/iconv/gconv_builtin.c index 4193822..786a3c1 100644 --- a/iconv/gconv_builtin.c +++ b/iconv/gconv_builtin.c @@ -1,5 +1,5 @@ /* Table for builtin transformation mapping. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -41,6 +41,7 @@ static struct builtin_map init: Init, \ end: End, \ }, +#define BUILTIN_ALIAS(From, To) #include }; diff --git a/iconv/gconv_builtin.h b/iconv/gconv_builtin.h index 8dcc3aa..3990b2c 100644 --- a/iconv/gconv_builtin.h +++ b/iconv/gconv_builtin.h @@ -1,5 +1,5 @@ /* Builtin transformations. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -18,13 +18,16 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +BUILTIN_ALIAS ("UTF8//", "ISO-10646/UTF8/") +BUILTIN_ALIAS ("UTF-8//", "ISO-10646/UTF8/") + BUILTIN_TRANSFORMATION ("([^/]+)/UCS4/([^/]*)", NULL, 0, "\\1/UTF8/\\2", 1, "=ucs4->utf8", __gconv_transform_ucs4_utf8, __gconv_transform_init_rstate, __gconv_transform_end_rstate) -BUILTIN_TRANSFORMATION ("([^/]+)/UTF8/([^/]*)", NULL, 0, +BUILTIN_TRANSFORMATION ("([^/]+)/UTF-?8/([^/]*)", NULL, 0, "\\1/UCS4/\\2", 1, "=utf8->ucs4", __gconv_transform_utf8_ucs4, __gconv_transform_init_rstate, diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c index fb03372..0c5ceef 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -1,5 +1,5 @@ /* Handle configuration data. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -56,6 +56,20 @@ static struct gconv_module builtin_modules[] = cost: Cost, \ module_name: Name \ }, +#define BUILTIN_ALIAS(From, To) + +#include "gconv_builtin.h" +}; + +#undef BUILTIN_TRANSFORMATION +#undef BUILTIN_ALIAS + +static const char * +builtin_aliases[] = +{ +#define BUILTIN_TRANSFORMATION(From, ConstPfx, ConstLen, To, Cost, Name, \ + Fct, Init, End) +#define BUILTIN_ALIAS(From, To) From " " To, #include "gconv_builtin.h" }; @@ -362,6 +376,7 @@ __gconv_read_conf (void) void *modules = NULL; size_t nmodules = 0; int save_errno = errno; + size_t cnt; if (user_path == NULL) /* No user-defined path. Make a modifiable copy of the default path. */ @@ -428,6 +443,14 @@ __gconv_read_conf (void) } } + /* Add aliases for builtin conversions. */ + cnt = sizeof (builtin_aliases) / sizeof (builtin_aliases[0]); + while (cnt > 0) + { + char *copy = strdupa (builtin_aliases[--cnt]); + add_alias (copy); + } + /* Restore the error number. */ __set_errno (save_errno); } -- cgit v1.1