public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: middle-end/4227
@ 2001-09-25 10:56 Georg Wild
  0 siblings, 0 replies; only message in thread
From: Georg Wild @ 2001-09-25 10:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR middle-end/4227; it has been noted by GNATS.

From: Georg Wild <gwild@cipsuse1.t30.physik.tu-muenchen.de>
To: <gcc-gnats@gcc.gnu.org>
Cc:  
Subject: Re: middle-end/4227
Date: Tue, 25 Sep 2001 19:53:22 +0200 (CEST)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.
   Send mail to mime@docserver.cac.washington.edu for more info.
 
 ------=_NextPart_000_0029_01C145FA.D57A7F00
 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
 Content-ID: <Pine.LNX.4.30.0109251951092.2491@cipsuse1.t30.physik.tu-muenchen.de>
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=4227&database=gcc
 Hello!
 I've seen that there's no real example for this bug!
 I got this error compiling openjava!
 I'll attach CodingSystemKit.ii!
 You'll get the bug compiling "c++ -O2 -c CodingSystemKit.ii", -O1 solves
 problem!
 
 ------=_NextPart_000_0029_01C145FA.D57A7F00
 Content-Type: APPLICATION/OCTET-STREAM; NAME="CodingSystemKit.ii"
 Content-Transfer-Encoding: QUOTED-PRINTABLE
 Content-ID: <Pine.LNX.4.30.0109251951093.2491@cipsuse1.t30.physik.tu-muenchen.de>
 Content-Description: 
 Content-Disposition: ATTACHMENT; FILENAME="CodingSystemKit.ii"
 
 # 1 "CodingSystemKit.cxx"=0A=
 # 1 "<builtin>"=0A=
 # 1 "<command line>"=0A=
 # 1 "CodingSystemKit.cxx"=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 #pragma implementation=0A=
 =0A=
 =0A=
 # 1 "splib.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "../include/config.h" 1=0A=
 # 8 "splib.h" 2=0A=
 # 9 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/CodingSystemKit.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 #pragma interface=0A=
 =0A=
 =0A=
 # 1 "../include/Boolean.h" 1=0A=
 # 13 "../include/Boolean.h"=0A=
 typedef bool Boolean;=0A=
 =0A=
 =0A=
 =0A=
 typedef char PackedBoolean;=0A=
 # 12 "../include/CodingSystemKit.h" 2=0A=
 # 1 "../include/StringC.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "../include/types.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/include/limits.h" 1 3=0A=
 # 26 "/usr/local/include/limits.h" 3=0A=
 # 1 "/usr/local/include/features.h" 1 3=0A=
 # 283 "/usr/local/include/features.h" 3=0A=
 # 1 "/usr/local/include/sys/cdefs.h" 1 3=0A=
 # 284 "/usr/local/include/features.h" 2 3=0A=
 # 312 "/usr/local/include/features.h" 3=0A=
 # 1 "/usr/local/include/gnu/stubs.h" 1 3=0A=
 # 313 "/usr/local/include/features.h" 2 3=0A=
 # 27 "/usr/local/include/limits.h" 2 3=0A=
 # 124 "/usr/local/include/limits.h" 3=0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 3=0A=
 # 125 "/usr/local/include/limits.h" 2 3=0A=
 # 144 "/usr/local/include/limits.h" 3=0A=
 # 1 "/usr/local/include/bits/posix1_lim.h" 1 3=0A=
 # 126 "/usr/local/include/bits/posix1_lim.h" 3=0A=
 # 1 "/usr/local/include/bits/local_lim.h" 1 3=0A=
 # 36 "/usr/local/include/bits/local_lim.h" 3=0A=
 # 1 "/usr/local/include/linux/limits.h" 1 3=0A=
 # 37 "/usr/local/include/bits/local_lim.h" 2 3=0A=
 # 127 "/usr/local/include/bits/posix1_lim.h" 2 3=0A=
 # 145 "/usr/local/include/limits.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/include/bits/posix2_lim.h" 1 3=0A=
 # 149 "/usr/local/include/limits.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/include/bits/xopen_lim.h" 1 3=0A=
 # 34 "/usr/local/include/bits/xopen_lim.h" 3=0A=
 # 1 "/usr/local/include/bits/stdio_lim.h" 1 3=0A=
 # 35 "/usr/local/include/bits/xopen_lim.h" 2 3=0A=
 # 153 "/usr/local/include/limits.h" 2 3=0A=
 # 8 "../include/types.h" 2=0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 147 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3=0A=
 typedef int ptrdiff_t;=0A=
 # 201 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3=0A=
 typedef unsigned int size_t;=0A=
 # 9 "../include/types.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned int Unsigned32;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef Unsigned32 Number;=0A=
 typedef Unsigned32 Offset;=0A=
 typedef Unsigned32 Index;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned short Char;=0A=
 =0A=
 =0A=
 =0A=
 typedef int Xchar;=0A=
 # 47 "../include/types.h"=0A=
 typedef Unsigned32 UnivChar;=0A=
 typedef Unsigned32 WideChar;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef Unsigned32 SyntaxChar;=0A=
 =0A=
 typedef unsigned short CharClassIndex;=0A=
 =0A=
 typedef unsigned Token;=0A=
 =0A=
 =0A=
 typedef unsigned short EquivCode;=0A=
 # 8 "../include/StringC.h" 2=0A=
 # 1 "../include/StringOf.h" 1=0A=
 # 14 "../include/StringOf.h"=0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 15 "../include/StringOf.h" 2=0A=
 # 1 "/usr/local/include/string.h" 1 3=0A=
 # 28 "/usr/local/include/string.h" 3=0A=
 extern "C" {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 34 "/usr/local/include/string.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 extern void *memcpy (void *__restrict __dest,=0A=
                      __const void *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 extern void *memmove (void *__dest, __const void *__src, size_t __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *memccpy (void *__restrict __dest, __const void *__restrict =
 __src,=0A=
                       int __c, size_t __n)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *memset (void *__s, int __c, size_t __n) throw ();=0A=
 =0A=
 =0A=
 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern void *memchr (__const void *__s, int __c, size_t __n)=0A=
       throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *rawmemchr (__const void *__s, int __c) throw () =
 __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern void *memrchr (__const void *__s, int __c, size_t __n)=0A=
       throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strcpy (char *__restrict __dest, __const char *__restrict =
 __src)=0A=
      throw ();=0A=
 =0A=
 extern char *strncpy (char *__restrict __dest,=0A=
                       __const char *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 extern char *strcat (char *__restrict __dest, __const char *__restrict =
 __src)=0A=
      throw ();=0A=
 =0A=
 extern char *strncat (char *__restrict __dest, __const char *__restrict =
 __src,=0A=
                       size_t __n) throw ();=0A=
 =0A=
 =0A=
 extern int strcmp (__const char *__s1, __const char *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern int strcoll (__const char *__s1, __const char *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern size_t strxfrm (char *__restrict __dest,=0A=
                        __const char *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/include/xlocale.h" 1 3=0A=
 # 28 "/usr/local/include/xlocale.h" 3=0A=
 typedef struct __locale_struct=0A=
 {=0A=
 =0A=
   struct locale_data *__locales[13];=0A=
 =0A=
 =0A=
   const unsigned short int *__ctype_b;=0A=
   const int *__ctype_tolower;=0A=
   const int *__ctype_toupper;=0A=
 } *__locale_t;=0A=
 # 109 "/usr/local/include/string.h" 2 3=0A=
 =0A=
 =0A=
 extern int __strcoll_l (__const char *__s1, __const char *__s2, =
 __locale_t __l)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n,=0A=
                            __locale_t __l) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strdup (__const char *__s) throw () __attribute__ =
 ((__malloc__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strndup (__const char *__string, size_t __n)=0A=
      throw () __attribute__ ((__malloc__));=0A=
 # 155 "/usr/local/include/string.h" 3=0A=
 extern char *strchr (__const char *__s, int __c) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 extern char *strrchr (__const char *__s, int __c) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strchrnul (__const char *__s, int __c) throw () =
 __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t strcspn (__const char *__s, __const char *__reject)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern size_t strspn (__const char *__s, __const char *__accept)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern char *strpbrk (__const char *__s, __const char *__accept)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 extern char *strstr (__const char *__haystack, __const char *__needle)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern char *strcasestr (__const char *__haystack, __const char =
 *__needle)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern char *strtok (char *__restrict __s, __const char *__restrict =
 __delim)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *__strtok_r (char *__restrict __s,=0A=
                          __const char *__restrict __delim,=0A=
                          char **__restrict __save_ptr) throw ();=0A=
 =0A=
 extern char *strtok_r (char *__restrict __s, __const char *__restrict =
 __delim,=0A=
                        char **__restrict __save_ptr) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void *memmem (__const void *__haystack, size_t __haystacklen,=0A=
                      __const void *__needle, size_t __needlelen)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern void *__mempcpy (void *__restrict __dest,=0A=
                         __const void *__restrict __src, size_t __n) =
 throw ();=0A=
 extern void *mempcpy (void *__restrict __dest,=0A=
                       __const void *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t strlen (__const char *__s) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern size_t strnlen (__const char *__string, size_t __maxlen)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strerror (int __errnum) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) =
 throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern void __bzero (void *__s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern void bcopy (__const void *__src, void *__dest, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 extern void bzero (void *__s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern char *index (__const char *__s, int __c) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 extern char *rindex (__const char *__s, int __c) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 extern int ffs (int __i) throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int ffsl (long int __l) throw () __attribute__ ((__const__));=0A=
 =0A=
 __extension__ extern int ffsll (long long int __ll)=0A=
      throw () __attribute__ ((__const__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int strcasecmp (__const char *__s1, __const char *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t =
 __n)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int __strcasecmp_l (__const char *__s1, __const char *__s2,=0A=
                            __locale_t __loc) throw () __attribute__ =
 ((__pure__));=0A=
 =0A=
 extern int __strncasecmp_l (__const char *__s1, __const char *__s2,=0A=
                             size_t __n, __locale_t __loc)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *strsep (char **__restrict __stringp,=0A=
                      __const char *__restrict __delim) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int strverscmp (__const char *__s1, __const char *__s2)=0A=
      throw () __attribute__ ((__pure__));=0A=
 =0A=
 =0A=
 extern char *strsignal (int __sig) throw ();=0A=
 =0A=
 =0A=
 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict =
 __src)=0A=
      throw ();=0A=
 extern char *stpcpy (char *__restrict __dest, __const char *__restrict =
 __src)=0A=
      throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern char *__stpncpy (char *__restrict __dest,=0A=
                         __const char *__restrict __src, size_t __n) =
 throw ();=0A=
 extern char *stpncpy (char *__restrict __dest,=0A=
                       __const char *__restrict __src, size_t __n) throw =
 ();=0A=
 =0A=
 =0A=
 extern char *strfry (char *__string) throw ();=0A=
 =0A=
 =0A=
 extern void *memfrob (void *__s, size_t __n) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern char *basename (__const char *__filename) throw ();=0A=
 # 364 "/usr/local/include/string.h" 3=0A=
 }=0A=
 # 16 "../include/StringOf.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template<class T>=0A=
 class String {=0A=
 public:=0A=
   typedef size_t size_type;=0A=
   typedef T *iterator;=0A=
   typedef const T *const_iterator;=0A=
   String();=0A=
   ~String() { if (ptr_) delete [] ptr_; }=0A=
   String(const T *, size_t);=0A=
   String(const String<T> &);=0A=
   String<T> &operator=3D(const String<T> &);=0A=
   size_t size() const { return length_; }=0A=
   String<T> &assign(const T *, size_t);=0A=
   String<T> &insert(size_t i, const String<T> &s);=0A=
   void swap(String<T> &str);=0A=
   T operator[](size_t i) const { return ptr_[i]; }=0A=
   T &operator[](size_t i) { return ptr_[i]; }=0A=
   iterator begin() { return ptr_; }=0A=
   const_iterator begin() const { return ptr_; }=0A=
   const T *data() const { return ptr_; }=0A=
   String<T> &operator+=3D(T c) {=0A=
     if (length_ >=3D alloc_)=0A=
       grow(1);=0A=
     ptr_[length_++] =3D c;=0A=
     return *this;=0A=
   }=0A=
   String<T> &operator+=3D(const String<T> &s) {=0A=
     append(s.ptr_, s.length_);=0A=
     return *this;=0A=
   }=0A=
   String<T> &append(const T *, size_t);=0A=
   Boolean operator=3D=3D(const String<T> &s) const {=0A=
     return (length_ =3D=3D s.length_=0A=
             && (length_ =3D=3D 0=0A=
                 || (*ptr_ =3D=3D *s.ptr_=0A=
                     && (memcmp(ptr_ + 1, s.ptr_ + 1, (length_ - =
 1)*sizeof(T))=0A=
                         =3D=3D 0))));=0A=
   }=0A=
   Boolean operator!=3D(const String<T> &str) const {=0A=
     return !(*this =3D=3D str);=0A=
   }=0A=
   void resize(size_t n);=0A=
 private:=0A=
   void grow(size_t);=0A=
   T *ptr_;=0A=
   size_t length_;=0A=
   size_t alloc_;=0A=
 };=0A=
 # 9 "../include/StringC.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef String<Char> StringC;=0A=
 # 13 "../include/CodingSystemKit.h" 2=0A=
 # 1 "../include/CodingSystem.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 #pragma interface=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "../include/OutputByteStream.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "../include/StringOf.h" 1=0A=
 # 8 "../include/OutputByteStream.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class OutputByteStream {=0A=
 public:=0A=
   OutputByteStream();=0A=
   virtual ~OutputByteStream();=0A=
   virtual void flush() =3D 0;=0A=
   void sputc(char c);=0A=
   void sputn(const char *, size_t);=0A=
   OutputByteStream &operator<<(char);=0A=
   OutputByteStream &operator<<(unsigned char);=0A=
   OutputByteStream &operator<<(const char *);=0A=
   OutputByteStream &operator<<(int);=0A=
   OutputByteStream &operator<<(unsigned);=0A=
   OutputByteStream &operator<<(long);=0A=
   OutputByteStream &operator<<(unsigned long);=0A=
   OutputByteStream &operator<<(const String<char> &);=0A=
   char *getBufferPtr() const;=0A=
   size_t getBufferSize() const;=0A=
   void usedBuffer(size_t);=0A=
   virtual void flushBuf(char) =3D 0;=0A=
 protected:=0A=
   char *ptr_;=0A=
   char *end_;=0A=
 };=0A=
 =0A=
 inline=0A=
 char *OutputByteStream::getBufferPtr() const=0A=
 {=0A=
   return ptr_;=0A=
 }=0A=
 =0A=
 inline=0A=
 size_t OutputByteStream::getBufferSize() const=0A=
 {=0A=
   return end_ - ptr_;=0A=
 }=0A=
 =0A=
 inline=0A=
 void OutputByteStream::usedBuffer(size_t n)=0A=
 {=0A=
   ptr_ +=3D n;=0A=
 }=0A=
 =0A=
 inline=0A=
 void OutputByteStream::sputc(char c)=0A=
 {=0A=
   if (ptr_ < end_)=0A=
     *ptr_++ =3D c;=0A=
   else=0A=
     flushBuf(c);=0A=
 }=0A=
 =0A=
 inline=0A=
 OutputByteStream &OutputByteStream::operator<<(char c)=0A=
 {=0A=
   sputc(c);=0A=
   return *this;=0A=
 }=0A=
 =0A=
 inline=0A=
 OutputByteStream &OutputByteStream::operator<<(unsigned char c)=0A=
 {=0A=
   sputc(char(c));=0A=
   return *this;=0A=
 }=0A=
 =0A=
 inline=0A=
 OutputByteStream &OutputByteStream::operator<<(int n)=0A=
 {=0A=
   return *this << long(n);=0A=
 }=0A=
 =0A=
 inline=0A=
 OutputByteStream &OutputByteStream::operator<<(unsigned n)=0A=
 {=0A=
   return *this << (unsigned long)n;=0A=
 }=0A=
 =0A=
 inline=0A=
 OutputByteStream &OutputByteStream::operator<<(const String<char> &s)=0A=
 {=0A=
   sputn(s.data(), s.size());=0A=
   return *this;=0A=
 }=0A=
 =0A=
 class StrOutputByteStream : public OutputByteStream {=0A=
 public:=0A=
   StrOutputByteStream();=0A=
   void extractString(String<char> &);=0A=
 protected:=0A=
   StrOutputByteStream(const StrOutputByteStream &);=0A=
   void operator=3D(const StrOutputByteStream &);=0A=
   void flush();=0A=
   void flushBuf(char);=0A=
   String<char> buf_;=0A=
 };=0A=
 =0A=
 class FileOutputByteStream : public OutputByteStream {=0A=
 public:=0A=
   FileOutputByteStream();=0A=
   FileOutputByteStream(int fd, Boolean closeFd =3D 1);=0A=
   ~FileOutputByteStream();=0A=
 =0A=
 =0A=
 =0A=
   Boolean open(const char *);=0A=
 =0A=
   Boolean attach(int fd, Boolean closeFd =3D 1);=0A=
   Boolean close();=0A=
 private:=0A=
   FileOutputByteStream(const FileOutputByteStream &);=0A=
   void operator=3D(const FileOutputByteStream &);=0A=
   void flush();=0A=
   void flushBuf(char);=0A=
   String<char> buf_;=0A=
   int fd_;=0A=
   Boolean closeFd_;=0A=
 };=0A=
 # 15 "../include/CodingSystem.h" 2=0A=
 =0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 17 "../include/CodingSystem.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class Decoder {=0A=
 public:=0A=
   Decoder(unsigned minBytesPerChar =3D 1);=0A=
   virtual ~Decoder();=0A=
   virtual size_t decode(Char *, const char *, size_t, const char **) =3D =
 0;=0A=
   virtual Boolean convertOffset(unsigned long &offset) const;=0A=
 =0A=
 =0A=
   unsigned minBytesPerChar() const;=0A=
 protected:=0A=
   unsigned minBytesPerChar_;=0A=
 };=0A=
 =0A=
 =0A=
 class Encoder {=0A=
 public:=0A=
   class Handler {=0A=
   public:=0A=
     virtual void handleUnencodable(Char, OutputByteStream *) =3D 0;=0A=
   };=0A=
   Encoder();=0A=
   virtual ~Encoder();=0A=
   virtual void output(const Char *, size_t, OutputByteStream *) =3D 0;=0A=
 =0A=
   virtual void startFile(OutputByteStream *);=0A=
   virtual void output(Char *, size_t, OutputByteStream *);=0A=
   virtual void setUnencodableHandler(Handler *);=0A=
   virtual void handleUnencodable(Char, OutputByteStream *);=0A=
 };=0A=
 =0A=
 class RecoveringEncoder : public Encoder {=0A=
 public:=0A=
   RecoveringEncoder();=0A=
   void setUnencodableHandler(Handler *);=0A=
   void handleUnencodable(Char, OutputByteStream *);=0A=
 private:=0A=
   Handler *unencodableHandler_;=0A=
 };=0A=
 =0A=
 class InputCodingSystem {=0A=
 public:=0A=
   virtual ~InputCodingSystem();=0A=
   virtual Decoder *makeDecoder() const =3D 0;=0A=
   StringC convertIn(const char *) const;=0A=
   virtual Boolean isIdentity() const;=0A=
 };=0A=
 =0A=
 class OutputCodingSystem {=0A=
 public:=0A=
   virtual ~OutputCodingSystem();=0A=
   virtual Encoder *makeEncoder() const =3D 0;=0A=
   virtual unsigned fixedBytesPerChar() const;=0A=
   String<char> convertOut(const StringC &) const;=0A=
 };=0A=
 =0A=
 class CodingSystem : public InputCodingSystem, public OutputCodingSystem =
 {=0A=
 };=0A=
 =0A=
 inline=0A=
 unsigned Decoder::minBytesPerChar() const=0A=
 {=0A=
   return minBytesPerChar_;=0A=
 }=0A=
 # 14 "../include/CodingSystemKit.h" 2=0A=
 # 1 "../include/Resource.h" 1=0A=
 # 11 "../include/Resource.h"=0A=
 class Resource {=0A=
 public:=0A=
   Resource();=0A=
   Resource(const Resource &);=0A=
   int unref();=0A=
   void ref();=0A=
   int count() const;=0A=
 private:=0A=
   int count_;=0A=
 };=0A=
 =0A=
 inline=0A=
 Resource::Resource()=0A=
 : count_(0)=0A=
 {=0A=
 }=0A=
 =0A=
 inline=0A=
 Resource::Resource(const Resource &)=0A=
 : count_(0)=0A=
 {=0A=
 }=0A=
 =0A=
 inline=0A=
 int Resource::count() const=0A=
 {=0A=
   return count_;=0A=
 }=0A=
 =0A=
 inline=0A=
 int Resource::unref()=0A=
 {=0A=
   return --count_ <=3D 0;=0A=
 }=0A=
 =0A=
 inline=0A=
 void Resource::ref()=0A=
 {=0A=
   ++count_;=0A=
 }=0A=
 # 15 "../include/CodingSystemKit.h" 2=0A=
 # 1 "../include/CharsetInfo.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 #pragma interface=0A=
 =0A=
 =0A=
 # 1 "/usr/local/include/limits.h" 1 3=0A=
 # 11 "../include/CharsetInfo.h" 2=0A=
 # 1 "../include/UnivCharsetDesc.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 #pragma interface=0A=
 =0A=
 =0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 11 "../include/UnivCharsetDesc.h" 2=0A=
 =0A=
 # 1 "../include/CharMap.h" 1=0A=
 # 16 "../include/CharMap.h"=0A=
 class CharMapBits {=0A=
 public:=0A=
   enum { level1 =3D 8, level2 =3D 4, level3 =3D 4 };=0A=
 };=0A=
 =0A=
 template<class T>=0A=
 class CharMapColumn {=0A=
 public:=0A=
   CharMapColumn();=0A=
   CharMapColumn(const CharMapColumn<T> &);=0A=
   void operator=3D(const CharMapColumn<T> &);=0A=
   ~CharMapColumn();=0A=
   T *values;=0A=
   T value;=0A=
 };=0A=
 =0A=
 template<class T>=0A=
 class CharMapPage {=0A=
 public:=0A=
   CharMapPage();=0A=
   CharMapPage(const CharMapPage<T> &);=0A=
   void operator=3D(const CharMapPage<T> &);=0A=
   ~CharMapPage();=0A=
   void swap(CharMapPage<T> &);=0A=
   CharMapColumn<T> *values;=0A=
   T value;=0A=
 };=0A=
 =0A=
 =0A=
 template<class T>=0A=
 class CharMap {=0A=
 public:=0A=
   CharMap();=0A=
   CharMap(T);=0A=
   T operator[](Char) const;=0A=
   T getRange(Char from, Char &to) const;=0A=
   void swap(CharMap<T> &);=0A=
   void setChar(Char, T);=0A=
   void setRange(Char from, Char to, T val);=0A=
   void setAll(T);=0A=
 private:=0A=
 =0A=
   CharMapPage<T> pages_[1 << CharMapBits::level1];=0A=
 =0A=
 =0A=
 =0A=
 };=0A=
 =0A=
 template<class T>=0A=
 class CharMapResource : public CharMap<T>, public Resource {=0A=
 public:=0A=
   CharMapResource() { }=0A=
   CharMapResource(T t) : CharMap<T>(t) { }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 template<class T>=0A=
 inline=0A=
 T CharMap<T>::operator[](Char c) const=0A=
 {=0A=
   const CharMapPage<T> &pg =3D pages_[c >> (CharMapBits::level2 + =
 CharMapBits::level3)];=0A=
   if (pg.values) {=0A=
     const CharMapColumn<T> &column =3D pg.values[(c >> =
 CharMapBits::level3) & ((1 << CharMapBits::level2) - 1)];=0A=
     if (column.values)=0A=
       return column.values[c & ((1 << CharMapBits::level3) - 1)];=0A=
     else=0A=
       return column.value;=0A=
   }=0A=
   else=0A=
     return pg.value;=0A=
 }=0A=
 =0A=
 template<class T>=0A=
 inline=0A=
 T CharMap<T>::getRange(Char c, Char &max) const=0A=
 {=0A=
   const CharMapPage<T> &pg =3D pages_[c >> (CharMapBits::level2 + =
 CharMapBits::level3)];=0A=
   if (pg.values) {=0A=
     const CharMapColumn<T> &column =3D pg.values[(c >> =
 CharMapBits::level3) & ((1 << CharMapBits::level2) - 1)];=0A=
     if (column.values) {=0A=
       max =3D c;=0A=
       return column.values[c & ((1 << CharMapBits::level3) - 1)];=0A=
     }=0A=
     else {=0A=
       max =3D (c & ~((1 << CharMapBits::level3) - 1)) + ((1 << =
 CharMapBits::level3) - 1);=0A=
       return column.value;=0A=
     }=0A=
   }=0A=
   else {=0A=
     max =3D (c & ~((1 << (CharMapBits::level2 + CharMapBits::level3)) - =
 1)) + ((1 << (CharMapBits::level2 + CharMapBits::level2)) - 1);=0A=
     return pg.value;=0A=
   }=0A=
 }=0A=
 # 13 "../include/UnivCharsetDesc.h" 2=0A=
 # 1 "../include/RangeMap.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "../include/Vector.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 8 "../include/Vector.h" 2=0A=
 # 1 "../include/xnew.h" 1=0A=
 # 20 "../include/xnew.h"=0A=
 # 1 "/usr/local/include/g++-v3/new" 1 3=0A=
 # 40 "/usr/local/include/g++-v3/new" 3=0A=
 # 1 "/usr/local/include/g++-v3/cstddef" 1 3=0A=
 # 31 "/usr/local/include/g++-v3/cstddef" 3=0A=
 # 1 "/usr/local/include/g++-v3/bits/std_cstddef.h" 1 3=0A=
 # 38 "/usr/local/include/g++-v3/bits/std_cstddef.h" 3=0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 39 "/usr/local/include/g++-v3/bits/std_cstddef.h" 2 3=0A=
 =0A=
 namespace std=0A=
 {=0A=
   using ::ptrdiff_t;=0A=
   using ::size_t;=0A=
 }=0A=
 # 32 "/usr/local/include/g++-v3/cstddef" 2 3=0A=
 # 41 "/usr/local/include/g++-v3/new" 2 3=0A=
 # 1 "/usr/local/include/g++-v3/exception" 1 3=0A=
 # 39 "/usr/local/include/g++-v3/exception" 3=0A=
 extern "C++" {=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   class exception=0A=
   {=0A=
   public:=0A=
     exception() throw() { }=0A=
     virtual ~exception() throw();=0A=
 =0A=
 =0A=
     virtual const char* what() const throw();=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
   class bad_exception : public exception=0A=
   {=0A=
   public:=0A=
     bad_exception() throw() { }=0A=
     virtual ~bad_exception() throw();=0A=
   };=0A=
 =0A=
 =0A=
   typedef void (*terminate_handler) ();=0A=
 =0A=
   typedef void (*unexpected_handler) ();=0A=
 =0A=
 =0A=
   terminate_handler set_terminate(terminate_handler) throw();=0A=
 =0A=
 =0A=
   void terminate() __attribute__ ((__noreturn__));=0A=
 =0A=
 =0A=
   unexpected_handler set_unexpected(unexpected_handler) throw();=0A=
 =0A=
 =0A=
   void unexpected() __attribute__ ((__noreturn__));=0A=
 # 95 "/usr/local/include/g++-v3/exception" 3=0A=
   bool uncaught_exception() throw();=0A=
 }=0A=
 =0A=
 }=0A=
 # 42 "/usr/local/include/g++-v3/new" 2 3=0A=
 =0A=
 extern "C++" {=0A=
 =0A=
 namespace std=0A=
 {=0A=
 =0A=
 =0A=
   class bad_alloc : public exception=0A=
   {=0A=
   public:=0A=
     bad_alloc() throw() { }=0A=
     virtual ~bad_alloc() throw();=0A=
   };=0A=
 =0A=
   struct nothrow_t { };=0A=
   extern const nothrow_t nothrow;=0A=
 =0A=
 =0A=
   typedef void (*new_handler)();=0A=
 =0A=
   new_handler set_new_handler(new_handler);=0A=
 }=0A=
 # 76 "/usr/local/include/g++-v3/new" 3=0A=
 void *operator new(std::size_t) throw (std::bad_alloc);=0A=
 void *operator new[](std::size_t) throw (std::bad_alloc);=0A=
 void operator delete(void *) throw();=0A=
 void operator delete[](void *) throw();=0A=
 void *operator new(std::size_t, const std::nothrow_t&) throw();=0A=
 void *operator new[](std::size_t, const std::nothrow_t&) throw();=0A=
 void operator delete(void *, const std::nothrow_t&) throw();=0A=
 void operator delete[](void *, const std::nothrow_t&) throw();=0A=
 =0A=
 =0A=
 inline void *operator new(std::size_t, void *place) throw() { return =
 place; }=0A=
 inline void *operator new[](std::size_t, void *place) throw() { return =
 place; }=0A=
 =0A=
 }=0A=
 # 21 "../include/xnew.h" 2=0A=
 # 9 "../include/Vector.h" 2=0A=
 # 18 "../include/Vector.h"=0A=
 template<class T>=0A=
 class Vector {=0A=
 public:=0A=
   typedef size_t size_type;=0A=
   typedef T *iterator;=0A=
   typedef const T *const_iterator;=0A=
   Vector() : ptr_(0), size_(0), alloc_(0) { }=0A=
   Vector(size_t n) : ptr_(0), size_(0), alloc_(0) { append(n); }=0A=
   ~Vector();=0A=
   void resize(size_t n) {=0A=
     if (n < size_)=0A=
       erase(ptr_ + n, ptr_ + size_);=0A=
     else if (n > size_)=0A=
       append(n - size_);=0A=
   }=0A=
 =0A=
   Vector(size_t, const T &);=0A=
   Vector(const Vector<T> &);=0A=
   Vector<T> &operator=3D(const Vector<T> &);=0A=
   void assign(size_t, const T &);=0A=
   void push_back(const T &t) {=0A=
     reserve(size_ + 1);=0A=
     (void)new (ptr_ + size_) T(t);=0A=
     size_++;=0A=
   }=0A=
   void insert(const_iterator p, size_t n, const T &t);=0A=
   void insert(const_iterator p, const_iterator q1, const_iterator q2);=0A=
 =0A=
   void swap(Vector<T> &);=0A=
   void clear() { erase(ptr_, ptr_ + size_); }=0A=
   size_t size() const { return size_; }=0A=
   T &operator[](size_t i) { return ptr_[i]; }=0A=
   const T &operator[](size_t i) const { return ptr_[i]; }=0A=
   iterator begin() { return ptr_; }=0A=
   const_iterator begin() const { return ptr_; }=0A=
   T &back() { return ptr_[size_ - 1]; }=0A=
   const T &back() const { return ptr_[size_ - 1]; }=0A=
   void reserve(size_t n) { if (n > alloc_) reserve1(n); }=0A=
   iterator erase(const_iterator, const_iterator);=0A=
 private:=0A=
 =0A=
 =0A=
 =0A=
 =0A=
   void append(size_t);=0A=
   void reserve1(size_t);=0A=
 =0A=
   size_t size_;=0A=
   T *ptr_;=0A=
   size_t alloc_;=0A=
 };=0A=
 # 8 "../include/RangeMap.h" 2=0A=
 =0A=
 # 1 "../include/ISet.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 9 "../include/ISet.h" 2=0A=
 # 1 "../include/Vector.h" 1=0A=
 # 10 "../include/ISet.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template<class T> class ISetIter;=0A=
 =0A=
 template<class T>=0A=
 struct ISetRange {=0A=
   T min;=0A=
   T max;=0A=
 };=0A=
 =0A=
 template<class T>=0A=
 class ISet {=0A=
 public:=0A=
   ISet();=0A=
   ISet(const T *, size_t);=0A=
   ~ISet();=0A=
   Boolean contains(T) const;=0A=
   void remove(T);=0A=
   void add(T x) { addRange(x, x); }=0A=
   void addRange(T, T);=0A=
 =0A=
 =0A=
 =0A=
   void check();=0A=
   void operator+=3D(T x) { addRange(x, x); }=0A=
   void clear();=0A=
   Boolean isSingleton() const {=0A=
     return r_.size() =3D=3D 1 && r_[0].min =3D=3D r_[0].max;=0A=
   }=0A=
   Boolean isEmpty() const { return r_.size() =3D=3D 0; }=0A=
   void swap(ISet<T> &x) { r_.swap(x.r_); }=0A=
 friend class ISetIter<T>;=0A=
 private:=0A=
   Vector<ISetRange<T> > r_;=0A=
 };=0A=
 # 10 "../include/RangeMap.h" 2=0A=
 =0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 12 "../include/RangeMap.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 template<class From, class To>=0A=
 struct RangeMapRange {=0A=
   From fromMin;=0A=
   From fromMax;=0A=
   To toMin;=0A=
 };=0A=
 =0A=
 template<class From, class To> class RangeMapIter;=0A=
 =0A=
 template<class From, class To>=0A=
 class RangeMap {=0A=
 public:=0A=
   RangeMap();=0A=
   Boolean map(From, To &, From &alsoMax) const;=0A=
 =0A=
   unsigned inverseMap(To, From &, ISet<WideChar> &, WideChar &count) =
 const;=0A=
   void addRange(From, From, To);=0A=
 private:=0A=
   Vector<RangeMapRange<From,To> > ranges_;=0A=
   friend class RangeMapIter<From,To>;=0A=
 };=0A=
 =0A=
 template<class From, class To>=0A=
 class RangeMapIter {=0A=
 public:=0A=
   RangeMapIter(const RangeMap<From,To> &map);=0A=
   Boolean next(From &fromMin, From &fromMax, To &toMin) {=0A=
     if (!count_)=0A=
       return 0;=0A=
     else {=0A=
       fromMin =3D ptr_->fromMin;=0A=
       fromMax =3D ptr_->fromMax;=0A=
       toMin =3D ptr_->toMin;=0A=
       ptr_++;=0A=
       count_--;=0A=
       return 1;=0A=
     }=0A=
   }=0A=
 private:=0A=
   size_t count_;=0A=
   Vector<RangeMapRange<From,To> >::const_iterator ptr_;=0A=
 };=0A=
 # 14 "../include/UnivCharsetDesc.h" 2=0A=
 =0A=
 # 1 "../include/ISet.h" 1=0A=
 # 16 "../include/UnivCharsetDesc.h" 2=0A=
 # 1 "../include/constant.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 const Char charMax =3D Char(-1);=0A=
 const WideChar wideCharMax =3D WideChar(-1);=0A=
 const UnivChar univCharMax =3D UnivChar(-1);=0A=
 const SyntaxChar syntaxCharMax =3D SyntaxChar(-1);=0A=
 # 17 "../include/UnivCharsetDesc.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class UnivCharsetDesc {=0A=
 public:=0A=
   struct Range {=0A=
     WideChar descMin;=0A=
 =0A=
 =0A=
     unsigned long count;=0A=
     UnivChar univMin;=0A=
   };=0A=
   enum {=0A=
     zero =3D 48,=0A=
     A =3D 65,=0A=
     a =3D 97,=0A=
     tab =3D 9,=0A=
     rs =3D 10,=0A=
     re =3D 13,=0A=
     space =3D 32,=0A=
     exclamation =3D 33,=0A=
     lessThan =3D 60,=0A=
     greaterThan =3D 62=0A=
     };=0A=
   UnivCharsetDesc();=0A=
   UnivCharsetDesc(const Range *, size_t);=0A=
   void set(const Range *, size_t);=0A=
   Boolean descToUniv(WideChar from, UnivChar &to) const;=0A=
   Boolean descToUniv(WideChar from, UnivChar &to, WideChar &alsoMax) =
 const;=0A=
 =0A=
   unsigned univToDesc(UnivChar from, WideChar &to, ISet<WideChar> &toSet)=0A=
        const;=0A=
   unsigned univToDesc(UnivChar from, WideChar &to, ISet<WideChar> &toSet,=0A=
                       WideChar &count)=0A=
        const;=0A=
   void addRange(WideChar descMin, WideChar descMax, UnivChar univMin);=0A=
   void addBaseRange(const UnivCharsetDesc &baseSet,=0A=
                     WideChar descMin,=0A=
                     WideChar descMax,=0A=
                     WideChar baseMin,=0A=
                     ISet<WideChar> &baseMissing);=0A=
 private:=0A=
   static Boolean noDesc(Unsigned32 n) {=0A=
     return (n & (unsigned(1) << 31));=0A=
   }=0A=
   static UnivChar extractChar(Unsigned32 n, Char ch) {=0A=
     return UnivChar((n + ch) & ((unsigned(1) << 31) - 1));=0A=
   }=0A=
   static Unsigned32 wrapChar(UnivChar univ, Char ch) {=0A=
     return Unsigned32((univ - ch) & ((unsigned(1) << 31) - 1));=0A=
   }=0A=
 =0A=
   CharMap<Unsigned32> charMap_;=0A=
 =0A=
   RangeMap<WideChar,UnivChar> rangeMap_;=0A=
   friend class UnivCharsetDescIter;=0A=
 };=0A=
 =0A=
 class UnivCharsetDescIter {=0A=
 public:=0A=
   UnivCharsetDescIter(const UnivCharsetDesc &);=0A=
   Boolean next(WideChar &descMin, WideChar &descMax, UnivChar &univMin);=0A=
   void skipTo(WideChar);=0A=
 private:=0A=
   const CharMap<Unsigned32> *charMap_;=0A=
   Char nextChar_;=0A=
   Boolean doneCharMap_;=0A=
   RangeMapIter<WideChar,UnivChar> rangeMapIter_;=0A=
 };=0A=
 =0A=
 inline=0A=
 Boolean UnivCharsetDesc::descToUniv(WideChar from, UnivChar &to) const=0A=
 {=0A=
   if (from > charMax) {=0A=
     WideChar tem;=0A=
     return rangeMap_.map(from, to, tem);=0A=
   }=0A=
   else {=0A=
     Unsigned32 tem =3D charMap_[from];=0A=
     if (noDesc(tem))=0A=
       return 0;=0A=
     else {=0A=
       to =3D extractChar(tem, from);=0A=
       return 1;=0A=
     }=0A=
   }=0A=
 }=0A=
 =0A=
 inline=0A=
 Boolean UnivCharsetDesc::descToUniv(WideChar from, UnivChar &to,=0A=
                                     WideChar &alsoMax) const=0A=
 {=0A=
   if (from > charMax)=0A=
     return rangeMap_.map(from, to, alsoMax);=0A=
   else {=0A=
     Char max;=0A=
     Unsigned32 tem =3D charMap_.getRange(from, max);=0A=
     alsoMax =3D max;=0A=
     if (noDesc(tem))=0A=
       return 0;=0A=
     else {=0A=
       to =3D extractChar(tem, from);=0A=
       return 1;=0A=
     }=0A=
   }=0A=
 }=0A=
 =0A=
 inline=0A=
 unsigned UnivCharsetDesc::univToDesc(UnivChar from, WideChar &to,=0A=
                                      ISet<WideChar> &toSet) const=0A=
 {=0A=
   WideChar tem;=0A=
   return univToDesc(from, to, toSet, tem);=0A=
 }=0A=
 =0A=
 inline=0A=
 void UnivCharsetDescIter::skipTo(WideChar ch)=0A=
 {=0A=
   if (ch > charMax)=0A=
     doneCharMap_ =3D 1;=0A=
   else=0A=
     nextChar_ =3D ch;=0A=
 }=0A=
 # 12 "../include/CharsetInfo.h" 2=0A=
 =0A=
 =0A=
 =0A=
 # 1 "../include/ISet.h" 1=0A=
 # 16 "../include/CharsetInfo.h" 2=0A=
 # 1 "../include/CharMap.h" 1=0A=
 # 17 "../include/CharsetInfo.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class CharsetInfo {=0A=
 public:=0A=
   CharsetInfo();=0A=
   CharsetInfo(const UnivCharsetDesc &);=0A=
   void set(const UnivCharsetDesc &);=0A=
 =0A=
 =0A=
 =0A=
   Char execToDesc(char) const;=0A=
   StringC execToDesc(const char *s) const;=0A=
   Boolean descToUniv(WideChar from, UnivChar &to) const;=0A=
   Boolean descToUniv(WideChar from, UnivChar &to, WideChar &alsoMax) =
 const;=0A=
 =0A=
 =0A=
 =0A=
   unsigned univToDesc(UnivChar from, WideChar &to, ISet<WideChar> &toSet)=0A=
        const;=0A=
   unsigned univToDesc(UnivChar from, WideChar &to, ISet<WideChar> &toSet,=0A=
                       WideChar &count)=0A=
        const;=0A=
   void getDescSet(ISet<Char> &) const;=0A=
   int digitWeight(Char) const;=0A=
   int hexDigitWeight(Char) const;=0A=
   const UnivCharsetDesc &desc() const;=0A=
 private:=0A=
   void init();=0A=
   UnivCharsetDesc desc_;=0A=
   CharMap<Unsigned32> inverse_;=0A=
   Char execToDesc_[255 + 1];=0A=
 };=0A=
 =0A=
 inline=0A=
 unsigned CharsetInfo::univToDesc(UnivChar from, WideChar &to,=0A=
                                  ISet<WideChar> &toSet)=0A=
      const=0A=
 {=0A=
   if (from <=3D Char(-1)) {=0A=
     Unsigned32 n =3D inverse_[from];=0A=
     if (n =3D=3D Unsigned32(-1))=0A=
       return 0;=0A=
     if (n !=3D Unsigned32(-2)) {=0A=
       to =3D ((n + from) & ((Unsigned32(1) << 31) - 1));=0A=
       return 1;=0A=
     }=0A=
   }=0A=
   return desc_.univToDesc(from, to, toSet);=0A=
 }=0A=
 =0A=
 inline=0A=
 unsigned CharsetInfo::univToDesc(UnivChar from, WideChar &to,=0A=
                                  ISet<WideChar> &toSet, WideChar &count)=0A=
      const=0A=
 {=0A=
   if (from <=3D Char(-1)) {=0A=
     Char fromMax;=0A=
     Unsigned32 n =3D inverse_.getRange(from, fromMax);=0A=
     if (n =3D=3D Unsigned32(-1)) {=0A=
       count =3D (fromMax - from) + 1;=0A=
       return 0;=0A=
     }=0A=
     if (n !=3D Unsigned32(-2)) {=0A=
       to =3D ((n + from) & ((Unsigned32(1) << 31) - 1));=0A=
       count =3D (fromMax - from) + 1;=0A=
       return 1;=0A=
     }=0A=
   }=0A=
   return desc_.univToDesc(from, to, toSet, count);=0A=
 }=0A=
 =0A=
 inline=0A=
 Boolean CharsetInfo::descToUniv(UnivChar from, WideChar &to) const=0A=
 {=0A=
   return desc_.descToUniv(from, to);=0A=
 }=0A=
 =0A=
 inline=0A=
 Char CharsetInfo::execToDesc(char c) const=0A=
 {=0A=
   return execToDesc_[(unsigned char)c];=0A=
 }=0A=
 =0A=
 inline=0A=
 Boolean CharsetInfo::descToUniv(WideChar from, UnivChar &to,=0A=
                                 WideChar &alsoMax) const=0A=
 {=0A=
   return desc_.descToUniv(from, to, alsoMax);=0A=
 }=0A=
 =0A=
 inline=0A=
 const UnivCharsetDesc &CharsetInfo::desc() const=0A=
 {=0A=
   return desc_;=0A=
 }=0A=
 # 16 "../include/CodingSystemKit.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class InputCodingSystemKit : public Resource {=0A=
 public:=0A=
   virtual ~InputCodingSystemKit();=0A=
 =0A=
   virtual const InputCodingSystem *=0A=
     identityInputCodingSystem() const =3D 0;=0A=
   virtual const InputCodingSystem *=0A=
     makeInputCodingSystem(const StringC &,=0A=
                           const CharsetInfo &,=0A=
                           Boolean isBctf,=0A=
                           const char *&staticName) const =3D 0;=0A=
   virtual Char replacementChar() const =3D 0;=0A=
   const CharsetInfo &systemCharset() const;=0A=
 protected:=0A=
   CharsetInfo systemCharset_;=0A=
 };=0A=
 =0A=
 class CodingSystemKit : public InputCodingSystemKit {=0A=
 public:=0A=
   virtual CodingSystemKit *copy() const =3D 0;=0A=
   virtual const CodingSystem *=0A=
     identityCodingSystem() const =3D 0;=0A=
   virtual const CodingSystem *=0A=
     makeCodingSystem(const char *, Boolean isBctf) const =3D 0;=0A=
   static CodingSystemKit *make(const char *);=0A=
 };=0A=
 =0A=
 inline=0A=
 const CharsetInfo &InputCodingSystemKit::systemCharset() const=0A=
 {=0A=
   return systemCharset_;=0A=
 }=0A=
 # 10 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/TranslateCodingSystem.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "../include/Ptr.h" 1=0A=
 # 16 "../include/Ptr.h"=0A=
 template<class T>=0A=
 class Ptr {=0A=
 public:=0A=
   Ptr() : ptr_(0) { }=0A=
   Ptr(T *ptr);=0A=
   ~Ptr();=0A=
   Ptr(const Ptr<T> &);=0A=
   Ptr<T> &operator=3D(const Ptr<T> &);=0A=
   Ptr<T> &operator=3D(T *);=0A=
   T *pointer() const { return ptr_; }=0A=
   T *operator->() const { return ptr_; }=0A=
   T &operator*() const { return *ptr_; }=0A=
   void swap(Ptr<T> &p) {=0A=
     T *tem =3D p.ptr_;=0A=
     p.ptr_ =3D ptr_;=0A=
     ptr_ =3D tem;=0A=
   }=0A=
   Boolean isNull() const { return ptr_ =3D=3D 0; }=0A=
 =0A=
   void clear();=0A=
   Boolean operator=3D=3D(const Ptr<T> &p) const {=0A=
     return ptr_ =3D=3D p.ptr_;=0A=
   }=0A=
   Boolean operator!=3D(const Ptr<T> &p) const {=0A=
     return ptr_ !=3D p.ptr_;=0A=
   }=0A=
   Boolean operator=3D=3D(const T *p) const {=0A=
     return ptr_ =3D=3D p;=0A=
   }=0A=
   Boolean operator!=3D(const T *p) const {=0A=
     return ptr_ !=3D p;=0A=
   }=0A=
 private:=0A=
   T *ptr_;=0A=
 };=0A=
 =0A=
 template<class T>=0A=
 class ConstPtr : private Ptr<T> {=0A=
 public:=0A=
   ConstPtr() { }=0A=
   ConstPtr(T *ptr) : Ptr<T>(ptr) { }=0A=
   ConstPtr(const Ptr<T> &p) : Ptr<T>(p) { }=0A=
   ConstPtr(const ConstPtr<T> &p) : Ptr<T>(p) { }=0A=
   ConstPtr<T> &operator=3D(const Ptr<T> &p) {=0A=
     Ptr<T>::operator=3D(p); return *this;=0A=
   }=0A=
   ConstPtr<T> &operator=3D(const ConstPtr<T> &p) {=0A=
     Ptr<T>::operator=3D(p); return *this;=0A=
   }=0A=
   ConstPtr<T> &operator=3D(T *p) {=0A=
     Ptr<T>::operator=3D(p); return *this;=0A=
   }=0A=
   const T *pointer() const { return Ptr<T>::pointer(); }=0A=
   const T *operator->() const { return Ptr<T>::pointer(); }=0A=
   const T &operator*() const { return *Ptr<T>::pointer(); }=0A=
   void swap(ConstPtr<T> &p) { Ptr<T>::swap(p); }=0A=
   Ptr<T>::isNull;=0A=
   Ptr<T>::clear;=0A=
   Boolean operator=3D=3D(const Ptr<T> &p) const { return =
 Ptr<T>::operator=3D=3D(p); }=0A=
   Boolean operator!=3D(const Ptr<T> &p) const { return =
 Ptr<T>::operator!=3D(p); }=0A=
   Boolean operator=3D=3D(const ConstPtr<T> &p) const {=0A=
     return Ptr<T>::operator=3D=3D(p);=0A=
   }=0A=
   Boolean operator!=3D(const ConstPtr<T> &p) const {=0A=
     return Ptr<T>::operator!=3D(p);=0A=
   }=0A=
 };=0A=
 # 9 "../include/TranslateCodingSystem.h" 2=0A=
 # 1 "../include/CharMap.h" 1=0A=
 # 10 "../include/TranslateCodingSystem.h" 2=0A=
 # 1 "../include/CharsetRegistry.h" 1=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 #pragma interface=0A=
 # 19 "../include/CharsetRegistry.h"=0A=
 class CharsetRegistry {=0A=
 public:=0A=
   class Iter {=0A=
   public:=0A=
     virtual ~Iter();=0A=
     virtual Boolean next(WideChar &min, WideChar &max, UnivChar &) =3D 0;=0A=
   };=0A=
   enum ISORegistrationNumber {=0A=
     UNREGISTERED =3D 0,=0A=
     ISO646_ASCII_G0 =3D 6,=0A=
     ISO646_C0 =3D 1,=0A=
     ISO6429 =3D 77,=0A=
     ISO8859_1 =3D 100,=0A=
     ISO8859_2 =3D 101,=0A=
     ISO8859_3 =3D 109,=0A=
     ISO8859_4 =3D 110,=0A=
     ISO8859_5 =3D 144,=0A=
     ISO8859_6 =3D 127,=0A=
     ISO8859_7 =3D 126,=0A=
     ISO8859_8 =3D 138,=0A=
     ISO8859_9 =3D 148,=0A=
     ISO646_JIS_G0 =3D 14,=0A=
     JIS0201 =3D 13,=0A=
     JIS0208 =3D 168,=0A=
     JIS0212 =3D 159,=0A=
     KSC5601 =3D 149,=0A=
     GB2312 =3D 58,=0A=
     ISO10646_UCS2 =3D 176,=0A=
     ISO10646_UCS4 =3D 177,=0A=
     BIG5 =3D 65535=0A=
   };=0A=
   static ISORegistrationNumber getRegistrationNumber(const StringC =
 &desig,=0A=
                                                      const CharsetInfo =
 &);=0A=
   static Iter *makeIter(ISORegistrationNumber);=0A=
 };=0A=
 # 11 "../include/TranslateCodingSystem.h" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 class TranslateCodingSystem : public CodingSystem {=0A=
 public:=0A=
   struct Desc {=0A=
     CharsetRegistry::ISORegistrationNumber number;=0A=
 =0A=
     Char add;=0A=
   };=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   TranslateCodingSystem(const CodingSystem *codingSystem,=0A=
                         const Desc *desc,=0A=
                         const CharsetInfo *charset,=0A=
                         Char illegalChar,=0A=
                         Char replacementChar);=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
   unsigned fixedBytesPerChar() const;=0A=
 private:=0A=
   ConstPtr<CharMapResource<Char> > decodeMap_;=0A=
   ConstPtr<CharMapResource<Char> > encodeMap_;=0A=
   const CodingSystem *sub_;=0A=
   const Desc *desc_;=0A=
   const CharsetInfo *charset_;=0A=
   Char illegalChar_;=0A=
   Char replacementChar_;=0A=
 };=0A=
 # 11 "CodingSystemKit.cxx" 2=0A=
 =0A=
 # 1 "../include/UTF8CodingSystem.h" 1=0A=
 # 13 "../include/UTF8CodingSystem.h"=0A=
 class UTF8CodingSystem : public CodingSystem {=0A=
 public:=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
 };=0A=
 # 13 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/Fixed2CodingSystem.h" 1=0A=
 # 13 "../include/Fixed2CodingSystem.h"=0A=
 class Fixed2CodingSystem : public CodingSystem {=0A=
 public:=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
   unsigned fixedBytesPerChar() const;=0A=
 };=0A=
 # 14 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/UnicodeCodingSystem.h" 1=0A=
 # 13 "../include/UnicodeCodingSystem.h"=0A=
 class UnicodeCodingSystem : public CodingSystem {=0A=
 public:=0A=
   UnicodeCodingSystem(const InputCodingSystem *sub =3D 0);=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
   unsigned fixedBytesPerChar() const;=0A=
 private:=0A=
   const InputCodingSystem *sub_;=0A=
 };=0A=
 # 15 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/XMLCodingSystem.h" 1=0A=
 # 13 "../include/XMLCodingSystem.h"=0A=
 class InputCodingSystemKit;=0A=
 =0A=
 class XMLCodingSystem : public CodingSystem {=0A=
 public:=0A=
   XMLCodingSystem(const InputCodingSystemKit *);=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
 private:=0A=
   const InputCodingSystemKit *kit_;=0A=
 };=0A=
 # 16 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/EUCJPCodingSystem.h" 1=0A=
 # 13 "../include/EUCJPCodingSystem.h"=0A=
 class EUCJPCodingSystem : public CodingSystem {=0A=
 public:=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
 };=0A=
 # 17 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/SJISCodingSystem.h" 1=0A=
 # 13 "../include/SJISCodingSystem.h"=0A=
 class SJISCodingSystem : public CodingSystem {=0A=
 public:=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
 };=0A=
 # 18 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/Big5CodingSystem.h" 1=0A=
 # 13 "../include/Big5CodingSystem.h"=0A=
 class Big5CodingSystem : public CodingSystem {=0A=
 public:=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
 };=0A=
 # 19 "CodingSystemKit.cxx" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "../include/IdentityCodingSystem.h" 1=0A=
 # 13 "../include/IdentityCodingSystem.h"=0A=
 class IdentityCodingSystem : public CodingSystem {=0A=
 public:=0A=
   IdentityCodingSystem();=0A=
   Decoder *makeDecoder() const;=0A=
   Encoder *makeEncoder() const;=0A=
   Boolean isIdentity() const;=0A=
 };=0A=
 # 24 "CodingSystemKit.cxx" 2=0A=
 # 1 "../include/Owner.h" 1=0A=
 # 15 "../include/Owner.h"=0A=
 template<class T>=0A=
 class Owner {=0A=
 public:=0A=
   Owner() : p_(0) { }=0A=
   Owner(T *p) : p_(p) { }=0A=
   ~Owner();=0A=
   void operator=3D(T *p) {=0A=
     if (p_) del();=0A=
     p_ =3D p;=0A=
   }=0A=
   operator int() const { return p_ !=3D 0; }=0A=
   T *pointer() const { return p_; }=0A=
   T *operator->() const { return p_; }=0A=
   T &operator*() const { return *p_; }=0A=
   void swap(Owner<T> &x) {=0A=
     T *tem =3D p_;=0A=
     p_ =3D x.p_;=0A=
     x.p_ =3D tem;=0A=
   }=0A=
   T *extract() {=0A=
     T *tem =3D p_;=0A=
     p_ =3D 0;=0A=
     return tem;=0A=
   }=0A=
   void clear() {=0A=
     if (p_) {=0A=
       del();=0A=
       p_ =3D 0;=0A=
     }=0A=
   }=0A=
 private:=0A=
   Owner(const Owner<T> &);=0A=
   void operator=3D(const Owner<T> &o);=0A=
   void del();=0A=
   T *p_;=0A=
 };=0A=
 # 25 "CodingSystemKit.cxx" 2=0A=
 =0A=
 # 1 "/usr/local/include/ctype.h" 1 3=0A=
 # 27 "/usr/local/include/ctype.h" 3=0A=
 # 1 "/usr/local/include/bits/types.h" 1 3=0A=
 # 29 "/usr/local/include/bits/types.h" 3=0A=
 # 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3=0A=
 # 30 "/usr/local/include/bits/types.h" 2 3=0A=
 =0A=
 =0A=
 typedef unsigned char __u_char;=0A=
 typedef unsigned short __u_short;=0A=
 typedef unsigned int __u_int;=0A=
 typedef unsigned long __u_long;=0A=
 =0A=
 __extension__ typedef unsigned long long int __u_quad_t;=0A=
 __extension__ typedef long long int __quad_t;=0A=
 # 49 "/usr/local/include/bits/types.h" 3=0A=
 typedef signed char __int8_t;=0A=
 typedef unsigned char __uint8_t;=0A=
 typedef signed short int __int16_t;=0A=
 typedef unsigned short int __uint16_t;=0A=
 typedef signed int __int32_t;=0A=
 typedef unsigned int __uint32_t;=0A=
 =0A=
 __extension__ typedef signed long long int __int64_t;=0A=
 __extension__ typedef unsigned long long int __uint64_t;=0A=
 =0A=
 typedef __quad_t *__qaddr_t;=0A=
 =0A=
 typedef __u_quad_t __dev_t;=0A=
 typedef __u_int __uid_t;=0A=
 typedef __u_int __gid_t;=0A=
 typedef __u_long __ino_t;=0A=
 typedef __u_int __mode_t;=0A=
 typedef __u_int __nlink_t;=0A=
 typedef long int __off_t;=0A=
 typedef __quad_t __loff_t;=0A=
 typedef int __pid_t;=0A=
 typedef int __ssize_t;=0A=
 typedef __u_long __rlim_t;=0A=
 typedef __u_quad_t __rlim64_t;=0A=
 typedef __u_int __id_t;=0A=
 =0A=
 typedef struct=0A=
   {=0A=
     int __val[2];=0A=
   } __fsid_t;=0A=
 =0A=
 =0A=
 typedef int __daddr_t;=0A=
 typedef char *__caddr_t;=0A=
 typedef long int __time_t;=0A=
 typedef unsigned int __useconds_t;=0A=
 typedef long int __suseconds_t;=0A=
 typedef long int __swblk_t;=0A=
 =0A=
 typedef long int __clock_t;=0A=
 =0A=
 =0A=
 typedef int __clockid_t;=0A=
 =0A=
 =0A=
 typedef int __timer_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef int __key_t;=0A=
 =0A=
 =0A=
 typedef unsigned short int __ipc_pid_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef long int __blksize_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef long int __blkcnt_t;=0A=
 typedef __quad_t __blkcnt64_t;=0A=
 =0A=
 =0A=
 typedef __u_long __fsblkcnt_t;=0A=
 typedef __u_quad_t __fsblkcnt64_t;=0A=
 =0A=
 =0A=
 typedef __u_long __fsfilcnt_t;=0A=
 typedef __u_quad_t __fsfilcnt64_t;=0A=
 =0A=
 =0A=
 typedef __u_quad_t __ino64_t;=0A=
 =0A=
 =0A=
 typedef __loff_t __off64_t;=0A=
 =0A=
 =0A=
 typedef long int __t_scalar_t;=0A=
 typedef unsigned long int __t_uscalar_t;=0A=
 =0A=
 =0A=
 typedef int __intptr_t;=0A=
 =0A=
 =0A=
 typedef unsigned int __socklen_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 # 1 "/usr/local/include/bits/pthreadtypes.h" 1 3=0A=
 # 23 "/usr/local/include/bits/pthreadtypes.h" 3=0A=
 # 1 "/usr/local/include/bits/sched.h" 1 3=0A=
 # 68 "/usr/local/include/bits/sched.h" 3=0A=
 struct __sched_param=0A=
   {=0A=
     int __sched_priority;=0A=
   };=0A=
 # 24 "/usr/local/include/bits/pthreadtypes.h" 2 3=0A=
 =0A=
 =0A=
 struct _pthread_fastlock=0A=
 {=0A=
   long int __status;=0A=
   int __spinlock;=0A=
 =0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 typedef struct _pthread_descr_struct *_pthread_descr;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct __pthread_attr_s=0A=
 {=0A=
   int __detachstate;=0A=
   int __schedpolicy;=0A=
   struct __sched_param __schedparam;=0A=
   int __inheritsched;=0A=
   int __scope;=0A=
   size_t __guardsize;=0A=
   int __stackaddr_set;=0A=
   void *__stackaddr;=0A=
   size_t __stacksize;=0A=
 } pthread_attr_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   struct _pthread_fastlock __c_lock;=0A=
   _pthread_descr __c_waiting;=0A=
 } pthread_cond_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   int __dummy;=0A=
 } pthread_condattr_t;=0A=
 =0A=
 =0A=
 typedef unsigned int pthread_key_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   int __m_reserved;=0A=
   int __m_count;=0A=
   _pthread_descr __m_owner;=0A=
   int __m_kind;=0A=
   struct _pthread_fastlock __m_lock;=0A=
 } pthread_mutex_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   int __mutexkind;=0A=
 } pthread_mutexattr_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef int pthread_once_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef struct _pthread_rwlock_t=0A=
 {=0A=
   struct _pthread_fastlock __rw_lock;=0A=
   int __rw_readers;=0A=
   _pthread_descr __rw_writer;=0A=
   _pthread_descr __rw_read_waiting;=0A=
   _pthread_descr __rw_write_waiting;=0A=
   int __rw_kind;=0A=
   int __rw_pshared;=0A=
 } pthread_rwlock_t;=0A=
 =0A=
 =0A=
 =0A=
 typedef struct=0A=
 {=0A=
   int __lockkind;=0A=
   int __pshared;=0A=
 } pthread_rwlockattr_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef volatile int pthread_spinlock_t;=0A=
 =0A=
 =0A=
 typedef struct {=0A=
   struct _pthread_fastlock __ba_lock;=0A=
   int __ba_required;=0A=
   int __ba_present;=0A=
   _pthread_descr __ba_waiting;=0A=
 } pthread_barrier_t;=0A=
 =0A=
 =0A=
 typedef struct {=0A=
   int __pshared;=0A=
 } pthread_barrierattr_t;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 typedef unsigned long int pthread_t;=0A=
 # 144 "/usr/local/include/bits/types.h" 2 3=0A=
 # 28 "/usr/local/include/ctype.h" 2 3=0A=
 =0A=
 extern "C" {=0A=
 # 40 "/usr/local/include/ctype.h" 3=0A=
 # 1 "/usr/local/include/endian.h" 1 3=0A=
 # 37 "/usr/local/include/endian.h" 3=0A=
 # 1 "/usr/local/include/bits/endian.h" 1 3=0A=
 # 38 "/usr/local/include/endian.h" 2 3=0A=
 # 41 "/usr/local/include/ctype.h" 2 3=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 enum=0A=
 {=0A=
   _ISupper =3D ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),=0A=
   _ISlower =3D ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),=0A=
   _ISalpha =3D ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),=0A=
   _ISdigit =3D ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),=0A=
   _ISxdigit =3D ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),=0A=
   _ISspace =3D ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),=0A=
   _ISprint =3D ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),=0A=
   _ISgraph =3D ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),=0A=
   _ISblank =3D ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),=0A=
   _IScntrl =3D ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),=0A=
   _ISpunct =3D ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),=0A=
   _ISalnum =3D ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))=0A=
 };=0A=
 # 75 "/usr/local/include/ctype.h" 3=0A=
 extern __const unsigned short int *__ctype_b;=0A=
 extern __const __int32_t *__ctype_tolower;=0A=
 extern __const __int32_t *__ctype_toupper;=0A=
 # 91 "/usr/local/include/ctype.h" 3=0A=
 extern int isalnum (int) throw ();=0A=
 extern int isalpha (int) throw ();=0A=
 extern int iscntrl (int) throw ();=0A=
 extern int isdigit (int) throw ();=0A=
 extern int islower (int) throw ();=0A=
 extern int isgraph (int) throw ();=0A=
 extern int isprint (int) throw ();=0A=
 extern int ispunct (int) throw ();=0A=
 extern int isspace (int) throw ();=0A=
 extern int isupper (int) throw ();=0A=
 extern int isxdigit (int) throw ();=0A=
 =0A=
 =0A=
 extern int isblank (int) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int tolower (int __c) throw ();=0A=
 =0A=
 =0A=
 extern int toupper (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 extern int isascii (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int toascii (int __c) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int _toupper (int) throw ();=0A=
 extern int _tolower (int) throw ();=0A=
 # 167 "/usr/local/include/ctype.h" 3=0A=
 extern __inline int=0A=
 tolower (int __c) throw ()=0A=
 {=0A=
   return __c >=3D -128 && __c < 256 ? __ctype_tolower[__c] : __c;=0A=
 }=0A=
 =0A=
 extern __inline int=0A=
 toupper (int __c) throw ()=0A=
 {=0A=
   return __c >=3D -128 && __c < 256 ? __ctype_toupper[__c] : __c;=0A=
 }=0A=
 # 223 "/usr/local/include/ctype.h" 3=0A=
 extern int __isalnum_l (int, __locale_t) throw ();=0A=
 extern int __isalpha_l (int, __locale_t) throw ();=0A=
 extern int __iscntrl_l (int, __locale_t) throw ();=0A=
 extern int __isdigit_l (int, __locale_t) throw ();=0A=
 extern int __islower_l (int, __locale_t) throw ();=0A=
 extern int __isgraph_l (int, __locale_t) throw ();=0A=
 extern int __isprint_l (int, __locale_t) throw ();=0A=
 extern int __ispunct_l (int, __locale_t) throw ();=0A=
 extern int __isspace_l (int, __locale_t) throw ();=0A=
 extern int __isupper_l (int, __locale_t) throw ();=0A=
 extern int __isxdigit_l (int, __locale_t) throw ();=0A=
 =0A=
 extern int __isblank_l (int, __locale_t) throw ();=0A=
 =0A=
 =0A=
 =0A=
 extern int __tolower_l (int __c, __locale_t __l) throw ();=0A=
 =0A=
 =0A=
 extern int __toupper_l (int __c, __locale_t __l) throw ();=0A=
 # 276 "/usr/local/include/ctype.h" 3=0A=
 }=0A=
 # 27 "CodingSystemKit.cxx" 2=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 const Char unicodeReplaceChar =3D 0xfffd;=0A=
 =0A=
 =0A=
 class CodingSystemKitImpl : public CodingSystemKit {=0A=
 public:=0A=
   CodingSystemKitImpl(const TranslateCodingSystem::Desc *);=0A=
   CodingSystemKit *copy() const;=0A=
   Char replacementChar() const;=0A=
   const CodingSystem *=0A=
     identityCodingSystem() const;=0A=
   const InputCodingSystem *=0A=
     identityInputCodingSystem() const;=0A=
   const InputCodingSystem *=0A=
     makeInputCodingSystem(const StringC &,=0A=
                           const CharsetInfo &,=0A=
                           Boolean isBctf,=0A=
                           const char *&) const;=0A=
   const CodingSystem *=0A=
     makeCodingSystem(const char *, Boolean isBctf) const;=0A=
   enum CodingSystemId {=0A=
     identity,=0A=
     fixed2,=0A=
     utf8,=0A=
     unicode,=0A=
     eucjp,=0A=
     euccn,=0A=
     euckr,=0A=
     sjisBctf,=0A=
     eucBctf,=0A=
     sjis,=0A=
     big5,=0A=
     big5Bctf,=0A=
     ansi,=0A=
     oem,=0A=
     maybeUnicode,=0A=
     xml,=0A=
     iso8859_1,=0A=
     iso8859_2,=0A=
     iso8859_3,=0A=
     iso8859_4,=0A=
     iso8859_5,=0A=
     iso8859_6,=0A=
     iso8859_7,=0A=
     iso8859_8,=0A=
     iso8859_9=0A=
   };=0A=
   struct Entry {=0A=
     const char *name;=0A=
     CodingSystemId id;=0A=
   };=0A=
   static Boolean match(const StringC &s,=0A=
                        const CharsetInfo &charset,=0A=
                        const char *key);=0A=
   static Boolean match(const char *s,=0A=
                        const char *key);=0A=
 private:=0A=
   const CodingSystem *=0A=
     makeCodingSystem(CodingSystemId) const;=0A=
   const Entry *firstEntry(Boolean isBctf) const;=0A=
 =0A=
   UTF8CodingSystem utf8CodingSystem_;=0A=
   Fixed2CodingSystem fixed2CodingSystem_;=0A=
   UnicodeCodingSystem unicodeCodingSystem_;=0A=
   XMLCodingSystem xmlCodingSystem_;=0A=
   EUCJPCodingSystem eucBctf_;=0A=
   SJISCodingSystem sjisBctf_;=0A=
   Big5CodingSystem big5Bctf_;=0A=
   TranslateCodingSystem eucjpCodingSystem_;=0A=
   TranslateCodingSystem euccnCodingSystem_;=0A=
   TranslateCodingSystem euckrCodingSystem_;=0A=
   TranslateCodingSystem sjisCodingSystem_;=0A=
   TranslateCodingSystem big5CodingSystem_;=0A=
   TranslateCodingSystem iso8859_1CodingSystem_;=0A=
   TranslateCodingSystem iso8859_2CodingSystem_;=0A=
   TranslateCodingSystem iso8859_3CodingSystem_;=0A=
   TranslateCodingSystem iso8859_4CodingSystem_;=0A=
   TranslateCodingSystem iso8859_5CodingSystem_;=0A=
   TranslateCodingSystem iso8859_6CodingSystem_;=0A=
   TranslateCodingSystem iso8859_7CodingSystem_;=0A=
   TranslateCodingSystem iso8859_8CodingSystem_;=0A=
   TranslateCodingSystem iso8859_9CodingSystem_;=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   IdentityCodingSystem identityCodingSystem_;=0A=
   const TranslateCodingSystem::Desc *systemCharsetDesc_;=0A=
   static const Entry bctfTable_[];=0A=
   enum { nEncodingsRequireUnicode =3D 8 };=0A=
   static const Entry encodingTable_[];=0A=
 };=0A=
 =0A=
 =0A=
 static const TranslateCodingSystem::Desc iso10646Desc[] =3D {=0A=
   { CharsetRegistry::ISO10646_UCS2, 0x0 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 },=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 static const TranslateCodingSystem::Desc jisDesc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_JIS_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::JIS0201, 0x80 },=0A=
   { CharsetRegistry::JIS0208, 0x8080 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc jis2Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_JIS_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::JIS0201, 0x80 },=0A=
   { CharsetRegistry::JIS0208, 0x8080 },=0A=
   { CharsetRegistry::JIS0212, 0x8000 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc gbDesc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::GB2312, 0x8080 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc big5Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::BIG5, 0x0 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc kscDesc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::KSC5601, 0x8080 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_1Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_1, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_2Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_2, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_3Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_3, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_4Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_4, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_5Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_5, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_6Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_6, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_7Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_7, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_8Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_8, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 static const TranslateCodingSystem::Desc iso8859_9Desc[] =3D {=0A=
   { CharsetRegistry::ISO646_C0, 0x0 },=0A=
   { CharsetRegistry::ISO646_ASCII_G0, 0x0 },=0A=
   { CharsetRegistry::ISO6429, 0x80 },=0A=
   { CharsetRegistry::ISO8859_9, 0x80 },=0A=
   { CharsetRegistry::UNREGISTERED, 0x0 }=0A=
 };=0A=
 =0A=
 =0A=
 =0A=
 const CodingSystemKitImpl::Entry CodingSystemKitImpl::bctfTable_[] =3D {=0A=
   { "IDENTITY", identity },=0A=
 =0A=
   { "FIXED-2", fixed2 },=0A=
   { "UTF-8", utf8 },=0A=
   { "EUC", eucBctf },=0A=
   { "SJIS", sjisBctf },=0A=
   { "BIG5", big5Bctf },=0A=
 =0A=
   { 0, identity },=0A=
 };=0A=
 =0A=
 const CodingSystemKitImpl::Entry CodingSystemKitImpl::encodingTable_[] =
 =3D {=0A=
 =0A=
   { "UTF-8", utf8 },=0A=
   { "UCS-2", fixed2 },=0A=
   { "ISO-10646-UCS-2", fixed2 },=0A=
   { "UNICODE", unicode },=0A=
 =0A=
 =0A=
   { "UTF-16", unicode },=0A=
   { "WINDOWS", ansi },=0A=
   { "MS-DOS", oem },=0A=
   { "WUNICODE", maybeUnicode },=0A=
   { "XML", xml },=0A=
 =0A=
   { "IS8859-1", iso8859_1 },=0A=
   { "ISO-8859-1", iso8859_1 },=0A=
   { "IS8859-2", iso8859_2 },=0A=
   { "ISO-8859-2", iso8859_2 },=0A=
   { "IS8859-3", iso8859_3 },=0A=
   { "ISO-8859-3", iso8859_3 },=0A=
   { "IS8859-4", iso8859_4 },=0A=
   { "ISO-8859-4", iso8859_4 },=0A=
   { "IS8859-5", iso8859_5 },=0A=
   { "ISO-8859-5", iso8859_5 },=0A=
   { "IS8859-6", iso8859_6 },=0A=
   { "ISO-8859-6", iso8859_6 },=0A=
   { "IS8859-7", iso8859_7 },=0A=
   { "ISO-8859-7", iso8859_7 },=0A=
   { "IS8859-8", iso8859_8 },=0A=
   { "ISO-8859-8", iso8859_8 },=0A=
   { "IS8859-9", iso8859_9 },=0A=
   { "ISO-8859-9", iso8859_9 },=0A=
   { "EUC-JP", eucjp },=0A=
   { "EUC-CN", euccn },=0A=
   { "GB2312", euccn },=0A=
   { "CN-GB", euccn },=0A=
   { "EUC-KR", euckr },=0A=
   { "SJIS", sjis },=0A=
   { "SHIFT_JIS", sjis },=0A=
   { "BIG5", big5 },=0A=
   { "CN-BIG5", big5 },=0A=
 =0A=
   { 0, identity },=0A=
 };=0A=
 =0A=
 CodingSystemKitImpl::CodingSystemKitImpl(const =
 TranslateCodingSystem::Desc *systemCharsetDesc)=0A=
 : systemCharsetDesc_(systemCharsetDesc)=0A=
 =0A=
   ,=0A=
 =0A=
 =0A=
 =0A=
 =0A=
 =0A=
   xmlCodingSystem_(this),=0A=
   iso8859_1CodingSystem_(&identityCodingSystem_, iso8859_1Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   iso8859_2CodingSystem_(&identityCodingSystem_, iso8859_2Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   iso8859_3CodingSystem_(&identityCodingSystem_, iso8859_3Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   iso8859_4CodingSystem_(&identityCodingSystem_, iso8859_4Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   iso8859_5CodingSystem_(&identityCodingSystem_, iso8859_5Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   iso8859_6CodingSystem_(&identityCodingSystem_, iso8859_6Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   iso8859_7CodingSystem_(&identityCodingSystem_, iso8859_7Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   iso8859_8CodingSystem_(&identityCodingSystem_, iso8859_8Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   iso8859_9CodingSystem_(&identityCodingSystem_, iso8859_9Desc, =
 &systemCharset_, 0x100, unicodeReplaceChar),=0A=
   eucjpCodingSystem_(&eucBctf_, jis2Desc, &systemCharset_, 0x8000, =
 unicodeReplaceChar),=0A=
   euccnCodingSystem_(&eucBctf_, gbDesc, &systemCharset_, 0x8000, =
 unicodeReplaceChar),=0A=
   euckrCodingSystem_(&eucBctf_, kscDesc, &systemCharset_, 0x8000, =
 unicodeReplaceChar),=0A=
   sjisCodingSystem_(&sjisBctf_, jisDesc, &systemCharset_, 0x8000, =
 unicodeReplaceChar),=0A=
   big5CodingSystem_(&big5Bctf_, big5Desc, &systemCharset_, 0x0080, =
 unicodeReplaceChar)=0A=
 =0A=
 {=0A=
   UnivCharsetDesc desc;=0A=
   for (const TranslateCodingSystem::Desc *p =3D systemCharsetDesc_;=0A=
        p->number !=3D CharsetRegistry::UNREGISTERED;=0A=
        p++) {=0A=
     Owner<CharsetRegistry::Iter> =
 iter(CharsetRegistry::makeIter(p->number));=0A=
     if (iter) {=0A=
       WideChar min;=0A=
       WideChar max;=0A=
       UnivChar univ;=0A=
       while (iter->next(min, max, univ)) {=0A=
         min +=3D p->add;=0A=
         max +=3D p->add;=0A=
         if (min <=3D charMax) {=0A=
           if (max > charMax)=0A=
             max =3D charMax;=0A=
           desc.addRange(min, max, univ);=0A=
         }=0A=
       }=0A=
     }=0A=
   }=0A=
   systemCharset_.set(desc);=0A=
 }=0A=
 =0A=
 CodingSystemKit *CodingSystemKitImpl::copy() const=0A=
 {=0A=
   return new CodingSystemKitImpl(systemCharsetDesc_);=0A=
 }=0A=
 =0A=
 const CodingSystemKitImpl::Entry =
 *CodingSystemKitImpl::firstEntry(Boolean isBctf) const=0A=
 {=0A=
   if (isBctf)=0A=
     return bctfTable_;=0A=
 =0A=
   else if (systemCharsetDesc_ !=3D iso10646Desc)=0A=
     return encodingTable_ + nEncodingsRequireUnicode;=0A=
 =0A=
   else=0A=
     return encodingTable_;=0A=
 }=0A=
 =0A=
 const InputCodingSystem *=0A=
 CodingSystemKitImpl::makeInputCodingSystem(const StringC &s,=0A=
                                            const CharsetInfo &charset,=0A=
                                            Boolean isBctf,=0A=
                                            const char *&key) const=0A=
 {=0A=
   for (const Entry *p =3D firstEntry(isBctf); p->name; p++)=0A=
     if (match(s, charset, p->name)) {=0A=
       key =3D p->name;=0A=
       return makeCodingSystem(p->id);=0A=
     }=0A=
   return 0;=0A=
 }=0A=
 =0A=
 Boolean=0A=
 CodingSystemKitImpl::match(const StringC &s,=0A=
                            const CharsetInfo &charset,=0A=
                            const char *key)=0A=
 {=0A=
   for (size_t i =3D 0; i < s.size(); i++) {=0A=
     if (key[i] =3D=3D '\0')=0A=
       return 0;=0A=
     if (charset.execToDesc(toupper(key[i])) !=3D s[i]=0A=
         && charset.execToDesc(tolower(key[i])) !=3D s[i])=0A=
       return 0;=0A=
   }=0A=
   return key[s.size()] =3D=3D '\0';=0A=
 }=0A=
 =0A=
 const CodingSystem *=0A=
 CodingSystemKitImpl::makeCodingSystem(const char *s,=0A=
                                       Boolean isBctf)=0A=
   const=0A=
 {=0A=
  for (const Entry *p =3D firstEntry(isBctf); p->name; p++)=0A=
    if (match(s, p->name))=0A=
       return makeCodingSystem(p->id);=0A=
   return 0;=0A=
 }=0A=
 =0A=
 Boolean=0A=
 CodingSystemKitImpl::match(const char *s,=0A=
                            const char *key)=0A=
 {=0A=
   for (; toupper(*key) =3D=3D *s || tolower(*key) =3D=3D *s; s++, key++) =
 {=0A=
     if (*s =3D=3D '\0')=0A=
       return 1;=0A=
   }=0A=
   return 0;=0A=
 }=0A=
 =0A=
 const CodingSystem *=0A=
 CodingSystemKitImpl::makeCodingSystem(CodingSystemId id) const=0A=
 {=0A=
   switch (id) {=0A=
   case identity:=0A=
     return &identityCodingSystem_;=0A=
 =0A=
   case fixed2:=0A=
     return &fixed2CodingSystem_;=0A=
   case utf8:=0A=
     return &utf8CodingSystem_;=0A=
   case unicode:=0A=
     return &unicodeCodingSystem_;=0A=
   case eucBctf:=0A=
     return &eucBctf_;=0A=
   case sjisBctf:=0A=
     return &sjisBctf_;=0A=
   case big5Bctf:=0A=
     return &big5Bctf_;=0A=
   case eucjp:=0A=
     return &eucjpCodingSystem_;=0A=
   case euccn:=0A=
     return &euccnCodingSystem_;=0A=
   case euckr:=0A=
     return &euckrCodingSystem_;=0A=
   case sjis:=0A=
     return &sjisCodingSystem_;=0A=
   case big5:=0A=
     return &big5CodingSystem_;=0A=
   case iso8859_1:=0A=
     if (systemCharsetDesc_ =3D=3D iso10646Desc)=0A=
       return &identityCodingSystem_;=0A=
     else=0A=
       return &iso8859_1CodingSystem_;=0A=
   case iso8859_2:=0A=
     return &iso8859_2CodingSystem_;=0A=
   case iso8859_3:=0A=
     return &iso8859_3CodingSystem_;=0A=
   case iso8859_4:=0A=
     return &iso8859_4CodingSystem_;=0A=
   case iso8859_5:=0A=
     return &iso8859_5CodingSystem_;=0A=
   case iso8859_6:=0A=
     return &iso8859_6CodingSystem_;=0A=
   case iso8859_7:=0A=
     return &iso8859_7CodingSystem_;=0A=
   case iso8859_8:=0A=
     return &iso8859_8CodingSystem_;=0A=
   case iso8859_9:=0A=
     return &iso8859_9CodingSystem_;=0A=
   case xml:=0A=
     return &xmlCodingSystem_;=0A=
 # 486 "CodingSystemKit.cxx"=0A=
   default:=0A=
     break;=0A=
   }=0A=
   return 0;=0A=
 }=0A=
 =0A=
 const InputCodingSystem *=0A=
 CodingSystemKitImpl::identityInputCodingSystem() const=0A=
 {=0A=
   return &identityCodingSystem_;=0A=
 }=0A=
 =0A=
 const CodingSystem *=0A=
 CodingSystemKitImpl::identityCodingSystem() const=0A=
 {=0A=
   return &identityCodingSystem_;=0A=
 }=0A=
 =0A=
 Char CodingSystemKitImpl::replacementChar() const=0A=
 {=0A=
 =0A=
 =0A=
   return unicodeReplaceChar;=0A=
 =0A=
 =0A=
 =0A=
 }=0A=
 =0A=
 CodingSystemKit *=0A=
 CodingSystemKit::make(const char *systemCharsetName)=0A=
 {=0A=
 =0A=
   if (systemCharsetName && CodingSystemKitImpl::match(systemCharsetName, =
 "JIS"))=0A=
     return new CodingSystemKitImpl(jis2Desc);=0A=
 =0A=
   return new CodingSystemKitImpl(iso10646Desc);=0A=
 }=0A=
 =0A=
 InputCodingSystemKit::~InputCodingSystemKit()=0A=
 {=0A=
 }=0A=
 
 ------=_NextPart_000_0029_01C145FA.D57A7F00--


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-09-25 10:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-25 10:56 middle-end/4227 Georg Wild

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).