Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

String Class Reference

#include <GString.h>

List of all members.

Public Methods

 String ()
 String (const String &x)
 String (const SubString &x)
 String (const char *t)
 String (const char *t, int len)
 String (char c)
 ~String ()
String & operator= (const String &y)
String & operator= (const char *y)
String & operator= (char c)
String & operator= (const SubString &y)
String & operator+= (const String &y)
String & operator+= (const SubString &y)
String & operator+= (const char *t)
String & operator+= (char c)
void prepend (const String &y)
void prepend (const SubString &y)
void prepend (const char *t)
void prepend (char c)
int index (char c, int startpos=0) const
int index (const String &y, int startpos=0) const
int index (const SubString &y, int startpos=0) const
int index (const char *t, int startpos=0) const
int index (const Regex &r, int startpos=0) const
int contains (char c) const
int contains (const String &y) const
int contains (const SubString &y) const
int contains (const char *t) const
int contains (const Regex &r) const
int contains (char c, int pos) const
int contains (const String &y, int pos) const
int contains (const SubString &y, int pos) const
int contains (const char *t, int pos) const
int contains (const Regex &r, int pos) const
int matches (char c, int pos=0) const
int matches (const String &y, int pos=0) const
int matches (const SubString &y, int pos=0) const
int matches (const char *t, int pos=0) const
int matches (const Regex &r, int pos=0) const
int freq (char c) const
int freq (const String &y) const
int freq (const SubString &y) const
int freq (const char *t) const
SubString at (int pos, int len)
SubString operator() (int pos, int len)
SubString at (const String &x, int startpos=0)
SubString at (const SubString &x, int startpos=0)
SubString at (const char *t, int startpos=0)
SubString at (char c, int startpos=0)
SubString at (const Regex &r, int startpos=0)
SubString before (int pos)
SubString before (const String &x, int startpos=0)
SubString before (const SubString &x, int startpos=0)
SubString before (const char *t, int startpos=0)
SubString before (char c, int startpos=0)
SubString before (const Regex &r, int startpos=0)
SubString through (int pos)
SubString through (const String &x, int startpos=0)
SubString through (const SubString &x, int startpos=0)
SubString through (const char *t, int startpos=0)
SubString through (char c, int startpos=0)
SubString through (const Regex &r, int startpos=0)
SubString from (int pos)
SubString from (const String &x, int startpos=0)
SubString from (const SubString &x, int startpos=0)
SubString from (const char *t, int startpos=0)
SubString from (char c, int startpos=0)
SubString from (const Regex &r, int startpos=0)
SubString after (int pos)
SubString after (const String &x, int startpos=0)
SubString after (const SubString &x, int startpos=0)
SubString after (const char *t, int startpos=0)
SubString after (char c, int startpos=0)
SubString after (const Regex &r, int startpos=0)
void del (int pos, int len)
void del (const String &y, int startpos=0)
void del (const SubString &y, int startpos=0)
void del (const char *t, int startpos=0)
void del (char c, int startpos=0)
void del (const Regex &r, int startpos=0)
int gsub (const String &pat, const String &repl)
int gsub (const SubString &pat, const String &repl)
int gsub (const char *pat, const String &repl)
int gsub (const char *pat, const char *repl)
int gsub (const Regex &pat, const String &repl)
void reverse ()
void upcase ()
void downcase ()
void capitalize ()
char & operator[] (int i)
const char & operator[] (int i) const
char elem (int i) const
char firstchar () const
char lastchar () const
 operator const char * () const
const char * chars () const
unsigned int length () const
int empty () const
void alloc (int newsize)
int allocation () const
void error (const char *msg) const
int OK () const

Protected Methods

int search (int, int, const char *, int=-1) const
int search (int, int, char) const
int match (int, int, int, const char *, int=-1) const
int _gsub (const char *, int, const char *,int)
int _gsub (const Regex &, const char *, int)
SubString _substr (int, int)

Protected Attributes

JString_trep

Friends

class SubString
void cat (const String &, const String &, String &)
void cat (const String &, const SubString &, String &)
void cat (const String &, const char *, String &)
void cat (const String &, char, String &)
void cat (const SubString &, const String &, String &)
void cat (const SubString &, const SubString &, String &)
void cat (const SubString &, const char *, String &)
void cat (const SubString &, char, String &)
void cat (const char *, const String &, String &)
void cat (const char *, const SubString &, String &)
void cat (const char *, const char *, String &)
void cat (const char *, char, String &)
void cat (const String &, const String &, const String &, String &)
void cat (const String &, const String &, const SubString &, String &)
void cat (const String &, const String &, const char *, String &)
void cat (const String &, const String &, char, String &)
void cat (const String &, const SubString &, const String &, String &)
void cat (const String &, const SubString &, const SubString &, String &)
void cat (const String &, const SubString &, const char *, String &)
void cat (const String &, const SubString &, char, String &)
void cat (const String &, const char *, const String &, String &)
void cat (const String &, const char *, const SubString &, String &)
void cat (const String &, const char *, const char *, String &)
void cat (const String &, const char *, char, String &)
void cat (const char *, const String &, const String &, String &)
void cat (const char *, const String &, const SubString &, String &)
void cat (const char *, const String &, const char *, String &)
void cat (const char *, const String &, char, String &)
void cat (const char *, const SubString &, const String &, String &)
void cat (const char *, const SubString &, const SubString &, String &)
void cat (const char *, const SubString &, const char *, String &)
void cat (const char *, const SubString &, char, String &)
void cat (const char *, const char *, const String &, String &)
void cat (const char *, const char *, const SubString &, String &)
void cat (const char *, const char *, const char *, String &)
void cat (const char *, const char *, char, String &)
int split (const String &x, String res[], int maxn, const String &sep)
int split (const String &x, String res[], int maxn, const Regex &sep)
String common_prefix (const String &x, const String &y, int startpos=0)
String common_suffix (const String &x, const String &y, int startpos=-1)
String replicate (char c, int n)
String replicate (const String &y, int n)
String join (String src[], int n, const String &sep)
String reverse (const String &x)
String upcase (const String &x)
String downcase (const String &x)
String capitalize (const String &x)
ostream & operator<< (ostream &s, const String &x)
ostream & operator<< (ostream &s, const SubString &x)
istream & operator>> (istream &s, String &x)
int readline (istream &s, String &x, char terminator='\n', int discard_terminator=1)


Constructor & Destructor Documentation

String::String   [inline]
 

Definition at line 473 of file GString.h.

00474   : rep(&_nilStrRep) {}

String::String const String &    x [inline]
 

Definition at line 475 of file GString.h.

00476   : rep(Scopy(0, x.rep)) {}

String::String const SubString   y [inline]
 

Definition at line 481 of file GString.h.

00482   : rep(Salloc(0, y.chars(), y.length(), y.length())) {}

String::String const char *    t [inline]
 

Definition at line 477 of file GString.h.

00478   : rep(Salloc(0, t, -1, -1)) {}

String::String const char *    t,
int    tlen
[inline]
 

Definition at line 479 of file GString.h.

00480   : rep(Salloc(0, t, tlen, tlen)) {}

String::String char    c [inline]
 

Definition at line 483 of file GString.h.

00484   : rep(Salloc(0, &c, 1, 1)) {}

String::~String   [inline]
 

Definition at line 486 of file GString.h.

00486 { if (rep != &_nilStrRep) delete rep; }


Member Function Documentation

int String::OK   const
 

Definition at line 1291 of file GString.cc.

01292 {
01293   if (rep == 0             // don't have a rep
01294     || rep->len > rep->sz     // string oustide bounds
01295     || rep->s[rep->len] != 0)   // not null-terminated
01296       error("invariant failure");
01297   return 1;
01298 }

int String::_gsub const Regex &    pat,
const char *    r,
int    rl
[protected]
 

Definition at line 603 of file GString.cc.

00604 {
00605   int nmatches = 0;
00606   int sl = length();
00607   if (sl <= 0)
00608     return nmatches;
00609 
00610   if (rl < 0) rl = slen(r);
00611 
00612   const char* s = chars();
00613 
00614   StrRep* nrep = 0;
00615   int nsz = 0;
00616 
00617   char* x = 0;
00618 
00619   int si = 0;
00620   int xi = 0;
00621   int remaining = sl;
00622   int  pos, pl = 0;             // how long is a regular expression?
00623 
00624   while (remaining > 0)
00625   {
00626     pos = pat.search(s, sl, pl, si); // unlike string search, the pos returned here is absolute
00627     if (pos < 0 || pl <= 0)
00628       break;
00629     else
00630     {
00631       ++nmatches;
00632       int mustfit = xi + remaining + rl - pl;
00633       if (mustfit >= nsz)
00634       {
00635         if (nrep != 0) nrep->len = xi;
00636         nrep = Sresize(nrep, mustfit);
00637         x = nrep->s;
00638         nsz = (short) nrep->sz;
00639       }
00640       pos -= si;
00641       ncopy(&(s[si]), &(x[xi]), pos);
00642       ncopy(r, &(x[xi + pos]), rl);
00643       si += pos + pl;
00644       remaining -= pos + pl;
00645       xi += pos + rl;
00646     }
00647   }
00648 
00649   if (nrep == 0)
00650   {
00651     if (nmatches == 0)
00652       return nmatches;
00653     else
00654       nrep = Sresize(nrep, xi+remaining);
00655   }
00656 
00657   ncopy0(&(s[si]), &(x[xi]), remaining);
00658   nrep->len = xi + remaining;
00659 
00660   if (nrep->len <= rep->sz)   // fit back in if possible
00661   {
00662     rep->len = nrep->len;
00663     ncopy0(nrep->s, rep->s, rep->len);
00664     delete(nrep);
00665   }
00666   else
00667   {
00668     delete(rep);
00669     rep = nrep;
00670   }
00671   return nmatches;
00672 }

int String::_gsub const char *    pat,
int    pl,
const char *    r,
int    rl
[protected]
 

Definition at line 533 of file GString.cc.

00534 {
00535   int nmatches = 0;
00536   if (pl < 0) pl = slen(pat);
00537   if (rl < 0) rl = slen(r);
00538   int sl = length();
00539   if (sl <= 0 || pl <= 0 || sl < pl)
00540     return nmatches;
00541   
00542   const char* s = chars();
00543 
00544   // prepare to make new rep
00545   StrRep* nrep = 0;
00546   int nsz = 0;
00547   char* x = 0;
00548 
00549   int si = 0;
00550   int xi = 0;
00551   int remaining = sl;
00552 
00553   while (remaining >= pl)
00554   {
00555     int pos = search(si, sl, pat, pl);
00556     if (pos < 0)
00557       break;
00558     else
00559     {
00560       ++nmatches;
00561       int mustfit = xi + remaining + rl - pl;
00562       if (mustfit >= nsz)
00563       {
00564         if (nrep != 0) nrep->len = xi;
00565         nrep = Sresize(nrep, mustfit);
00566         nsz = (short) nrep->sz;
00567         x = nrep->s;
00568       }
00569       pos -= si;
00570       ncopy(&(s[si]), &(x[xi]), pos);
00571       ncopy(r, &(x[xi + pos]), rl);
00572       si += pos + pl;
00573       remaining -= pos + pl;
00574       xi += pos + rl;
00575     }
00576   }
00577 
00578   if (nrep == 0)
00579   {
00580     if (nmatches == 0)
00581       return nmatches;
00582     else
00583       nrep = Sresize(nrep, xi+remaining);
00584   }
00585 
00586   ncopy0(&(s[si]), &(x[xi]), remaining);
00587   nrep->len = xi + remaining;
00588 
00589   if (nrep->len <= rep->sz)   // fit back in if possible
00590   {
00591     rep->len = nrep->len;
00592     ncopy0(nrep->s, rep->s, rep->len);
00593     delete(nrep);
00594   }
00595   else
00596   {
00597     delete(rep);
00598     rep = nrep;
00599   }
00600   return nmatches;
00601 }

SubString String::_substr int    first,
int    l
[inline, protected]
 

