Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2822 → Rev 2823

/programs/network/htmlv/browser/HTMLv.c
58,6 → 58,7
else strcpy(#URL, "/sys/index.htm");
strcpy(#editURL, #URL);
lines.column_max = 101;
WB1.OpenPage();
 
SetEventMask(0x27);
114,7 → 115,7
btn=lines.first; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
lines.first = m.y -half_scroll_size -WB1.top * lines.all / WB1.height;
IF (lines.visible+lines.first>lines.all) lines.first=lines.all-lines.visible;
IF (btn<>lines.first) WB1.ParseHTML(buf, filesize); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
IF (btn<>lines.first) WB1.ParseHTML(buf); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
m.get();
}
 
/programs/network/htmlv/browser/TWB.h
9,16 → 9,17
 
char download_path[]="/rd/1/.download";
char search_path[]="http://nigma.ru/index.php?s=";
char version[]=" Text-based Browser 0.94c";
char version[]=" Text-based Browser 0.94d";
 
 
struct TWebBrowser {
int left, top, width, height;
void Scan(int);
void GetNewUrl();
void OpenPage();
void ReadHtml(byte);
void ShowPage();
void ParseHTML(dword, dword);
void ParseHTML(dword);
void WhatTextStyle(int left1, top1, width1);
void DrawScroller();
};
52,6 → 53,7
#include "include\colors.h"
#include "include\unicode_tags.h"
#include "include\some_code.h"
#include "include\parce_tag.h"
 
 
void TWebBrowser::Scan(int id)
180,12 → 182,12
default:
RETURN;
}
ParseHTML(buf, filesize);
ParseHTML(buf);
}
 
 
 
