--- parser3/src/include/pa_string.h 2004/02/27 15:07:46 1.157 +++ parser3/src/include/pa_string.h 2004/05/26 08:20:58 1.163 @@ -8,7 +8,7 @@ #ifndef PA_STRING_H #define PA_STRING_H -static const char * const IDENT_STRING_H="$Date: 2004/02/27 15:07:46 $"; +static const char * const IDENT_STRING_H="$Date: 2004/05/26 08:20:58 $"; // includes @@ -90,7 +90,6 @@ public: L_HTTP_HEADER='h', ///< text in HTTP response header L_MAIL_HEADER='m', ///< text in mail header L_URI='U', ///< text in uri - L_TABLE='L', ///< ^table:set body L_SQL='Q', ///< ^table:sql body L_JS='J', ///< JavaScript code L_XML='X', ///< ^dom:set xml @@ -108,8 +107,15 @@ public: union Languages { struct { +#ifdef PA_LITTLE_ENDIAN Language lang:8; int is_not_just_lang:sizeof(CORD)*8-8; +#elif defined(PA_BIG_ENDIAN) + int is_not_just_lang:sizeof(CORD)*8-8; + Language lang:8; +#else +# error word endianness not determined for some obscure reason +#endif } opt; CORD langs; @@ -321,11 +327,17 @@ public: return CORD_chr(body, offset, c); } - template void for_each( + template int for_each( + int (*f)(char c, I), + I info) const { + return CORD_iter(body, (CORD_iter_fn)f, (void*)info); + } + + template int for_each( int (*f1)(char c, I), int (*f2)(const char* s, I), I info) const { - CORD_iter5(body, 0, (CORD_iter_fn)f1, (CORD_batched_iter_fn)f2, info); + return CORD_iter5(body, 0, (CORD_iter_fn)f1, (CORD_batched_iter_fn)f2, info); } void set_pos(CORD_pos& pos, size_t index) const { CORD_set_pos(pos, body, index); } @@ -343,6 +355,7 @@ public: const char *str; size_t length; operator const char *() { return str; } + C(): str(0), length(0) {} C(const char *astr, size_t asize): str(astr), length(asize) {} }; @@ -350,6 +363,7 @@ public: char *str; size_t length; //operator char *() { return str; } + Cm(): str(0), length(0) {} Cm(char *astr, size_t asize): str(astr), length(asize) {} };