Definition at line 1335 of file GString.h.

01336 {
01337   if (first < 0 || (unsigned)(first + l) > length() )
01338     return SubString(_nilString, 0, 0) ;
01339   else 
01340     return SubString(*this, first, l);
01341 }

SubString String::after const Regex &    r,
int    startpos = 0
 

Definition at line 874 of file GString.cc.

00875 {
00876   int mlen;
00877   int first = r.search(chars(), length(), mlen, startpos);
00878   if (first >= 0) first += mlen;
00879   return _substr(first, length() - first);
00880 }

SubString String::after char    c,
int    startpos = 0
 

Definition at line 867 of file GString.cc.

00868 {
00869   int first = search(startpos, length(), c);
00870   if (first >= 0) first += 1;
00871   return _substr(first, length() - first);
00872 }

SubString String::after const char *    t,
int    startpos = 0
 

Definition at line 882 of file GString.cc.

00883 {
00884   int tlen = slen(t);
00885   int first = search(startpos, length(), t, tlen);
00886   if (first >= 0) first += tlen;
00887   return _substr(first, length() - first);
00888 }

SubString String::after const SubString   y,
int    startpos = 0
 

Definition at line 860 of file GString.cc.

00861 {
00862   int first = search(startpos, length(), y.chars(), y.length());
00863   if (first >= 0) first += y.length();
00864   return _substr(first, length() - first);
00865 }

SubString String::after const String &    y,
int    startpos = 0
 

Definition at line 853 of file GString.cc.

00854 {
00855   int first = search(startpos, length(), y.chars(), y.length());
00856   if (first >= 0) first += y.length();
00857   return _substr(first, length() - first);
00858 }

SubString String::after int    pos
 

Definition at line 742 of file GString.cc.

00743 {
00744   return _substr(pos + 1, length() - (pos + 1));
00745 }

void String::alloc int    newsize
 

Definition at line 194 of file GString.cc.

00195 {
00196   unsigned short old_len = rep->len;
00197   rep = Sresize(rep, newsize);
00198   rep->len = old_len;
00199 }

int String::allocation   const [inline]
 

Definition at line 464 of file GString.h.

00464 { return rep->sz; }

SubString String::at const Regex &    r,
int    startpos = 0
 

Definition at line 764 of file GString.cc.

00765 {
00766   int mlen;
00767   int first = r.search(chars(), length(), mlen, startpos);
00768   return _substr(first, mlen);
00769 }

SubString String::at char    c,
int    startpos = 0
 

Definition at line 778 of file GString.cc.

00779 {
00780   int first = search(startpos, length(), c);
00781   return _substr(first, 1);
00782 }

SubString String::at const char *    t,
int    startpos = 0
 

Definition at line 771 of file GString.cc.

00772 {
00773   int tlen = slen(t);
00774   int first = search(startpos, length(), t, tlen);
00775   return _substr(first, tlen);
00776 }

SubString String::at const SubString   y,
int    startpos = 0
 

Definition at line 758 of file GString.cc.

00759 {
00760   int first = search(startpos, length(), y.chars(), y.length());
00761   return _substr(first, y.length());
00762 }

SubString String::at const String &    y,
int    startpos = 0
 

Definition at line 752 of file GString.cc.

00753 {
00754   int first = search(startpos, length(), y.chars(), y.length());
00755   return _substr(first,  y.length());
00756 }

SubString String::at int    first,
int    len
 

Definition at line 722 of file GString.cc.

00723 {
00724   return _substr(first, len);
00725 }

SubString String::before const Regex &    r,
int    startpos = 0
 

Definition at line 796 of file GString.cc.

00797 {
00798   int mlen;
00799   int first = r.search(chars(), length(), mlen, startpos);
00800   return _substr(0, first);
00801 }

SubString String::before char    c,
int    startpos = 0
 

Definition at line 803 of file GString.cc.

00804 {
00805   int last = search(startpos, length(), c);
00806   return _substr(0, last);
00807 }

SubString String::before const char *    t,
int    startpos = 0
 

Definition at line 809 of file GString.cc.

00810 {
00811   int tlen = slen(t);
00812   int last = search(startpos, length(), t, tlen);
00813   return _substr(0, last);
00814 }

SubString String::before const SubString   y,
int    startpos = 0
 

Definition at line 790 of file GString.cc.

00791 {
00792   int last = search(startpos, length(), y.chars(), y.length());
00793   return _substr(0, last);
00794 }

SubString String::before const String &    y,
int    startpos = 0
 

Definition at line 784 of file GString.cc.

00785 {
00786   int last = search(startpos, length(), y.chars(), y.length());
00787   return _substr(0, last);
00788 }

SubString String::before int    pos
 

Definition at line 732 of file GString.cc.

00733 {
00734   return _substr(0, pos);
00735 }

void String::capitalize   [inline]
 

Definition at line 947 of file GString.h.

00948 {
00949   rep = Scapitalize(rep, rep);
00950 }

const char * String::chars   const [inline]
 

Definition at line 463 of file GString.h.

00463 { return &(rep->s[0]); }

int String::contains const Regex &    r,
int    p
const [inline]
 

Definition at line 1054 of file GString.h.

01055 {
01056   return r.match(chars(), length(), p) >= 0;
01057 }

int String::contains const char *    t,
int    p
const [inline]
 

Definition at line 1034 of file GString.h.

01035 {
01036   return match(p, length(), 0, t) >= 0;
01037 }

int String::contains const SubString   y,
int    p
const [inline]
 

Definition at line 1044 of file GString.h.

01045 {
01046   return match(p, length(), 0, y.chars(), y.length()) >= 0;
01047 }

int String::contains const String &    y,
int    p
const [inline]
 

Definition at line 1039 of file GString.h.

01040 {
01041   return match(p, length(), 0, y.chars(), y.length()) >= 0;
01042 }

int String::contains char    c,
int    p
const [inline]
 

Definition at line 1029 of file GString.h.

01030 {
01031   return match(p, length(), 0, &c, 1) >= 0;
01032 }

int String::contains const Regex &    r const [inline]
 

Definition at line 1049 of file GString.h.

01050 {
01051   int unused;  return r.search(chars(), length(), unused, 0) >= 0;
01052 }

int String::contains const char *    t const [inline]
 

Definition at line 1014 of file GString.h.

01015 {   
01016   return search(0, length(), t) >= 0;
01017 }

int String::contains const SubString   y const [inline]
 

Definition at line 1024 of file GString.h.

01025 {   
01026   return search(0, length(), y.chars(), y.length()) >= 0;
01027 }

int String::contains const String &    y const [inline]
 

Definition at line 1019 of file GString.h.

01020 {   
01021   return search(0, length(), y.chars(), y.length()) >= 0;
01022 }

int String::contains char    c const [inline]
 

Definition at line 1009 of file GString.h.

01010 {
01011   return search(0, length(), c) >= 0;
01012 }

void String::del const Regex &    r,
int    startpos = 0
 

Definition at line 688 of file GString.cc.

00689 {
00690   int mlen;
00691   int first = r.search(chars(), length(), mlen, startpos);
00692   del(first, mlen);
00693 }

void String::del char    c,
int    startpos = 0
 

Definition at line 712 of file GString.cc.

00713 {
00714   del(search(startpos, length(), c), 1);
00715 }

void String::del const char *    t,
int    startpos = 0
 

Definition at line 695 of file GString.cc.

00696 {
00697   int tlen = slen(t);
00698   int p = search(startpos, length(), t, tlen);
00699   del(p, tlen);
00700 }

void String::del const SubString   y,
int    startpos = 0
 

Definition at line 707 of file GString.cc.

00708 {
00709   del(search(startpos, length(), y.chars(), y.length()), y.length());
00710 }

void String::del const String &    y,
int    startpos = 0
 

Definition at line 702 of file GString.cc.

00703 {
00704   del(search(startpos, length(), y.chars(), y.length()), y.length());
00705 }

void String::del int    pos,
int    len
 

Definition at line 679 of file GString.cc.

00680 {
00681   if (pos < 0 || len <= 0 || (unsigned)(pos + len) > length()) return;
00682   int nlen = length() - len;
00683   int first = pos + len;
00684   ncopy0(&(rep->s[first]), &(rep->s[pos]), length() - first);
00685   rep->len = nlen;
00686 }

void String::downcase   [inline]
 

Definition at line 941 of file GString.h.

00942 {
00943   rep = Sdowncase(rep, rep);
00944 }

char String::elem int    i const [inline]
 

Definition at line 966 of file GString.h.

00967 { 
00968   if (((unsigned)i) >= length()) error("invalid index");
00969   return rep->s[i];
00970 }

int String::empty   const [inline]
 

Definition at line 462 of file GString.h.

00462 { return rep->len == 0; }

void String::error const char *    msg const
 

Definition at line 34 of file GString.cc.

00035 {
00036   (*lib_error_handler)("String", msg);
00037 }

char String::firstchar   const [inline]
 

Definition at line 972 of file GString.h.

00973 { 
00974   return elem(0);
00975 }

int String::freq const char *    t const
 

Definition at line 1274 of file GString.cc.

01275 {
01276   int found = 0;
01277   for (unsigned int i = 0; i < length(); i++) 
01278     if (match(i,length(),0,t) >= 0) found++;
01279   return(found);
01280 }

int String::freq const SubString   y const
 

Definition at line 1258 of file GString.cc.

01259 {
01260   int found = 0;
01261   for (unsigned int i = 0; i < length(); i++) 
01262     if (match(i,length(),0,y.chars(), y.length())>= 0) found++;
01263   return(found);
01264 }

int String::freq const String &    y const
 

Definition at line 1266 of file GString.cc.

01267 {
01268   int found = 0;
01269   for (unsigned int i = 0; i < length(); i++) 
01270     if (match(i,length(),0,y.chars(),y.length()) >= 0) found++;
01271   return(found);
01272 }

int String::freq char    c const
 

Definition at line 1282 of file GString.cc.

01283 {
01284   int found = 0;
01285   for (unsigned int i = 0; i < length(); i++) 
01286     if (match(i,length(),0,&c,1) >= 0) found++;
01287   return(found);
01288 }

SubString String::from const Regex &    r,
int    startpos = 0
 

Definition at line 902 of file GString.cc.

00903 {
00904   int mlen;
00905   int first = r.search(chars(), length(), mlen, startpos);
00906   return _substr(first, length() - first);
00907 }

SubString String::from char    c,
int    startpos = 0
 

Definition at line 909 of file GString.cc.

00910 {
00911   int first = search(startpos, length(), c);
00912   return _substr(first, length() - first);
00913 }

SubString String::from const char *    t,
int    startpos = 0
 

Definition at line 915 of file GString.cc.

00916 {
00917   int tlen = slen(t);
00918   int first = search(startpos, length(), t, tlen);
00919   return _substr(first, length() - first);
00920 }

SubString String::from const SubString   y,
int    startpos = 0
 

Definition at line 896 of file GString.cc.

00897 {
00898   int first = search(startpos, length(), y.chars(), y.length());
00899   return _substr(first, length() - first);
00900 }

SubString String::from const String &    y,
int    startpos = 0
 

Definition at line 890 of file GString.cc.

00891 {
00892   int first = search(startpos, length(), y.chars(), y.length());
00893   return _substr(first, length() - first);
00894 }

SubString String::from int    pos
 

Definition at line 747 of file GString.cc.

00748 {
00749   return _substr(pos, length() - pos);
00750 }

int String::gsub const Regex &    pat,
const String &    r
[inline]
 

Definition at line 1128 of file GString.h.

01129 {
01130   return _gsub(pat, r.chars(), r.length());
01131 }

int String::gsub const char *    pat,
const char *    r
[inline]
 

Definition at line 1138 of file GString.h.

01139 {
01140   return _gsub(pat, -1, r, -1);
01141 }

int String::gsub const char *    pat,
const String &    r
[inline]
 

Definition at line 1133 of file GString.h.

01134 {
01135   return _gsub(pat, -1, r.chars(), r.length());
01136 }