void GetNewUrl(){
void TWebBrowser::GetNewUrl(){
IF (!strcmp(get_URL_part(2),"./")) strcpy(#URL, #URL+2); //èãíîðèì :)
if (URL[0] <> '/')
215,7 → 217,7
 
 
void TWebBrowser::ReadHtml(byte dest)
void TWebBrowser::ReadHtml(byte encoding)
{
if (!strcmp(get_URL_part(5),"http:")))
file_size stdcall (#download_path);
232,9 → 234,9
else
ReadFile(0, filesize, buf, #URL);
if (dest==_WIN) wintodos(buf);
if (dest==_UTF) utf8rutodos(buf);
if (dest==_KOI) koitodos(buf);
if (encoding==_WIN) wintodos(buf);
if (encoding==_UTF) utf8rutodos(buf);
if (encoding==_KOI) koitodos(buf);
}
 
 
287,13 → 289,13
return;
}
ParseHTML(buf, filesize);
ParseHTML(buf);
IF (!strcmp(#version, #header)) DrawTitle(#header);
}
 
 
 
void TWebBrowser::ParseHTML(dword bword, fsize){
void TWebBrowser::ParseHTML(dword bword){
word bukva[1];
int j, perenos_num;
byte ignor_param = 0;
318,7 → 320,7
debug("Start parsing");
for ( ; buf+fsize > bword; bword++;) {//ESBYTE[bword]
for ( ; buf+filesize > bword; bword++;) {//ESBYTE[bword]
bukva = ESBYTE[bword];
switch (bukva) {
case 0x0a:
350,7 → 352,7
do
{
bword++;
if (bword >= buf + fsize) break 1;
if (bword >= buf + filesize) break 1;
}
while (ESBYTE[bword] <>'-');
358,7 → 360,7
if (ESBYTE[bword] <>'-') goto HH_;
}
}
while (ESBYTE[bword] <>'>') && (bword < buf + fsize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
while (ESBYTE[bword] <>'>') && (bword < buf + filesize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
{
bukva = ESBYTE[bword];
if (bukva == '\9') || (bukva == '\x0a') || (bukva == '\x0d') bukva = ' ';
375,7 → 377,11
 
if (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=''; //íåáîëüøîé ôèêñ äëÿ ðàáîòû ñ XHTML-òåãàìè òèïà br/
if (strlen(#tagparam) > 0) && (strlen(#tagparam) < 4000) GetNextParam();
//while (tagparam)
//{
// GetNextParam();
WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //îáðàáîòêà òåãîâ
//}
 
line = tag = parametr = tagparam = ignor_param = 0; //âñ¸ îáíóëÿåì
386,7 → 392,6
bword++;
bukva=ESBYTE[bword];
strcpy(#temp,#bukva);
 
bword++;
bukva=ESBYTE[bword];
strcat(#temp,#bukva);
455,7 → 460,7
{
anchor='';
lines.first=anchor_line_num;
ParseHTML(buf, filesize);
ParseHTML(buf);
}
debug("End parsing");
463,48 → 468,6
}
 
 
void GetNextParam()
{
byte kavichki = false;
int i = strlen(#tagparam) - 1;
WHILE((i > 0) && ((tagparam[i] == '"') || (tagparam[i] == ' ') || (tagparam[i] == '\'') || (tagparam[i] == '/')))
{
IF (tagparam[i] == '"') || (tagparam[i] == '\'') kavichki=tagparam[i];
tagparam[i] = 0x00;
i--;
}
 
IF (kavichki)
{
i=find_symbol(#tagparam, kavichki);
strcpy(#options, #tagparam + i);
}
ELSE
{
WHILE((i > 0) && (tagparam[i] <>'=')) i--; //i=find_symbol(#tagparam, '=')+1;
i++;
strcpy(#options, #tagparam + i); //êîïèðóåì îïöèþ
WHILE (options[0] == ' ') strcpy(#options, #options+1);
}
tagparam[i] = 0x00;
 
FOR ( ; ((tagparam[i] <>' ') && (i > 0); i--)
{
IF (tagparam[i] == '=') //äåðçêàÿ çàãëóøêà
{
//copystr(#tagparam+i+2,#options);
tagparam[i + 1] = 0x00;
}
}
 
strcpy(#parametr, #tagparam + i + 1); //êîïèðóåì ïàðàìåòð
tagparam[i] = 0x00;
}
 
 
 
char oldtag[100];
void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
dword hr_color;
539,9 → 502,7
}
IF (ignor_text == 1) return;
//
 
//
IF(!chTag("q")) strcat(#line, "\"");
//âûâîä íà ýêðàí
563,7 → 524,7
DrawBar(stolbec * 6 + left1, top1 + 8, strlen(#line) * 6, 1, text_colors[text_color_index]);
}
}
//
 
IF(!tag) return;
stolbec += strlen(#line);
 
579,20 → 540,17
{
BODY_MARK:
if (strcmp(#parametr, "link=") == 0)
if (!strcmp(#parametr, "link="))
link_color = GetColor(#options);
if (strcmp(#parametr, "text=") == 0)
{
if (!strcmp(#parametr, "text="))
text_colors[0]=GetColor(#options);
}
if (strcmp(#parametr, "bgcolor=") == 0)
{
if (!strcmp(#parametr, "bgcolor="))
bg_color=GetColor(#options);
}
IF(tagparam) {
IF(tagparam)
{
GetNextParam();
GOTO BODY_MARK;
}
696,7 → 654,7
return;
}
/////////////////////////////
if(!chTag("li")) //íàäî ñäåëàòü âëîæåííûå ñïèñêè
if(!chTag("li")) || (!chTag("dt")) //íàäî ñäåëàòü âëîæåííûå ñïèñêè
{
li_text = rez;
IF(rez == 0) return;
725,27 → 683,40
 
if (!chTag("img"))
{
//IF (GetFileInfo(#libimg)<>0) return; //åñëè áèáëèîòåêè íåò
//if (GetFileInfo(#libimg)<>0) return; //åñëè áèáëèîòåêè íåò
IMG_TAG:
IF (strcmp(#parametr,"src=")==0) //íàäî îáúåäèíèòü ñ GetNewUrl()
if (!strcmp(#parametr,"src=")) //íàäî îáúåäèíèòü ñ GetNewUrl()
{
strcpy(#temp, BrowserHistory.CurrentUrl()); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
temp[find_symbol(#temp, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
strcat(#temp, #options);
image=load_image(#temp);
w=DSWORD[image+4];
h=DSWORD[image+8];
}
IF(tagparam) {
if (!strcmp(#parametr,"alt="))
{
strcpy(#tag, "[Image: ");
strcat(#tag, #options);
strcat(#tag, "]");
}
 
IF(tagparam)
{
GetNextParam();
GOTO IMG_TAG;
}
 
if (!image)
{
//debug(#tag);
return;
}
 
if (w>width1) w=width1;
if (image)
{
if (stroka==0) DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
stroka+=h/10;
if (top1+h<WB1.top) || (top1>WB1.top+WB1.height-10) //åñëè ÂѨ èçîáðàæåíèå óøëî ÂÅÐÕ èëè ÂÍÈÇ
753,6 → 724,7
 
if (top1<WB1.top) //åñëè ÷àñòü èçîáðàæåíèÿ ñâåðõó
{
DrawBar(left, top, width-15, 10, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
img_lines_first=WB1.top-top1;
h=h-img_lines_first;
top1=WB1.top;
772,11 → 744,6
DefineButton(left1 - 5, top1+10, w, h, blink + BT_HIDE, 0xB5BFC9);
}
 
}
/*else
{
IF (strcmp(#parametr,"alt=")==0) copystr(#options,#line+strlen(#line));
}*/
return;
}
 
/programs/network/htmlv/browser/include/acid_0.1.htm
7,6 → 7,8
 
<body bgcolor="#000000" link="#0066FF" text="#FFFFFF">
 
<img src="background.gif" alt="background">
 
<b>Ýòî òåñòîâàÿ ñòðàíèöà äëÿ ïðîâåðêè HTML Viewer</b><br />
<br />
Ýòà ïðîãðàììà ïîääåðæèâàåò âñå ïîïóëÿðíûå êîäèðîâêè: cp1251, koi-8, cp866, Unicode.<br><br>