* os/hpux/ctype_inline.h: Replace with gnu-linux version.

From-SVN: r65542
This commit is contained in:
John David Anglin 2003-04-13 03:56:20 +00:00 committed by John David Anglin
parent 6d0c8bb1bc
commit 26af0e5d07
2 changed files with 14 additions and 20 deletions

View File

@ -1,3 +1,7 @@
2003-04-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* os/hpux/ctype_inline.h: Replace with gnu-linux version.
2003-04-12 David Edelsohn <edelsohn@gnu.org> 2003-04-12 David Edelsohn <edelsohn@gnu.org>
* testsuite/27_io/basic_istream/sentry/char/3983-fstream.cc: * testsuite/27_io/basic_istream/sentry/char/3983-fstream.cc:

View File

@ -1,6 +1,6 @@
// Locale support -*- C++ -*- // Locale support -*- C++ -*-
// Copyright (C) 2000 Free Software Foundation, Inc. // Copyright (C) 2000, 2002 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
@ -36,22 +36,15 @@
bool bool
ctype<char>:: ctype<char>::
is(mask __m, char __c) const is(mask __m, char __c) const
{ return _M_table[(unsigned char)(__c)] & __m; } { return _M_table[static_cast<unsigned char>(__c)] & __m; }
const char* const char*
ctype<char>:: ctype<char>::
is(const char* __low, const char* __high, mask* __vec) const is(const char* __low, const char* __high, mask* __vec) const
{ {
const int __bitmasksize = 11; // Highest bitmask in ctype_base == 10 while (__low < __high)
for (;__low < __high; ++__vec, ++__low) *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
{
mask __m = _M_table[*__low];
int __i = 0; // Lowest bitmask in ctype_base == 0
while (__i < __bitmasksize && !(__m & static_cast<mask>(1 << __i)))
++__i;
*__vec = static_cast<mask>(1 << __i);
}
return __high; return __high;
} }
@ -59,7 +52,8 @@
ctype<char>:: ctype<char>::
scan_is(mask __m, const char* __low, const char* __high) const scan_is(mask __m, const char* __low, const char* __high) const
{ {
while (__low < __high && !this->is(__m, *__low)) while (__low < __high
&& !(_M_table[static_cast<unsigned char>(*__low)] & __m))
++__low; ++__low;
return __low; return __low;
} }
@ -68,12 +62,8 @@
ctype<char>:: ctype<char>::
scan_not(mask __m, const char* __low, const char* __high) const scan_not(mask __m, const char* __low, const char* __high) const
{ {
while (__low < __high && this->is(__m, *__low) != 0) while (__low < __high
&& (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
++__low; ++__low;
return __low; return __low;
} }