Browse Source

update:补全api注释

mw 3 years ago
parent
commit
de1fe5cf22
1 changed files with 45 additions and 7 deletions
  1. 45 7
      components/iconv/luat_lib_iconv.c

+ 45 - 7
components/iconv/luat_lib_iconv.c

@@ -1,3 +1,12 @@
+/*
+@module  iconv
+@summary iconv操作
+@catalog 外设API
+@version 1.0
+@date    2023.03.03
+@demo
+@tag LUAT_USE_ICONV
+*/
 /*
  * luaiconv - Performs character set conversions in Lua
  * (c) 2005-08 Alexandre Erwin Ittner <aittner@gmail.com>
@@ -80,7 +89,16 @@ static iconv_t get_iconv_t(lua_State *L, int i) {
     return NULL;
 }
 
-
+/*
+打开相应字符编码转换函数
+@api iconv.open(tocode, fromcode)
+@string 释义:目标编码格式<br>取值:gb2312/ucs2/ucs2be/utf8
+@string 释义:源编码格式<br>取值:gb2312/ucs2/ucs2be/utf8
+@return table 编码转换函数的转换句柄
+@usage
+--unicode大端编码 转化为 utf8编码
+local cd = iconv.open("utf8", "ucs2be")
+*/
 static int Liconv_open(lua_State *L) {
     const char *tocode = luaL_checkstring(L, 1);
     const char *fromcode = luaL_checkstring(L, 2);
@@ -92,14 +110,25 @@ static int Liconv_open(lua_State *L) {
     return 1;
 }
 
-
+/*
+字符编码转换
+@api iconv:iconv(inbuf)
+@string 释义:待转换字符串
+@return number 释义:返回编码转换后的结果<br>取值:0成功,-1失败
+@usage
+--unicode大端编码 转化为 utf8编码
+function ucs2beToUtf8(ucs2s)
+    local cd = iconv.open("utf8", "ucs2be")
+    return cd:iconv(ucs2s)
+end
+*/
 static int Liconv(lua_State *L) {
     iconv_t cd = get_iconv_t(L, 1);
     size_t ibleft = lua_rawlen(L, 2);
     char *inbuf = (char*) luaL_checkstring(L, 2);
     char *outbuf;
     char *outbufs;
-    size_t obsize = (ibleft > 256) ? ibleft : 256; 
+    size_t obsize = (ibleft > 256) ? ibleft : 256;
     size_t obleft = obsize;
     size_t ret = -1;
     int hasone = 0;
@@ -128,7 +157,7 @@ static int Liconv(lua_State *L) {
             //     free(outbufs);
             //     return 2;   /* Incomplete character sequence */
             // } else if (errno == E2BIG) {
-            //     obleft = obsize;    
+            //     obleft = obsize;
             //     outbuf = outbufs;
             // } else {
                 lua_pushnumber(L, ERROR_UNKNOWN);
@@ -155,7 +184,7 @@ static int push_one(unsigned int cnt, char *names[], void *data) {
     int i;
 
     /* Stack: <tbl> n */
-    lua_remove(L, -1);    
+    lua_remove(L, -1);
     for (i = 0; i < cnt; i++) {
         /* Stack> <tbl> */
         lua_pushnumber(L, n++);
@@ -165,7 +194,7 @@ static int push_one(unsigned int cnt, char *names[], void *data) {
     }
     lua_pushnumber(L, n);
     /* Stack: <tbl> n */
-    return 0;   
+    return 0;
 }
 
 
@@ -183,7 +212,16 @@ static int Liconvlist(lua_State *L) {
 
 #endif
 
-
+/*
+关闭字符编码转换
+@api iconv.close(cd)
+@string iconv.open返回的句柄
+@return nil 无返回值
+@usage
+--关闭字符编码转换
+local cd = iconv.open("utf8", "ucs2be")
+iconv.close(cd)
+*/
 static int Liconv_close(lua_State *L) {
     iconv_t cd = get_iconv_t(L, 1);
     if (iconv_close(cd) == 0)