From: danglin Date: Sun, 13 Apr 2003 03:56:20 +0000 (+0000) Subject: * os/hpux/ctype_inline.h: Replace with gnu-linux version. X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=a897335ec30ccf0b6ad7f55dfd12e1c3490dbc23;p=pf3gnuchains%2Fgcc-fork.git * os/hpux/ctype_inline.h: Replace with gnu-linux version. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65542 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ea8571c2ba0..afe8a1ca81f 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,7 @@ +2003-04-12 John David Anglin + + * os/hpux/ctype_inline.h: Replace with gnu-linux version. + 2003-04-12 David Edelsohn * testsuite/27_io/basic_istream/sentry/char/3983-fstream.cc: 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:: - is(mask __m, char __c) const - { return _M_table[(unsigned char)(__c)] & __m; } + is(mask __m, char __c) const + { return _M_table[static_cast(__c)] & __m; } const char* ctype:: - 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(1 << __i))) - ++__i; - *__vec = static_cast(1 << __i); - } + while (__low < __high) + *__vec++ = _M_table[static_cast(*__low++)]; return __high; } @@ -59,7 +52,8 @@ ctype:: 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(*__low)] & __m)) ++__low; return __low; } @@ -68,12 +62,8 @@ ctype:: 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(*__low)] & __m) != 0) ++__low; return __low; } - - - - -