From dd03e76f65955bde2de789f3efc650aaf33a831d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?shuxin=20=E3=80=80=E3=80=80zheng?= Date: Tue, 30 Jan 2024 09:52:26 +0800 Subject: [PATCH] modify readme --- README.md | 25 +++++++------------------ README_CN.md | 19 ++++--------------- lib_acl/samples/coder/main.c | 24 +++++++++++++++++++++--- 3 files changed, 32 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 94b6e027d..6350e3584 100644 --- a/README.md +++ b/README.md @@ -45,10 +45,9 @@ Architecture diagram: * [5. More about](#5-more-about) * [5.1. Samples](#51-samples) * [5.2. FAQ](#52-faq) - * [5.3. Who are using acl?](#53-who-are-using-acl) - * [5.4. License](#54-license) - * [5.5. Reference](#55-reference) - * [5.6. Thanks](#56-thanks) + * [5.3. License](#53-license) + * [5.4. Reference](#54-reference) + * [5.5. Thanks](#55-thanks)
@@ -420,26 +419,16 @@ There are a lot of examples in the acl library for reference, please refer to: [ ## 5.2. FAQ If you have some questions when using Acl, please see [FAQ.md](FAQ.md). -## 5.3. Who are using acl? -[![iqiyi](res/logo/logo_iqiyi.png)](http://www.iqiyi.com/) -[![263](res/logo/logo_263.png)](http://www.263.net/) -[![hexun](res/logo/logo_hexun.png)](http://www.hexun.com/) -[![v1](res/logo/logo_v1.png)](http://www.v1.cn/) -[![ksyun](res/logo/logo_ksyun.png)](https://www.ksyun.com/) -[![weibangong](res/logo/logo_weibangong.png)](https://www.weibangong.com/) -[![xianyou](res/logo/logo_xianyou.png)](http://www.i3game.com/) -[![foundao](res/logo/logo_foundao.png)](http://www.foundao.com/) - -## 5.4. License +## 5.3. License - LGPL-v3 license (see [LICENSE.txt](LICENSE.txt) in the acl project) -## 5.5. Reference +## 5.4. Reference - Web site: https://blog.csdn.net/zsxxsz - Github: https://github.com/acl-dev/acl - Gitee: https://gitee.com/acl-dev/acl - Weibo: http://weibo.com/zsxxsz - QQ Group: 705290654 -## 5.6. Thanks +## 5.5. Thanks -Thanks for the supporting of Acl development. +Thanks . diff --git a/README_CN.md b/README_CN.md index 4c8fa3b62..da3412051 100644 --- a/README_CN.md +++ b/README_CN.md @@ -49,9 +49,8 @@ * [3.5、图例](#35图例) * [3.6、acl 库中有大量示例可供参考,请参考:SAMPLES.md](#36acl-库中有大量示例可供参考请参考samplesmd) * [3.7、acl 使用 FAQ](#37acl-使用-faq-参考-faqmd) -* [四、谁在使用acl](#四谁在使用acl) -* [五、使用许可](#五使用许可) -* [六、参考](#六参考) +* [四、使用许可](#四使用许可) +* [五、参考](#五参考) @@ -305,20 +304,10 @@ acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD ### 3.6、acl 库中有大量示例可供参考,请参考:[SAMPLES.md](SAMPLES.md) ### 3.7、acl 使用 FAQ 参考 [FAQ.md](FAQ.md) -## 四、谁在使用acl -[![iqiyi](res/logo/logo_iqiyi.png)](http://www.iqiyi.com/) -[![263](res/logo/logo_263.png)](http://www.263.net/) -[![hexun](res/logo/logo_hexun.png)](http://www.hexun.com/) -[![v1](res/logo/logo_v1.png)](http://www.v1.cn/) -[![ksyun](res/logo/logo_ksyun.png)](https://www.ksyun.com/) -[![weibangong](res/logo/logo_weibangong.png)](https://www.weibangong.com/) -[![xianyou](res/logo/logo_xianyou.png)](http://www.i3game.com/) -[![foundao](res/logo/logo_foundao.png)](http://www.foundao.com/) - -## 五、使用许可 +## 四、使用许可 - LGPL-v3 license (see [LICENSE.txt](LICENSE.txt) in the acl project) -## 六、参考 +## 五、参考 - WEB 站点: https://blog.csdn.net/zsxxsz - Github: https://github.com/acl-dev/acl - Gitee: https://gitee.com/acl-dev/acl diff --git a/lib_acl/samples/coder/main.c b/lib_acl/samples/coder/main.c index fd5dfc3c5..e806bb0e6 100644 --- a/lib_acl/samples/coder/main.c +++ b/lib_acl/samples/coder/main.c @@ -72,11 +72,26 @@ static void crc32_encode(const char *ptr, size_t len) printf("hash result: %u\r\n", hash); } +static char *load_from(const char *filename) +{ + char *data = acl_vstream_loadfile(filename); + char *ptr = strchr(data, '\r'); + if (ptr == NULL) { + ptr = strchr(data, '\n'); + } + if (ptr) { + *ptr = 0; + } + return data; +} + static void usage(const char *prog) { printf("usage: %s -s string\r\n" " -a action[default: encode, encode|decode]\r\n" " -t type [default: base64, base64|bin|crc32]\r\n" + " -f filename\r\n" + " -s string\r\n" " -V [verbose]\r\n" " -h help]\n", prog); } @@ -95,10 +110,13 @@ int main(int argc, char *argv[]) exit (1); } - while ((ch = getopt(argc, argv, "s:a:t:hV")) > 0) { + while ((ch = getopt(argc, argv, "s:f:a:t:hV")) > 0) { switch (ch) { case 's': - buf = strdup(optarg); + buf = acl_mystrdup(optarg); + break; + case 'f': + buf = load_from(optarg); break; case 'a': if (strcasecmp(optarg, "decode") == 0) { @@ -153,7 +171,7 @@ int main(int argc, char *argv[]) } if (buf) { - free(buf); + acl_myfree(buf); } #if 0