Commit 26af0e5d by John David Anglin Committed by John David Anglin

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

From-SVN: r65542
parent 6d0c8bb1
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:
......
// 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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment