fix searchapp

git-svn-id: svn://kolibrios.org@7756 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2020-03-27 20:18:44 +00:00
parent f608182ea2
commit 7b61a5afa1
8 changed files with 58 additions and 65 deletions

View File

@ -39,29 +39,25 @@ struct TWebBrowser {
void BufEncode();
} WB1;
dword page_bg;
#include "..\TWB\img_cache.h"
dword link_color_inactive;
dword link_color_active;
dword page_bg;
bool
link,
cur_encoding,
t_html,
t_body;
bool link, cur_encoding, t_html, t_body;
#include "..\TWB\img_cache.h"
#include "..\TWB\links.h"
dword bufpointer=0;
dword bufsize=0;
char header[150];
int body_magrin=6;
int basic_line_h=22;
char header[150];
char oldtag[100];
scroll_bar scroll_wv = { 15,200,398,44,0,2,115,15,0,0xeeeeee,0xBBBbbb,0xeeeeee,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1};
scroll_bar scroll_wv = { 15,NULL,NULL,NULL,0,2,NULL,15,0,0xeeeeee,0xBBBbbb,0xeeeeee};
//============================================================================================
void TWebBrowser::DrawStyle()
@ -251,7 +247,6 @@ void TWebBrowser::ParseHtml(){
DrawStyle();
if (tag.name) SetStyle();
}
strncpy(#oldtag, #tag.name, sizeof(oldtag)-1);
break;
default:
AddCharToTheLine(ESBYTE[bufpos]);
@ -375,9 +370,8 @@ void TWebBrowser::SetStyle() {
return;
}
if (tag.is("div")) {
if (streq(#oldtag,"div")) && (tag.opened) return;
if (streq(#tag.prior,"div")) && (tag.opened) return;
NewLine();
//IF (oldtag[0] != 'h')
return;
}
if (tag.is("header")) || (tag.is("article")) || (tag.is("footer")) || (tag.is("figure")) {
@ -385,9 +379,8 @@ void TWebBrowser::SetStyle() {
return;
}
if (tag.is("p")) {
IF (oldtag[0] == 'h') || (streq(#oldtag,"td")) || (streq(#oldtag,"p")) return;
IF (tag.prior[0] == 'h') || (streq(#tag.prior,"td")) || (streq(#tag.prior,"p")) return;
NewLine();
//IF(tag.opened) NewLine();
return;
}
if (tag.is("br")) { NewLine(); return; }

View File

@ -69,12 +69,14 @@ void ImageCache::Images(dword left1, top1, width1)
img_draw stdcall (pics[cur_pic].image, left1-5, top1, imgw, imgh,0,img_lines_first);
DrawBar(left1+imgw - 5, top1, WB1.list.w-imgw, imgh, page_bg);
DrawBar(WB1.list.x, top1+imgh, WB1.list.w, -imgh % WB1.list.item_h + WB1.list.item_h, page_bg);
/*
if (link)
{
//UnsafeDefineButton(left1 - 5, top1, imgw, imgh-1, PageLinks.count + 400 + BT_HIDE, 0xB5BFC9);
//PageLinks.AddText(0, imgw, imgh-1, NOLINE, 1);
//WB1.DrawPage();
UnsafeDefineButton(left1 - 5, top1, imgw, imgh-1, PageLinks.count + 400 + BT_HIDE, 0xB5BFC9);
PageLinks.AddText(0, imgw, imgh-1, NOLINE, 1);
WB1.DrawPage();
}
*/
}
ImageCache ImgCache;

View File

@ -2,6 +2,7 @@
struct _tag
{
char name[32];
char prior[32];
char params[5000];
bool opened;
collection attributes;
@ -25,12 +26,11 @@ bool _tag::is(dword _text)
bool _tag::reset()
{
if (!name) return false;
strcpy(#prior, #name);
name = NULL;
opened = true;
attributes.drop();
values.drop();
attributes.add("ZERO");
values.add("NULL");
return true;
}

View File

@ -58,7 +58,7 @@ char link_menu[] =
Download link contents";
#endif
#define URL_SIZE 4000;
#define URL_SIZE 4000
dword col_bg = 0xE3E2E2;
dword panel_color = 0xE3E2E2;
@ -400,25 +400,23 @@ void StopLoading()
DrawOmnibox();
}
/*
void ReplaceSpaceInUrl() {
int i;
char new_url[URL_SIZE];
strcpy(#new_url, history.current());
while (i = strchr(#new_url, ' '))
{
i -= #new_url;
strlcpy(#new_url+i+3, #new_url+i+1, URL_SIZE);
URL[i] = '%';
URL[i+1] = '2';
URL[i+2] = '0';
}
strcpy(#editURL, #new_url);
}
//rewrite into
//bool strrpl(dword dst, from, to, dst_len); !!!!!!!!
*/
void ReplaceSpaceInUrl(dword url, size) {
unsigned int i, j;
for (i=size-3; i>0; i--)
{
if (ESBYTE[i]!=' ') continue;
for (j=size-3; j>i; j--) {
ESBYTE[j+2]=ESBYTE[j+1];
ESBYTE[j+1]=ESBYTE[j];
}
ESBYTE[i] = '%';
ESBYTE[i+1] = '2';
ESBYTE[i+2] = '0';
}
debugln(url);
}
bool GetLocalFileData(dword _path)
{
@ -461,10 +459,10 @@ void OpenPage(dword _open_URL)
else LoadInternalPage(#page_not_found, sizeof(page_not_found));
} else if (!strncmp(#new_url,"http:",5)) || (!strncmp(#new_url,"https:",6)) {
//WEB PAGE
//ReplaceSpaceInUrl(); !!!!!!!!
img_draw stdcall(skin.image, address_box.left+address_box.width+1,
address_box.top-3, 17, skin.h, 85, SKIN_Y);
//ReplaceSpaceInUrl(#new_url, URL_SIZE);
if (!strncmp(#new_url,"http:",5)) {
http.get(#new_url);
} else if (!strncmp(#new_url,"https://",8)) {
@ -486,7 +484,7 @@ void OpenPage(dword _open_URL)
void EventClickLink(dword _click_URL)
{
char new_url[URL_SIZE];
char new_url[URL_SIZE+1];
if (ESBYTE[_click_URL]=='#') {
if (anchors.get_pos_by_name(_click_URL+1)!=-1) {
@ -585,10 +583,6 @@ void DrawOmnibox()
void LoadInternalPage(dword _bufdata, _in_bufsize){
if (!_bufdata) || (!_in_bufsize) {
LoadInternalPage(#page_not_found, sizeof(page_not_found));
} else if (source_mode) {
source_mode = false;
//WB1.ParseHtml();
ShowSource(_bufdata, _in_bufsize);
} else {
bufsize = _in_bufsize;
if (bufpointer!=_bufdata) free(bufpointer);
@ -600,6 +594,12 @@ void LoadInternalPage(dword _bufdata, _in_bufsize){
strcat(#editURL, #anchors.current);
DrawOmnibox();
}
if (source_mode) {
source_mode = false;
WB1.ParseHtml();
ShowSource(bufpointer, bufsize);
return;
}
WB1.ParseHtml();
WB1.DrawPage();
}

View File

@ -30,7 +30,7 @@ ShowHistory()
free(history_pointer);
history_pointer = malloc(history.items.data_size+256);
strcat(history_pointer, HISTORY_HEADER);
for (i=0; i<history.items.count; i++)
for (i=0; i<history.items.count-1; i++)
{
strcat(history_pointer, "\t<a href='");
strcat(history_pointer, history.items.get(i));

View File

@ -40,11 +40,8 @@ dword ShowSource(dword _bufdata, _in_bufsize)
opened_font_counter=0;
source_buf_end = malloc(_in_bufsize*5);
source_buf_start = source_buf_end;
header[strrchr(#header, '-')-2]=0;
SourceBufAdd(TEXT, "<html><head><title>Source: ");
SourceBufAdd(TEXT, #header);
SourceBufAdd(TEXT, "</title><body><pre>");
SourceBufAdd(TEXT, "<html><head><title>View Source</title><body><pre>");
for (i=_bufdata; i<_bufdata+_in_bufsize; i++) switch (ESBYTE[i])
{

View File

@ -54,8 +54,8 @@ enum {
#include "..\TWB\TWB.c"
#include "show_src.h"
char URL[URL_SIZE];
char editURL[URL_SIZE];
char URL[URL_SIZE+1];
char editURL[URL_SIZE+1];
int mouse_twb;
edit_box address_box = {250,60,30,0xffffff,0x94AECE,0xffffff,0xffffff,0x10000000,URL_SIZE-2,#editURL,#mouse_twb,2,19,19};

View File

@ -105,9 +105,16 @@ START:
jmp .convert
.converted:
mov [delay], ecx
;--------------------------------------
DEBUGF 1, "Searchap: get basic file\n"
call load_file ; download the master file
xor eax,eax
cmp [fs_error],eax
jne exit
mov eax,[fileinfo.size]
mov [basic_file_size],eax
.params_done:
;--------------------------------------
;mcall 5,[delay] ;first mount attempt without delay
mov ebx,start_dir
mov ax,[ebx]
mov ebx,read_folder_name
@ -117,15 +124,6 @@ START:
call device_detect_f70
;--------------------------------------
call print_retrieved_devices_table
DEBUGF 1, "Searchap: get basic file\n"
;--------------------------------------
call load_file ; download the master file
xor eax,eax
cmp [fs_error],eax
jne exit
mov eax,[fileinfo.size]
mov [basic_file_size],eax
call search_and_load_pointer_file_label
;---------------------------------------------------------------------
exit:
@ -137,6 +135,7 @@ exit:
cmp [mount_attempt], 1
je @f
mov [mount_attempt], 1 ;second mount attempt with delay
DEBUGF 2, "Searchap: second attempt after 5 seconds!\n"
mcall 5,[delay]
jmp START.params_done
@@:
@ -329,7 +328,8 @@ search_and_load_pointer_file_label:
;--------------------------------------
ret
.sucess:
call compare_files_and_mount
;call compare_files_and_mount
call compare_files_and_mount.mount_now ;no need to compare files content
cmp [compare_flag],byte 0
jne @b
cmp [mount_dir],1
@ -352,8 +352,9 @@ compare_files_and_mount:
jne .not_match
dec ecx
jnz .next_char
mov [compare_flag],byte 0
pop esi ecx
.mount_now:
mov [compare_flag],byte 0
;--------------------------------------
DEBUGF 2, "Searchap: compare files - success!\n"
DEBUGF 2, "Searchap: mount directory: %s\n",esi