diff --git a/programs/network/htmlv/browser/History.txt b/programs/network/htmlv/browser/History.txt
index 34ed9007b6..18055933ed 100644
--- a/programs/network/htmlv/browser/History.txt
+++ b/programs/network/htmlv/browser/History.txt
@@ -1,3 +1,7 @@
+13.09.11 -- v0.69 -- 11.2 Кб
+- нормальная прокрутка изображений;
+- оптимизация процедуры парсинга тега с параметрами.
+
05.09.11 -- v0.68 -- 11.2 Кб
- устранён вылет программы при неправильном параметре color тега - алсо
иногда действительно полезно читать маны;
diff --git a/programs/network/htmlv/browser/TWB.h-- b/programs/network/htmlv/browser/TWB.h--
index 6ecc6409d3..289085bf1b 100644
--- a/programs/network/htmlv/browser/TWB.h--
+++ b/programs/network/htmlv/browser/TWB.h--
@@ -18,7 +18,7 @@ dword j,
char download_path[]="/rd/1/.download";
//char search_path[]="http://nova.rambler.ru/search?words=";
char search_path[]="http://nigma.ru/index.php?s=";
- char version[]=" Text-based Browser 23.68";
+ char version[]=" Text-based Browser 23.69";
struct TWebBrowser {
@@ -421,48 +421,42 @@ void TWebBrowser::ParseHTML(dword bword, fsize){
}
-void GetNextParam() {
- dword kavichki = false,
- i = strlen(#tagparam) - 1;
-
- WHILE((i > 0) && (tagparam[i] == '"') || (tagparam[i] == ' ') || (tagparam[i] == '\'') || (tagparam[i] == '/'))
+void GetNextParam()
+{
+ byte kavichki = false;
+ int i = strlen(#tagparam) - 1;
+
+ WHILE((i > 0) && ((tagparam[i] == '"') || (tagparam[i] == ' ') || (tagparam[i] == '\'') || (tagparam[i] == '/')))
{
- IF (tagparam[i] == '"') kavichki=1;
- IF (tagparam[i] == '\'') kavichki=2;
+ IF (tagparam[i] == '"') || (tagparam[i] == '\'') kavichki=tagparam[i];
tagparam[i] = 0x00;
i--;
}
- IF (kavichki==1) // "
+ IF (kavichki)
{
- i=find_symbol(#tagparam, '"');
+ i=find_symbol(#tagparam, kavichki);
copystr(#tagparam + i, #options);
}
- ELSE IF (kavichki==2) // '
- {
- i=find_symbol(#tagparam, '\'');
- copystr(#tagparam + i, #options);
- }
-
ELSE
{
- //i=find_symbol(#tagparam, '=');
- WHILE((i > 0) && (tagparam[i] <>'=')) i--;
- i+=1;
+ WHILE((i > 0) && (tagparam[i] <>'=')) i--; //i=find_symbol(#tagparam, '=')+1;
+ i++;
+
copystr(#tagparam + i, #options); //копируем опцию
WHILE (options[0] == ' ') copystr(#options + 1, #options);
}
tagparam[i] = 0x00;
- //
- WHILE((tagparam[i] <>' ') && (i > 0)) {
- IF(tagparam[i] == '=') //дерзкая заглушка
+ FOR ( ; ((tagparam[i] <>' ') && (i > 0); i--)
+ {
+ IF (tagparam[i] == '=') //дерзкая заглушка
{
//copystr(#tagparam+i+2,#options);
tagparam[i + 1] = 0x00;
}
- i--;
}
+
copystr(#tagparam + i + 1, #parametr); //копируем параметр
tagparam[i] = 0x00;
}
@@ -474,8 +468,8 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
dword hr_color;
dword image=0;
- char temp[1024];
- int w, h;
+ char temp[4096];
+ int w, h, img_za_kadrom=0;
IF(tag[0] == '/') {
rez = 0;
@@ -665,29 +659,22 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
if (top1+hWB1.top+WB1.height-10) //если ВСЁ изображение ушло ВЕРХ или ВНИЗ
return;
-
+
if (top1WB1.top+WB1.height-h-10) //если часть изображения снизу IF (stroka - 2 < max_kolvo_strok)
{
- //WriteDebug(IntToStr(top1));
- //WriteDebug(IntToStr(WB1.top));
- //WriteDebug(IntToStr(h));
h=WB1.top+WB1.height-top1-10;
}
-
- //WriteDebug(IntToStr(h));
- //Pause(10);
-
IF (h<=0) return;
- img_draw stdcall (image,left1-5,top1+10,w, h,0,0);
- //WriteDebug("Good");
+ img_draw stdcall (image,left1-5,top1+10,w, h,0,img_za_kadrom);
DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, 0xFFFFFF);
}
return;