From 66f8ed5fc23c62e76f1b7b31164739276d84eaa0 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sun, 18 Nov 2012 23:43:03 +0000 Subject: [PATCH] HTMLv: fixed problem with very long lines w/o spaces git-svn-id: svn://kolibrios.org@3059 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/htmlv/browser/HTMLv.c | 3 ++- programs/network/htmlv/browser/TWB.h | 16 ++++++++++------ programs/network/htmlv/browser/compile.bat | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/programs/network/htmlv/browser/HTMLv.c b/programs/network/htmlv/browser/HTMLv.c index cbc539bbaa..31202378ed 100644 --- a/programs/network/htmlv/browser/HTMLv.c +++ b/programs/network/htmlv/browser/HTMLv.c @@ -99,7 +99,8 @@ void main() if (load_dll2(libtruetype, #truetype,0)!=0) {debug("Не удалось подключить библиотеку TrueType"w); use_truetype = 2; } else init_font(#fontlol); - if (!URL) strcpy(#URL, "/sys/home.htm"); + // if (!URL) strcpy(#URL, "/sys/home.htm"); + if (!URL) strcpy(#URL, "/sys/ololo.txt"); strcpy(#editURL, #URL); Form.width=WIN_W; diff --git a/programs/network/htmlv/browser/TWB.h b/programs/network/htmlv/browser/TWB.h index 760a1eb34e..b32a634d25 100644 --- a/programs/network/htmlv/browser/TWB.h +++ b/programs/network/htmlv/browser/TWB.h @@ -377,7 +377,6 @@ void TWebBrowser::ParseHTML(dword bword){ break; } case 0x0d: - debug("0x0d"); bukva = ' '; goto DEFAULT_MARK; case '=': //поддержка шайтанской кодировки страниц, сохранённых через ИЕ7 @@ -473,24 +472,29 @@ void TWebBrowser::ParseHTML(dword bword){ break; default: DEFAULT_MARK: - if (!pre_text) && (bukva == ' ') && (line[strlen(#line)-1]==' ') break; //убрать 2 пробела подряд - // + if (!pre_text) && (bukva == ' ') + { + if (line[strlen(#line)-1]==' ') break; //убрать 2 пробела подряд + if (!stolbec) && (!line) break; //строка не может начинаться с пробела + } + if (strlen(#line) lines.column_max) { + NEXT_MARK: perenos_num = strrchr(#line, ' '); + if (!perenos_num) && (strlen(#line)>lines.column_max) perenos_num=lines.column_max; strcpy(#temp, #line + perenos_num); //перенос по словам line[perenos_num] = 0x00; - NEXT_MARK: if (stroka >= lines.visible) && (lines.first <>0) break 1; //уходим... DrawPage(); TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //закрашиваем следущую строку strcpy(#line, #temp); } - if (!pre_text) && (bukva == ' ') && (!stolbec) && (!line) break; - if (strlen(#line)