diff options
Diffstat (limited to 'gnu/lib/libg++/include/String.h')
-rw-r--r-- | gnu/lib/libg++/include/String.h | 216 |
1 files changed, 108 insertions, 108 deletions
diff --git a/gnu/lib/libg++/include/String.h b/gnu/lib/libg++/include/String.h index 95b2bdf..7a3d82b 100644 --- a/gnu/lib/libg++/include/String.h +++ b/gnu/lib/libg++/include/String.h @@ -1,5 +1,5 @@ // This may look like C code, but it is really -*- C++ -*- -/* +/* Copyright (C) 1988 Free Software Foundation written by Doug Lea (dl@rocky.oswego.edu) @@ -28,9 +28,9 @@ Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. struct StrRep // internal String representations { - unsigned short len; // string length + unsigned short len; // string length unsigned short sz; // allocated space - char s[1]; // the string starts here + char s[1]; // the string starts here // (at least 1 char for trailing null) // allocated & expanded via non-public fcts }; @@ -89,7 +89,7 @@ public: int matches(const Regex& r) const; -// IO +// IO friend ostream& operator<<(ostream& s, const SubString& x); @@ -99,7 +99,7 @@ public: int empty() const; const char* chars() const; - int OK() const; + int OK() const; }; @@ -140,12 +140,12 @@ public: // concatenation - String& operator += (const String& 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 String& y); void prepend(const SubString& y); void prepend(const char* t); void prepend(char c); @@ -169,7 +169,7 @@ public: friend inline void cat(const char*, const char*, String&); friend inline void cat(const char*, char, String&); -// double concatenation, by request. (yes, there are too many versions, +// double concatenation, by request. (yes, there are too many versions, // but if one is supported, then the others should be too...) // Concatenate first 3 args, store in last arg @@ -204,11 +204,11 @@ public: // return position of target in string or -1 for failure - 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 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; // return 1 if target appears anyhere in String; else 0 @@ -218,7 +218,7 @@ public: int contains(const char* t) const; int contains(const Regex& r) const; -// return 1 if target appears anywhere after position pos +// return 1 if target appears anywhere after position pos // (or before, if pos is negative) in String; else 0 int contains(char c, int pos) const; @@ -237,7 +237,7 @@ public: // return number of occurences of target in String - int freq(char c) const; + int freq(char c) const; int freq(const String& y) const; int freq(const SubString& y) const; int freq(const char* t) const; @@ -251,11 +251,11 @@ public: SubString at(int pos, int len); SubString operator () (int pos, int len); // synonym for at - SubString at(const String& x, int startpos = 0); - SubString at(const SubString& x, int startpos = 0); + 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 at(const Regex& r, int startpos = 0); SubString before(int pos); SubString before(const String& x, int startpos = 0); @@ -311,14 +311,14 @@ public: // split string into array res at separators; return number of elements - friend int split(const String& x, String res[], int maxn, + friend int split(const String& x, String res[], int maxn, const String& sep); - friend int split(const String& x, String res[], int maxn, + friend int split(const String& x, String res[], int maxn, const Regex& sep); - friend String common_prefix(const String& x, const String& y, + friend String common_prefix(const String& x, const String& y, int startpos = 0); - friend String common_suffix(const String& x, const String& y, + friend String common_suffix(const String& x, const String& y, int startpos = -1); friend String replicate(char c, int n); friend String replicate(const String& y, int n); @@ -358,7 +358,7 @@ public: friend ostream& operator<<(ostream& s, const SubString& x); friend istream& operator>>(istream& s, String& x); - friend int readline(istream& s, String& x, + friend int readline(istream& s, String& x, char terminator = '\n', int discard_terminator = 1); @@ -409,17 +409,17 @@ inline const char* SubString::chars() const { return &(S.rep->s[pos]); } // constructors -inline String::String() +inline String::String() : rep(&_nilStrRep) {} -inline String::String(const String& x) +inline String::String(const String& x) : rep(Scopy(0, x.rep)) {} -inline String::String(const char* t) +inline String::String(const char* t) : rep(Salloc(0, t, -1, -1)) {} inline String::String(const char* t, int tlen) : rep(Salloc(0, t, tlen, tlen)) {} inline String::String(const SubString& y) : rep(Salloc(0, y.chars(), y.length(), y.length())) {} -inline String::String(char c) +inline String::String(char c) : rep(Salloc(0, &c, 1, 1)) {} inline String::~String() { if (rep != &_nilStrRep) delete rep; } @@ -434,7 +434,7 @@ inline SubString::~SubString() {} // assignment inline String& String::operator = (const String& y) -{ +{ rep = Scopy(rep, y.rep); return *this; } @@ -773,67 +773,67 @@ inline String operator + (const String& x, const String& y) String r; cat(x, y, r); return r; } -inline String operator + (const String& x, const SubString& y) +inline String operator + (const String& x, const SubString& y) { String r; cat(x, y, r); return r; } -inline String operator + (const String& x, const char* y) +inline String operator + (const String& x, const char* y) { String r; cat(x, y, r); return r; } -inline String operator + (const String& x, char y) +inline String operator + (const String& x, char y) { String r; cat(x, y, r); return r; } -inline String operator + (const SubString& x, const String& y) +inline String operator + (const SubString& x, const String& y) { String r; cat(x, y, r); return r; } -inline String operator + (const SubString& x, const SubString& y) +inline String operator + (const SubString& x, const SubString& y) { String r; cat(x, y, r); return r; } -inline String operator + (const SubString& x, const char* y) +inline String operator + (const SubString& x, const char* y) { String r; cat(x, y, r); return r; } -inline String operator + (const SubString& x, char y) +inline String operator + (const SubString& x, char y) { String r; cat(x, y, r); return r; } -inline String operator + (const char* x, const String& y) +inline String operator + (const char* x, const String& y) { String r; cat(x, y, r); return r; } -inline String operator + (const char* x, const SubString& y) +inline String operator + (const char* x, const SubString& y) { String r; cat(x, y, r); return r; } -inline String reverse(const String& x) +inline String reverse(const String& x) { String r; r.rep = Sreverse(x.rep, r.rep); return r; } -inline String upcase(const String& x) +inline String upcase(const String& x) { String r; r.rep = Supcase(x.rep, r.rep); return r; } -inline String downcase(const String& x) +inline String downcase(const String& x) { String r; r.rep = Sdowncase(x.rep, r.rep); return r; } -inline String capitalize(const String& x) +inline String capitalize(const String& x) { String r; r.rep = Scapitalize(x.rep, r.rep); return r; } @@ -849,12 +849,12 @@ inline void String::prepend(const String& y) inline void String::prepend(const char* y) { - rep = Sprepend(rep, y, -1); + rep = Sprepend(rep, y, -1); } inline void String::prepend(char y) { - rep = Sprepend(rep, &y, 1); + rep = Sprepend(rep, &y, 1); } inline void String::prepend(const SubString& y) @@ -890,31 +890,31 @@ inline void String::capitalize() // element extraction -inline char& String::operator [] (int i) -{ +inline char& String::operator [] (int i) +{ if (((unsigned)i) >= length()) error("invalid index"); return rep->s[i]; } inline const char& String::operator [] (int i) const -{ +{ if (((unsigned)i) >= length()) error("invalid index"); return rep->s[i]; } inline char String::elem (int i) const -{ +{ if (((unsigned)i) >= length()) error("invalid index"); return rep->s[i]; } inline char String::firstchar() const -{ +{ return elem(0); } inline char String::lastchar() const -{ +{ return elem(length() - 1); } @@ -926,17 +926,17 @@ inline int String::index(char c, int startpos) const } inline int String::index(const char* t, int startpos) const -{ +{ return search(startpos, length(), t); } inline int String::index(const String& y, int startpos) const -{ +{ return search(startpos, length(), y.chars(), y.length()); } inline int String::index(const SubString& y, int startpos) const -{ +{ return search(startpos, length(), y.chars(), y.length()); } @@ -951,17 +951,17 @@ inline int String::contains(char c) const } inline int String::contains(const char* t) const -{ +{ return search(0, length(), t) >= 0; } inline int String::contains(const String& y) const -{ +{ return search(0, length(), y.chars(), y.length()) >= 0; } inline int String::contains(const SubString& y) const -{ +{ return search(0, length(), y.chars(), y.length()) >= 0; } @@ -1024,17 +1024,17 @@ inline int String::matches(const Regex& r, int p) const inline int SubString::contains(const char* t) const -{ +{ return S.search(pos, pos+len, t) >= 0; } inline int SubString::contains(const String& y) const -{ +{ return S.search(pos, pos+len, y.chars(), y.length()) >= 0; } inline int SubString::contains(const SubString& y) const -{ +{ return S.search(pos, pos+len, y.chars(), y.length()) >= 0; } @@ -1088,99 +1088,99 @@ inline ostream& operator<<(ostream& s, const String& x) // a zillion comparison operators -inline int operator==(const String& x, const String& y) +inline int operator==(const String& x, const String& y) { - return compare(x, y) == 0; + return compare(x, y) == 0; } inline int operator!=(const String& x, const String& y) { - return compare(x, y) != 0; + return compare(x, y) != 0; } inline int operator>(const String& x, const String& y) { - return compare(x, y) > 0; + return compare(x, y) > 0; } inline int operator>=(const String& x, const String& y) { - return compare(x, y) >= 0; + return compare(x, y) >= 0; } inline int operator<(const String& x, const String& y) { - return compare(x, y) < 0; + return compare(x, y) < 0; } inline int operator<=(const String& x, const String& y) { - return compare(x, y) <= 0; + return compare(x, y) <= 0; } -inline int operator==(const String& x, const SubString& y) +inline int operator==(const String& x, const SubString& y) { - return compare(x, y) == 0; + return compare(x, y) == 0; } inline int operator!=(const String& x, const SubString& y) { - return compare(x, y) != 0; + return compare(x, y) != 0; } -inline int operator>(const String& x, const SubString& y) +inline int operator>(const String& x, const SubString& y) { - return compare(x, y) > 0; + return compare(x, y) > 0; } inline int operator>=(const String& x, const SubString& y) { - return compare(x, y) >= 0; + return compare(x, y) >= 0; } -inline int operator<(const String& x, const SubString& y) +inline int operator<(const String& x, const SubString& y) { - return compare(x, y) < 0; + return compare(x, y) < 0; } inline int operator<=(const String& x, const SubString& y) { - return compare(x, y) <= 0; + return compare(x, y) <= 0; } -inline int operator==(const String& x, const char* t) +inline int operator==(const String& x, const char* t) { - return compare(x, t) == 0; + return compare(x, t) == 0; } -inline int operator!=(const String& x, const char* t) +inline int operator!=(const String& x, const char* t) { - return compare(x, t) != 0; + return compare(x, t) != 0; } -inline int operator>(const String& x, const char* t) +inline int operator>(const String& x, const char* t) { - return compare(x, t) > 0; + return compare(x, t) > 0; } -inline int operator>=(const String& x, const char* t) +inline int operator>=(const String& x, const char* t) { - return compare(x, t) >= 0; + return compare(x, t) >= 0; } -inline int operator<(const String& x, const char* t) +inline int operator<(const String& x, const char* t) { - return compare(x, t) < 0; + return compare(x, t) < 0; } -inline int operator<=(const String& x, const char* t) +inline int operator<=(const String& x, const char* t) { - return compare(x, t) <= 0; + return compare(x, t) <= 0; } -inline int operator==(const SubString& x, const String& y) +inline int operator==(const SubString& x, const String& y) { - return compare(y, x) == 0; + return compare(y, x) == 0; } inline int operator!=(const SubString& x, const String& y) @@ -1188,29 +1188,29 @@ inline int operator!=(const SubString& x, const String& y) return compare(y, x) != 0; } -inline int operator>(const SubString& x, const String& y) +inline int operator>(const SubString& x, const String& y) { return compare(y, x) < 0; } -inline int operator>=(const SubString& x, const String& y) +inline int operator>=(const SubString& x, const String& y) { return compare(y, x) <= 0; } -inline int operator<(const SubString& x, const String& y) +inline int operator<(const SubString& x, const String& y) { return compare(y, x) > 0; } -inline int operator<=(const SubString& x, const String& y) +inline int operator<=(const SubString& x, const String& y) { return compare(y, x) >= 0; } -inline int operator==(const SubString& x, const SubString& y) +inline int operator==(const SubString& x, const SubString& y) { - return compare(x, y) == 0; + return compare(x, y) == 0; } inline int operator!=(const SubString& x, const SubString& y) @@ -1218,7 +1218,7 @@ inline int operator!=(const SubString& x, const SubString& y) return compare(x, y) != 0; } -inline int operator>(const SubString& x, const SubString& y) +inline int operator>(const SubString& x, const SubString& y) { return compare(x, y) > 0; } @@ -1228,7 +1228,7 @@ inline int operator>=(const SubString& x, const SubString& y) return compare(x, y) >= 0; } -inline int operator<(const SubString& x, const SubString& y) +inline int operator<(const SubString& x, const SubString& y) { return compare(x, y) < 0; } @@ -1238,34 +1238,34 @@ inline int operator<=(const SubString& x, const SubString& y) return compare(x, y) <= 0; } -inline int operator==(const SubString& x, const char* t) +inline int operator==(const SubString& x, const char* t) { - return compare(x, t) == 0; + return compare(x, t) == 0; } -inline int operator!=(const SubString& x, const char* t) +inline int operator!=(const SubString& x, const char* t) { return compare(x, t) != 0; } -inline int operator>(const SubString& x, const char* t) +inline int operator>(const SubString& x, const char* t) { - return compare(x, t) > 0; + return compare(x, t) > 0; } -inline int operator>=(const SubString& x, const char* t) +inline int operator>=(const SubString& x, const char* t) { - return compare(x, t) >= 0; + return compare(x, t) >= 0; } -inline int operator<(const SubString& x, const char* t) +inline int operator<(const SubString& x, const char* t) { - return compare(x, t) < 0; + return compare(x, t) < 0; } -inline int operator<=(const SubString& x, const char* t) +inline int operator<=(const SubString& x, const char* t) { - return compare(x, t) <= 0; + return compare(x, t) <= 0; } @@ -1275,7 +1275,7 @@ inline SubString String::_substr(int first, int l) { if (first < 0 || (unsigned)(first + l) > length() ) return SubString(_nilString, 0, 0) ; - else + else return SubString(*this, first, l); } |