Subversion Repositories Kolibri OS

Rev

Rev 2184 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2184 Rev 2228
Line 16... Line 16...
16
 int i;
16
 int i;
Line 17... Line 17...
17
 
17
 
18
 char download_path[]="/rd/1/.download";
18
 char download_path[]="/rd/1/.download";
19
//char search_path[]="http://nova.rambler.ru/search?words=";
19
//char search_path[]="http://nova.rambler.ru/search?words=";
20
 char search_path[]="http://nigma.ru/index.php?s=";
20
 char search_path[]="http://nigma.ru/index.php?s=";
Line 21... Line 21...
21
 char version[]=" Text-based Browser 23.69";
21
 char version[]=" Text-based Browser 23.70";
22
 
22
 
23
 
23
 
Line 35... Line 35...
35
 
35
 
Line 36... Line 36...
36
TWebBrowser WB1;
36
TWebBrowser WB1;
37
 
37
 
-
 
38
#include "include\history.h--"
Line 38... Line 39...
38
#include "include\history.h--"
39
#include "include\colors.h--"
39
#include "include\colors.h--"
40
#include "include\unicode_tags.h--"
40
 
41
 
41
void TWebBrowser::Scan(dword id) {
42
void TWebBrowser::Scan(dword id) {
Line 55... Line 56...
55
	IF(kolichestvo < max_kolvo_strok) SWITCH(id) {
56
	IF(kolichestvo < max_kolvo_strok) SWITCH(id) {
56
		CASE 183: CASE 184: CASE 180: CASE 181: return;
57
		CASE 183: CASE 184: CASE 180: CASE 181: return;
57
	} //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè
58
	} //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè
58
	switch (id) {
59
	switch (id) {
59
	case 011:
60
	case 011:
60
	case 004:
-
 
61
		ReadHtml();
61
		ReadHtml();
62
		break;
62
		break;
63
	case BACK:
63
	case BACK:
64
		BrowserHistory.GoBack();
64
		BrowserHistory.GoBack();
65
		return;
65
		return;
Line 183... Line 183...
183
		{
183
		{
184
			DeleteFile(#download_path);
184
			DeleteFile(#download_path);
185
			IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]='';
185
			IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]='';
186
			downloader_id = RunProgram("/sys/network/downloader", #URL);
186
			downloader_id = RunProgram("/sys/network/downloader", #URL);
187
			IF (downloader_id<0) RunProgram("@notify", "Error running Downloader. Internet unavilable.");
187
			IF (downloader_id<0) RunProgram("@notify", "Error running Downloader. Internet unavilable.");
-
 
188
			RunProgram("/sys/network/downloader", #URL);
188
			RETURN;
189
			RETURN;
189
		}
190
		}
190
		file_size stdcall (#download_path);
191
		file_size stdcall (#download_path);
191
	} 
192
	} 
192
	ELSE file_size stdcall (#URL);
193
	ELSE file_size stdcall (#URL);
Line 193... Line 194...
193
	
194
	
-
 
195
	filesize = EBX;
194
	filesize = EBX;
196
	IF (!filesize) return; //Lee 22.09
195
	mem_Free(buf);
197
	mem_Free(buf);
196
	buf = mem_Alloc(filesize);
198
	buf = mem_Alloc(filesize);
197
	ReadFile(0, filesize, buf, #URL);
199
	ReadFile(0, filesize, buf, #URL);
Line 219... Line 221...
219
	}
221
	}
220
	edit1.size = edit1.pos = strlen(#editURL);
222
	edit1.size = edit1.pos = strlen(#editURL);
221
	edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà
223
	edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà
Line 222... Line 224...
222
 
224
 
-
 
225
	ReadHtml(LETS_LOAD);
-
 
226
	
-
 
227
	IF (!filesize) return; //Lee 22.09
223
	ReadHtml(LETS_LOAD);
228
	
224
	wintodos(buf);
229
	wintodos(buf);
225
	ParseHTML(buf, filesize);
230
	ParseHTML(buf, filesize);
226
	IF(!strlen(buf)) {
231
	IF(!strlen(buf)) {
227
		IF (strcmp(get_URL_part(5),"http:")==0)
232
		IF (strcmp(get_URL_part(5),"http:")==0)
Line 264... Line 269...
264
	link_color = 0x0000FF;
269
	link_color = 0x0000FF;
265
	blink = 400;
270
	blink = 400;
266
	line = '';
271
	line = '';
267
	copystr("|", #page_links);
272
	copystr("|", #page_links);
268
	IF(!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà 
273
	IF(!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà 
-
 
274
	//IF(!strcmp(#URL + strlen(#URL) - 4, ".rtf")) pre_text = 1;
269
	IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
275
	IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
270
	IF(za_kadrom == 0) || (WindowRePaint) DrawBar(left, top, width - 15, 15, 0xFFFFFF); //çàêðàøèâàåì ïåðâóþ ñòðîêó
276
	IF(za_kadrom == 0) || (WindowRePaint) DrawBar(left, top, width - 15, 15, 0xFFFFFF); //çàêðàøèâàåì ïåðâóþ ñòðîêó
271
	for (; buf + fsize > bword; bword++;) {
277
	for (; buf + fsize > bword; bword++;) {
272
	  bukva = ESBYTE[bword];
278
	  bukva = ESBYTE[bword];
273
	  switch (bukva) {
279
	  switch (bukva) {
Line 337... Line 343...
337
			copystr(#bukva, #temp + strlen(#temp));
343
			copystr(#bukva, #temp + strlen(#temp));
Line 338... Line 344...
338
			
344
			
339
			bukva=Hex2Symb(#temp);
345
			bukva=Hex2Symb(#temp);
340
			IF (bukva) goto DEFAULT_MARK;
346
			IF (bukva) goto DEFAULT_MARK;
-
 
347
			break;
-
 
348
		/*case '\\': //ïîääåðæêà rtf
-
 
349
			IF(strcmp(#URL + strlen(#URL) - 4, ".rtf")<>0) goto DEFAULT_MARK;
341
			break; 
350
 
-
 
351
			bword++;
-
 
352
			IF (ESBYTE[bword] =='\'')
-
 
353
			{
-
 
354
				bword++;
342
		case '&':
355
				bukva=ESBYTE[bword];
-
 
356
				copystr(#bukva, #temp);
343
			IF(ignor_text) break;
357
 
-
 
358
				bword++;
-
 
359
				bukva=ESBYTE[bword];
-
 
360
				copystr(#bukva, #temp + strlen(#temp));
-
 
361
				
-
 
362
				bukva=Hex2Symb(#temp);
-
 
363
				IF (bukva) goto DEFAULT_MARK;
344
			bword++;
364
			}
-
 
365
			else
345
			j = 0;
366
			{
-
 
367
				FOR (j=0;   (ESBYTE[bword] <>'\\') && (buf + fsize < bword);     j++; bword++;)
346
			WHILE(ESBYTE[bword] <>';') && (j < 7) {
368
				{
347
				bukva = ESBYTE[bword];
369
					bukva = ESBYTE[bword];
-
 
370
					copystr(#bukva, #tag + strlen(#tag));
-
 
371
				}
-
 
372
				IF ((!strcmp(#tag, "par\0x0a")) || (!strcmp(#tag, "par\0x0b"))) stroka++;
-
 
373
				tag='';
-
 
374
				bword--;
-
 
375
			}
-
 
376
			break;*/
-
 
377
			
-
 
378
		case '&': //îáðàáîòêà òåãîâ òèïà  
348
				copystr(#bukva, #tag + strlen(#tag));
379
			IF(ignor_text) break;
-
 
380
			bword++;
-
 
381
			tag='';
-
 
382
			FOR (j=0;   (ESBYTE[bword] <>';') && (j < 7);     j++; bword++;)
-
 
383
			{
-
 
384
				bukva = ESBYTE[bword];
-
 
385
				copystr(#bukva, #tag + strlen(#tag));
-
 
386
			}
-
 
387
			
-
 
388
			FOR (j=0; unicode_tags[j]!=0; j+=2;) 
-
 
389
			{
349
				bword++;
390
				IF(!strcmp(#tag, unicode_tags[j]))
-
 
391
				{
-
 
392
					copystr(unicode_tags[j+1], #line + strlen(#line));
350
				j++;
393
					break 1;
351
			}
-
 
352
			bukva = ''; //âñþ ýòó õðåíü íàäî çàëàáàòü ÷åðåç ìàñèâ
-
 
353
			IF(!strcmp("nbsp", #tag)) copystr(" ", #line + strlen(#line));
-
 
354
			IF(!strcmp("copy", #tag)) || (!strcmp("#169", #tag)) copystr("(c)", #line + strlen(#line));
-
 
-
 
394
				}
-
 
395
			}
355
			IF(!strcmp("reg", #tag)) || (!strcmp("#174", #tag)) copystr("(r)", #line + strlen(#line));
396
			
356
			rez = StrToInt(#tag + 1) - 1040;
397
			rez = StrToInt(#tag + 1) - 1040;
-
 
398
			IF(tag[1] == '1') && (rez>1040) && (rez<1118) && (strlen(#tag) == 5)
357
			IF(tag[1] == '1') && (strlen(#tag) == 5) bukva = utf100tmmv_mas[rez];
399
				{
358
			IF(!strcmp("bdquo", #tag)) copystr(",,", #line + strlen(#line));
400
					bukva = utf100tmmv_mas[rez];
359
			IF(!strcmp("amp", #tag)) || (!strcmp("#38", #tag)) bukva = '&';
401
					copystr(#bukva, #line + strlen(#line));
-
 
402
					break;
-
 
403
				}
360
			IF(!strcmp("lt", #tag)) || (!strcmp("#60", #tag)) bukva = '<';
404
			
361
			IF(!strcmp("gt", #tag)) || (!strcmp("#62", #tag)) bukva = '>';
-
 
362
			IF(!strcmp("minus", #tag)) || (!strcmp("#8722", #tag)) bukva = '-';
-
 
363
			IF(!strcmp("#151", #tag)) || (!strcmp("#149", #tag)) || (!strcmp("ndash", #tag)) bukva = '-';
405
			WriteDebug("Unknown tag");
364
			IF(!strcmp("#39", #tag)) || (!strcmp("#96", #tag)) bukva = '\'';
406
			WriteDebug(#tag);
365
			IF(!strcmp("quot", #tag)) || (!strcmp("#34", #tag)) || (!strcmp("ldquo", #tag)) || (!strcmp("rdquo", #tag)) bukva = '"';
-
 
366
			tag = '';
407
			copystr(#tag, #line + strlen(#line)); //âûâîäèì íà ýêðàí íåîáðàáîòàííûé òåã, òàê áðàóçåðû çà÷åì-òî äåëàþò
367
			//break;
408
			break;
368
		default:
409
		default:
369
			DEFAULT_MARK:
410
			DEFAULT_MARK:
370
			IF(ignor_text) break;
411
			IF(ignor_text) break;
371
			IF(pre_text == 0) && (bukva == ' ') && (strcmp(#line + strlen(#line) - 1, " ") == 0) continue;
412
			IF(pre_text == 0) && (bukva == ' ') && (strcmp(#line + strlen(#line) - 1, " ") == 0) continue;
372
			//
413
			//
-
 
414
			if (stolbec + strlen(#line) > max_kolvo_stolbcov) && (w_title == 0)
373
			if (stolbec + strlen(#line) > max_kolvo_stolbcov) && (w_title == 0) {
415
			{
374
				copystr(#line + find_symbol(#line, ' '), #temp); //ïåðåíîñ ïî ñëîâàì
416
				copystr(#line + find_symbol(#line, ' '), #temp); //ïåðåíîñ ïî ñëîâàì
375
				line[find_symbol(#line, ' ')] = 0x00;
417
				line[find_symbol(#line, ' ')] = 0x00;
376
				NEXT_MARK: IF(stroka - 1 > max_kolvo_strok) && (za_kadrom <>0) break 1; //óõîäèì...
418
				NEXT_MARK: IF(stroka - 1 > max_kolvo_strok) && (za_kadrom <>0) break 1; //óõîäèì...
377
				WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //âûâîä ñòðîêè
419
				WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //âûâîä ñòðîêè
378
				TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñòðîêó âêîíöå
420
				TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó
379
				copystr(#temp, #line);
421
				copystr(#temp, #line);
380
			}
422
			}
381
			IF(pre_text == 0) && (bukva == ' ') && (stolbec == 0) && (strlen(#line) == 0) CONTINUE;
423
			IF(pre_text == 0) && (bukva == ' ') && (stolbec == 0) && (strlen(#line) == 0) CONTINUE;
382
			copystr(#bukva, #line + strlen(#line));
424
			copystr(#bukva, #line + strlen(#line));