forked from KolibriOS/kolibrios
IMG:
- replace netcode.obj by base64.obj - add lib/libcrash.obj WEBVIEW: - use custom utf8rutodos() if iconv() failed (the case for forum.old-dos.ru) git-svn-id: svn://kolibrios.org@9304 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a3c4521c77
commit
3b314ebaf8
@ -39,7 +39,6 @@ img_files = {
|
|||||||
{"FONTS/TAHOMA.KF", "common/fonts/tahoma.kf"},
|
{"FONTS/TAHOMA.KF", "common/fonts/tahoma.kf"},
|
||||||
{"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
|
{"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
|
||||||
{"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
|
{"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
|
||||||
{"LIB/NETCODE.OBJ", "common/lib/netcode.obj"},
|
|
||||||
{"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
|
{"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
|
||||||
{"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
|
{"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
|
||||||
{"MEDIA/IMGF/CEDG.OBJ", "common/media/ImgF/cEdg.obj"},
|
{"MEDIA/IMGF/CEDG.OBJ", "common/media/ImgF/cEdg.obj"},
|
||||||
@ -486,6 +485,7 @@ tup.append_table(img_files, {
|
|||||||
{"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
|
{"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
|
||||||
{"LIB/DLL.OBJ", PROGS .. "/develop/libraries/dll/dll.obj"},
|
{"LIB/DLL.OBJ", PROGS .. "/develop/libraries/dll/dll.obj"},
|
||||||
{"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
|
{"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
|
||||||
|
{"LIB/LIBCRASH.OBJ", PROGS .. "/develop/libraries/libcrash/libcrash.obj"},
|
||||||
{"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
|
{"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
|
||||||
{"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
|
{"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
|
||||||
{"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
|
{"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
|
||||||
@ -722,6 +722,7 @@ end -- tup.getconfig('NO_TCC') ~= 'full'
|
|||||||
if tup.getconfig('NO_GCC') ~= 'full' then
|
if tup.getconfig('NO_GCC') ~= 'full' then
|
||||||
tup.append_table(img_files, {
|
tup.append_table(img_files, {
|
||||||
{"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
|
{"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
|
||||||
|
{"LIB/BASE64.OBJ", PROGS .. "/develop/libraries/base64/base64.obj"},
|
||||||
{"LIB/LIBC.OBJ", PROGS .. "/develop/ktcc/trunk/libc.obj/source/libc.obj"},
|
{"LIB/LIBC.OBJ", PROGS .. "/develop/ktcc/trunk/libc.obj/source/libc.obj"},
|
||||||
{"LIB/MTAR.OBJ", PROGS .. "/develop/libraries/microtar/mtar.obj"},
|
{"LIB/MTAR.OBJ", PROGS .. "/develop/libraries/microtar/mtar.obj"},
|
||||||
})
|
})
|
||||||
|
Binary file not shown.
@ -148,7 +148,7 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
cur_encoding = CH_CP866;
|
cur_encoding = CH_CP866;
|
||||||
if (custom_encoding != -1) {
|
if (custom_encoding != -1) {
|
||||||
cur_encoding = custom_encoding;
|
cur_encoding = custom_encoding;
|
||||||
bufpointer = ChangeCharset(cur_encoding, "CP866", bufpointer);
|
bufpointer = ChangeCharset(cur_encoding, CH_CP866, bufpointer);
|
||||||
bufsize = strlen(bufpointer);
|
bufsize = strlen(bufpointer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -197,7 +197,6 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
#tag.name, draw_x, draw_y, #linebuf));
|
#tag.name, draw_x, draw_y, #linebuf));
|
||||||
}
|
}
|
||||||
//*/
|
//*/
|
||||||
|
|
||||||
RenderTextbuf();
|
RenderTextbuf();
|
||||||
if (debug_mode) { debugch('<'); if(!tag.opened)debugch('/'); debug(#tag.name); debugln(">"); }
|
if (debug_mode) { debugch('<'); if(!tag.opened)debugch('/'); debug(#tag.name); debugln(">"); }
|
||||||
$push cur_encoding
|
$push cur_encoding
|
||||||
@ -257,9 +256,9 @@ void TWebBrowser::ChangeEncoding(int _new_encoding)
|
|||||||
{
|
{
|
||||||
if (cur_encoding == _new_encoding) return;
|
if (cur_encoding == _new_encoding) return;
|
||||||
cur_encoding = _new_encoding;
|
cur_encoding = _new_encoding;
|
||||||
bufpointer = ChangeCharset(cur_encoding, "CP866", bufpointer);
|
bufpointer = ChangeCharset(cur_encoding, CH_CP866, bufpointer);
|
||||||
if (header) {
|
if (header) {
|
||||||
ChangeCharset(cur_encoding, "CP866", #header);
|
ChangeCharset(cur_encoding, CH_CP866, #header);
|
||||||
DrawTitle(#header);
|
DrawTitle(#header);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -107,4 +107,4 @@ char editbox_icons[] = FROM "res/editbox_icons.raw";
|
|||||||
|
|
||||||
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
||||||
|
|
||||||
char version[]="WebView 3.62";
|
char version[]="WebView 3.62b";
|
@ -6,6 +6,10 @@
|
|||||||
#include "../lib/kolibri.h"
|
#include "../lib/kolibri.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef INCLUDE_ENCODING_H
|
||||||
|
#include "../lib/encoding.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
dword iconv_lib = #a_iconv_lib;
|
dword iconv_lib = #a_iconv_lib;
|
||||||
char a_iconv_lib[]="/sys/lib/iconv.obj";
|
char a_iconv_lib[]="/sys/lib/iconv.obj";
|
||||||
|
|
||||||
@ -23,31 +27,27 @@ dword ChangeCharset(dword from_chs, to_chs, conv_buf)
|
|||||||
{
|
{
|
||||||
dword cd, in_len, out_len, new_buf;
|
dword cd, in_len, out_len, new_buf;
|
||||||
|
|
||||||
from_chs = from_chs*10+#charsets;
|
iconv_open stdcall (from_chs*10+#charsets, to_chs*10+#charsets);
|
||||||
|
|
||||||
//debug("iconv: from_chs = "); debugln(from_chs);
|
|
||||||
//debug("iconv: to_chs = "); debugln(to_chs);
|
|
||||||
|
|
||||||
iconv_open stdcall (from_chs, to_chs); //CP866, CP1251, CP1252, KOI8-RU, UTF-8, ISO8859-5
|
|
||||||
if (EAX==-1) {
|
if (EAX==-1) {
|
||||||
debugln("iconv: unsupported charset");
|
debugln("iconv: unsupported charset");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
cd = EAX;
|
cd = EAX;
|
||||||
|
|
||||||
in_len = out_len = strlen(conv_buf)+1;
|
in_len = strlen(conv_buf)+1;
|
||||||
new_buf = mem_Alloc(in_len);
|
out_len = in_len * 2;
|
||||||
|
new_buf = mem_Alloc(out_len);
|
||||||
iconv stdcall (cd, #conv_buf, #in_len, #new_buf, #out_len);
|
iconv stdcall (cd, #conv_buf, #in_len, #new_buf, #out_len);
|
||||||
if (EAX!=0)
|
if (EAX!=0)
|
||||||
{
|
{
|
||||||
cd = EAX;
|
cd = EAX;
|
||||||
debugval("iconv: something is wrong with stdcall iconv()", cd);
|
debugval("iconv failed", cd);
|
||||||
debugval("in_len", in_len);
|
if (from_chs == CH_UTF8) && (to_chs == CH_CP866) {
|
||||||
debugval("out_len", out_len);
|
utf8rutodos(conv_buf);
|
||||||
new_buf = free(new_buf);
|
}
|
||||||
return conv_buf;
|
} else {
|
||||||
|
strcpy(conv_buf, new_buf);
|
||||||
}
|
}
|
||||||
strcpy(conv_buf, new_buf);
|
|
||||||
free(new_buf);
|
free(new_buf);
|
||||||
return conv_buf;
|
return conv_buf;
|
||||||
}
|
}
|
||||||
|
@ -10,16 +10,14 @@
|
|||||||
#include "../lib/dll.h"
|
#include "../lib/dll.h"
|
||||||
#endif
|
#endif
|
||||||
dword netcode_lib = #a_netcode_lib;
|
dword netcode_lib = #a_netcode_lib;
|
||||||
char a_netcode_lib[]="/sys/lib/netcode.obj";
|
char a_netcode_lib[]="/sys/lib/base64.obj";
|
||||||
|
|
||||||
dword base64_encode = #aBase64_encode;
|
dword base64_encode = #aBase64_encode;
|
||||||
dword base64_decode = #aBase64_decode;
|
dword base64_decode = #aBase64_decode;
|
||||||
dword qp_decode = #aQp_decode;
|
|
||||||
$DD 2 dup 0
|
$DD 2 dup 0
|
||||||
|
|
||||||
char aBase64_encode[] = "base64_encode";
|
char aBase64_encode[] = "base64_encode";
|
||||||
char aBase64_decode[] = "base64_decode";
|
char aBase64_decode[] = "base64_decode";
|
||||||
char aQp_decode[] = "qp_decode";
|
|
||||||
|
|
||||||
/*int base64_encode(char inp[], char outp[], int len);
|
/*int base64_encode(char inp[], char outp[], int len);
|
||||||
Кодирование массива inp длиной len в массив outp (строку с '\0'). Функция возвращает длину outp.
|
Кодирование массива inp длиной len в массив outp (строку с '\0'). Функция возвращает длину outp.
|
||||||
|
Loading…
Reference in New Issue
Block a user