Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4507 → Rev 4508

/programs/cmm/TWB/TWB.c
1,6 → 1,3
#include "..\lib\draw_buf.h"
#include "..\lib\list_box.h"
#include "..\lib\cursor.h"
#include "..\TWB\links.h"
 
int downloader_id;
25,7 → 22,6
DrawBufer DrawBuf;
void GetNewUrl();
void ReadHtml();
void ShowPage();
void ParseHTML();
void WhatTextStyle();
void DrawPage();
175,38 → 171,12
}
 
 
void TWebBrowser::ShowPage()
{
address_box.size = address_box.pos = strlen(#editURL);
address_box.offset=0;
edit_box_draw stdcall(#address_box);
PageLinks.Clear();
 
if (!filesize)
{
DrawBar(list.x, list.y, list.w+scroll_wv.size_x+1, list.h, 0xFFFFFF); //fill all
if (GetProcessSlot(downloader_id)<>0) WriteText(list.x + 10, list.y + 18, 0x80, 0, "Loading...");
else
{
WriteText(list.x + 10, list.y + 18, 0x80, 0, "Page not found. May be, URL contains some errors.");
if (!strncmp(#URL,"http:",5)) WriteText(list.x + 10, list.y + 32, 0x80, 0, "Or Internet unavilable for your configuration.");
}
//return;
}
else
ParseHTML(buf);
 
if (!header) strcpy(#header, #version);
if (!strcmp(#version, #header)) DrawTitle(#header);
}
 
 
 
void TWebBrowser::ParseHTML(dword bword){
void TWebBrowser::ParseHTML(dword bufpos){
word bukva[2];
int j, perenos_num;
byte ignor_param;
char temp[768];
dword bufstart = bufpos;
b_text = i_text = u_text = s_text = blq_text =
li_text = link = ignor_text = text_color_index = text_colors[0] = li_tab =
230,9 → 200,9
if (!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
}
for ( ; buf+filesize > bword; bword++;)
for ( ; bufstart+filesize > bufpos; bufpos++;)
{
bukva = ESBYTE[bword];
bukva = ESBYTE[bufpos];
if (ignor_text) && (bukva!='<') continue;
if (condition_text_active) && (condition_text_val != condition_href) && (bukva!='<') continue;
switch (bukva)
256,49 → 226,49
case '=': //quoted printable
if (strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK;
 
temp[0] = ESBYTE[bword+1];
temp[1] = ESBYTE[bword+2];
temp[0] = ESBYTE[bufpos+1];
temp[1] = ESBYTE[bufpos+2];
temp[2] = '\0';
if (bukva = Hex2Symb(#temp))
{
bword+=2;
bufpos+=2;
goto DEFAULT_MARK;
}
break;
case '&': //&nbsp; and so on
bword++;
bufpos++;
tag=0;
for (j=0; (ESBYTE[bword]<>';') && (j<7); j++, bword++;)
for (j=0; (ESBYTE[bufpos]<>';') && (j<7); j++, bufpos++;)
{
bukva = ESBYTE[bword];
bukva = ESBYTE[bufpos];
chrcat(#tag, bukva);
}
if (bukva = GetUnicodeSymbol()) goto DEFAULT_MARK;
break;
case '<':
bword++; //ïðîìîòàåì ñèìâîë <
bufpos++; //ïðîìîòàåì ñèìâîë <
tag = parametr = tagparam = ignor_param = NULL;
if (ESBYTE[bword] == '!') //ôèëüòðàöèÿ âíóòðè <!-- -->, äåðçêî
if (ESBYTE[bufpos] == '!') //ôèëüòðàöèÿ âíóòðè <!-- -->, äåðçêî
{
bword++;
if (ESBYTE[bword] == '-')
bufpos++;
if (ESBYTE[bufpos] == '-')
{
HH_:
do
{
bword++;
if (buf + filesize <= bword) break 2;
bufpos++;
if (bufstart + filesize <= bufpos) break 2;
}
while (ESBYTE[bword] <>'-');
while (ESBYTE[bufpos] <>'-');
bword++;
if (ESBYTE[bword] <>'-') goto HH_;
bufpos++;
if (ESBYTE[bufpos] <>'-') goto HH_;
}
}
while (ESBYTE[bword] !='>') && (bword < buf + filesize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
while (ESBYTE[bufpos] !='>') && (bufpos < bufstart + filesize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
{
bukva = ESBYTE[bword];
bukva = ESBYTE[bufpos];
if (bukva == '\9') || (bukva == '\x0a') || (bukva == '\x0d') bukva = ' ';
if (!ignor_param) && (bukva <>' ')
{
309,7 → 279,7
ignor_param = true;
if (!ignor_text) && (strlen(#tagparam)+1<sizeof(tagparam)) strcat(#tagparam, #bukva);
}
bword++;
bufpos++;
}
strlwr(#tag);
strlwr(#tagparam);
376,7 → 346,7
{
anchor=NULL;
list.first=anchor_line_num;
ParseHTML(buf);
ParseHTML(bufstart);
}
DrawScroller();
}
649,6 → 619,7
 
scroll_wv.all_redraw=1;
scroll_wv.start_x = list.x + list.w;
scroll_wv.start_y = list.y;
scroll_wv.size_y=list.h;
 
scrollbar_v_draw(#scroll_wv);