From 924b60fe08de230e322065a878af6f2249e40f96 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 28 Jul 1999 04:36:35 +0000 Subject: [PATCH] Avoid sign extension when returning character. --- wcsmbs/wctob.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) 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]; } -- 2.47.3