OSDN Git Service

* os/hpux/ctype_inline.h: Replace with gnu-linux version.
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 Apr 2003 03:56:20 +0000 (03:56 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 Apr 2003 03:56:20 +0000 (03:56 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65542 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/config/os/hpux/ctype_inline.h

index ea8571c..afe8a1c 100644 (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>
 
        * testsuite/27_io/basic_istream/sentry/char/3983-fstream.cc:
index 35cc306..af409c8 100644 (file)
@@ -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
   
   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;
   }
   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;
   }
-
-
-
-
-