From: Ulrich Drepper Date: Wed, 28 Jul 1999 04:36:35 +0000 (+0000) Subject: Avoid sign extension when returning character. X-Git-Tag: cvs/glibc_2-1-2~227 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=924b60fe08de230e322065a878af6f2249e40f96;p=thirdparty%2Fglibc.git Avoid sign extension when returning character. --- diff --git a/wcsmbs/wctob.c b/wcsmbs/wctob.c index 0fba46ad725..97a36f8d034 100644 --- a/wcsmbs/wctob.c +++ b/wcsmbs/wctob.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -29,19 +29,19 @@ wctob (c) wint_t c; { char buf[MB_LEN_MAX]; - struct gconv_step_data data; + struct __gconv_step_data data; wchar_t inbuf[1]; wchar_t *inptr = inbuf; size_t dummy; int status; /* Tell where we want the result. */ - data.outbuf = buf; - data.outbufend = buf + MB_LEN_MAX; - data.invocation_counter = 0; - data.internal_use = 1; - data.is_last = 1; - data.statep = &data.__state; + data.__outbuf = buf; + data.__outbufend = buf + MB_LEN_MAX; + data.__invocation_counter = 0; + data.__internal_use = 1; + data.__is_last = 1; + data.__statep = &data.__state; /* Make sure we start in the initial state. */ memset (&data.__state, '\0', sizeof (mbstate_t)); @@ -52,15 +52,15 @@ wctob (c) /* Create the input string. */ inbuf[0] = c; - status = (*__wcsmbs_gconv_fcts.tomb->fct) (__wcsmbs_gconv_fcts.tomb, &data, - (const unsigned char **) &inptr, - (const unsigned char *) &inbuf[1], - &dummy, 0); + status = (*__wcsmbs_gconv_fcts.tomb->__fct) (__wcsmbs_gconv_fcts.tomb, &data, + (const unsigned char **) &inptr, + (const unsigned char *) &inbuf[1], + &dummy, 0); /* The conversion failed or the output is too long. */ - if ((status != GCONV_OK && status != GCONV_FULL_OUTPUT - && status != GCONV_EMPTY_INPUT) - || data.outbuf != (unsigned char *) (buf + 1)) + if ((status != __GCONV_OK && status != __GCONV_FULL_OUTPUT + && status != __GCONV_EMPTY_INPUT) + || data.__outbuf != (unsigned char *) (buf + 1)) return EOF; - return buf[0]; + return (unsigned char) buf[0]; }