Bläddra i källkod

add: 额外添加的字符串接口,也加上注释,在文档里展示

chenxuuu 4 år sedan
förälder
incheckning
4da131dc6d
2 ändrade filer med 53 tillägg och 3 borttagningar
  1. 48 3
      lua/src/lstrlib.c
  2. 5 0
      tools/documentGenerator.py

+ 48 - 3
lua/src/lstrlib.c

@@ -1,4 +1,8 @@
 /*
+@module  string
+@summary 额外添加了一些字符串操作函数
+*/
+/*
 ** $Id: lstrlib.c,v 1.254.1.1 2017/04/19 17:29:57 roberto Exp $
 ** Standard library for string operations and pattern-matching
 ** See Copyright Notice in lua.h
@@ -1537,6 +1541,18 @@ static int str_unpack (lua_State *L) {
 }
 
 /* }====================================================== */
+
+/*
+将字符串转成HEX
+@api string.toHex(str)
+@string 需要转换的字符串
+@return string HEX字符串
+@return number HEX字符串的长度
+@usage
+string.toHex("\1\2\3") --> "010203" 3
+string.toHex("123abc") --> "313233616263" 6
+string.toHex("123abc"," ") --> "31 32 33 61 62 63 " 6
+*/
 static unsigned char hexchars[] = "0123456789ABCDEF";
 static int str_toHex (lua_State *L) {
   size_t len;
@@ -1553,6 +1569,15 @@ static int str_toHex (lua_State *L) {
   lua_pushinteger(L, len*2);
   return 2;
 }
+/*
+将HEX转成字符串
+@api string.fromHex(hex)
+@string hex,16进制组成的串
+@return string 字符串
+@usage
+string.fromHex("010203")       -->  "\1\2\3"
+string.fromHex("313233616263") -->  "123abc"
+*/
 static int str_fromHex (lua_State *L) {
   size_t len;
   const char *str = luaL_checklstring(L, 1, &len);
@@ -1575,6 +1600,16 @@ static int str_fromHex (lua_State *L) {
   luaL_pushresult(&buff);
   return 1;
 }
+
+/*
+按照指定分隔符分割字符串
+@api string.split(str, delimiter)
+@string 输入字符串
+@string 分隔符
+@return table 分割后的字符串表
+@usage
+("123,456,789"):split(',') --> {'123','456','789'}
+*/
 static int str_split (lua_State *L) {
   size_t len = 0;
   const char *str = luaL_checkstring(L, 1);
@@ -1594,6 +1629,16 @@ static int str_split (lua_State *L) {
   return count;
 }
 
+/*
+返回字符串tonumber的转义字符串(用来支持超过31位整数的转换)
+@api string.toValue(str)
+@string 输入字符串
+@return string 转换后的二进制字符串
+@return number 转换了多少个字符
+@usage
+string.toValue("123456") --> "\1\2\3\4\5\6"  6
+string.toValue("123abc") --> "\1\2\3\a\b\c"  6
+*/
 static int str_toValue (lua_State *L) {
   size_t len = 0,i;
   const char *s = luaL_checklstring(L, 1, &len);
@@ -1633,9 +1678,9 @@ static int str_toValue (lua_State *L) {
   @usage
   -- 将字符串进行url编码转换
   log.info(string.urlEncode("123 abc+/"))			-->> "123+abc%2B%2F"
-  
+
   log.info(string.urlEncode("123 abc+/",1))			-->> "123%20abc%2B%2F"
-  
+
   log.info(string.urlEncode("123 abc+/",-1,1,"/"))	-->> "123%20abc%2B/"
   log.info(string.urlEncode("123 abc+/",-1,0,"/"))	-->> "123+abc%2B/"
   log.info(string.urlEncode("123 abc+/",-1,0,"/ "))	-->> "123 abc%2B/"
@@ -1650,7 +1695,7 @@ static int str_urlEncode (lua_State *L) {
   const char *str = luaL_checklstring(L, 1, &len);
   if(argc == 1)
   {
-  	mode = 0;	
+  	mode = 0;
   }
   else{
   	mode = luaL_checkinteger(L, 2);

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 5 - 0
tools/documentGenerator.py


Vissa filer visades inte eftersom för många filer har ändrats