--- parser3/src/include/pa_string.h 2001/03/19 16:44:00 1.42 +++ parser3/src/include/pa_string.h 2001/03/19 23:12:48 1.46 @@ -1,9 +1,11 @@ /** @file - Parser + Parser: string class decl. + Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) + Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_string.h,v 1.42 2001/03/19 16:44:00 paf Exp $ + $Id: pa_string.h,v 1.46 2001/03/19 23:12:48 paf Exp $ */ #ifndef PA_STRING_H @@ -25,21 +27,21 @@ const char *src, size_t size, \ bool tainted, \ const char *file, uint line -/// appends clean piece to String +/// appends clean piece to String @see String::real_append # define APPEND(src, size, file, line) real_append(src, size, false, file, line) -/// appends tainted piece to String +/// appends tainted piece to String @see String::real_append # define APPEND_TAINTED(src, size, file, line) real_append(src, size, true, file, line) #else # define STRING_APPEND_PARAMS \ const char *src, \ size_t size, \ bool tainted -/// appends clean piece to String +/// appends clean piece to String @see String::real_append # define APPEND(src, size, file, line) real_append(src, size, false) -/// appends tainted piece to String +/// appends tainted piece to String @see String::real_append # define APPEND_TAINTED(src, size, file, line) real_append(src, size, true) #endif -/// handy: appends const char* piece to String +/// handy: appends const char* piece to String @see String::real_append #define APPEND_CONST(src) APPEND(src, 0, 0, 0) /** @@ -82,6 +84,7 @@ public: just a flag, that value not stored */ AS_IS, ///< leave all characters intact + FILE, ///< filename HEADER, ///< text in response header URI, ///< text in uri TABLE, ///< ^table:set body @@ -98,8 +101,11 @@ public: size_t size() const { return fsize; } /// convert to C string char *cstr() const; + /** append fragment + @see APPEND, APPEND_TAINTED, APPEND_CONST + */ String& real_append(STRING_APPEND_PARAMS); - /// \return <0 ==0 or >0 depending on comparison result + /// @return <0 ==0 or >0 depending on comparison result int cmp (const String& src) const; bool operator < (const String& src) const { return cmp(src)<0; } bool operator > (const String& src) const { return cmp(src)>0; } @@ -126,14 +132,7 @@ public: #ifndef NO_STRING_ORIGIN /// origin of string. calculated by first row - const Origin& origin() const { - if(!fused_rows) - THROW(0, 0, - 0, - "String::origin() of empty string called"); - - return head.rows[0].item.origin; - } + const Origin& origin() const; #endif private: