1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-05 19:35:52 +03:00
2000-08-25  Ulrich Drepper  <drepper@redhat.com>

	* locales/i18n (default_missing): Change back to only U003F.
This commit is contained in:
Ulrich Drepper
2000-08-25 22:13:09 +00:00
parent 0cdb4983fc
commit b572c2da31
5 changed files with 25 additions and 13 deletions

View File

@@ -117,7 +117,7 @@ __gconv_transliterate (struct __gconv_step *step,
(step, step_data, &toinptr, (step, step_data, &toinptr,
(const unsigned char *) &to_tbl[idx2 + len], (const unsigned char *) &to_tbl[idx2 + len],
(unsigned char **) outbufstart, (unsigned char **) outbufstart,
irreversible, 0, 0)); NULL, 0, 0));
if (res != __GCONV_ILLEGAL_INPUT) if (res != __GCONV_ILLEGAL_INPUT)
{ {
/* If the conversion succeeds we have to increment the /* If the conversion succeeds we have to increment the
@@ -200,7 +200,7 @@ __gconv_transliterate (struct __gconv_step *step,
(step, step_data, &toinptr, (step, step_data, &toinptr,
(const unsigned char *) (default_missing + len), (const unsigned char *) (default_missing + len),
(unsigned char **) outbufstart, (unsigned char **) outbufstart,
irreversible, 0, 0)); NULL, 0, 0));
if (res != __GCONV_ILLEGAL_INPUT) if (res != __GCONV_ILLEGAL_INPUT)
{ {

View File

@@ -170,7 +170,8 @@
/* To make it easier for the writers of the modules, we define a macro /* To make it easier for the writers of the modules, we define a macro
to test whether we have to ignore errors. */ to test whether we have to ignore errors. */
#define ignore_errors_p() (flags & __GCONV_IGNORE_ERRORS) #define ignore_errors_p() \
(irreversible != NULL && (flags & __GCONV_IGNORE_ERRORS))
/* Error handling with transliteration/transcription function use and /* Error handling with transliteration/transcription function use and
@@ -181,6 +182,12 @@
struct __gconv_trans_data *trans; \ struct __gconv_trans_data *trans; \
\ \
result = __GCONV_ILLEGAL_INPUT; \ result = __GCONV_ILLEGAL_INPUT; \
\
if (irreversible == NULL) \
/* This means we are in call from __gconv_transliterate. In this \
case we are not doing any error recovery outself. */ \
break; \
\
/* First try the transliteration methods. */ \ /* First try the transliteration methods. */ \
for (trans = step_data->__trans; trans != NULL; trans = trans->__next) \ for (trans = step_data->__trans; trans != NULL; trans = trans->__next) \
{ \ { \

View File

@@ -320,6 +320,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
/* This variable is used to count the number of characters we /* This variable is used to count the number of characters we
actually converted. */ actually converted. */
size_t lirreversible = 0; size_t lirreversible = 0;
size_t *lirreversiblep = irreversible ? &lirreversible : NULL;
#if defined _STRING_ARCH_unaligned \ #if defined _STRING_ARCH_unaligned \
|| MIN_NEEDED_FROM == 1 || MAX_NEEDED_FROM % MIN_NEEDED_FROM != 0 \ || MIN_NEEDED_FROM == 1 || MAX_NEEDED_FROM % MIN_NEEDED_FROM != 0 \
|| MIN_NEEDED_TO == 1 || MAX_NEEDED_TO % MIN_NEEDED_TO != 0 || MIN_NEEDED_TO == 1 || MAX_NEEDED_TO % MIN_NEEDED_TO != 0
@@ -350,7 +351,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
# if MAX_NEEDED_FROM > 1 # if MAX_NEEDED_FROM > 1
if (MAX_NEEDED_TO == 1 || FROM_DIRECTION) if (MAX_NEEDED_TO == 1 || FROM_DIRECTION)
status = SINGLE(FROM_LOOP) (step, data, inptrp, inend, &outbuf, status = SINGLE(FROM_LOOP) (step, data, inptrp, inend, &outbuf,
outend, &lirreversible outend, lirreversiblep
EXTRA_LOOP_ARGS); EXTRA_LOOP_ARGS);
# endif # endif
# if MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1 && !ONE_DIRECTION # if MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1 && !ONE_DIRECTION
@@ -358,7 +359,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
# endif # endif
# if MAX_NEEDED_TO > 1 && !ONE_DIRECTION # if MAX_NEEDED_TO > 1 && !ONE_DIRECTION
status = SINGLE(TO_LOOP) (step, data, inptrp, inend, &outbuf, status = SINGLE(TO_LOOP) (step, data, inptrp, inend, &outbuf,
outend, &lirreversible EXTRA_LOOP_ARGS); outend, lirreversiblep EXTRA_LOOP_ARGS);
# endif # endif
if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK) if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK)
@@ -402,11 +403,11 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
if (FROM_DIRECTION) if (FROM_DIRECTION)
/* Run the conversion loop. */ /* Run the conversion loop. */
status = FROM_LOOP (step, data, inptrp, inend, &outbuf, outend, status = FROM_LOOP (step, data, inptrp, inend, &outbuf, outend,
&lirreversible EXTRA_LOOP_ARGS); lirreversiblep EXTRA_LOOP_ARGS);
else else
/* Run the conversion loop. */ /* Run the conversion loop. */
status = TO_LOOP (step, data, inptrp, inend, &outbuf, outend, status = TO_LOOP (step, data, inptrp, inend, &outbuf, outend,
&lirreversible EXTRA_LOOP_ARGS); lirreversiblep EXTRA_LOOP_ARGS);
} }
#if !defined _STRING_ARCH_unaligned \ #if !defined _STRING_ARCH_unaligned \
&& MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \ && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
@@ -417,13 +418,13 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
/* Run the conversion loop. */ /* Run the conversion loop. */
status = GEN_unaligned (FROM_LOOP) (step, data, inptrp, inend, status = GEN_unaligned (FROM_LOOP) (step, data, inptrp, inend,
&outbuf, outend, &outbuf, outend,
&lirreversible lirreversiblep
EXTRA_LOOP_ARGS); EXTRA_LOOP_ARGS);
else else
/* Run the conversion loop. */ /* Run the conversion loop. */
status = GEN_unaligned (TO_LOOP) (step, data, inptrp, inend, status = GEN_unaligned (TO_LOOP) (step, data, inptrp, inend,
&outbuf, outend, &outbuf, outend,
&lirreversible lirreversiblep
EXTRA_LOOP_ARGS); EXTRA_LOOP_ARGS);
} }
#endif #endif
@@ -498,7 +499,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
(const unsigned char *) inend, (const unsigned char *) inend,
(unsigned char **) &outbuf, (unsigned char **) &outbuf,
(unsigned char *) outerr, (unsigned char *) outerr,
&lirreversible EXTRA_LOOP_ARGS); lirreversiblep EXTRA_LOOP_ARGS);
else else
/* Run the conversion loop. */ /* Run the conversion loop. */
nstatus = TO_LOOP (step, data, nstatus = TO_LOOP (step, data,
@@ -506,7 +507,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
(const unsigned char *) inend, (const unsigned char *) inend,
(unsigned char **) &outbuf, (unsigned char **) &outbuf,
(unsigned char *) outerr, (unsigned char *) outerr,
&lirreversible EXTRA_LOOP_ARGS); lirreversiblep EXTRA_LOOP_ARGS);
/* We must run out of output buffer space in this /* We must run out of output buffer space in this
rerun. */ rerun. */

View File

@@ -1,3 +1,7 @@
2000-08-25 Ulrich Drepper <drepper@redhat.com>
* locales/i18n (default_missing): Change back to only U003F.
2000-08-24 Andreas Jaeger <aj@suse.de> 2000-08-24 Andreas Jaeger <aj@suse.de>
* Makefile (generated): Add some .out files. * Makefile (generated): Add some .out files.

View File

@@ -805,7 +805,7 @@ translit_start
% RIGHT DOUBLE QUOTATION MARK. % RIGHT DOUBLE QUOTATION MARK.
<U201D> <U0022> <U201D> <U0022>
default_missing <UFFFD>;<U003F> default_missing <U003F>
translit_end translit_end