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).