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"},
|
||||
{"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
|
||||
{"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
|
||||
{"LIB/NETCODE.OBJ", "common/lib/netcode.obj"},
|
||||
{"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
|
||||
{"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
|
||||
{"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/DLL.OBJ", PROGS .. "/develop/libraries/dll/dll.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/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.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
|
||||
tup.append_table(img_files, {
|
||||
{"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/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;
|
||||
if (custom_encoding != -1) {
|
||||
cur_encoding = custom_encoding;
|
||||
bufpointer = ChangeCharset(cur_encoding, "CP866", bufpointer);
|
||||
bufpointer = ChangeCharset(cur_encoding, CH_CP866, bufpointer);
|
||||
bufsize = strlen(bufpointer);
|
||||
}
|
||||
}
|
||||
@ -197,7 +197,6 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
||||
#tag.name, draw_x, draw_y, #linebuf));
|
||||
}
|
||||
//*/
|
||||
|
||||
RenderTextbuf();
|
||||
if (debug_mode) { debugch('<'); if(!tag.opened)debugch('/'); debug(#tag.name); debugln(">"); }
|
||||
$push cur_encoding
|
||||
@ -257,9 +256,9 @@ void TWebBrowser::ChangeEncoding(int _new_encoding)
|
||||
{
|
||||
if (cur_encoding == _new_encoding) return;
|
||||
cur_encoding = _new_encoding;
|
||||
bufpointer = ChangeCharset(cur_encoding, "CP866", bufpointer);
|
||||
bufpointer = ChangeCharset(cur_encoding, CH_CP866, bufpointer);
|
||||
if (header) {
|
||||
ChangeCharset(cur_encoding, "CP866", #header);
|
||||
ChangeCharset(cur_encoding, CH_CP866, #header);
|
||||
DrawTitle(#header);
|
||||
}
|
||||
}
|
||||
|
@ -107,4 +107,4 @@ char editbox_icons[] = FROM "res/editbox_icons.raw";
|
||||
|
||||
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
||||
|
||||
char version[]="WebView 3.62";
|
||||
char version[]="WebView 3.62b";
|
@ -6,6 +6,10 @@
|
||||
#include "../lib/kolibri.h"
|
||||
#endif
|
||||
|
||||
#ifndef INCLUDE_ENCODING_H
|
||||
#include "../lib/encoding.h"
|
||||
#endif
|
||||
|
||||
dword iconv_lib = #a_iconv_lib;
|
||||
char a_iconv_lib[]="/sys/lib/iconv.obj";
|
||||
|
||||
@ -23,32 +27,28 @@ dword ChangeCharset(dword from_chs, to_chs, conv_buf)
|
||||
{
|
||||
dword cd, in_len, out_len, new_buf;
|
||||
|
||||
from_chs = from_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
|
||||
iconv_open stdcall (from_chs*10+#charsets, to_chs*10+#charsets);
|
||||
if (EAX==-1) {
|
||||
debugln("iconv: unsupported charset");
|
||||
return 0;
|
||||
}
|
||||
cd = EAX;
|
||||
|
||||
in_len = out_len = strlen(conv_buf)+1;
|
||||
new_buf = mem_Alloc(in_len);
|
||||
in_len = strlen(conv_buf)+1;
|
||||
out_len = in_len * 2;
|
||||
new_buf = mem_Alloc(out_len);
|
||||
iconv stdcall (cd, #conv_buf, #in_len, #new_buf, #out_len);
|
||||
if (EAX!=0)
|
||||
{
|
||||
cd = EAX;
|
||||
debugval("iconv: something is wrong with stdcall iconv()", cd);
|
||||
debugval("in_len", in_len);
|
||||
debugval("out_len", out_len);
|
||||
new_buf = free(new_buf);
|
||||
return conv_buf;
|
||||
debugval("iconv failed", cd);
|
||||
if (from_chs == CH_UTF8) && (to_chs == CH_CP866) {
|
||||
utf8rutodos(conv_buf);
|
||||
}
|
||||
} else {
|
||||
strcpy(conv_buf, new_buf);
|
||||
}
|
||||
strcpy(conv_buf, new_buf);
|
||||
free(new_buf);
|
||||
free(new_buf);
|
||||
return conv_buf;
|
||||
}
|
||||
|
||||
|
@ -10,16 +10,14 @@
|
||||
#include "../lib/dll.h"
|
||||
#endif
|
||||
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_decode = #aBase64_decode;
|
||||
dword qp_decode = #aQp_decode;
|
||||
$DD 2 dup 0
|
||||
|
||||
char aBase64_encode[] = "base64_encode";
|
||||
char aBase64_decode[] = "base64_decode";
|
||||
char aQp_decode[] = "qp_decode";
|
||||
|
||||
/*int base64_encode(char inp[], char outp[], int len);
|
||||
Кодирование массива inp длиной len в массив outp (строку с '\0'). Функция возвращает длину outp.
|
||||
|
Loading…
Reference in New Issue
Block a user