diff options
Diffstat (limited to 'libstdc++-v3/config/os/hpux/ctype_inline.h')
-rw-r--r-- | libstdc++-v3/config/os/hpux/ctype_inline.h | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/libstdc++-v3/config/os/hpux/ctype_inline.h b/libstdc++-v3/config/os/hpux/ctype_inline.h index 35cc3063d4c..af409c87629 100644 --- a/libstdc++-v3/config/os/hpux/ctype_inline.h +++ b/libstdc++-v3/config/os/hpux/ctype_inline.h @@ -1,6 +1,6 @@ // 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 // software; you can redistribute it and/or modify it under the @@ -36,22 +36,15 @@ bool ctype<char>:: - is(mask __m, char __c) const - { return _M_table[(unsigned char)(__c)] & __m; } + is(mask __m, char __c) const + { return _M_table[static_cast<unsigned char>(__c)] & __m; } const 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 - for (;__low < __high; ++__vec, ++__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); - } + while (__low < __high) + *__vec++ = _M_table[static_cast<unsigned char>(*__low++)]; return __high; } @@ -59,7 +52,8 @@ ctype<char>:: 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; return __low; } @@ -68,12 +62,8 @@ ctype<char>:: 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; return __low; } - - - - - |