add arg_strAppend to save memory when append str

This commit is contained in:
lyon 2021-12-29 00:36:13 +08:00
parent b778bc2287
commit ef0d13c94d
3 changed files with 17 additions and 0 deletions

View File

@ -73,3 +73,11 @@ TEST(strs, format) {
TEST(strs, mem) {
EXPECT_EQ(pikaMemNow(), mem);
}
TEST(strs, arg_strAppend) {
Arg* str_arg = arg_setStr(NULL, (char*)"", (char*)"a");
str_arg = arg_strAppend(str_arg, (char*)"b");
EXPECT_STREQ(arg_getStr(str_arg), (char*)"ab");
arg_deinit(str_arg);
EXPECT_EQ(pikaMemNow(), 0);
}

View File

@ -113,3 +113,11 @@ char* strsFormat(Args* buffs, uint16_t buffSize, const char* fmt, ...) {
return res;
}
Arg* arg_strAppend(Arg* arg_in, char* str_to_append){
Args* buffs = New_strBuff();
char* str_out = strsAppend(buffs, arg_getStr(arg_in), str_to_append);
Arg* arg_out = arg_setStr(arg_in, "", str_out);
arg_deinit(arg_in);
args_deinit(buffs);
return arg_out;
}

View File

@ -39,4 +39,5 @@ char* strsRemovePrefix(Args* buffs, char* inputStr, char* prefix);
char* strsAppend(Args* buffs, char* strOrigin, char* strAppend);
char* strsFormat(Args* buffs, uint16_t buffSize, const char* fmt, ...);
char* strsGetDirectStr(Args* buffs, char* argPath);
Arg* arg_strAppend(Arg* arg_in, char* str_to_append);
#endif