int String::gsub const SubString   pat,
const String &    r
[inline]
 

Definition at line 1123 of file GString.h.

01124 {
01125   return _gsub(pat.chars(), pat.length(), r.chars(), r.length());
01126 }

int String::gsub const String &    pat,
const String &    r
[inline]
 

Definition at line 1118 of file GString.h.

01119 {
01120   return _gsub(pat.chars(), pat.length(), r.chars(), r.length());
01121 }

int String::index const Regex &    r,
int    startpos = 0
const [inline]
 

Definition at line 1004 of file GString.h.

01005 {
01006   int unused;  return r.search(chars(), length(), unused, startpos);
01007 }

int String::index const char *    t,
int    startpos = 0
const [inline]
 

Definition at line 989 of file GString.h.

00990 {   
00991   return search(startpos, length(), t);
00992 }

int String::index const SubString   y,
int    startpos = 0
const [inline]
 

Definition at line 999 of file GString.h.

01000 {   
01001   return search(startpos, length(), y.chars(), y.length());
01002 }

int String::index const String &    y,
int    startpos = 0
const [inline]
 

Definition at line 994 of file GString.h.

00995 {   
00996   return search(startpos, length(), y.chars(), y.length());
00997 }

int String::index char    c,
int    startpos = 0
const [inline]
 

Definition at line 984 of file GString.h.

00985 {
00986   return search(startpos, length(), c);
00987 }

char String::lastchar   const [inline]
 

Definition at line 977 of file GString.h.

00978 { 
00979   return elem(length() - 1);
00980 }

unsigned int String::length   const [inline]
 

Definition at line 461 of file GString.h.

00461 {  return rep->len; }

int String::match int    start,
int    sl,
int    exact,
const char *    t,
int    tl = -1
const [protected]
 

Definition at line 471 of file GString.cc.

00472 {
00473   if (tl < 0) tl = slen(t);
00474 
00475   if (start < 0)
00476   {
00477     start = sl + start - tl + 1;
00478     if (start < 0 || (exact && start != 0))
00479       return -1;
00480   }
00481   else if (exact && sl - start != tl)
00482     return -1;
00483 
00484   if (sl == 0 || tl == 0 || sl - start < tl || start >= sl)
00485     return -1;
00486 
00487   int n = tl;
00488   const char* s = &(rep->s[start]);
00489   while (--n >= 0) if (*s++ != *t++) return -1;
00490   return tl;
00491 }

int String::matches const Regex &    r,
int    p = 0
const [inline]
 

Definition at line 1080 of file GString.h.

01081 {
01082   int l = (p < 0)? -p : length() - p;
01083   return r.match(chars(), length(), p) == l;
01084 }

int String::matches const char *    t,
int    p = 0
const [inline]
 

Definition at line 1070 of file GString.h.

01071 {
01072   return match(p, length(), 1, t) >= 0;
01073 }

int String::matches const SubString   y,
int    p = 0
const [inline]
 

Definition at line 1060 of file GString.h.

01061 {
01062   return match(p, length(), 1, y.chars(), y.length()) >= 0;
01063 }

int String::matches const String &    y,
int    p = 0
const [inline]
 

Definition at line 1065 of file GString.h.

01066 {
01067   return match(p, length(), 1, y.chars(), y.length()) >= 0;
01068 }

int String::matches char    c,
int    p = 0
const [inline]
 

Definition at line 1075 of file GString.h.

01076 {
01077   return match(p, length(), 1, &c, 1) >= 0;
01078 }

String::operator const char *   const
 

Definition at line 39 of file GString.cc.

00040 { 
00041   return (const char*)chars();
00042 }

SubString String::operator() int    first,
int    len
 

Definition at line 727 of file GString.cc.

00728 {
00729   return _substr(first, len);
00730 }

String & String::operator+= char    y [inline]
 

Definition at line 750 of file GString.h.

00751 {
00752   cat(*this, y, *this);
00753   return *this;
00754 }

String & String::operator+= const char *    y [inline]
 

Definition at line 744 of file GString.h.

00745 {
00746   cat(*this, y, *this);
00747   return *this;
00748 }

String & String::operator+= const SubString   y [inline]
 

Definition at line 738 of file GString.h.

00739 {
00740   cat(*this, y, *this);
00741   return *this;
00742 }

String & String::operator+= const String &    y [inline]
 

Definition at line 732 of file GString.h.

00733 {
00734   cat(*this, y, *this);
00735   return *this;
00736 }

String & String::operator= const SubString   y [inline]
 

Definition at line 509 of file GString.h.

00510 {
00511   rep = Salloc(rep, y.chars(), y.length(), y.length());
00512   return *this;
00513 }

String & String::operator= char    c [inline]
 

Definition at line 515 of file GString.h.

00516 {
00517   rep = Salloc(rep, &c, 1, 1);
00518   return *this;
00519 }

String & String::operator= const char *    t [inline]
 

Definition at line 503 of file GString.h.

00504 {
00505   rep = Salloc(rep, t, -1, -1);
00506   return *this;
00507 }

String & String::operator= const String &    y [inline]
 

Definition at line 497 of file GString.h.

00498 { 
00499   rep = Scopy(rep, y.rep);
00500   return *this;
00501 }

const char & String::operator[] int    i const [inline]
 

Definition at line 960 of file GString.h.

00961 { 
00962   if (((unsigned)i) >= length()) error("invalid index");
00963   return rep->s[i];
00964 }

char & String::operator[] int    i [inline]
 

Definition at line 954 of file GString.h.

00955 { 
00956   if (((unsigned)i) >= length()) error("invalid index");
00957   return rep->s[i];
00958 }

void String::prepend char    y [inline]
 

Definition at line 916 of file GString.h.

00917 {
00918   rep = Sprepend(rep, &y, 1); 
00919 }

void String::prepend const char *    y [inline]
 

Definition at line 911 of file GString.h.

00912 {
00913   rep = Sprepend(rep, y, -1); 
00914 }

void String::prepend const SubString   y [inline]
 

Definition at line 921 of file GString.h.

00922 {
00923   rep = Sprepend(rep, y.chars(), y.length());
00924 }

