游戏王残局简化版

Annotation For 残局文料/lua_lib/u8_to_a.lua
Login

Annotation For 残局文料/lua_lib/u8_to_a.lua

Lines of 残局文料/lua_lib/u8_to_a.lua from check-in 7f8375e5c1 that are changed by the sequence of edits moving toward check-in d8252d8549:

                         1: local ffi = require("ffi")
7f8375e5c1 2024-02-13    2: local d_4 = {}
                         3: ffi.cdef([[
                         4: typedef unsigned int UINT;
                         5: typedef unsigned long DWORD;
                         6: typedef wchar_t WCHAR;
                         7: typedef WCHAR* LPWSTR;
                         8: typedef wchar_t* LPCWCH;
                         9: typedef char CHAR;
                        10: typedef CHAR* LPSTR;
                        11: typedef const char* LPCCH;
                        12: typedef int BOOL;
                        13: typedef BOOL* LPBOOL;
                        14: int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCCH lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);
                        15: int WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWCH lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cchMultiByte, LPCCH lpDefaultChar, LPBOOL pfUsedDefaultChar);
                        16: ]])
7f8375e5c1 2024-02-13   17: d_4.CP_ACP = 0
7f8375e5c1 2024-02-13   18: d_4.CP_UTF8 = 65001
                        19: --~ 算机_基统_窗群
7f8375e5c1 2024-02-13   20: function d_4.m2w(input, o1)
7f8375e5c1 2024-02-13   21:   local wlen = ffi.C.MultiByteToWideChar(o1 or d_4.CP_ACP, 0, input, #input, nil, 0)
                        22:   local wstr = ffi.new("wchar_t[?]", wlen + 1)
7f8375e5c1 2024-02-13   23:   ffi.C.MultiByteToWideChar(o1 or d_4.CP_ACP, 0, input, #input, wstr, wlen)
                        24:   return wstr, wlen
                        25: end
7f8375e5c1 2024-02-13   26: function d_4.w2m(wstr, wlen, o1)
7f8375e5c1 2024-02-13   27:   local len = ffi.C.WideCharToMultiByte(o1 or d_4.CP_ACP, 0, wstr, wlen or -1, nil, 0, nil, nil)
                        28:   local str = ffi.new("char[?]", len)
7f8375e5c1 2024-02-13   29:   ffi.C.WideCharToMultiByte(o1 or d_4.CP_ACP, 0, wstr, wlen or -1, str, len, nil, nil)
                        30:   return ffi.string(str, len)
                        31: end
                        32: --~ 通用大字集_八位
7f8375e5c1 2024-02-13   33: function d_4.u8_to_a(input)
7f8375e5c1 2024-02-13   34:   return d_4.w2m(d_4.m2w(input, d_4.CP_UTF8))
7f8375e5c1 2024-02-13   35: end
7f8375e5c1 2024-02-13   36: function d_4.a_to_u8(input)
7f8375e5c1 2024-02-13   37:   local k1, k2 = d_4.m2w(input)
7f8375e5c1 2024-02-13   38:   return d_4.w2m(k1, k2, d_4.CP_UTF8)
7f8375e5c1 2024-02-13   39: end
7f8375e5c1 2024-02-13   40: return d_4