--- win32/development/msvcee/Attic/eeparser3.cpp 2003/09/25 07:16:26 1.2 +++ win32/development/msvcee/Attic/eeparser3.cpp 2003/09/25 07:42:48 1.3 @@ -35,7 +35,7 @@ struct String { L_OPTIMIZE_BIT = 0x80 ///< flag, requiring cstr whitespace optimization }; - class Languages { + struct Languages { union { struct { Language lang:8; @@ -52,7 +52,7 @@ ADDIN_API HRESULT WINAPI AddIn_Parser3St s=D(s); if(!s) { strncpy(pResult, "", max); - return; + return 0; } try { @@ -65,7 +65,22 @@ ADDIN_API HRESULT WINAPI AddIn_Parser3St strncpy(pResult, buf, max); #else char buf[MAX_STRING*2]; - _snprintf(buf, sizeof(buf), "\"%s\"", CORD_to_const_char_star(pHelper, D(s->body)), max); +#define LIMIT_BODY 30 +#define LIMIT_LANGS 10 + const char* body_view=CORD_to_const_char_star(pHelper, D(s->body)); + const char* langs_view=s->langs.is_not_just_lang? + CORD_to_const_char_star(pHelper, D(s->langs.langs)) + : (const char*)&s->langs.langs; + size_t body_len=strlen(body_view); + size_t langs_len=strlen(langs_view); + _snprintf(buf, sizeof(buf), + "%.*s%s}" + "{%d:%.*s%s", + LIMIT_LANGS, langs_view, langs_len>LIMIT_LANGS?"...":"", + body_len, + LIMIT_BODY, body_view, body_len>LIMIT_BODY?"...":"" + ); + strncpy(pResult, buf, max); #endif } catch(...) {