void String::prepend const String &    y [inline]
 

Definition at line 906 of file GString.h.

00907 {
00908   rep = Sprepend(rep, y.chars(), y.length());
00909 }

void String::reverse   [inline]
 

Definition at line 929 of file GString.h.

00930 {
00931   rep = Sreverse(rep, rep);
00932 }

int String::search int    start,
int    sl,
char    c
const [protected]
 

Definition at line 415 of file GString.cc.

00416 {
00417   const char* s = chars();
00418   if (sl > 0)
00419   {
00420     if (start >= 0)
00421     {
00422       const char* a = &(s[start]);
00423       const char* lasta = &(s[sl]);
00424       while (a < lasta) if (*a++ == c) return --a - s;
00425     }
00426     else
00427     {
00428       const char* a = &(s[sl + start + 1]);
00429       while (--a >= s) if (*a == c) return a - s;
00430     }
00431   }
00432   return -1;
00433 }

int String::search int    start,
int    sl,
const char *    t,
int    tl = -1
const [protected]
 

Definition at line 435 of file GString.cc.

00436 {
00437   const char* s = chars();
00438   if (tl < 0) tl = slen(t);
00439   if (sl > 0 && tl > 0)
00440   {
00441     if (start >= 0)
00442     {
00443       const char* lasts = &(s[sl - tl]);
00444       const char* lastt = &(t[tl]);
00445       const char* p = &(s[start]);
00446 
00447       while (p <= lasts)
00448       {
00449         const char* x = p++;
00450         const char* y = t;
00451         while (*x++ == *y++) if (y >= lastt) return --p - s;
00452       }
00453     }
00454     else
00455     {
00456       const char* firsts = &(s[tl - 1]);
00457       const char* lastt =  &(t[tl - 1]);
00458       const char* p = &(s[sl + start + 1]); 
00459 
00460       while (--p >= firsts)
00461       {
00462         const char* x = p;
00463         const char* y = lastt;
00464         while (*x-- == *y--) if (y < t) return ++x - s;
00465       }
00466     }
00467   }
00468   return -1;
00469 }

SubString String::through const Regex &    r,
int    startpos = 0
 

Definition at line 830 of file GString.cc.

00831 {
00832   int mlen;
00833   int first = r.search(chars(), length(), mlen, startpos);
00834   if (first >= 0) first += mlen;
00835   return _substr(0, first);
00836 }

SubString String::through char    c,
int    startpos = 0
 

Definition at line 838 of file GString.cc.

00839 {
00840   int last = search(startpos, length(), c);
00841   if (last >= 0) last += 1;
00842   return _substr(0, last);
00843 }

SubString String::through const char *    t,
int    startpos = 0
 

Definition at line 845 of file GString.cc.

00846 {
00847   int tlen = slen(t);
00848   int last = search(startpos, length(), t, tlen);
00849   if (last >= 0) last += tlen;
00850   return _substr(0, last);
00851 }

SubString String::through const SubString   y,
int    startpos = 0
 

Definition at line 823 of file GString.cc.

00824 {
00825   int last = search(startpos, length(), y.chars(), y.length());
00826   if (last >= 0) last += y.length();
00827   return _substr(0, last);
00828 }

SubString String::through const String &    y,
int    startpos = 0
 

Definition at line 816 of file GString.cc.

00817 {
00818   int last = search(startpos, length(), y.chars(), y.length());
00819   if (last >= 0) last += y.length();
00820   return _substr(0, last);
00821 }

SubString String::through int    pos
 

Definition at line 737 of file GString.cc.

00738 {
00739   return _substr(0, pos+1);
00740 }

void String::upcase   [inline]
 

Definition at line 935 of file GString.h.

00936 {
00937   rep = Supcase(rep, rep);
00938 }


Friends And Related Function Documentation

friend class SubString [friend]
 

Definition at line 170 of file GString.h.

String capitalize const String &    x [friend]
 

Definition at line 897 of file GString.h.

00898 {
00899   String r; r.rep = Scapitalize(x.rep, r.rep); return r;
00900 }

void cat const char *    a,
const char *    x,
char    y,
String &    r
[friend]
 

Definition at line 724 of file GString.h.

00725 {
00726   r.rep = Scat(r.rep, a, -1, x, -1, &y, 1);
00727 }

void cat const char *    a,
const char *    x,
const char *    y,
String &    r
[friend]
 

Definition at line 719 of file GString.h.

00720 {
00721   r.rep = Scat(r.rep, a, -1, x, -1, y, -1);
00722 }

void cat const char *    a,
const char *    x,
const SubString   y,
String &    r
[friend]
 

Definition at line 714 of file GString.h.

00715 {
00716   r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length());
00717 }

void cat const char *    a,
const char *    x,
const String &    y,
String &    r
[friend]
 

Definition at line 709 of file GString.h.

00710 {
00711   r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length());
00712 }

void cat const char *    a,
const SubString   x,
char    y,
String &    r
[friend]
 

Definition at line 704 of file GString.h.

00705 {
00706   r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1);
00707 }

void cat const char *    a,
const SubString   x,
const char *    y,
String &    r
[friend]
 

Definition at line 699 of file GString.h.

00700 {
00701   r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1);
00702 }

void cat const char *    a,
const SubString   x,
const SubString   y,
String &    r
[friend]
 

Definition at line 694 of file GString.h.

00695 {
00696   r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length());
00697 }

void cat const char *    a,
const SubString   x,
const String &    y,
String &    r
[friend]
 

Definition at line 689 of file GString.h.

00690 {
00691   r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length());
00692 }

void cat const char *    a,
const String &    x,
char    y,
String &    r
[friend]
 

Definition at line 684 of file GString.h.

00685 {
00686   r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1);
00687 }

void cat const char *    a,
const String &    x,
const char *    y,
String &    r
[friend]
 

Definition at line 679 of file GString.h.

00680 {
00681   r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1);
00682 }

void cat const char *    a,
const String &    x,
const SubString   y,
String &    r
[friend]
 

Definition at line 674 of file GString.h.

00675 {
00676   r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length());
00677 }

