aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/config/os/hpux/ctype_inline.h
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/config/os/hpux/ctype_inline.h')
-rw-r--r--libstdc++-v3/config/os/hpux/ctype_inline.h30
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;
}
-
-
-
-
-