]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Avoid sign extension when returning character.
authorUlrich Drepper <drepper@redhat.com>
Wed, 28 Jul 1999 04:36:35 +0000 (04:36 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 28 Jul 1999 04:36:35 +0000 (04:36 +0000)
wcsmbs/wctob.c

index 0fba46ad725464cc33e9b4b9954189ebbd5480f0..97a36f8d034bfb54eefd863ad93c709ae70c6467 100644 (file)
@@ -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 <drepper@gnu.ai.mit.edu>, 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];
 }