void cat const char *    a,
const String &    x,
const String &    y,
String &    r
[friend]
 

Definition at line 669 of file GString.h.

00670 {
00671   r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length());
00672 }

void cat const String &    a,
const char *    x,
char    y,
String &    r
[friend]
 

Definition at line 663 of file GString.h.

00664 {
00665   r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, &y, 1);
00666 }

void cat const String &    a,
const char *    x,
const char *    y,
String &    r
[friend]
 

Definition at line 658 of file GString.h.

00659 {
00660   r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y, -1);
00661 }

void cat const String &    a,
const char *    x,
const SubString   y,
String &    r
[friend]
 

Definition at line 653 of file GString.h.

00654 {
00655   r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length());
00656 }

void cat const String &    a,
const char *    x,
const String &    y,
String &    r
[friend]
 

Definition at line 648 of file GString.h.

00649 {
00650   r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length());
00651 }

void cat const String &    a,
const SubString   x,
char    y,
String &    r
[friend]
 

Definition at line 643 of file GString.h.

00644 {
00645   r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1);
00646 }

void cat const String &    a,
const SubString   x,
const char *    y,
String &    r
[friend]
 

Definition at line 638 of file GString.h.

00639 {
00640   r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1);
00641 }

void cat const String &    a,
const SubString   x,
const SubString   y,
String &    r
[friend]
 

Definition at line 633 of file GString.h.

00634 {
00635   r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length());
00636 }

void cat const String &    a,
const SubString   x,
const String &    y,
String &    r
[friend]
 

Definition at line 628 of file GString.h.

00629 {
00630   r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length());
00631 }

void cat const String &    a,
const String &    x,
char    y,
String &    r
[friend]
 

Definition at line 623 of file GString.h.

00624 {
00625   r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1);
00626 }

void cat const String &    a,
const String &    x,
const char *    y,
String &    r
[friend]
 

Definition at line 618 of file GString.h.

00619 {
00620   r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1);
00621 }

void cat const String &    a,
const String &    x,
const SubString   y,
String &    r
[friend]
 

Definition at line 613 of file GString.h.

00614 {
00615   r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length());
00616 }

void cat const String &    a,
const String &    x,
const String &    y,
String &    r
[friend]
 

Definition at line 608 of file GString.h.

00609 {
00610   r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length());
00611 }

void cat const char *    x,
char    y,
String &    r
[friend]
 

Definition at line 603 of file GString.h.

00604 {
00605   r.rep = Scat(r.rep, x, -1, &y, 1);
00606 }

void cat const char *    x,
const char *    y,
String &    r
[friend]
 

Definition at line 598 of file GString.h.

00599 {
00600   r.rep = Scat(r.rep, x, -1, y, -1);
00601 }

void cat const char *    x,
const SubString   y,
String &    r
[friend]
 

Definition at line 593 of file GString.h.

00594 {
00595   r.rep = Scat(r.rep, x, -1, y.chars(), y.length());
00596 }

void cat const char *    x,
const String &    y,
String &    r
[friend]
 

Definition at line 588 of file GString.h.

00589 {
00590   r.rep = Scat(r.rep, x, -1, y.chars(), y.length());
00591 }

void cat const SubString   x,
char    y,
String &    r
[friend]
 

Definition at line 583 of file GString.h.

00584 {
00585   r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1);
00586 }

void cat const SubString   x,
const char *    y,
String &    r
[friend]
 

Definition at line 578 of file GString.h.

00579 {
00580   r.rep = Scat(r.rep, x.chars(), x.length(), y, -1);
00581 }

void cat const SubString   x,
const SubString   y,
String &    r
[friend]
 

Definition at line 573 of file GString.h.

00574 {
00575   r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length());
00576 }

void cat const SubString   x,
const String &    y,
String &    r
[friend]
 

Definition at line 568 of file GString.h.

00569 {
00570   r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length());
00571 }

void cat const String &    x,
char    y,
String &    r
[friend]
 

Definition at line 563 of file GString.h.

00564 {
00565   r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1);
00566 }

void cat const String &    x,
const char *    y,
String &    r
[friend]
 

Definition at line 558 of file GString.h.

00559 {
00560   r.rep = Scat(r.rep, x.chars(), x.length(), y, -1);
00561 }

void cat const String &    x,
const SubString   y,
String &    r
[friend]
 

Definition at line 553 of file GString.h.

00554 {
00555   r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length());
00556 }

void cat const String &    x,
const String &    y,
String &    r
[friend]
 

Definition at line 548 of file GString.h.

00549 {
00550   r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length());
00551 }

String common_prefix const String &    x,
const String &    y,
int    startpos = 0
[friend]
 

Definition at line 1158 of file GString.cc.

01159 {
01160   String r;
01161   const char* xchars = x.chars();
01162   const char* ychars = y.chars();
01163   const char* xs = &(xchars[startpos]);
01164   const char* ss = xs;
01165   const char* topx = &(xchars[x.length()]);
01166   const char* ys = &(ychars[startpos]);
01167   const char* topy = &(ychars[y.length()]);
01168   int l;
01169   for (l = 0; xs < topx && ys < topy && *xs++ == *ys++; ++l);
01170   r.rep = Salloc(r.rep, ss, l, l);
01171   return r;
01172 }

String common_suffix const String &    x,
const String &    y,
int    startpos = -1
[friend]
 

Definition at line 1174 of file GString.cc.

01175 {
01176   String r;
01177   const char* xchars = x.chars();
01178   const char* ychars = y.chars();
01179   const char* xs = &(xchars[x.length() + startpos]);
01180   const char* botx = xchars;
01181   const char* ys = &(ychars[y.length() + startpos]);
01182   const char* boty = ychars;
01183   int l;
01184   for (l = 0; xs >= botx && ys >= boty && *xs == *ys ; --xs, --ys, ++l);
01185   r.rep = Salloc(r.rep, ++xs, l, l);
01186   return r;
01187 }

String downcase const String &    x [friend]
 

Definition at line 892 of file GString.h.

00893 {
00894   String r; r.rep = Sdowncase(x.rep, r.rep); return r;
00895 }

