8,7 → 8,7 |
|
char download_path[]="/rd/1/.download"; |
char search_path[]="http://nigma.ru/index.php?s="; |
char version[]=" Text-based Browser 0.97.6"; |
char version[]=" Text-based Browser 0.97.7"; |
|
|
struct TWebBrowser { |
27,7 → 27,7 |
TWebBrowser WB1; |
|
byte rez, b_text, i_text, u_text, s_text, pre_text, blq_text, li_text, |
link, ignor_text, li_tab, first_line_drawed; |
link, ignor_text, li_tab, first_line_drawed, cur_encoding; |
|
|
dword text_colors[300], |
262,6 → 262,7 |
else |
ReadFile(0, filesize, buf, #URL); |
|
cur_encoding = encoding; |
if (encoding==_WIN) wintodos(buf); |
if (encoding==_UTF) utf8rutodos(buf); |
if (encoding==_KOI) koitodos(buf); |
282,7 → 283,7 |
DeleteFile(#download_path); |
IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]=''; |
downloader_id = RunProgram("/sys/network/downloader", #URL); |
//ýòî ãåíèàëüíî è ýòî ïèçäåö!!! |
//Browser Hack v2.0 |
Pause(60); |
if (GetProcessSlot(downloader_id)<>0) |
{ |
376,11 → 377,55 |
break; |
} |
case 0x0d: |
debug("0x0d"); |
bukva = ' '; |
goto DEFAULT_MARK; |
case '=': //ïîääåðæêà øàéòàíñêîé êîäèðîâêè ñòðàíèö, ñîõðàí¸ííûõ ÷åðåç ÈÅ7 |
if (strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK; |
|
bword++; |
bukva=ESBYTE[bword]; |
strcpy(#temp,#bukva); |
bword++; |
bukva=ESBYTE[bword]; |
strcat(#temp,#bukva); |
|
bukva=Hex2Symb(#temp); |
if (bukva) goto DEFAULT_MARK; |
break; |
|
case '&': // and so on |
bword++; |
tag=0; |
for (j=0; (ESBYTE[bword]<>';') && (j<7); j++, bword++;) |
{ |
bukva = ESBYTE[bword]; |
strcat(#tag, #bukva); |
} |
|
for (j=0; unicode_tags[j]!=0; j+=2;) |
{ |
if (!strcmp(#tag, unicode_tags[j])) |
{ |
strcat(#line, unicode_tags[j+1]); |
break 1; |
} |
} |
|
rez = atoi(#tag + 1) - 1040; |
if (tag[1] == '1') && (rez>=0) && (rez<=72) && (strlen(#tag) == 5) |
{ |
bukva = unicode_chars[rez]; |
//GOTO DEFAULT_MARK; //îáðàáàòûâàåì áóêâó ëó÷øå íàâåðíî strcat(#line, unicode_tags[j+1]); è break 1; |
strcat(#line, #bukva); |
break; |
} |
|
strcat(#line,#tag); //âûâîäèì íà ýêðàí íåîáðàáîòàííûé òåã, òàê áðàóçåðû çà÷åì-òî äåëàþò |
break; |
case '<': |
bword++; //ïðîìîòàåì ñèìâîë < |
tag = parametr = tagparam = ignor_param = 0; |
tag = parametr = tagparam = ignor_param = NULL; |
if (ESBYTE[bword] == '!') //ôèëüòðàöèÿ âíóòðè <!-- -->, äåðçêî |
{ |
bword++; |
416,62 → 461,19 |
strlwr(#tag); |
strlwr(#tagparam); |
|
if (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=''; //for br/ |
if (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=NULL; //for br/ |
if (tagparam) && (strlen(#tagparam) < 4000) GetNextParam(); |
|
DrawPage(); |
line=0; |
line=NULL; |
|
if (tag) WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //îáðàáîòêà òåãîâ |
|
tag = parametr = tagparam = ignor_param = '\0'; |
tag = parametr = tagparam = ignor_param = NULL; |
break; |
case '=': //ïîääåðæêà øàéòàíñêîé êîäèðîâêè ñòðàíèö, ñîõðàí¸ííûõ ÷åðåç ÈÅ7 |
if (strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK; |
|
bword++; |
bukva=ESBYTE[bword]; |
strcpy(#temp,#bukva); |
bword++; |
bukva=ESBYTE[bword]; |
strcat(#temp,#bukva); |
|
bukva=Hex2Symb(#temp); |
if (bukva) goto DEFAULT_MARK; |
break; |
|
case '&': // and so on |
bword++; |
tag=0; |
for (j=0; (ESBYTE[bword]<>';') && (j<7); j++, bword++;) |
{ |
bukva = ESBYTE[bword]; |
strcat(#tag, #bukva); |
} |
|
for (j=0; unicode_tags[j]!=0; j+=2;) |
{ |
if (!strcmp(#tag, unicode_tags[j])) |
{ |
strcat(#line, unicode_tags[j+1]); |
break 1; |
} |
} |
|
rez = atoi(#tag + 1) - 1040; |
if (tag[1] == '1') && (rez>=0) && (rez<=72) && (strlen(#tag) == 5) |
{ |
bukva = unicode_chars[rez]; |
//GOTO DEFAULT_MARK; //îáðàáàòûâàåì áóêâó ëó÷øå íàâåðíî strcat(#line, unicode_tags[j+1]); è break 1; |
strcat(#line, #bukva); |
break; |
} |
|
strcat(#line,#tag); //âûâîäèì íà ýêðàí íåîáðàáîòàííûé òåã, òàê áðàóçåðû çà÷åì-òî äåëàþò |
break; |
default: |
DEFAULT_MARK: |
if (!pre_text) && (bukva == ' ') && (line[strlen(#line)-1]==' ') break; |
if (!pre_text) && (bukva == ' ') && (line[strlen(#line)-1]==' ') break; //óáðàòü 2 ïðîáåëà ïîäðÿä |
// |
if (stolbec + strlen(#line) > lines.column_max) |
{ |
514,9 → 516,6 |
{ |
if (strlen(#version)+strlen(#line)+2>sizeof(header)) |
{ |
//line = 123456789 |
//header = 1234 |
//line = 56789 |
strcpy(#temp, #line); |
temp[sizeof(header)-strlen(#version)-2]=0; |
strcpy(#header, #temp); |
572,7 → 571,7 |
dword hr_color; |
|
dword image; |
char temp[4096]; |
char temp[4096], alt[4096]; |
int w=0, h=0, img_lines_first=0; |
|
//ïðîâåðÿåì òåã îòêðûâàåòñÿ èëè çàêðûâàåòñÿ |
782,9 → 781,10 |
IMG_TAG: |
if (!strcmp(#parametr,"src=")) //íàäî îáúåäèíèòü ñ GetNewUrl() |
{ |
if (downloader_id!=0) strcpy(#temp, #history_list[history_current-1].Item); |
if (downloader_id) strcpy(#temp, #history_list[history_current-1].Item); |
else strcpy(#temp, BrowserHistory.CurrentUrl()); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû |
if (!strcmpn(#temp, "http:", 5)) || (!strcmpn(#options, "http:", 5)) return; |
if (strcmpn(#temp, "http:", 5)!=0) || (strcmpn(#options, "http:", 5)!=0) |
{ |
temp[strrchr(#temp, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî / |
strcat(#temp, #options); |
image=load_image(#temp); |
791,12 → 791,13 |
w=DSWORD[image+4]; |
h=DSWORD[image+8]; |
} |
/*if (!strcmp(#parametr,"alt=")) |
} |
if (!strcmp(#parametr,"alt=")) |
{ |
strcpy(#tag, "[Image: "); |
strcat(#tag, #options); |
strcat(#tag, "]"); |
}*/ |
strcpy(#alt, "["); |
strcat(#alt, #options); |
strcat(#alt, "]"); |
} |
|
IF(tagparam) |
{ |
804,7 → 805,11 |
GOTO IMG_TAG; |
} |
|
if (!image) return; |
if (!image) |
{ |
if (alt) && (link) strcat(#line, #alt); |
return; |
} |
|
if (w>width1) w=width1; |
|