--- parser3/src/main/pa_string.C 2002/08/01 11:26:51 1.164 +++ parser3/src/main/pa_string.C 2002/08/21 10:52:49 1.169 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_STRING_C="$Id: pa_string.C,v 1.164 2002/08/01 11:26:51 paf Exp $"; +static const char* IDENT_STRING_C="$Date: 2002/08/21 10:52:49 $"; #include "pcre.h" @@ -57,7 +57,7 @@ String::String(const String& src) : head.chunk.count=CR_PREALLOCATED_COUNT; append_here=head.chunk.rows; - append(src, UL_UNSPECIFIED); + append(src, UL_PASS_APPENDED); } size_t String::size() const { @@ -144,15 +144,6 @@ String& String::real_append(STRING_APPEN return *this; } -char String::first_char() const { - if(is_empty()) - throw Exception(0, - this, - "getting first char of empty string"); - - return *head.chunk.rows[0].item.ptr; -} - uint String::hash_code() const { uint result=0; STRING_FOREACH_ROW( @@ -343,8 +334,8 @@ const Origin& String::origin() const { String& String::mid(size_t start, size_t finish) const { String& result=*NEW String(pool()); - start=max(size_t(0), start); - finish=min(size(), finish); + start=min(start, size()); + finish=max(start, finish); if(start==finish) return result;