From 1b9dbc22324dc78ab7f0fd307ef1f68c5b652484 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Fri, 18 Dec 2020 15:39:38 +0000 Subject: [PATCH] WebView 3.15: no more static buffers for parsing tag, some fixes, update page not found git-svn-id: svn://kolibrios.org@8445 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/rus/docs/guide/hardware_support.htm | 6 ++--- programs/cmm/browser/TWB/parse_tag.h | 25 ++++++++++-------- programs/cmm/browser/WebView.c | 6 ++--- .../cmm/browser/res/page_not_found_en.htm | 21 ++++----------- .../cmm/browser/res/page_not_found_ru.htm | 26 ++++++------------- 5 files changed, 33 insertions(+), 51 deletions(-) diff --git a/data/rus/docs/guide/hardware_support.htm b/data/rus/docs/guide/hardware_support.htm index eb2a500451..60f2ef4251 100644 --- a/data/rus/docs/guide/hardware_support.htm +++ b/data/rus/docs/guide/hardware_support.htm @@ -35,7 +35,7 @@ VIDINTEL запускается автоматически, его функци Драйверы ATIKMS и i915 портированы из Линукса. Они дают поддержку аппаратного курсора мыши, смену видеорежимов через утилиту VMODE и акселерацию двумерной графики. Без использования данных драйверов выбор разрешения экрана возможен лишь на этапе загрузки, но не в процессе работы системы. -

Аудио

+

Аудио

Поддерживаются большинство аудиокарт стандарта AC97, HDAudio и SB16. Список конкретных поддерживаемых карт есть на вики. Также поддерживается вывод звука на наушники. @@ -54,7 +54,7 @@ HDD - Поддерживается ядром чтение и запись в р Поддерживаются USB 1.1 и 2.0 (UHCI, OHCI and EHCI). Также есть поддержка хабов. USB 3.0 (XHCI) не поддерживается. -

Сеть

+

Сеть

Wi-Fi не поддерживается. Ethernet cетевые контроллеры поддерживаются драйверами в составе ядра ОС, но ведётся активная работа по выносу кода в динамически подгружаемые драйвера. В таблице ниже перечислены поддерживаемые системой в настоящее время. @@ -76,7 +76,7 @@ rtl8169 Realtek 8110/8111/8167/8168/8169 sis900 SiS900, 7016 * - в разработке -

Устройства ввода и вывода

+

Устройства ввода и вывода

COM-мышь поддерживается драйвером, см. SYSPANEL > AUTORUN. Встроенный динамик поддерживается ядром ОС, по-умолчанию выключен. Включается в программе SYSPANEL > SETUP. HDMI ограниченная поддержка, смотрите документацию к видео-драйверам ATIKMS и i915. diff --git a/programs/cmm/browser/TWB/parse_tag.h b/programs/cmm/browser/TWB/parse_tag.h index cb3f980528..8fbe70ade2 100644 --- a/programs/cmm/browser/TWB/parse_tag.h +++ b/programs/cmm/browser/TWB/parse_tag.h @@ -121,7 +121,7 @@ dword _tag::get_next_param(dword ps, pe) // "q" - quote char char q = NULL; dword fixeq; - unsigned char val[6000]; + dword val; dword attr; if (ESBYTE[pe] == '/') pe--; @@ -136,9 +136,9 @@ dword _tag::get_next_param(dword ps, pe) //find VAL start and copy pe = strrchr(ps, q) + ps; - strlcpy(#val, pe, sizeof(val)-1); - ESBYTE[pe] = '\0'; + val = pe; pe--; + ESBYTE[pe] = '\0'; //find ATTR end while (pe > ps) && (ESBYTE[pe] != '=') pe--; @@ -148,7 +148,7 @@ dword _tag::get_next_param(dword ps, pe) { //find VAL start and copy while (pe > ps) && (ESBYTE[pe] != '=') pe--; - strlcpy(#val, pe+1, sizeof(val)-1); + val = pe+1; ESBYTE[pe] = '\0'; //already have ATTR end } @@ -157,22 +157,25 @@ dword _tag::get_next_param(dword ps, pe) while (pe>ps) && (!__isWhite(ESBYTE[pe])) pe--; attr = pe + 1; ESBYTE[pe] = '\0'; - - //fix case: src=./images/KolibriOS_logo2.jpg?sid=e8ece8b38b + + // Fix case: src=./images/logo?sid=e8ece8b38b + // Exchange '=' and '\0' position. + // attr: src=./images/logo?sid => src + // val: e8ece8b38b => ./images/logo?sid=e8ece8b38b fixeq = strchr(attr,'='); if (!q) && (fixeq) { - strlcpy(#val, fixeq+1, sizeof(val)-1); - ESBYTE[fixeq+1] = '\0'; + ESBYTE[val-1] >< ESBYTE[fixeq]; + val = fixeq+1; } strlwr(attr); - strrtrim(#val); + strrtrim(val); attributes.add(attr); - values.add(#val); + values.add(val); if (debug_mode) { debug("atr: "); debugln(attr); - debug("val: "); debugln(#val); + debug("val: "); debugln(val); debugch('\n'); } diff --git a/programs/cmm/browser/WebView.c b/programs/cmm/browser/WebView.c index 2ce4321c78..b6ab4a32b2 100644 --- a/programs/cmm/browser/WebView.c +++ b/programs/cmm/browser/WebView.c @@ -41,7 +41,7 @@ // DATA // // // //===================================================// -char version[]="WebView 3.14"; +char version[]="WebView 3.15"; #define DEFAULT_URL URL_SERVICE_HOMEPAGE @@ -75,7 +75,7 @@ proc_info Form; dword cur_img_url; dword shared_url; -dword http_get_type; +dword http_get_type=PAGE; dword render_start_time; int menu_id=NULL; @@ -723,7 +723,7 @@ void LoadInternalPage(dword _bufdata, _in_bufsize){ } else { WB1.DrawPage(); } - if (WB1.img_url.count) GetImg(true); + if (WB1.img_url.count) { GetImg(true); DrawOmnibox(); } } } diff --git a/programs/cmm/browser/res/page_not_found_en.htm b/programs/cmm/browser/res/page_not_found_en.htm index f3cde41b8c..6dc0f98333 100644 --- a/programs/cmm/browser/res/page_not_found_en.htm +++ b/programs/cmm/browser/res/page_not_found_en.htm @@ -1,27 +1,16 @@ - - -Page not found - +Page not found

 Webpage Not Available

 What could be done:

\ No newline at end of file diff --git a/programs/cmm/browser/res/page_not_found_ru.htm b/programs/cmm/browser/res/page_not_found_ru.htm index 7b47fc12d0..401d77bdc2 100644 --- a/programs/cmm/browser/res/page_not_found_ru.htm +++ b/programs/cmm/browser/res/page_not_found_ru.htm @@ -4,24 +4,14 @@ -

 -࠭ 㯭

-

  ᤥ:

+

 -࠭ 㯭

+ - - \ No newline at end of file