mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
Update.
1998-04-02 11:45 Ulrich Drepper <drepper@cygnus.com> * localedata/Makefile: Correct testsuite rules. * iconvdata/gconv-modules: Set cost of ISO646 module to 2. * iconvdata/iso646.c: Fix conversion from UCS4. * elf/ldsodefs.h: Mark internal function with internal_function. * elf/dl-addr.c: Likewise. * elf/dl-close.c: Likewise. * elf/dl-debug.c: Likewise. * elf/dl-deps.c: Likewise. * elf/dl-error.c: Likewise. * elf/dl-fini.c: Likewise. * elf/dl-init.c: Likewise. * elf/dl-load.c: Likewise. * elf/dl-lookup.c: Likewise. * elf/dl-object.c: Likewise. * elf/dl-open.c: Likewise. * elf/dl-profile.c: Likewise. * elf/dl-reloc.c: Likewise. * elf/dl-runtime.c: Likewise. * elf/dl-symbol.c: Likewise. * elf/dl-version.c: Likewise. * elf/dlerror.c: Likewise. * sysdeps/generic/dl-sysdep.c: Likewise. * sysdeps/i386/dl-machine.h: Likewise. * iconv/gconv_simple.c: New builtins for UCS en/decoding. * iconv/gconv_builtin.c (builtin_map): Define BUILTIN_ALIAS as an
This commit is contained in:
parent
d2374599d4
commit
b60816b132
32
ChangeLog
32
ChangeLog
@ -1,6 +1,34 @@
|
||||
1998-04-02 11:45 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* localedata/Makefile: Correct testsuite rules.
|
||||
|
||||
* iconvdata/gconv-modules: Set cost of ISO646 module to 2.
|
||||
* iconvdata/iso646.c: Fix conversion from UCS4.
|
||||
|
||||
* elf/ldsodefs.h: Mark internal function with internal_function.
|
||||
* elf/dl-addr.c: Likewise.
|
||||
* elf/dl-close.c: Likewise.
|
||||
* elf/dl-debug.c: Likewise.
|
||||
* elf/dl-deps.c: Likewise.
|
||||
* elf/dl-error.c: Likewise.
|
||||
* elf/dl-fini.c: Likewise.
|
||||
* elf/dl-init.c: Likewise.
|
||||
* elf/dl-load.c: Likewise.
|
||||
* elf/dl-lookup.c: Likewise.
|
||||
* elf/dl-object.c: Likewise.
|
||||
* elf/dl-open.c: Likewise.
|
||||
* elf/dl-profile.c: Likewise.
|
||||
* elf/dl-reloc.c: Likewise.
|
||||
* elf/dl-runtime.c: Likewise.
|
||||
* elf/dl-symbol.c: Likewise.
|
||||
* elf/dl-version.c: Likewise.
|
||||
* elf/dlerror.c: Likewise.
|
||||
* sysdeps/generic/dl-sysdep.c: Likewise.
|
||||
* sysdeps/i386/dl-machine.h: Likewise.
|
||||
|
||||
1998-04-01 17:38 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* iconv/gconv?simple.c: New builtins for UCS en/decoding.
|
||||
* iconv/gconv_simple.c: New builtins for UCS en/decoding.
|
||||
* iconv/gconv_builtin.h: Add definitions for new builtins.
|
||||
* iconv/gconv.h: Add prototypes for new builtins.
|
||||
|
||||
@ -29,7 +57,7 @@
|
||||
|
||||
* 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
|
||||
* 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.
|
||||
|
||||
|
@ -48,15 +48,15 @@ alias US-ASCII// ANSI_X3.4-1968//
|
||||
alias US// ANSI_X3.4-1968//
|
||||
alias IBM367// ANSI_X3.4-1968//
|
||||
alias CP367// ANSI_X3.4-1968//
|
||||
module ANSI_X3.4-1968// ISO-10646/UCS4/ ISO646 1
|
||||
module ISO-10646/UCS4/ ANSI_X3.4-1968// ISO646 1
|
||||
module ANSI_X3.4-1968// ISO-10646/UCS4/ ISO646 2
|
||||
module ISO-10646/UCS4/ ANSI_X3.4-1968// ISO646 2
|
||||
|
||||
alias ISO-IR-4// BS_4730//
|
||||
alias ISO646-GB// BS_4730//
|
||||
alias GB// BS_4730//
|
||||
alias UK// BS_4730//
|
||||
module BS_4730// ISO-10646/UCS4/ ISO646
|
||||
module ISO-10646/UCS4/ BS_4730// ISO646
|
||||
module BS_4730// ISO-10646/UCS4/ ISO646 2
|
||||
module ISO-10646/UCS4/ BS_4730// ISO646 2
|
||||
|
||||
# from to module cost
|
||||
alias ISO-IR-100// ISO-8859-1//
|
||||
|
@ -18,6 +18,19 @@
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* The implementation of the conversion which can be performed by this
|
||||
module are not very sophisticated and not tuned at all. There are
|
||||
zillions of ISO 646 derivates and supporting them all in a separate
|
||||
module is overkill since these coded character sets are hardly ever
|
||||
used anymore (except ANSI_X3.4-1968 == ASCII, which is compatible
|
||||
with ISO 8859-1). The European variants are superceded by the
|
||||
various ISO 8859-? standards and the Asian variants are embedded in
|
||||
larger character sets. Therefore this implementation is simply
|
||||
here to make it possible to do the conversion if it is necessary.
|
||||
The cost in the gconv-modules file is set to `2' and therefore
|
||||
allows one to easily provide a tuned implementation in case this
|
||||
proofs to be necessary. */
|
||||
|
||||
#include <gconv.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -25,13 +38,14 @@
|
||||
/* Direction of the transformation. */
|
||||
enum direction
|
||||
{
|
||||
illegal,
|
||||
illegal_dir,
|
||||
to_iso646,
|
||||
from_iso646
|
||||
};
|
||||
|
||||
enum variant
|
||||
{
|
||||
illegal_var,
|
||||
US, /* ANSI_X3.4-1968 */
|
||||
GB, /* BS_4730 */
|
||||
};
|
||||
@ -73,10 +87,13 @@ gconv_init (struct gconv_step *step, struct gconv_step_data *data)
|
||||
var = GB;
|
||||
}
|
||||
else
|
||||
dir = illegal;
|
||||
{
|
||||
dir = illegal_dir;
|
||||
var = illegal_var;
|
||||
}
|
||||
|
||||
result = GCONV_NOCONV;
|
||||
if (dir != illegal
|
||||
if (dir != illegal_dir
|
||||
&& ((new_data
|
||||
= (struct iso646_data *) malloc (sizeof (struct iso646_data)))
|
||||
!= NULL))
|
||||
@ -167,11 +184,16 @@ gconv (struct gconv_step *step, struct gconv_step_data *data,
|
||||
default:
|
||||
*((wchar_t *) (outbuf + outwchars)) =
|
||||
(unsigned char) inbuf[cnt];
|
||||
case '\x80' ... '\xff':
|
||||
/* Illegal character. */
|
||||
result = GCONV_ILLEGAL_INPUT;
|
||||
goto out_from;
|
||||
}
|
||||
++do_write;
|
||||
outwchars += sizeof (wchar_t);
|
||||
++cnt;
|
||||
}
|
||||
out_from:
|
||||
*inbufsize -= cnt;
|
||||
data->outbufavail = outwchars;
|
||||
}
|
||||
@ -179,24 +201,47 @@ gconv (struct gconv_step *step, struct gconv_step_data *data,
|
||||
{
|
||||
size_t inwchars = *inbufsize;
|
||||
size_t outchars = data->outbufavail;
|
||||
char *outbuf = data->outbuf;
|
||||
unsigned char *outbuf = data->outbuf;
|
||||
size_t cnt = 0;
|
||||
|
||||
while (inwchars >= cnt + sizeof (wchar_t)
|
||||
&& outchars < data->outbufsize)
|
||||
{
|
||||
if (*((wchar_t *) (inbuf + cnt)) >= L'\0'
|
||||
&& *((wchar_t *) (inbuf + cnt)) <= L'\177')
|
||||
outbuf[outchars] = *((wchar_t *) (inbuf + cnt));
|
||||
else
|
||||
/* Here is where the transliteration would enter the
|
||||
scene. */
|
||||
break;
|
||||
switch (*((wchar_t *) (inbuf + cnt)))
|
||||
{
|
||||
case 0x23:
|
||||
if (var == GB)
|
||||
goto out_to;
|
||||
outbuf[outchars] = 0x23;
|
||||
break;
|
||||
case 0x75:
|
||||
if (var == GB)
|
||||
goto out_to;
|
||||
outbuf[outchars] = 0x75;
|
||||
break;
|
||||
case 0xa3:
|
||||
if (var != GB)
|
||||
goto out_to;
|
||||
outbuf[outchars] = 0x23;
|
||||
break;
|
||||
case 0x203e:
|
||||
if (var != GB)
|
||||
goto out_to;
|
||||
outbuf[outchars] = 0x75;
|
||||
break;
|
||||
default:
|
||||
if (*((wchar_t *) (inbuf + cnt)) > 0x7f)
|
||||
goto out_to;
|
||||
outbuf[outchars] =
|
||||
(unsigned char) *((wchar_t *) (inbuf + cnt));
|
||||
break;
|
||||
}
|
||||
|
||||
++do_write;
|
||||
++outchars;
|
||||
cnt += sizeof (wchar_t);
|
||||
}
|
||||
out_to:
|
||||
*inbufsize -= cnt;
|
||||
data->outbufavail = outchars;
|
||||
|
||||
|
@ -65,11 +65,11 @@ tests: do-collate-test do-tst-fmon do-tst-locale do-tst-rpmatch
|
||||
do-collate-test: sort-test.sh $(objpfx)collate-test $(objpfx)xfrm-test \
|
||||
$(test-input:.ISO-8859-1=.in)
|
||||
$(SHELL) -e $< $(common-objpfx) $(test-input)
|
||||
do-tst-fmon: tst-locale.sh $(objpfx)tst-fmon $(ld-test-srcs)
|
||||
do-tst-fmon: tst-fmon.sh $(objpfx)tst-fmon tst-fmon.data
|
||||
$(SHELL) -e $< $(common-objpfx) tst-fmon.data
|
||||
do-tst-locale: tst-locale.sh $(ld-test-srcs)
|
||||
$(SHELL) -e $< $(common-objpfx)
|
||||
do-tst-locale: tst-locale.sh
|
||||
$(SHELL) -e $< $(common-objpfx)
|
||||
do-tst-rpmatch: tst-rpmatch.sh $(objpfx)tst-rpmatch
|
||||
do-tst-rpmatch: tst-rpmatch.sh $(objpfx)tst-rpmatch do-collate-test
|
||||
$(SHELL) -e $< $(common-objpfx)
|
||||
endif
|
||||
|
||||
|
@ -99,7 +99,7 @@
|
||||
names as their own. Because these are device dependent it is a good
|
||||
idea _NOT_ to issue them to random objects and hope. */
|
||||
|
||||
#define SIOCDEVPRIVATE 0x89F0 /* to 89FF */
|
||||
#define SIOCDEVPRIVATE 0x89F0 /* to 89FF */
|
||||
|
||||
/*
|
||||
* These 16 ioctl calls are protocol private
|
||||
|
Loading…
Reference in New Issue
Block a user