diff --git a/core/Makefile.dep b/core/Makefile.dep index ea377f2..b108075 100755 --- a/core/Makefile.dep +++ b/core/Makefile.dep @@ -114,12 +114,12 @@ misc.o: ../templates/patterncacher.h ../core/item.h misc.o: ../templates/ckeditorgetparser.h ../core/httpsimpleparser.h misc.o: ../core/log.h ../templates/indexpatterns.h misc.o: ../templates/localefilter.h ../templates/locale.h ../core/config.h -misc.o: ../db/db.h ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h +misc.o: ../templates/htmltextstream.h ../core/cur.h ../core/system.h +misc.o: ../core/sessionmanager.h ../core/htmlfilter.h ../db/db.h +misc.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h misc.o: ../core/textstream.h ../core/error.h ../db/dbitemquery.h misc.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h misc.o: ../core/dircontainer.h ../core/ugcontainer.h -misc.o: ../templates/htmltextstream.h ../core/cur.h ../core/system.h -misc.o: ../core/sessionmanager.h mount.o: mount.h misc.h item.h mountparser.o: mountparser.h mount.h item.h error.h dirs.h dircontainer.h mountparser.o: ../db/db.h ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h @@ -372,8 +372,8 @@ system.o: thumb.h basethread.h ../templates/templates.h system.o: ../templates/patterncacher.h ../templates/ckeditorgetparser.h system.o: ../core/httpsimpleparser.h ../core/log.h system.o: ../templates/indexpatterns.h ../core/cur.h ../core/system.h -system.o: ../core/sessionmanager.h ../functions/functionbase.h -system.o: ../core/request.h ../core/synchro.h +system.o: ../core/sessionmanager.h ../core/htmlfilter.h +system.o: ../functions/functionbase.h ../core/request.h ../core/synchro.h textstream.o: textstream.h misc.h item.h thumb.o: thumb.h basethread.h textstream.h ../db/db.h ../db/dbbase.h thumb.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h misc.h diff --git a/core/app.cpp b/core/app.cpp index a0f34c1..a7670c4 100755 --- a/core/app.cpp +++ b/core/app.cpp @@ -604,16 +604,6 @@ void App::SendHeaders(bool compressing, int compress_encoding, Header header) -void App::SetHtmlFilterConf() -{ - html_filter.TrimWhite(config.html_filter_trim_white); - html_filter.BreakLines(config.html_filter_break_lines); - html_filter.InsertTabs(config.html_filter_tabs); - - if( config.html_filter_orphans ) - html_filter.CheckOrphans(config.html_filter_orphans_lang, config.html_filter_orphans_mode); -} - void App::FilterCompressSend(bool compressing, int compress_encoding, const std::wstring & source_ref) { @@ -624,8 +614,7 @@ void App::FilterCompressSend(bool compressing, int compress_encoding, const std: if( config.html_filter && !raw ) { - SetHtmlFilterConf(); - html_filter.Filter(*source, clean_html); + TemplatesFunctions::html_filter.Filter(*source, clean_html); AddDebugInfo(clean_html); source = &clean_html; } diff --git a/core/app.h b/core/app.h index 4eb2fdf..46693c0 100755 --- a/core/app.h +++ b/core/app.h @@ -30,7 +30,6 @@ #include "functions/functions.h" #include "templates/templates.h" #include "compress.h" -#include "htmlfilter.h" #include "getparser.h" #include "postparser.h" #include "cookieparser.h" @@ -124,7 +123,6 @@ private: CookieParser cookie_parser; AcceptEncodingParser accept_encoding_parser; Compress compress; - HTMLFilter html_filter; std::wstring clean_html, html_with_debug; FCGX_Request fcgi_request; int fcgi_socket; @@ -153,7 +151,6 @@ private: void CheckRequestMethod(); void CheckFCGIRole(); - void SetHtmlFilterConf(); void PrepareSessionCookie(); void AddDebugInfo(std::wstring & out); void FilterCompressSend(bool compressing, int compress_encoding, const std::wstring & source_ref); diff --git a/core/bbcodeparser.cpp b/core/bbcodeparser.cpp index 7dd5f46..1284575 100755 --- a/core/bbcodeparser.cpp +++ b/core/bbcodeparser.cpp @@ -2,7 +2,7 @@ * This file is a part of Winix * and is not publicly distributed * - * Copyright (c) 2008-2010, Tomasz Sowa + * Copyright (c) 2008-2011, Tomasz Sowa * All rights reserved. * */ @@ -201,6 +201,12 @@ const BBCODEParser::Tags * BBCODEParser::FindTag(const wchar_t * tag) return 0; } +const BBCODEParser::Tags * BBCODEParser::FindTag(const std::wstring & tag) +{ + return FindTag(tag.c_str()); +} + + void BBCODEParser::PrintArgumentCheckQuotes(const wchar_t * & start, const wchar_t * & end) { diff --git a/core/bbcodeparser.h b/core/bbcodeparser.h index b846403..d31c76f 100755 --- a/core/bbcodeparser.h +++ b/core/bbcodeparser.h @@ -2,7 +2,7 @@ * This file is a part of Winix * and is not publicly distributed * - * Copyright (c) 2008-2010, Tomasz Sowa + * Copyright (c) 2008-2011, Tomasz Sowa * All rights reserved. * */ @@ -58,6 +58,7 @@ class BBCODEParser : public HTMLFilter virtual void PutClosingTag(const wchar_t * tag); const Tags * FindTag(const wchar_t * tag); + const Tags * FindTag(const std::wstring & tag); void PrintArgumentCheckQuotes(const wchar_t * & start, const wchar_t * & end); diff --git a/core/config.cpp b/core/config.cpp index 9522f49..de9ff5b 100755 --- a/core/config.cpp +++ b/core/config.cpp @@ -159,10 +159,10 @@ void Config::AssignValues(bool stdout_is_closed) html_filter = Bool(L"html_filter", true); html_filter_trim_white = Bool(L"html_filter_trim_white", true); - html_filter_break_lines = Int(L"html_filter_break_lines", 60); + html_filter_break_word = Int(L"html_filter_break_word", 60); + html_filter_wrap_line = Int(L"html_filter_wrap_line", 110); html_filter_tabs = Size(L"html_filter_tabs", 2); - html_filter_orphans = Bool(L"html_filter_orphans", false); - html_filter_orphans_lang_str = AText(L"html_filter_orphans_lang", L"pl"); + html_filter_orphans = Bool(L"html_filter_orphans", true); html_filter_orphans_mode_str = AText(L"html_filter_orphans_mode_str", L"nbsp"); locale_dir = Text(L"locale_dir"); @@ -200,17 +200,6 @@ void Config::SetAdditionalVariables() { SetHttpHost(base_url, base_url_http_host); - if( html_filter_orphans_lang_str == "pl" ) - html_filter_orphans_lang = HTMLFilter::lang_pl; - else - if( html_filter_orphans_lang_str == "cz" ) - html_filter_orphans_lang = HTMLFilter::lang_cz; - else - if( html_filter_orphans_lang_str == "sk" ) - html_filter_orphans_lang = HTMLFilter::lang_sk; - else - html_filter_orphans_lang = HTMLFilter::lang_none; - if( html_filter_orphans_mode_str == "160" ) html_filter_orphans_mode = HTMLFilter::orphan_160space; else diff --git a/core/config.h b/core/config.h index ec33bf1..ae2d969 100755 --- a/core/config.h +++ b/core/config.h @@ -167,25 +167,24 @@ public: // should white characters be trimmed bool html_filter_trim_white; - // when long lines (lines without a white character) should be break (inserted a space) + // when long words should be broken (a space will be inserted) // default: after 60 non white characters will be put a space // set zero to turn off - int html_filter_break_lines; + size_t html_filter_break_word; + + // when long lines should be broken (a new line character will be inserted) + // default: 80 + // set zero to turn off + size_t html_filter_wrap_line; // how many spaces will be put at one tree level // default: 2 size_t html_filter_tabs; // use checking for 'orphans' for a specicic language - // default: false + // default: true bool html_filter_orphans; - // language for html orphans - // default: pl - // can be either: "pl" or "cz" or "sk" - std::string html_filter_orphans_lang_str; - HTMLFilter::Lang html_filter_orphans_lang; - // orphans mode // either: "nbsp" or "160" // default: "nbsp" diff --git a/core/htmlfilter.cpp b/core/htmlfilter.cpp index 48539e3..eb6018b 100755 --- a/core/htmlfilter.cpp +++ b/core/htmlfilter.cpp @@ -2,7 +2,7 @@ * This file is a part of Winix * and is not publicly distributed * - * Copyright (c) 2008-2010, Tomasz Sowa + * Copyright (c) 2008-2011, Tomasz Sowa * All rights reserved. * */ @@ -13,10 +13,11 @@ void HTMLFilter::Item::Clear() { - name[0] = 0; - name_len = 0; - type = none; - new_line = false; + name.clear(); + type = none; + porphans = 0; + new_line = false; + has_body_tag = false; } @@ -33,6 +34,7 @@ void HTMLFilter::Filter(const wchar_t * in, std::wstring & out) stack_len = 0; out_string = &out; last_new_line = false; + line_len = 0; out_string->clear(); Init(); @@ -72,7 +74,7 @@ HTMLFilter::HTMLFilter() tab_size = 2; trim_white = false; break_after = 0; - lang = lang_none; + wrap_line = 0; orphan_mode = orphan_nbsp; safe_mode = false; } @@ -103,7 +105,7 @@ HTMLFilter::~HTMLFilter() } -void HTMLFilter::BreakLines(size_t break_after_) +void HTMLFilter::BreakWord(size_t break_after_) { break_after = break_after_; @@ -112,6 +114,16 @@ void HTMLFilter::BreakLines(size_t break_after_) } +void HTMLFilter::WrapLine(size_t wrap_line_) +{ + wrap_line = wrap_line_; + + if( wrap_line > 10000 ) + wrap_line = 10000; +} + + + void HTMLFilter::TrimWhite(bool trim) { trim_white = trim; @@ -127,10 +139,50 @@ void HTMLFilter::InsertTabs(size_t tabsize) } - -void HTMLFilter::CheckOrphans(HTMLFilter::Lang lang_, HTMLFilter::OrphanMode mode) +void HTMLFilter::CalcOrphansMaxLen(Orphans & orphans) +{ +size_t i; + + orphans.max_len = 0; + + for(i=0 ; i orphans.max_len ) + orphans.max_len = orphans.tab[i].size(); + } +} + + +void HTMLFilter::AssignOrphans(const wchar_t * lang_code, const std::vector & otab) +{ + lang_code_lower = lang_code; + ToLower(lang_code_lower); + + orphans_temp.tab = otab; + std::sort(orphans_temp.tab.begin(), orphans_temp.tab.end()); + CalcOrphansMaxLen(orphans_temp); + + orphans_tab[lang_code_lower] = orphans_temp; +} + + + +void HTMLFilter::AssignOrphans(const std::wstring & lang_code, const std::vector & otab) +{ + AssignOrphans(lang_code.c_str(), otab); +} + + +void HTMLFilter::ClearOrphans() +{ + orphans_tab.clear(); +} + + + + +void HTMLFilter::OrphansMode(HTMLFilter::OrphanMode mode) { - lang = lang_; orphan_mode = mode; } @@ -173,6 +225,14 @@ bool HTMLFilter::PushStack() return false; pstack[stack_len].Clear(); + + if( stack_len > 0 ) + { + // 'porphans' and 'has_body_tag' attributes are propagated + pstack[stack_len].porphans = pstack[stack_len-1].porphans; + pstack[stack_len].has_body_tag = pstack[stack_len-1].has_body_tag; + } + stack_len += 1; return true; @@ -226,6 +286,11 @@ void HTMLFilter::SkipWhiteWithFirstNewLine() } +void HTMLFilter::SkipWhiteLines(const wchar_t * & str, const wchar_t * end) +{ + while( str < end && (*str==10 || IsWhite(*str)) ) + ++str; +} void HTMLFilter::CheckNewLine() @@ -251,9 +316,9 @@ bool HTMLFilter::IsClosingTagForLastItem() pchar += 1; SkipWhite(); - if( IsNameEqual(pchar, LastItem().name, LastItem().name_len) ) + if( IsNameEqual(pchar, LastItem().name, LastItem().name.size()) ) { - pchar += LastItem().name_len; + pchar += LastItem().name.size(); SkipWhite(); if( IsClosingTagMark() ) @@ -300,42 +365,25 @@ const wchar_t * start = pchar; -const wchar_t * HTMLFilter::SkipItemCheckXmlSimple() +void HTMLFilter::SkipAndCheckClosingTag() { -const wchar_t * end = pchar; - - - while( *pchar!=0 ) + for( ; *pchar ; ++pchar ) { - while( *pchar!=0 && !IsClosingTagMark() && !IsClosingXmlSimpleTagMark()) - ++pchar; - - if( IsClosingXmlSimpleTagMark() ) // closing xml tag: default '/' + if( LastItem().type == Item::opening && IsClosingXmlSimpleTagMark() ) // closing xml tag: default '/' { - end = pchar; - ++pchar; - SkipWhite(); - - if( IsClosingTagMark() ) - { - ++pchar; - LastItem().type = Item::simple; - break; - } + LastItem().type = Item::simple; } - else + if( IsClosingTagMark() ) { - end = pchar; ++pchar; break; } } - -return end; } + bool HTMLFilter::IsValidCharForName(int c) { if( (c>='a' && c<='z') || @@ -348,38 +396,122 @@ return false; } +bool HTMLFilter::IsValidCharForAttrName(int c) +{ + if( (c>='a' && c<='z') || + (c>='A' && c<='Z') || + (c>='0' && c<='9') || + c=='-' || c==':' ) + return true; + +return false; +} + void HTMLFilter::ReadItemName() { size_t i; - for( i=0 ; IsValidCharForName(*pchar) && iappend(str); + + for( ; *str ; ++str) + CheckChar(*str); +} + + void HTMLFilter::Put(const wchar_t * str, const wchar_t * end) { - if( str>=end ) + if( str >= end ) return; size_t len = end - str; out_string->append(str, len); + + for( ; str < end ; ++str) + CheckChar(*str); +} + + +void HTMLFilter::Put(const std::wstring & str) +{ + out_string->append(str); + + for(size_t i=0 ; i & table) { int res; + if( table.empty() ) + return false; + + size_t o1 = 0; + size_t o2 = table.size() - 1; + res = CheckOrphan(str, end, table[o1]); if( res == 0 ) @@ -434,242 +571,163 @@ int res; o1 = o; } - return false; } -bool HTMLFilter::CheckOrphanLangPl(const wchar_t * str, const wchar_t * end) -{ - // the table must be sorted in alphabetical order - // polish letters coded in iso-8859-2 - // !! wymieniæ na unikode - -/* -tak jak bylo oryginalnie (tylko bez L): - static const wchar_t * orphans[] = { - L"(np.", L"s.", L"a", L"ale", L"bo", L"by", L"co", L"czy", L"do", L"go", L"i", - L"ich", L"ja", L"je", L"jej", L"jest", L"ju¿", L"j±", L"ku", L"li", L"mi", L"na", - L"nie", L"np.", L"nr", L"o", L"od", L"po", L"s±", L"ta", L"to", L"tu", L"t±", - L"tê", L"u", L"w", L"we", L"wy", L"z", L"za", L"ze", L"¿e", L"ów" - }; -*/ - - static const wchar_t * orphans[] = { - L"(np.", L"s.", L"a", L"ale", L"bo", L"by", L"co", L"czy", L"do", L"go", L"i", - L"ich", L"ja", L"je", L"jej", L"jest", L"juz", L"ja", L"ku", L"li", L"mi", L"na", - L"nie", L"np.", L"nr", L"o", L"od", L"po", L"sa", L"ta", L"to", L"tu", L"ta", - L"te", L"u", L"w", L"we", L"wy", L"z", L"za", L"ze", L"ze", L"ow" - }; - - - - size_t o1 = 0; - size_t o2 = sizeof(orphans) / sizeof(const wchar_t*) - 1; - -return CheckOrphanTable(str, end, orphans, o1, o2); -} - - - -// SK i CZ -bool HTMLFilter::CheckOrphanLangCz(const wchar_t * str, const wchar_t * end) -{ - // the table must be sorted in alphabetical order - static const wchar_t * orphans[] = { - L"a", L"i", L"k", L"o", L"s", L"u", L"v", L"z" - }; - - size_t o1 = 0; - size_t o2 = sizeof(orphans) / sizeof(const wchar_t*) - 1; - -return CheckOrphanTable(str, end, orphans, o1, o2); -} - - bool HTMLFilter::CheckOrphan(const wchar_t * str, const wchar_t * end) { - if( str == end || lang == lang_none ) + if( str==end || !LastItem().has_body_tag || !LastItem().porphans ) return false; - if( lang == lang_cz || lang == lang_sk ) - return CheckOrphanLangCz(str, end); + size_t len = end - str; -return CheckOrphanLangPl(str, end); + if( len > LastItem().porphans->max_len ) + return false; + +return CheckOrphan(str, end, LastItem().porphans->tab); } - -size_t HTMLFilter::PutNormalTextFillBuffer(const wchar_t * & str, const wchar_t * & end) +// if there is a semicolon nearby then we break the line after it +// (useful in html entities) +// !! dodac sprawdzanie czy dlugosc stringu nie jest mala tez (end-str) +// i wtedy tez nie dodajemy zadnego znaku +bool HTMLFilter::HasSemiloconAround(const wchar_t * str, const wchar_t * end) { -const wchar_t * word = str; // pointing at the beginning of a word -size_t i = 0; -// some space in the buffer for non break spaces (orphans) and spaces at the beginning of a line -size_t epsilon = WINIX_HTMLFILTER_BUFFER_MAXLEN / 10 + 1; -bool is_white; -bool was_white = true; -size_t non_whites = 0; +size_t i, epsilon = 8; + + for(i=0 ; str < end && i wrap_line ) { - is_white = (*str==10 || IsWhite(*str)); + Put(10); + PutTabs(stack_len); + } +} - if( is_white && !was_white ) + +void HTMLFilter::PutNormalNonWhite(const wchar_t * & str, const wchar_t * end) +{ +const wchar_t * word = str; +size_t non_whites = 0; +bool was_semicolon = false; + + for( ; str < end && *str!=10 && !IsWhite(*str) ; ++str, ++non_whites ) + { + if( break_after != 0 && non_whites >= break_after && (was_semicolon || !HasSemiloconAround(str, end)) ) { - if( CheckOrphan(word, str) ) - { - i += PutNonBreakSpaceToBuffer(i); - - // here we have to skip the whole white string - for( ; (*str==10 || IsWhite(*str)) && str < end ; ++str ); - - if( str == end ) - break; - - is_white = false; - was_white = true; - } + Put(word, str); + word = str; + non_whites = 0; + Put(' '); + CheckLineWrap(); } - - // skipping the last new line character (if exists) - - if( *str == 10 && str < end-1 ) - { - buffer[i] = *str; - i += 1; - i += PutTabsToBuffer(i, stack_len); - } - else - if( *str != 10 ) - { - buffer[i] = *str; - i += 1; - } - - if( was_white && !is_white ) - word = str; - - if( !is_white ) - non_whites += 1; - else - non_whites = 0; - - if( break_after!=0 && non_whites>=break_after ) - { - buffer[i] = ' '; - i += 1; - non_whites = 0; - } - - was_white = is_white; + was_semicolon = (*str == ';'); } -return i; + Put(word, str); } -size_t HTMLFilter::PutNormalTextTrimFillBuffer(const wchar_t * & str, const wchar_t * & end) +void HTMLFilter::PutNormalWhite(const wchar_t * & str, const wchar_t * end) { -const wchar_t * word = str; // pointint at the beginning of a word -size_t non_whites = 0; -size_t i = 0; -bool is_white; -// some space in the buffer for non break spaces (orphans) and spaces at the beginning of a line -size_t epsilon = WINIX_HTMLFILTER_BUFFER_MAXLEN / 10 + 1; - - - for( ; str < end && ibreak_after) || is_white ) { - buffer[i] = ' '; - i += 1; - non_whites = 1; - } + while( str < end && (*str==10 || IsWhite(*str)) ) + { + Put(*str); - if( str < end ) - { - buffer[i] = *str; - i += 1; + if( *str == 10 ) + PutTabs(stack_len); + + ++str; + } } } - -return i; } - void HTMLFilter::PutNormalText(const wchar_t * str, const wchar_t * end) { -size_t buf_len; +const wchar_t * word, * white; + + if( str < end ) + CheckLineWrap(); while( str < end ) { - buf_len = PutNormalTextFillBuffer(str, end); - Put(buffer, buffer+buf_len); + word = str; + PutNormalNonWhite(str, end); + + if( CheckOrphan(word, str) ) + { + white = str; + SkipWhiteLines(str, end); + + if( white < str ) + PutNonBreakingSpace(); + } + else + { + PutNormalWhite(str, end); + + if( str < end ) // !! lub moze podobnie jak jest na gorze tutaj? juz nie mam sily myslec :( + CheckLineWrap(); + } + + // for safety (if str was not incremented then there is an infinite loop) + if( word == str ) + break; } } -void HTMLFilter::PutNormalTextTrim(const wchar_t * str, const wchar_t * end) -{ -size_t buf_len; - - while( str < end ) - { - buf_len = PutNormalTextTrimFillBuffer(str, end); - Put(buffer, buffer+buf_len); - } -} void HTMLFilter::PutOpeningTagMark() { - (*out_string) += '<'; + Put('<'); } void HTMLFilter::PutClosingTagMark() { - (*out_string) += '>'; + Put('>'); } - +// !! zamienic na poprostu Put (juz jest gotowa) void HTMLFilter::PutTagName(const wchar_t * name) { - (*out_string) += name; + Put(name); } +void HTMLFilter::PutTagName(const std::wstring & name) +{ + PutTagName(name.c_str()); +} + + + bool HTMLFilter::IsTagSafe(const wchar_t * tag) { if( !safe_mode ) @@ -693,11 +751,17 @@ return true; } +bool HTMLFilter::IsTagSafe(const std::wstring & tag) +{ + return IsTagSafe(tag.c_str()); +} + + // start, end - arguments -void HTMLFilter::PutOpeningTag(const wchar_t * start, const wchar_t * end) +void HTMLFilter::PutOpeningTag(bool close_tag) { if( !IsTagSafe(LastItem().name) ) return; @@ -705,13 +769,8 @@ void HTMLFilter::PutOpeningTag(const wchar_t * start, const wchar_t * end) PutOpeningTagMark(); PutTagName(LastItem().name); - if( start != end ) - { - (*out_string) += ' '; - Put(start, end); - } - - PutClosingTagMark(); + if( close_tag ) + PutClosingTagMark(); } @@ -722,74 +781,43 @@ void HTMLFilter::PutClosingTag(const wchar_t * tag) return; PutOpeningTagMark(); - (*out_string) += '/'; + Put('/'); PutTagName(tag); PutClosingTagMark(); } -size_t HTMLFilter::PutTabsToBuffer(size_t index, size_t len) +void HTMLFilter::PutTabs(size_t len) { - if( len == 0 ) - return 0; + if( len > 30 ) + len = 30; - if( len > 20 ) - len = 20; - - // how many spaces do you want - size_t spaces = len * tab_size; - size_t i = 0; - - if( index+spaces < WINIX_HTMLFILTER_BUFFER_MAXLEN-1 ) - { - for( ; isecond; + } + +return true; +} + + +void HTMLFilter::PrinItemAttr() +{ + Put(' '); + Put(attr_name); + + if( attr_has_value ) + { + Put(L"=\""); + Put(attr_value); + Put('\"'); + } +} + + +void HTMLFilter::ReadItemClosing() +{ + pchar += 1; // skipping '/' + SkipWhiteLines(); + ReadItemName(); + LastItem().type = Item::closing; + SkipAndCheckClosingTag(); + + // closing tags are printed later +} + + +void HTMLFilter::ReadItemSpecial() +{ + LastItem().type = Item::special; + PutOpeningTagMark(); + const wchar_t * start = pchar; + SkipAndCheckClosingTag(); + + if( pchar > start ) + Put(start, pchar); + + // closing tag mark is printed directly from the source +} + + +void HTMLFilter::ReadItemOpening() +{ + LastItem().type = Item::opening; + ReadItemName(); + PrintOpeningItem(); + + while( ReadItemAttr() ) + { + if( CheckItemAttr() ) + PrinItemAttr(); + } + + SkipAndCheckClosingTag(); // here LastItem().type can be changed to 'simple' + + if( LastItem().type == Item::simple ) + Put(L" /"); + + PutClosingTagMark(); +} + + bool HTMLFilter::ReadItem() { -const wchar_t * start = pchar; - if( *pchar == 0 ) return false; if( !PushStack() ) return false; - // we have '<' - pchar += 1; - SkipWhite(); + pchar += 1; // skipping the first '<' + SkipWhiteLines(); - if( *pchar == '/' ) // we have a closing tag - { - pchar += 1; - SkipWhite(); - LastItem().type = Item::closing; - } - - ReadItemName(); - SkipWhite(); - start = pchar; // arguments start here - - if( LastItem().type != Item::closing ) - LastItem().type = (LastItem().name[0] == '!') ? Item::special : Item::opening; - - const wchar_t * end = SkipItemCheckXmlSimple(); - - if( LastItem().type != Item::closing ) - PrintItem(start, end); + if( *pchar == '!' ) + ReadItemSpecial(); + else + if( *pchar == '/' ) // we have a closing tag (dodac jako metode wirtualna) !! + ReadItemClosing(); + else + ReadItemOpening(); CheckNewLine(); LastItem().new_line = last_new_line; @@ -996,6 +1120,15 @@ return c; } +void HTMLFilter::ToLower(std::wstring & str) +{ +size_t i; + + for(i=0 ; i +#include +#include +#include // max length of a name of a html tag (with terminating null) -#define WINIX_HTMLFILTER_ITEM_MAXLEN 30 +#define WINIX_HTMLFILTER_ITEM_NAME_MAXLEN 30 + +// max length of a html lang attribute (e.g. "en", "pl") +#define WINIX_HTMLFILTER_ITEM_LANG_MAXLEN 10 + + +#define WINIX_HTMLFILTER_ATTR_NAME_MAXLEN 40 + + +#define WINIX_HTMLFILTER_ATTR_VALUE_MAXLEN 500 + // depth of the html tree -#define WINIX_HTMLFILTER_STACK_MAXLEN 100 +#define WINIX_HTMLFILTER_STACK_MAXLEN 100 // length of a buffer used for printing -// it should be at least: WINIX_HTMLFILTER_ITEM_MAXLEN+3 +// it should be at least: WINIX_HTMLFILTER_ITEM_NAME_MAXLEN+3 #define WINIX_HTMLFILTER_BUFFER_MAXLEN 2048 @@ -48,23 +61,12 @@ class HTMLFilter { public: - - // for checking orphans - enum Lang - { - lang_pl, - lang_cz, - lang_sk, - lang_none - }; - enum OrphanMode { orphan_nbsp, // putting " " string orphan_160space // putting 160 ascii code }; - HTMLFilter(); HTMLFilter(const HTMLFilter & f); HTMLFilter & operator=(const HTMLFilter & f); @@ -76,12 +78,18 @@ public: void Filter(const std::wstring & in, std::wstring & out); - // insert a white space into long lines - // only between html tags + // insert a white space into long words + // (only between html tags) // skipped in such tags: script, pre, textarea // break_after - after how many characters insert a space (0 - off) - void BreakLines(size_t break_after_); + void BreakWord(size_t break_after_); + // insert a new line character into long lines + // (only between html tags) + // skipped in such tags: script, pre, textarea + // wrap_line - after how many characters wrap a line (0 - off) + // lines are wrapped only in 'body' tag (useful for text in 'title' tag which is in 'head' section) + void WrapLine(size_t wrap_line_); // trimming white characters (with new lines) // at the beginning, at the end and in the middle of a string @@ -98,10 +106,16 @@ public: void InsertTabs(size_t tabsize); + // orphans are checked only in 'body' tag + void AssignOrphans(const wchar_t * lang_code, const std::vector & otab); + void AssignOrphans(const std::wstring & lang_code, const std::vector & otab); + void ClearOrphans(); + + // check 'orphans' for the specicic language // if an orphan is detected then the non-break space (" " or ascii 160 code) will be put // default disable (lang_none) - void CheckOrphans(Lang lang_, OrphanMode mode = orphan_nbsp); + void OrphansMode(OrphanMode mode = orphan_nbsp); // skipping some unsafe tags @@ -112,52 +126,80 @@ public: protected: + // orphans for one language + struct Orphans + { + std::vector tab; + size_t max_len; + }; + + + // orphans for all languages + // map + typedef std::map OrphansTab; + OrphansTab orphans_tab; + + struct Item { - wchar_t name[WINIX_HTMLFILTER_ITEM_MAXLEN]; - size_t name_len; + std::wstring name; // max size: WINIX_HTMLFILTER_ITEM_NAME_MAXLEN enum Type { - opening, - closing, - simple, - special, + opening, /* sample:

*/ + closing, /* sample:

*/ + simple, /* sample:
*/ + special, /* sample: */ none } type; // is there a new line after this tag bool new_line; + // current orphans table + // (will be propagated) + Orphans * porphans; + + // this item or one from its parents is a 'body' html tag + // (will be propagated) + bool has_body_tag; + void Clear(); Item(); }; - // only this method have direct access to the output string - // you can easily change the output from a std::wstring to something else - virtual void Put(const wchar_t * str, const wchar_t * end); Item & GetItem(size_t i); Item & LastItem(); wchar_t ToLower(wchar_t c); - bool IsNameEqual(const wchar_t * name1, const wchar_t * name2); - bool IsNameEqual(const wchar_t * name1, const wchar_t * name2, size_t len); + void ToLower(std::wstring & str); + + bool IsNameEqual(const wchar_t * name1, const wchar_t * name2); + bool IsNameEqual(const wchar_t * name1, const std::wstring & name2); + bool IsNameEqual(const std::wstring & name1, const wchar_t * name2); + bool IsNameEqual(const std::wstring & name1, const std::wstring & name2); + + bool IsNameEqual(const wchar_t * name1, const wchar_t * name2, size_t len); + bool IsNameEqual(const wchar_t * name1, const std::wstring & name2, size_t len); + bool IsNameEqual(const std::wstring & name1, const wchar_t * name2, size_t len); + bool IsNameEqual(const std::wstring & name1, const std::wstring & name2, size_t len); + bool IsLastTag(const wchar_t * name); bool IsTagSafe(const wchar_t * tag); + bool IsTagSafe(const std::wstring & tag); - int CheckOrphan(const wchar_t * str, const wchar_t * end, const wchar_t * orphan); - bool CheckOrphanTable(const wchar_t * str, const wchar_t * end, const wchar_t ** table, size_t o1, size_t o2); - bool CheckOrphanLangPl(const wchar_t * str, const wchar_t * end); - bool CheckOrphanLangCz(const wchar_t * str, const wchar_t * end); + int CheckOrphan(const wchar_t * str, const wchar_t * end, const std::wstring & orphan_str); + bool CheckOrphan(const wchar_t * str, const wchar_t * end, const std::vector & orphans); bool CheckOrphan(const wchar_t * str, const wchar_t * end); bool IsWhite(int c); void SkipWhite(); void SkipWhiteLines(); void SkipWhiteWithFirstNewLine(); + void SkipWhiteLines(const wchar_t * & str, const wchar_t * end); bool IsClosingTagForLastItem(); virtual bool IsOpeningTagMark(); virtual bool IsOpeningCommentaryTagMark(); @@ -165,11 +207,12 @@ protected: virtual bool IsClosingTagMark(); virtual bool IsClosingXmlSimpleTagMark(); bool SkipCommentaryTagIfExists(); - const wchar_t * SkipItemCheckXmlSimple(); + void SkipAndCheckClosingTag(); void PopStack(); bool PushStack(); virtual bool IsValidCharForName(int c); + virtual bool IsValidCharForAttrName(int c); void CheckNewLine(); virtual void CheckExceptions(); void CheckStackPrintRest(); @@ -178,41 +221,68 @@ protected: virtual void ReadNormalTextSkipWhite(const wchar_t * & start, const wchar_t * & last_non_white); void ReadNormalText(); bool PrintRest(); - void PrintItem(const wchar_t * start, const wchar_t * end); + void PrintOpeningItem(); void ReadItemName(); + void ReadItemAttrName(); + void ReadItemAttrValue(bool has_quote); + + bool ReadItemAttr(); + bool CheckItemAttr(); + void PrinItemAttr(); + + void ReadItemClosing(); + void ReadItemSpecial(); + void ReadItemOpening(); bool ReadItem(); virtual void Init(); virtual void Deinit(); + void ReadLoop(); void Read(); - size_t PutNormalTextTrimFillBuffer(const wchar_t * & str, const wchar_t * & end); - size_t PutNormalTextFillBuffer(const wchar_t * & str, const wchar_t * & end); + void CheckChar(wchar_t c); + + virtual void Put(wchar_t c); + virtual void Put(const wchar_t * str); + virtual void Put(const wchar_t * str, const wchar_t * end); + virtual void Put(const std::wstring & str); + + void CheckLineWrap(); + bool HasSemiloconAround(const wchar_t * str, const wchar_t * end); + void PutNormalNonWhite(const wchar_t * & str, const wchar_t * end); + void PutNormalWhite(const wchar_t * & str, const wchar_t * end); virtual void PutNormalText(const wchar_t * str, const wchar_t * end); - virtual void PutNormalTextTrim(const wchar_t * str, const wchar_t * end); void PutLastTagWithClosingTag(); virtual void PutOpeningTagMark(); virtual void PutClosingTagMark(); virtual void PutTagName(const wchar_t * name); - virtual void PutOpeningTag(const wchar_t * start, const wchar_t * end); + void PutTagName(const std::wstring & name); + virtual void PutOpeningTag(bool close_tag = true); virtual void PutClosingTag(const wchar_t * tag); - size_t PutTabsToBuffer(size_t index, size_t len); - size_t PutNonBreakSpaceToBuffer(size_t index); void PutTabs(size_t len); + void PutNonBreakingSpace(); void PutNewLine(); + void CalcOrphansMaxLen(Orphans & orphans); const wchar_t * pchar; Item empty; - Item * pstack; // stack pointer - size_t stack_len; // length of the stack + Item * pstack; // stack pointer + size_t stack_len; // length of the stack wchar_t * buffer; // buffer used when printing std::wstring * out_string; bool last_new_line; - size_t break_after; // insert a space into long lines after break_after characters - bool trim_white; // trimming white characters + size_t break_after; // insert a space into long words after 'break_after' characters + size_t wrap_line; // insert a new line character into long lines + bool trim_white; // trimming white characters size_t tab_size; - Lang lang; // current language for checking orphans OrphanMode orphan_mode; - bool safe_mode; // skipping some unsafe tags + std::wstring attr_name; + std::wstring attr_value; + std::wstring attr_value_lower; + bool attr_has_value; + std::wstring lang_code_lower; + size_t line_len; //length of the current line (without first spaces which create the html tree) + bool safe_mode; // skipping some unsafe tags + Orphans orphans_temp; }; diff --git a/functions/functions.cpp b/functions/functions.cpp index 29eab14..ec28325 100755 --- a/functions/functions.cpp +++ b/functions/functions.cpp @@ -2,7 +2,7 @@ * This file is a part of Winix * and is not publicly distributed * - * Copyright (c) 2010, Tomasz Sowa + * Copyright (c) 2010-2011, Tomasz Sowa * All rights reserved. * */ @@ -470,11 +470,12 @@ void Functions::ReadItemUrlSubject(Item & item, Item::Type item_type) void Functions::ReadItemFilterHtml(Item & item) { - html_filter.BreakLines(0); + html_filter.BreakWord(0); + html_filter.WrapLine(0); html_filter.TrimWhite(false); html_filter.InsertTabs(0); - html_filter.CheckOrphans(HTMLFilter::lang_none); html_filter.SafeMode(true); + html_filter.ClearOrphans(); html_filter.Filter(cur->request->PostVar(L"itemcontent"), item.content); } diff --git a/locale/en b/locale/en index b3112c8..44d764d 100755 --- a/locale/en +++ b/locale/en @@ -121,6 +121,9 @@ ls_header = Directory listing mkdir_header = Make directory mkdir_form_legend = Make directory form +html_lang_attr_value = "en" +language_orphans = () + priv_header = Permissions priv_form_legend = Permissions priv_change_in_dir = Change permissions for all items in the following directory diff --git a/locale/pl b/locale/pl index 253000a..795d52c 100755 --- a/locale/pl +++ b/locale/pl @@ -120,6 +120,21 @@ ls_header = Zawartość katalogu mkdir_header = Stwórz katalog mkdir_form_legend = Wypełnij wszystkie pozycje formularza +html_lang_attr_value = "pl" + +# current limitation: winix is not allowed to convert polish capital letters to lower case +# so we need to give both versions (small and capital letters) +language_orphans = ( "(np.", "a", "ale", "bo", "by", "co", "czy", "do", "go", "i", "ich", "ja", + "je", "jej", "jest", "już", "juŻ", "ją", "jĄ", "ku", "li", "mi", "na", "nie", + "np.", "nr", "o", "od", "po", "s.", "są", "sĄ", "ta", "to", "tu", "tą", "tĄ" + "tę", "tĘ", "u", "w", "we", "wy", "z", "za", "ze", "że", "Że", "ów", "Ów" ) + + +# orphans for SK i CZ (winix for those languages are not translated yet) +# ("a", "i", "k", "o", "s", "u", "v", "z") + + + priv_header = Zmień uprawnienia dostępu priv_form_legend = Uprawnienia priv_change_in_dir = Zmień hurtowo uprawnienia w katalogu diff --git a/notify/Makefile.dep b/notify/Makefile.dep index 4606409..1fdf31f 100755 --- a/notify/Makefile.dep +++ b/notify/Makefile.dep @@ -26,8 +26,8 @@ notify.o: ../notify/notify.h ../core/mounts.h ../core/mount.h notify.o: ../core/mountparser.h ../core/users.h ../core/groups.h notify.o: ../core/group.h ../core/loadavg.h ../core/thumb.h notify.o: ../core/basethread.h ../core/sessionmanager.h -notify.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -notify.o: ../core/dirs.h ../core/synchro.h ../core/plugin.h +notify.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +notify.o: ../core/request.h ../core/dirs.h ../core/synchro.h ../core/plugin.h notify.o: ../core/pluginmsg.h ../core/sessionmanager.h notify.o: ../functions/functions.h ../functions/functionbase.h notify.o: ../functions/functionparser.h ../functions/adduser.h @@ -42,7 +42,6 @@ notify.o: ../functions/specialdefault.h ../functions/stat.h notify.o: ../functions/subject.h ../functions/template.h notify.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h notify.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h -notify.o: ../core/htmlfilter.h notifypool.o: notifypool.h ../templates/locale.h ../core/confparser.h notifythread.o: notifythread.h ../core/basethread.h ../core/synchro.h notifythread.o: templatesnotify.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h diff --git a/plugins/groupitem/Makefile.dep b/plugins/groupitem/Makefile.dep index 9a51b27..31e3efe 100755 --- a/plugins/groupitem/Makefile.dep +++ b/plugins/groupitem/Makefile.dep @@ -57,21 +57,21 @@ templates.o: ../../templates/patterncacher.h ../../core/item.h templates.o: ../../templates/ckeditorgetparser.h templates.o: ../../core/httpsimpleparser.h ../../core/log.h templates.o: ../../templates/indexpatterns.h ../../templates/localefilter.h -templates.o: ../../templates/locale.h ../../core/config.h ../../db/db.h -templates.o: ../../db/dbbase.h ../../db/dbconn.h ../../db/dbtextstream.h +templates.o: ../../templates/locale.h ../../core/config.h +templates.o: ../../templates/htmltextstream.h ../../core/cur.h +templates.o: ../../core/system.h ../../core/sessionmanager.h +templates.o: ../../core/htmlfilter.h ../../db/db.h ../../db/dbbase.h +templates.o: ../../db/dbconn.h ../../db/dbtextstream.h templates.o: ../../core/textstream.h ../../core/error.h templates.o: ../../db/dbitemquery.h ../../db/dbitemcolumns.h templates.o: ../../core/user.h ../../core/group.h ../../core/dircontainer.h -templates.o: ../../core/ugcontainer.h ../../core/log.h -templates.o: ../../templates/htmltextstream.h ../../core/cur.h -templates.o: ../../core/system.h ../../core/sessionmanager.h -templates.o: ../../core/plugin.h ../../core/pluginmsg.h -templates.o: ../../core/plugindata.h ../../core/config.h -templates.o: ../../core/confparser.h ../../core/htmlfilter.h -templates.o: ../../core/request.h ../../core/requesttypes.h -templates.o: ../../core/error.h ../../core/textstream.h -templates.o: ../../templates/htmltextstream.h ../../core/system.h -templates.o: ../../core/dirs.h ../../core/dircontainer.h +templates.o: ../../core/ugcontainer.h ../../core/log.h ../../core/plugin.h +templates.o: ../../core/pluginmsg.h ../../core/plugindata.h +templates.o: ../../core/config.h ../../core/confparser.h +templates.o: ../../core/htmlfilter.h ../../core/request.h +templates.o: ../../core/requesttypes.h ../../core/error.h +templates.o: ../../core/textstream.h ../../templates/htmltextstream.h +templates.o: ../../core/system.h ../../core/dirs.h ../../core/dircontainer.h templates.o: ../../notify/notify.h ../../notify/notifypool.h templates.o: ../../templates/locale.h ../../core/confparser.h templates.o: ../../templates/misc.h ../../notify/notifythread.h @@ -102,4 +102,3 @@ templates.o: ../../functions/subject.h ../../functions/template.h templates.o: ../../functions/tinymce.h ../../functions/uname.h templates.o: ../../functions/upload.h ../../functions/uptime.h templates.o: ../../functions/who.h ../../functions/vim.h -templates.o: ../../core/htmlfilter.h diff --git a/templates/Makefile.dep b/templates/Makefile.dep index 1e9da8e..d6ae1b1 100755 --- a/templates/Makefile.dep +++ b/templates/Makefile.dep @@ -8,15 +8,15 @@ adduser.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h adduser.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h adduser.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h adduser.o: ../core/textstream.h indexpatterns.h ../core/config.h -adduser.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h -adduser.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h -adduser.o: ../core/log.h ../db/dbitemquery.h ../db/dbitemcolumns.h -adduser.o: ../core/group.h ../core/dircontainer.h ../core/ugcontainer.h -adduser.o: ../core/cur.h ../core/request.h ../core/requesttypes.h -adduser.o: ../core/error.h ../core/config.h ../templates/htmltextstream.h +adduser.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h +adduser.o: ../core/request.h ../core/requesttypes.h ../core/error.h +adduser.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h adduser.o: ../core/session.h ../core/user.h ../core/plugindata.h adduser.o: ../core/rebus.h ../core/system.h ../core/dirs.h -adduser.o: ../core/dircontainer.h ../notify/notify.h ../notify/notifypool.h +adduser.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +adduser.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +adduser.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +adduser.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h adduser.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h adduser.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h adduser.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h @@ -24,7 +24,8 @@ adduser.o: ../core/cur.h ../core/mounts.h ../core/mount.h adduser.o: ../core/mountparser.h ../core/users.h ../core/groups.h adduser.o: ../core/group.h ../core/loadavg.h ../core/thumb.h adduser.o: ../core/basethread.h ../core/sessionmanager.h -adduser.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h +adduser.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +adduser.o: ../core/request.h dir.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h dir.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h ../../ezc/src/item.h dir.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -33,34 +34,34 @@ dir.o: ../core/confparser.h htmltextstream.h ../core/textstream.h dir.o: ../core/user.h patterncacher.h ../core/item.h ckeditorgetparser.h dir.o: ../core/httpsimpleparser.h ../core/log.h ../core/textstream.h dir.o: indexpatterns.h ../core/config.h ../core/confparser.h -dir.o: ../core/htmlfilter.h ../db/db.h ../db/dbbase.h ../db/dbconn.h -dir.o: ../db/dbtextstream.h ../core/error.h ../core/log.h ../db/dbitemquery.h -dir.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h -dir.o: ../core/ugcontainer.h ../core/cur.h ../core/request.h -dir.o: ../core/requesttypes.h ../core/error.h ../core/config.h +dir.o: ../core/htmlfilter.h ../core/cur.h ../core/request.h +dir.o: ../core/requesttypes.h ../core/error.h ../core/log.h ../core/config.h dir.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h dir.o: ../core/plugindata.h ../core/rebus.h ../core/system.h ../core/dirs.h -dir.o: ../core/dircontainer.h ../notify/notify.h ../notify/notifypool.h +dir.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +dir.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +dir.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +dir.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h dir.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h dir.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h dir.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h dir.o: ../core/cur.h ../core/mounts.h ../core/mount.h ../core/mountparser.h dir.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h dir.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h -dir.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h -dir.o: ../functions/functions.h ../functions/functionbase.h ../core/request.h -dir.o: ../core/synchro.h ../functions/functionparser.h ../functions/adduser.h -dir.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h -dir.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h -dir.o: ../functions/default.h ../functions/download.h ../functions/emacs.h -dir.o: ../functions/last.h ../functions/login.h ../functions/logout.h -dir.o: ../functions/ln.h ../functions/ls.h ../functions/mkdir.h -dir.o: ../functions/mv.h ../functions/node.h ../functions/priv.h -dir.o: ../functions/reload.h ../functions/rm.h ../functions/run.h -dir.o: ../functions/specialdefault.h ../functions/stat.h -dir.o: ../functions/subject.h ../functions/template.h ../functions/tinymce.h -dir.o: ../functions/uname.h ../functions/upload.h ../functions/uptime.h -dir.o: ../functions/who.h ../functions/vim.h ../core/htmlfilter.h +dir.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +dir.o: ../core/misc.h ../functions/functions.h ../functions/functionbase.h +dir.o: ../core/request.h ../core/synchro.h ../functions/functionparser.h +dir.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h +dir.o: ../functions/privchanger.h ../functions/chown.h +dir.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h +dir.o: ../functions/download.h ../functions/emacs.h ../functions/last.h +dir.o: ../functions/login.h ../functions/logout.h ../functions/ln.h +dir.o: ../functions/ls.h ../functions/mkdir.h ../functions/mv.h +dir.o: ../functions/node.h ../functions/priv.h ../functions/reload.h +dir.o: ../functions/rm.h ../functions/run.h ../functions/specialdefault.h +dir.o: ../functions/stat.h ../functions/subject.h ../functions/template.h +dir.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h +dir.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h doc.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h doc.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h ../../ezc/src/item.h doc.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -69,22 +70,22 @@ doc.o: ../core/confparser.h htmltextstream.h ../core/textstream.h doc.o: ../core/user.h patterncacher.h ../core/item.h ckeditorgetparser.h doc.o: ../core/httpsimpleparser.h ../core/log.h ../core/textstream.h doc.o: indexpatterns.h ../core/config.h ../core/confparser.h -doc.o: ../core/htmlfilter.h ../db/db.h ../db/dbbase.h ../db/dbconn.h -doc.o: ../db/dbtextstream.h ../core/error.h ../core/log.h ../db/dbitemquery.h -doc.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h -doc.o: ../core/ugcontainer.h ../core/cur.h ../core/request.h -doc.o: ../core/requesttypes.h ../core/error.h ../core/config.h +doc.o: ../core/htmlfilter.h ../core/cur.h ../core/request.h +doc.o: ../core/requesttypes.h ../core/error.h ../core/log.h ../core/config.h doc.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h doc.o: ../core/plugindata.h ../core/rebus.h ../core/system.h ../core/dirs.h -doc.o: ../core/dircontainer.h ../notify/notify.h ../notify/notifypool.h +doc.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +doc.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +doc.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +doc.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h doc.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h doc.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h doc.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h doc.o: ../core/cur.h ../core/mounts.h ../core/mount.h ../core/mountparser.h doc.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h doc.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h -doc.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -doc.o: ../core/misc.h +doc.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +doc.o: ../core/request.h ../core/misc.h filters.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h filters.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h filters.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -93,15 +94,15 @@ filters.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h filters.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h filters.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h filters.o: ../core/textstream.h indexpatterns.h ../core/config.h -filters.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h -filters.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h -filters.o: ../core/log.h ../db/dbitemquery.h ../db/dbitemcolumns.h -filters.o: ../core/group.h ../core/dircontainer.h ../core/ugcontainer.h -filters.o: ../core/cur.h ../core/request.h ../core/requesttypes.h -filters.o: ../core/error.h ../core/config.h ../templates/htmltextstream.h +filters.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h +filters.o: ../core/request.h ../core/requesttypes.h ../core/error.h +filters.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h filters.o: ../core/session.h ../core/user.h ../core/plugindata.h filters.o: ../core/rebus.h ../core/system.h ../core/dirs.h -filters.o: ../core/dircontainer.h ../notify/notify.h ../notify/notifypool.h +filters.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +filters.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +filters.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +filters.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h filters.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h filters.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h filters.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h @@ -109,7 +110,8 @@ filters.o: ../core/cur.h ../core/mounts.h ../core/mount.h filters.o: ../core/mountparser.h ../core/users.h ../core/groups.h filters.o: ../core/group.h ../core/loadavg.h ../core/thumb.h filters.o: ../core/basethread.h ../core/sessionmanager.h -filters.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h +filters.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +filters.o: ../core/misc.h htmltextstream.o: htmltextstream.h ../core/textstream.h misc.h localefilter.h htmltextstream.o: locale.h ../core/confparser.h ../../ezc/src/ezc.h htmltextstream.o: ../../ezc/src/utf8.h ../../ezc/src/generator.h @@ -132,14 +134,14 @@ item.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h item.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h item.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h item.o: ../core/textstream.h indexpatterns.h ../core/config.h -item.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -item.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -item.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -item.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +item.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h item.o: ../core/request.h ../core/requesttypes.h ../core/error.h -item.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -item.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -item.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h +item.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +item.o: ../core/session.h ../core/user.h ../core/plugindata.h ../core/rebus.h +item.o: ../core/system.h ../core/dirs.h ../core/dircontainer.h ../db/db.h +item.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h +item.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h +item.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h item.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h item.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h item.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h @@ -147,8 +149,8 @@ item.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h item.o: ../core/mount.h ../core/mountparser.h ../core/users.h item.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h item.o: ../core/basethread.h ../core/sessionmanager.h -item.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -item.o: ../core/misc.h ../core/bbcodeparser.h +item.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +item.o: ../core/request.h ../core/misc.h ../core/bbcodeparser.h last.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h last.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h last.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -157,14 +159,14 @@ last.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h last.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h last.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h last.o: ../core/textstream.h indexpatterns.h ../core/config.h -last.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -last.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -last.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -last.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +last.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h last.o: ../core/request.h ../core/requesttypes.h ../core/error.h -last.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -last.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -last.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h +last.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +last.o: ../core/session.h ../core/user.h ../core/plugindata.h ../core/rebus.h +last.o: ../core/system.h ../core/dirs.h ../core/dircontainer.h ../db/db.h +last.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h +last.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h +last.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h last.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h last.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h last.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h @@ -172,8 +174,8 @@ last.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h last.o: ../core/mount.h ../core/mountparser.h ../core/users.h last.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h last.o: ../core/basethread.h ../core/sessionmanager.h -last.o: ../core/sessioncontainer.h ../core/system.h ../core/lastcontainer.h -last.o: ../core/request.h ../core/misc.h +last.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +last.o: ../core/lastcontainer.h ../core/request.h ../core/misc.h locale.o: locale.h ../core/confparser.h ../core/log.h ../core/textstream.h locale.o: ../../ezc/src/utf8.h localefilter.o: localefilter.h locale.h ../core/confparser.h @@ -190,21 +192,22 @@ ls.o: ../core/confparser.h htmltextstream.h ../core/textstream.h ls.o: ../core/user.h patterncacher.h ../core/item.h ckeditorgetparser.h ls.o: ../core/httpsimpleparser.h ../core/log.h ../core/textstream.h ls.o: indexpatterns.h ../core/config.h ../core/confparser.h -ls.o: ../core/htmlfilter.h ../db/db.h ../db/dbbase.h ../db/dbconn.h -ls.o: ../db/dbtextstream.h ../core/error.h ../core/log.h ../db/dbitemquery.h -ls.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h -ls.o: ../core/ugcontainer.h ../core/cur.h ../core/request.h -ls.o: ../core/requesttypes.h ../core/error.h ../core/config.h +ls.o: ../core/htmlfilter.h ../core/cur.h ../core/request.h +ls.o: ../core/requesttypes.h ../core/error.h ../core/log.h ../core/config.h ls.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h ls.o: ../core/plugindata.h ../core/rebus.h ../core/system.h ../core/dirs.h -ls.o: ../core/dircontainer.h ../notify/notify.h ../notify/notifypool.h +ls.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +ls.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +ls.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +ls.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h ls.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h ls.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h ls.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h ls.o: ../core/cur.h ../core/mounts.h ../core/mount.h ../core/mountparser.h ls.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h ls.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h -ls.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h +ls.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +ls.o: ../core/request.h misc.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h misc.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h misc.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -213,14 +216,14 @@ misc.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h misc.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h misc.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h misc.o: ../core/textstream.h indexpatterns.h ../core/config.h -misc.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -misc.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -misc.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -misc.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +misc.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h misc.o: ../core/request.h ../core/requesttypes.h ../core/error.h -misc.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -misc.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -misc.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h +misc.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +misc.o: ../core/session.h ../core/user.h ../core/plugindata.h ../core/rebus.h +misc.o: ../core/system.h ../core/dirs.h ../core/dircontainer.h ../db/db.h +misc.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h +misc.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h +misc.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h misc.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h misc.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h misc.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h @@ -228,8 +231,8 @@ misc.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h misc.o: ../core/mount.h ../core/mountparser.h ../core/users.h misc.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h misc.o: ../core/basethread.h ../core/sessionmanager.h -misc.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h -misc.o: ../core/request.h +misc.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +misc.o: ../core/misc.h ../core/request.h mount.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h mount.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h mount.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -238,22 +241,23 @@ mount.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h mount.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h mount.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h mount.o: ../core/textstream.h indexpatterns.h ../core/config.h -mount.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -mount.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -mount.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -mount.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +mount.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h mount.o: ../core/request.h ../core/requesttypes.h ../core/error.h -mount.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -mount.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -mount.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h -mount.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h -mount.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h -mount.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h -mount.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h -mount.o: ../core/mount.h ../core/mountparser.h ../core/users.h -mount.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h -mount.o: ../core/basethread.h ../core/sessionmanager.h -mount.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h +mount.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +mount.o: ../core/session.h ../core/user.h ../core/plugindata.h +mount.o: ../core/rebus.h ../core/system.h ../core/dirs.h +mount.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +mount.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +mount.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +mount.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h +mount.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h +mount.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h +mount.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h +mount.o: ../core/cur.h ../core/mounts.h ../core/mount.h ../core/mountparser.h +mount.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h +mount.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h +mount.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +mount.o: ../core/misc.h patterncacher.o: patterncacher.h ../core/item.h misc.h localefilter.h patterncacher.o: locale.h ../core/confparser.h ../../ezc/src/ezc.h patterncacher.o: ../../ezc/src/utf8.h ../../ezc/src/generator.h @@ -270,14 +274,14 @@ priv.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h priv.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h priv.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h priv.o: ../core/textstream.h indexpatterns.h ../core/config.h -priv.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -priv.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -priv.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -priv.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +priv.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h priv.o: ../core/request.h ../core/requesttypes.h ../core/error.h -priv.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -priv.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -priv.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h +priv.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +priv.o: ../core/session.h ../core/user.h ../core/plugindata.h ../core/rebus.h +priv.o: ../core/system.h ../core/dirs.h ../core/dircontainer.h ../db/db.h +priv.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h +priv.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h +priv.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h priv.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h priv.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h priv.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h @@ -285,21 +289,21 @@ priv.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h priv.o: ../core/mount.h ../core/mountparser.h ../core/users.h priv.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h priv.o: ../core/basethread.h ../core/sessionmanager.h -priv.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -priv.o: ../core/misc.h ../functions/functions.h ../functions/functionbase.h -priv.o: ../core/synchro.h ../functions/functionparser.h -priv.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h -priv.o: ../functions/privchanger.h ../functions/chown.h -priv.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h -priv.o: ../functions/download.h ../functions/emacs.h ../functions/last.h -priv.o: ../functions/login.h ../functions/logout.h ../functions/ln.h -priv.o: ../functions/ls.h ../functions/mkdir.h ../functions/mv.h -priv.o: ../functions/node.h ../functions/priv.h ../functions/reload.h -priv.o: ../functions/rm.h ../functions/run.h ../functions/specialdefault.h -priv.o: ../functions/stat.h ../functions/subject.h ../functions/template.h -priv.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h -priv.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h -priv.o: ../core/htmlfilter.h +priv.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +priv.o: ../core/request.h ../core/misc.h ../functions/functions.h +priv.o: ../functions/functionbase.h ../core/synchro.h +priv.o: ../functions/functionparser.h ../functions/adduser.h +priv.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h +priv.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h +priv.o: ../functions/default.h ../functions/download.h ../functions/emacs.h +priv.o: ../functions/last.h ../functions/login.h ../functions/logout.h +priv.o: ../functions/ln.h ../functions/ls.h ../functions/mkdir.h +priv.o: ../functions/mv.h ../functions/node.h ../functions/priv.h +priv.o: ../functions/reload.h ../functions/rm.h ../functions/run.h +priv.o: ../functions/specialdefault.h ../functions/stat.h +priv.o: ../functions/subject.h ../functions/template.h ../functions/tinymce.h +priv.o: ../functions/uname.h ../functions/upload.h ../functions/uptime.h +priv.o: ../functions/who.h ../functions/vim.h rebus.o: ../core/request.h templates.h ../../ezc/src/ezc.h rebus.o: ../../ezc/src/utf8.h ../../ezc/src/generator.h rebus.o: ../../ezc/src/pattern.h ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -308,22 +312,22 @@ rebus.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h rebus.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h rebus.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h rebus.o: ../core/textstream.h indexpatterns.h ../core/config.h -rebus.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -rebus.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -rebus.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -rebus.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +rebus.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h rebus.o: ../core/request.h ../core/requesttypes.h ../core/error.h -rebus.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -rebus.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -rebus.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h -rebus.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h -rebus.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h -rebus.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h -rebus.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h -rebus.o: ../core/mount.h ../core/mountparser.h ../core/users.h -rebus.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h -rebus.o: ../core/basethread.h ../core/sessionmanager.h -rebus.o: ../core/sessioncontainer.h ../core/system.h +rebus.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +rebus.o: ../core/session.h ../core/user.h ../core/plugindata.h +rebus.o: ../core/rebus.h ../core/system.h ../core/dirs.h +rebus.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +rebus.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +rebus.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +rebus.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h +rebus.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h +rebus.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h +rebus.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h +rebus.o: ../core/cur.h ../core/mounts.h ../core/mount.h ../core/mountparser.h +rebus.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h +rebus.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h +rebus.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h stat.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h stat.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h stat.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -332,14 +336,14 @@ stat.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h stat.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h stat.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h stat.o: ../core/textstream.h indexpatterns.h ../core/config.h -stat.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -stat.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -stat.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -stat.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +stat.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h stat.o: ../core/request.h ../core/requesttypes.h ../core/error.h -stat.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -stat.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -stat.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h +stat.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +stat.o: ../core/session.h ../core/user.h ../core/plugindata.h ../core/rebus.h +stat.o: ../core/system.h ../core/dirs.h ../core/dircontainer.h ../db/db.h +stat.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h +stat.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h +stat.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h stat.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h stat.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h stat.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h @@ -347,8 +351,8 @@ stat.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h stat.o: ../core/mount.h ../core/mountparser.h ../core/users.h stat.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h stat.o: ../core/basethread.h ../core/sessionmanager.h -stat.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -stat.o: ../core/misc.h +stat.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +stat.o: ../core/request.h ../core/misc.h sys.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h sys.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h ../../ezc/src/item.h sys.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -357,22 +361,22 @@ sys.o: ../core/confparser.h htmltextstream.h ../core/textstream.h sys.o: ../core/user.h patterncacher.h ../core/item.h ckeditorgetparser.h sys.o: ../core/httpsimpleparser.h ../core/log.h ../core/textstream.h sys.o: indexpatterns.h ../core/config.h ../core/confparser.h -sys.o: ../core/htmlfilter.h ../db/db.h ../db/dbbase.h ../db/dbconn.h -sys.o: ../db/dbtextstream.h ../core/error.h ../core/log.h ../db/dbitemquery.h -sys.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h -sys.o: ../core/ugcontainer.h ../core/cur.h ../core/request.h -sys.o: ../core/requesttypes.h ../core/error.h ../core/config.h +sys.o: ../core/htmlfilter.h ../core/cur.h ../core/request.h +sys.o: ../core/requesttypes.h ../core/error.h ../core/log.h ../core/config.h sys.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h sys.o: ../core/plugindata.h ../core/rebus.h ../core/system.h ../core/dirs.h -sys.o: ../core/dircontainer.h ../notify/notify.h ../notify/notifypool.h +sys.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +sys.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +sys.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +sys.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h sys.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h sys.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h sys.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h sys.o: ../core/cur.h ../core/mounts.h ../core/mount.h ../core/mountparser.h sys.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h sys.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h -sys.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -sys.o: ../core/version.h +sys.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +sys.o: ../core/request.h ../core/version.h template.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h template.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h template.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -382,14 +386,14 @@ template.o: ../core/textstream.h ../core/user.h patterncacher.h template.o: ../core/item.h ckeditorgetparser.h ../core/httpsimpleparser.h template.o: ../core/log.h ../core/textstream.h indexpatterns.h template.o: ../core/config.h ../core/confparser.h ../core/htmlfilter.h -template.o: ../db/db.h ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h -template.o: ../core/error.h ../core/log.h ../db/dbitemquery.h -template.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h -template.o: ../core/ugcontainer.h ../core/cur.h ../core/request.h -template.o: ../core/requesttypes.h ../core/error.h ../core/config.h +template.o: ../core/cur.h ../core/request.h ../core/requesttypes.h +template.o: ../core/error.h ../core/log.h ../core/config.h template.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h template.o: ../core/plugindata.h ../core/rebus.h ../core/system.h -template.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h +template.o: ../core/dirs.h ../core/dircontainer.h ../db/db.h ../db/dbbase.h +template.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h +template.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h +template.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h template.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h template.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h template.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h @@ -397,7 +401,8 @@ template.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h template.o: ../core/mount.h ../core/mountparser.h ../core/users.h template.o: ../core/groups.h ../core/group.h ../core/loadavg.h template.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h -template.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h +template.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +template.o: ../core/misc.h templates.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h templates.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h templates.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -407,14 +412,14 @@ templates.o: ../core/textstream.h ../core/user.h patterncacher.h templates.o: ../core/item.h ckeditorgetparser.h ../core/httpsimpleparser.h templates.o: ../core/log.h ../core/textstream.h indexpatterns.h templates.o: ../core/config.h ../core/confparser.h ../core/htmlfilter.h -templates.o: ../db/db.h ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h -templates.o: ../core/error.h ../core/log.h ../db/dbitemquery.h -templates.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h -templates.o: ../core/ugcontainer.h ../core/cur.h ../core/request.h -templates.o: ../core/requesttypes.h ../core/error.h ../core/config.h +templates.o: ../core/cur.h ../core/request.h ../core/requesttypes.h +templates.o: ../core/error.h ../core/log.h ../core/config.h templates.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h templates.o: ../core/plugindata.h ../core/rebus.h ../core/system.h -templates.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h +templates.o: ../core/dirs.h ../core/dircontainer.h ../db/db.h ../db/dbbase.h +templates.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h +templates.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h +templates.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h templates.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h templates.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h templates.o: ../notify/templatesnotify.h ../core/users.h @@ -423,8 +428,8 @@ templates.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h templates.o: ../core/users.h ../core/groups.h ../core/group.h templates.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h templates.o: ../core/sessionmanager.h ../core/sessioncontainer.h -templates.o: ../core/system.h ../core/misc.h ../core/plugin.h -templates.o: ../core/pluginmsg.h ../core/sessionmanager.h +templates.o: ../core/system.h ../core/htmlfilter.h ../core/misc.h +templates.o: ../core/plugin.h ../core/pluginmsg.h ../core/sessionmanager.h templates.o: ../functions/functions.h ../functions/functionbase.h templates.o: ../core/request.h ../core/synchro.h templates.o: ../functions/functionparser.h ../functions/adduser.h @@ -440,7 +445,7 @@ templates.o: ../functions/specialdefault.h ../functions/stat.h templates.o: ../functions/subject.h ../functions/template.h templates.o: ../functions/tinymce.h ../functions/uname.h templates.o: ../functions/upload.h ../functions/uptime.h ../functions/who.h -templates.o: ../functions/vim.h ../core/htmlfilter.h ../templates/templates.h +templates.o: ../functions/vim.h ../templates/templates.h upload.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h upload.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h upload.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -449,22 +454,24 @@ upload.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h upload.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h upload.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h upload.o: ../core/textstream.h indexpatterns.h ../core/config.h -upload.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -upload.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -upload.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -upload.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +upload.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h upload.o: ../core/request.h ../core/requesttypes.h ../core/error.h -upload.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -upload.o: ../core/user.h ../core/plugindata.h ../core/rebus.h -upload.o: ../core/system.h ../core/dirs.h ../core/dircontainer.h -upload.o: ../notify/notify.h ../notify/notifypool.h ../templates/locale.h -upload.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h -upload.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h -upload.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/cur.h -upload.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h -upload.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -upload.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h -upload.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h +upload.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +upload.o: ../core/session.h ../core/user.h ../core/plugindata.h +upload.o: ../core/rebus.h ../core/system.h ../core/dirs.h +upload.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +upload.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +upload.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +upload.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h +upload.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h +upload.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h +upload.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h +upload.o: ../core/cur.h ../core/mounts.h ../core/mount.h +upload.o: ../core/mountparser.h ../core/users.h ../core/groups.h +upload.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +upload.o: ../core/basethread.h ../core/sessionmanager.h +upload.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +upload.o: ../core/request.h uptime.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h uptime.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h uptime.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -473,22 +480,23 @@ uptime.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h uptime.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h uptime.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h uptime.o: ../core/textstream.h indexpatterns.h ../core/config.h -uptime.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -uptime.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -uptime.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -uptime.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +uptime.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h uptime.o: ../core/request.h ../core/requesttypes.h ../core/error.h -uptime.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -uptime.o: ../core/user.h ../core/plugindata.h ../core/rebus.h -uptime.o: ../core/system.h ../core/dirs.h ../core/dircontainer.h -uptime.o: ../notify/notify.h ../notify/notifypool.h ../templates/locale.h -uptime.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h -uptime.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h -uptime.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/cur.h -uptime.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h -uptime.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -uptime.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h -uptime.o: ../core/sessioncontainer.h ../core/system.h +uptime.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +uptime.o: ../core/session.h ../core/user.h ../core/plugindata.h +uptime.o: ../core/rebus.h ../core/system.h ../core/dirs.h +uptime.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +uptime.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +uptime.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +uptime.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h +uptime.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h +uptime.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h +uptime.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h +uptime.o: ../core/cur.h ../core/mounts.h ../core/mount.h +uptime.o: ../core/mountparser.h ../core/users.h ../core/groups.h +uptime.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +uptime.o: ../core/basethread.h ../core/sessionmanager.h +uptime.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h user.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h user.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h user.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -497,14 +505,14 @@ user.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h user.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h user.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h user.o: ../core/textstream.h indexpatterns.h ../core/config.h -user.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -user.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -user.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -user.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +user.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h user.o: ../core/request.h ../core/requesttypes.h ../core/error.h -user.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -user.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -user.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h +user.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +user.o: ../core/session.h ../core/user.h ../core/plugindata.h ../core/rebus.h +user.o: ../core/system.h ../core/dirs.h ../core/dircontainer.h ../db/db.h +user.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ../core/error.h +user.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h +user.o: ../core/dircontainer.h ../core/ugcontainer.h ../notify/notify.h user.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h user.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h user.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h @@ -512,8 +520,8 @@ user.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h user.o: ../core/mount.h ../core/mountparser.h ../core/users.h user.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h user.o: ../core/basethread.h ../core/sessionmanager.h -user.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -user.o: ../core/misc.h +user.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +user.o: ../core/request.h ../core/misc.h who.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h who.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h ../../ezc/src/item.h who.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -522,22 +530,22 @@ who.o: ../core/confparser.h htmltextstream.h ../core/textstream.h who.o: ../core/user.h patterncacher.h ../core/item.h ckeditorgetparser.h who.o: ../core/httpsimpleparser.h ../core/log.h ../core/textstream.h who.o: indexpatterns.h ../core/config.h ../core/confparser.h -who.o: ../core/htmlfilter.h ../db/db.h ../db/dbbase.h ../db/dbconn.h -who.o: ../db/dbtextstream.h ../core/error.h ../core/log.h ../db/dbitemquery.h -who.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h -who.o: ../core/ugcontainer.h ../core/cur.h ../core/request.h -who.o: ../core/requesttypes.h ../core/error.h ../core/config.h +who.o: ../core/htmlfilter.h ../core/cur.h ../core/request.h +who.o: ../core/requesttypes.h ../core/error.h ../core/log.h ../core/config.h who.o: ../templates/htmltextstream.h ../core/session.h ../core/user.h who.o: ../core/plugindata.h ../core/rebus.h ../core/system.h ../core/dirs.h -who.o: ../core/dircontainer.h ../notify/notify.h ../notify/notifypool.h +who.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +who.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +who.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +who.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h who.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h who.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h who.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h who.o: ../core/cur.h ../core/mounts.h ../core/mount.h ../core/mountparser.h who.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h who.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h -who.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -who.o: ../core/misc.h +who.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +who.o: ../core/request.h ../core/misc.h winix.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h winix.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h winix.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -546,34 +554,35 @@ winix.o: localefilter.h locale.h ../core/confparser.h htmltextstream.h winix.o: ../core/textstream.h ../core/user.h patterncacher.h ../core/item.h winix.o: ckeditorgetparser.h ../core/httpsimpleparser.h ../core/log.h winix.o: ../core/textstream.h indexpatterns.h ../core/config.h -winix.o: ../core/confparser.h ../core/htmlfilter.h ../db/db.h ../db/dbbase.h -winix.o: ../db/dbconn.h ../db/dbtextstream.h ../core/error.h ../core/log.h -winix.o: ../db/dbitemquery.h ../db/dbitemcolumns.h ../core/group.h -winix.o: ../core/dircontainer.h ../core/ugcontainer.h ../core/cur.h +winix.o: ../core/confparser.h ../core/htmlfilter.h ../core/cur.h winix.o: ../core/request.h ../core/requesttypes.h ../core/error.h -winix.o: ../core/config.h ../templates/htmltextstream.h ../core/session.h -winix.o: ../core/user.h ../core/plugindata.h ../core/rebus.h ../core/system.h -winix.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h -winix.o: ../notify/notifypool.h ../templates/locale.h ../templates/misc.h -winix.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h -winix.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h -winix.o: ../core/lastcontainer.h ../core/cur.h ../core/mounts.h -winix.o: ../core/mount.h ../core/mountparser.h ../core/users.h -winix.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h -winix.o: ../core/basethread.h ../core/sessionmanager.h -winix.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h -winix.o: ../core/plugin.h ../core/pluginmsg.h ../core/sessionmanager.h -winix.o: ../functions/functions.h ../functions/functionbase.h -winix.o: ../core/synchro.h ../functions/functionparser.h -winix.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h -winix.o: ../functions/privchanger.h ../functions/chown.h -winix.o: ../functions/ckeditor.h ../functions/cp.h ../functions/default.h -winix.o: ../functions/download.h ../functions/emacs.h ../functions/last.h -winix.o: ../functions/login.h ../functions/logout.h ../functions/ln.h -winix.o: ../functions/ls.h ../functions/mkdir.h ../functions/mv.h -winix.o: ../functions/node.h ../functions/priv.h ../functions/reload.h -winix.o: ../functions/rm.h ../functions/run.h ../functions/specialdefault.h -winix.o: ../functions/stat.h ../functions/subject.h ../functions/template.h +winix.o: ../core/log.h ../core/config.h ../templates/htmltextstream.h +winix.o: ../core/session.h ../core/user.h ../core/plugindata.h +winix.o: ../core/rebus.h ../core/system.h ../core/dirs.h +winix.o: ../core/dircontainer.h ../db/db.h ../db/dbbase.h ../db/dbconn.h +winix.o: ../db/dbtextstream.h ../core/error.h ../db/dbitemquery.h +winix.o: ../db/dbitemcolumns.h ../core/group.h ../core/dircontainer.h +winix.o: ../core/ugcontainer.h ../notify/notify.h ../notify/notifypool.h +winix.o: ../templates/locale.h ../templates/misc.h ../notify/notifythread.h +winix.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h +winix.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h +winix.o: ../core/cur.h ../core/mounts.h ../core/mount.h ../core/mountparser.h +winix.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h +winix.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h +winix.o: ../core/sessioncontainer.h ../core/system.h ../core/htmlfilter.h +winix.o: ../core/request.h ../core/plugin.h ../core/pluginmsg.h +winix.o: ../core/sessionmanager.h ../functions/functions.h +winix.o: ../functions/functionbase.h ../core/synchro.h +winix.o: ../functions/functionparser.h ../functions/adduser.h +winix.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h +winix.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h +winix.o: ../functions/default.h ../functions/download.h ../functions/emacs.h +winix.o: ../functions/last.h ../functions/login.h ../functions/logout.h +winix.o: ../functions/ln.h ../functions/ls.h ../functions/mkdir.h +winix.o: ../functions/mv.h ../functions/node.h ../functions/priv.h +winix.o: ../functions/reload.h ../functions/rm.h ../functions/run.h +winix.o: ../functions/specialdefault.h ../functions/stat.h +winix.o: ../functions/subject.h ../functions/template.h winix.o: ../functions/tinymce.h ../functions/uname.h ../functions/upload.h winix.o: ../functions/uptime.h ../functions/who.h ../functions/vim.h -winix.o: ../core/htmlfilter.h ../templates/templates.h ../core/misc.h +winix.o: ../templates/templates.h ../core/misc.h diff --git a/templates/locale.cpp b/templates/locale.cpp index e33477a..77dcd2f 100755 --- a/templates/locale.cpp +++ b/templates/locale.cpp @@ -17,6 +17,7 @@ Locale::Locale() { locale_files.push_back(L"en"); loc_tab.resize(locale_files.size()); + loc_tab_multi.resize(locale_files.size()); default_lang = 0; current_lang = 0; @@ -32,6 +33,7 @@ void Locale::SetLocaleFiles(const std::vector & files) locale_files.push_back(L"en"); loc_tab.resize(locale_files.size()); + loc_tab_multi.resize(locale_files.size()); } @@ -86,6 +88,13 @@ void Locale::AddLocale(size_t lang) for( ; i != loc_parser.table_single.end() ; ++i) loc_tab[lang][i->first] = i->second; + + + // lists + ConfParser::Table::iterator i2 = loc_parser.table.begin(); + + for( ; i2 != loc_parser.table.end() ; ++i2) + loc_tab_multi[lang][i2->first] = i2->second; } @@ -180,6 +189,12 @@ void Locale::Read(const std::wstring & dir, const std::wstring & dir_def) } +size_t Locale::Size() const +{ + return loc_tab.size(); +} + + void Locale::SetLang(size_t lang) { current_lang = lang; @@ -260,6 +275,26 @@ bool Locale::IsKey(const std::wstring & key, size_t lang) const } +bool Locale::IsKeyLang(const wchar_t * key, size_t lang) +{ + key_str = key; + return IsKeyLang(key_str, lang); +} + + +bool Locale::IsKeyLang(const std::wstring & key, size_t lang) const +{ + if( lang >= loc_tab.size() ) + return false; + + // looking in the 'lang' language + ConfParser::TableSingle::const_iterator i = loc_tab[lang].find(key); + +return i != loc_tab[lang].end(); +} + + + const std::wstring & Locale::Get(const wchar_t * key) { key_str = key; @@ -311,6 +346,61 @@ const std::wstring & Locale::Get(const std::wstring & key, size_t lang) const } + +bool Locale::IsKeyLangList(const wchar_t * key, size_t lang) +{ + key_str = key; + return IsKeyLangList(key_str, lang); +} + + +bool Locale::IsKeyLangList(const std::wstring & key, size_t lang) const +{ + if( lang >= loc_tab_multi.size() ) + return false; + + // looking in the 'lang' language + ConfParser::Table::const_iterator i = loc_tab_multi[lang].find(key); + +return i != loc_tab_multi[lang].end(); +} + + +const std::vector & Locale::GetList(const std::wstring & key) const +{ + return GetList(key, current_lang); +} + + +const std::vector & Locale::GetList(const std::wstring & key, size_t lang) const +{ + if( lang >= loc_tab_multi.size() ) + return empty_list; + + // looking in the 'lang' language + ConfParser::Table::const_iterator i = loc_tab_multi[lang].find(key); + + if( i != loc_tab_multi[lang].end() ) + return i->second; + + if( lang == default_lang ) + return empty_list; + + + if( default_lang >= loc_tab_multi.size() ) + return empty_list; + + // looking in a default language + i = loc_tab_multi[default_lang].find(key); + + if( i != loc_tab_multi[default_lang].end() ) + return i->second; + + // there is no such a key + return empty_list; +} + + size_t Locale::FileNameToLang(const std::wstring & str) const { for(size_t i=0 ; i & GetList(const std::wstring & key) const; + const std::vector & GetList(const std::wstring & key, size_t lang) const; + + + + // how many languages we have + size_t Size(); + // setting/getting current language // default: 0 void SetLang(size_t lang); @@ -65,7 +86,7 @@ public: const std::wstring & LangToFileName(size_t lang) const; // returning how many locale files (languages) there are - size_t Size(); + size_t Size() const; // it sets whether we should parse locale files as utf-8 files // default: false @@ -93,6 +114,10 @@ private: // this table has the same size as locale_files (at least one item) std::vector loc_tab; + // messages vector + // this table has the same size as locale_files (at least one item) + std::vector loc_tab_multi; + // these tables are used to change url characters std::wstring subst_original; std::wstring subst_changeto; @@ -103,6 +128,7 @@ private: std::string file_name; std::wstring key_str; const std::wstring empty; // used when returning a non existing key from loc_tab (or in LangToFileName) + const std::vector empty_list; // the same as above std::string adir1, adir2; size_t default_lang; // index to loc_tab size_t current_lang; // index to loc_tab diff --git a/templates/templates.cpp b/templates/templates.cpp index 3dab55e..8e0cb80 100755 --- a/templates/templates.cpp +++ b/templates/templates.cpp @@ -25,6 +25,7 @@ PatternCacher pattern_cacher; // patterns for user items (files with an exec Locale locale; EzcFun ezc_functions; LocaleFilter locale_filter; +HTMLFilter html_filter; CKEditorGetParser ckeditor_getparser; // used by GenerateRunRaw() @@ -500,6 +501,34 @@ using namespace TemplatesFunctions; } +void Templates::SetHtmlFilter() +{ +using namespace TemplatesFunctions; + + html_filter.TrimWhite(config->html_filter_trim_white); + html_filter.BreakWord(config->html_filter_break_word); + html_filter.WrapLine(config->html_filter_wrap_line); + html_filter.InsertTabs(config->html_filter_tabs); + html_filter.ClearOrphans(); + + if( config->html_filter_orphans ) + { + html_filter.OrphansMode(config->html_filter_orphans_mode); + + for(size_t i=0 ; i