HTMLv: "../" works, URL "/sys/bg.gif" will be opened in kiv, except text-view in HTMLv

git-svn-id: svn://kolibrios.org@2428 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2012-03-03 23:29:02 +00:00
parent d6faa0933b
commit ba28bfb5a8
4 changed files with 40 additions and 38 deletions

View File

@ -53,7 +53,6 @@ void main()
//] Asper
IF (param) copystr(#param,#URL);
BrowserHistory.AddUrl();
copystr(#URL,#editURL);
if (!strcmp(get_URL_part(5),"http:"))) HttpLoad();
@ -103,7 +102,6 @@ void main()
ELSE
{
WB1.Scan(btn);
//WB1.HttpLoad(#URL);
}
BREAK;
case evKey:

View File

@ -1,3 +1,9 @@
хх.хх.12 -- v0.80
- поддержка <body> "bgcolor=" и "text=";
- обработка перехода вверх "../";
- jpg, gif, png открываются через kiv.
29.02.12 -- v0.76 -- 11.3
- исправлена работа кнопки "Назад";
- в историю посещённых страниц не может быть добавлено 2 одинаковых адреса подряд;

View File

@ -62,23 +62,31 @@ char line[330],
void TWebBrowser::Scan(dword id) {
if (id > 399)
{
//Lee 21.02 {
GetURLfromPageLinks(id);
//эту всю хрень нужно в GetNewUrl() переместить
IF (URL[0] == '#') { //мы не умеем переходить по ссылке внутри документа. Пока что...
copystr(#editURL, #URL);
return;
}
GetURLfromPageLinks(id);
URL[find_symbol(#URL, '#')-1] = 0x00; //заглушка, лучше, чем ничего (хабр, например, будет работать)
GetNewUrl();
if (!strcmp(get_URL_part(5),"http:"))) HttpLoad();
//Lee 21.02 }
//прыгает изображение полоса, белая рисуется снизу
if (!strcmp(#URL + strlen(#URL) - 4, ".gif")) || (!strcmp(#URL + strlen(#URL) - 4, ".png")) || (!strcmp(#URL + strlen(#URL) - 4, ".jpg"))
{
RunProgram("/sys/media/kiv", #URL);
copystr(#editURL, #URL);
return;
}
copystr(#URL, #editURL);
za_kadrom = count = 0;
if (!strcmp(get_URL_part(5),"http:")) HttpLoad();
ShowPage(#URL);
return;
}
@ -175,23 +183,27 @@ void TWebBrowser::Scan(dword id) {
}
void GetNewUrl(){
IF (!strcmp(get_URL_part(2),"./")) copystr(#URL+1,#URL);
//IF (!strcmp(get_URL_part(3),"../"))
//{
// //DrawTitle(#URL+7);
//}
if (strcmp(get_URL_part(3),"/rd")<>0) && (strcmp(get_URL_part(5),"/sys/")<>0) && (strcmp(get_URL_part(3),"/hd")<>0)
&& (strcmp(get_URL_part(3),"/bd")<>0) && (strcmp(get_URL_part(3),"/fd")<>0) && (strcmp(get_URL_part(3),"/cd")<>0)
IF (!strcmp(get_URL_part(2),"./")) copystr(#URL+2,#URL);
if (URL[0] <> '/')
&& (strcmp(get_URL_part(5),"http:")<>0) && (strcmp(get_URL_part(5),"mailt")<>0) && (strcmp(get_URL_part(5),"ftp:/")<>0)
{
copystr(BrowserHistory.CurrentUrl(), #editURL); //достаём адрес текущей страницы
IF (editURL[find_symbol(#editURL, '/')-2]<>'/') // åñëè íå http://pagename.ua
_CUT_ST_LEVEL_MARK:
IF (editURL[find_symbol(#editURL, '/')-2]<>'/') // если не http://pagename.ua <-- нахрена эта строка???
{
editURL[find_symbol(#editURL, '/')] = 0x00; //обрезаем её урл до последнего /
IF (URL[0]=='/') copystr(#URL+1,#URL);
}
IF (!strcmp(get_URL_part(3),"../")) //на уровень вверх
{
copystr(#URL+3,#URL);
editURL[find_symbol(#editURL, '/')-1] = 0x00; //обрезаем её урл до последнего /
goto _CUT_ST_LEVEL_MARK;
}
copystr(#URL, #editURL + strlen(#editURL)); //клеим новый адрес
copystr(#editURL, #URL);
}

View File

@ -57,25 +57,11 @@
òàáû. Êîå-êàêèå ñèìâîëû: &quot; &amp; &lt; &gt; &#149; &nbsp; &copy; &reg; &bdquo; &ldquo; &#151; ¯æà÷îê ³íøîãî áîêó ð. ªâôðàò ç'¿â ´ðóíò òà ºâðåéñüêèé ´åðáàëàéô.
<hr color="grey">
<p><a href='index.htm'>Íà ãëàâíóþ ñòðàíèöó</a></p>
<p><a href="index.htm" id="#end">×òåíèå íå ïîñëåäíåãî òåãà</a></p>
<p><a href="img_mv.files/logo.jpg" id="#end">Ïîñìîòðèòå íÿøíîå èçîáðàæåíèå</a></p>
1 &#39;
2 &quot;
3 &uarr;
4 &uarr
5 &darr;
6 &laquo;
7 &raquo;
8 &gt;
9 &minus;
10 &lt;
11 &gt;
12 &ndash;
13 &rsquo;
14 &ldquo;
<p><a href='index.htm'>Íà ãëàâíóþ ñòðàíèöó index.htm</a></p>
<p><a href='/sys/index.htm'>/sys/index.htm </a></p>
<p><a href="index.htm#home" id="#end">index.htm#home</a></p>
<p><a href="./index.htm">./index.htm</a></p>
<p><a href="background.gif">Ôîíîâàÿ êàðòèíêà</a></p>
</body>
</html>