String join String    src[],
int    n,
const String &    separator
[friend]
 

Definition at line 979 of file GString.cc.

00980 {
00981   RETURN_OBJECT(String,x)
00982   String sep = separator;
00983   int xlen = 0;
00984   int i;
00985   for (i = 0; i < n; ++i)
00986     xlen += src[i].length();
00987   xlen += (n - 1) * sep.length();
00988 
00989   x.rep = Sresize (x.rep, xlen);
00990 
00991   int j = 0;
00992   
00993   for (i = 0; i < n - 1; ++i)
00994   {
00995     ncopy(src[i].chars(), &(x.rep->s[j]), src[i].length());
00996     j += src[i].length();
00997     ncopy(sep.chars(), &(x.rep->s[j]), sep.length());
00998     j += sep.length();
00999   }
01000   ncopy0(src[i].chars(), &(x.rep->s[j]), src[i].length());
01001   RETURN(x);
01002 }

ostream& operator<< ostream &    s,
const SubString   x
[friend]
 

Definition at line 1247 of file GString.cc.

01248 { 
01249   const char* a = x.chars();
01250   const char* lasta = &(a[x.length()]);
01251   while (a < lasta)
01252     s.put(*a++);
01253   return(s);
01254 }

ostream& operator<< ostream &    s,
const String &    x
[friend]
 

Definition at line 1145 of file GString.h.

01146 {
01147    s << x.chars(); return s;
01148 }

istream& operator>> istream &    s,
String &    x
[friend]
 

Definition at line 1193 of file GString.cc.

01194 {
01195   if (!s.ipfx(0) || (!(s.flags() & ios::skipws) && !ws(s)))
01196   {
01197     s.clear(ios::failbit|s.rdstate()); // Redundant if using GNU iostreams.
01198     return s;
01199   }
01200   int ch;
01201   int i = 0;
01202   x.rep = Sresize(x.rep, 20);
01203   register streambuf *sb = s.rdbuf();
01204   while ((ch = sb->sbumpc()) != EOF)
01205   {
01206     if (isspace(ch))
01207       break;
01208     if (i >= x.rep->sz - 1)
01209       x.rep = Sresize(x.rep, i+1);
01210     x.rep->s[i++] = ch;
01211   }
01212   x.rep->s[i] = 0;
01213   x.rep->len = i;
01214   int new_state = s.rdstate();
01215   if (i == 0) new_state |= ios::failbit;
01216   if (ch == EOF) new_state |= ios::eofbit;
01217   s.clear(new_state);
01218   return s;
01219 }

int readline istream &    s,
String &    x,
char    terminator = '\n',
int    discard = 1
[friend]
 

Definition at line 1221 of file GString.cc.

01222 {
01223   if (!s.ipfx(0))
01224     return 0;
01225   int ch;
01226   int i = 0;
01227   x.rep = Sresize(x.rep, 80);
01228   register streambuf *sb = s.rdbuf();
01229   while ((ch = sb->sbumpc()) != EOF)
01230   {
01231     if (ch != terminator || !discard)
01232     {
01233       if (i >= x.rep->sz - 1)
01234         x.rep = Sresize(x.rep, i+1);
01235       x.rep->s[i++] = ch;
01236     }
01237     if (ch == terminator)
01238       break;
01239   }
01240   x.rep->s[i] = 0;
01241   x.rep->len = i;
01242   if (ch == EOF) s.clear(ios::eofbit|s.rdstate());
01243   return i;
01244 }

String replicate const String &    y,
int    n
[friend]
 

Definition at line 1143 of file GString.cc.

01144 {
01145   String w;
01146   int len = y.length();
01147   w.rep = Sresize(w.rep, n * len);
01148   char* p = w.rep->s;
01149   while (n-- > 0)
01150   {
01151     ncopy(y.chars(), p, len);
01152     p += len;
01153   }
01154   *p = 0;
01155   return w;
01156 }

String replicate char    c,
int    n
[friend]
 

Definition at line 1133 of file GString.cc.

01134 {
01135   String w;
01136   w.rep = Sresize(w.rep, n);
01137   char* p = w.rep->s;
01138   while (n-- > 0) *p++ = c;
01139   *p = 0;
01140   return w;
01141 }

String reverse const String &    x [friend]
 

Definition at line 882 of file GString.h.

00883 {
00884   String r; r.rep = Sreverse(x.rep, r.rep); return r;
00885 }

int split const String &    src,
String    results[],
int    n,
const Regex &    r
[friend]
 

Definition at line 948 of file GString.cc.

00949 {
00950   String x = src;
00951   const char* s = x.chars();
00952   int sl = x.length();
00953   int i = 0;
00954   int pos = 0;
00955   int p, matchlen;
00956   while (i < n && pos < sl)
00957   {
00958     p = r.search(s, sl, matchlen, pos);
00959     if (p < 0)
00960       p = sl;
00961     results[i].rep = Salloc(results[i].rep, &(s[pos]), p - pos, p - pos);
00962     i++;
00963     pos = p + matchlen;
00964   }
00965   return i;
00966 }

int split const String &    src,
String    results[],
int    n,
const String &    sep
[friend]
 

Definition at line 929 of file GString.cc.

00930 {
00931   String x = src;
00932   const char* s = x.chars();
00933   int sl = x.length();
00934   int i = 0;
00935   int pos = 0;
00936   while (i < n && pos < sl)
00937   {
00938     int p = x.search(pos, sl, sep.chars(), sep.length());
00939     if (p < 0)
00940       p = sl;
00941     results[i].rep = Salloc(results[i].rep, &(s[pos]), p - pos, p - pos);
00942     i++;
00943     pos = p + sep.length();
00944   }
00945   return i;
00946 }

String upcase const String &    x [friend]
 

Definition at line 887 of file GString.h.

00888 {
00889   String r; r.rep = Supcase(x.rep, r.rep); return r;
00890 }


Member Data Documentation

JString_t* String::rep [protected]
 

Definition at line 173 of file GString.h.


The documentation for this class was generated from the following files:
Generated on Sun Oct 14 18:49:54 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001