mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
1999-01-07 Ulrich Drepper <drepper@cygnus.com> * sysdeps/i386/bits/select.h (__FD_ZERO): Remove early clobbers from c and D register output. 1999-01-07 Philip Blundell <philb@gnu.org> * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Fix bug in last change. 1999-01-07 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/alpha/bits/types.h: Correct type for __fsfilcnt_t. Patch by Bruce Elliott <bde@nwlink.com>. 1999-01-05 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * manual/conf.texi: Remove pointers from first @node. Move old @node spec inside comment. * manual/lang.texi: Likewise. * manual/libc-texinfo.sh: Also find `@node.*Top' in a comment. * manual/stdio.texi: Fix typo. 1999-01-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * wcsmbs/btowc.c: Accept all values in the range [SCHAR_MIN .. UCHAR_MAX]. Local var buf renamed to result and its type changed from char[] to wchar_t to get proper alignment. * posix/fnmatch.c: Also cast the arguments of the other ctype functions to unsigned char. 1999-01-07 Ulrich Drepper <drepper@cygnus.com> * Rules: Add rules for empty.{o,os,op} back.
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
/* 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>
|
||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
@ -22,13 +22,14 @@
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
#include <wcsmbsload.h>
|
||||
#include <limits.h>
|
||||
|
||||
|
||||
wint_t
|
||||
__btowc (c)
|
||||
int c;
|
||||
{
|
||||
char buf[sizeof (wchar_t)];
|
||||
wchar_t result;
|
||||
struct gconv_step_data data;
|
||||
char inbuf[1];
|
||||
const char *inptr = inbuf;
|
||||
@ -37,11 +38,11 @@ __btowc (c)
|
||||
|
||||
/* If the parameter does not fit into one byte or it is the EOF value
|
||||
we can give the answer now. */
|
||||
if (c < -128 || c > 127 || c == EOF)
|
||||
if (c < SCHAR_MIN || c > UCHAR_MAX || c == EOF)
|
||||
return WEOF;
|
||||
|
||||
/* Tell where we want the result. */
|
||||
data.outbuf = (char *) buf;
|
||||
data.outbuf = (char *) &result;
|
||||
data.outbufend = data.outbuf + sizeof (wchar_t);
|
||||
data.invocation_counter = 0;
|
||||
data.internal_use = 1;
|
||||
@ -62,8 +63,8 @@ __btowc (c)
|
||||
/* The conversion failed. */
|
||||
if (status != GCONV_OK && status != GCONV_FULL_OUTPUT
|
||||
&& status != GCONV_EMPTY_INPUT)
|
||||
return WEOF;
|
||||
result = WEOF;
|
||||
|
||||
return *(wchar_t *)buf;
|
||||
return result;
|
||||
}
|
||||
weak_alias (__btowc, btowc)
|
||||
|
Reference in New Issue
Block a user