diff --git a/data/Tupfile.lua b/data/Tupfile.lua index ef0c3efd78..8ced44f28f 100644 --- a/data/Tupfile.lua +++ b/data/Tupfile.lua @@ -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"}, }) diff --git a/data/common/lib/netcode.obj b/data/common/lib/netcode.obj deleted file mode 100644 index 854239d8b0..0000000000 Binary files a/data/common/lib/netcode.obj and /dev/null differ diff --git a/programs/cmm/browser/TWB/TWB.c b/programs/cmm/browser/TWB/TWB.c index 4a97ccbc53..f8344d8f64 100644 --- a/programs/cmm/browser/TWB/TWB.c +++ b/programs/cmm/browser/TWB/TWB.c @@ -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); } } diff --git a/programs/cmm/browser/const.h b/programs/cmm/browser/const.h index 33a4ad8ea5..3e2e0e1cfd 100644 --- a/programs/cmm/browser/const.h +++ b/programs/cmm/browser/const.h @@ -107,4 +107,4 @@ char editbox_icons[] = FROM "res/editbox_icons.raw"; #define DEFAULT_URL URL_SERVICE_HOMEPAGE -char version[]="WebView 3.62"; \ No newline at end of file +char version[]="WebView 3.62b"; \ No newline at end of file diff --git a/programs/cmm/lib/obj/iconv.h b/programs/cmm/lib/obj/iconv.h index 138d8f210a..b57ccef031 100644 --- a/programs/cmm/lib/obj/iconv.h +++ b/programs/cmm/lib/obj/iconv.h @@ -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; } diff --git a/programs/cmm/lib/obj/netcode.h b/programs/cmm/lib/obj/netcode.h index e2591d174d..cb18f0bfe8 100644 --- a/programs/cmm/lib/obj/netcode.h +++ b/programs/cmm/lib/obj/netcode.h @@ -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.