增加 xy_str_take_until_newline

This commit is contained in:
Mikachu2333
2025-10-01 15:46:36 +08:00
committed by 曾奥然
parent 027c40c8e9
commit da003f5fd1

View File

@@ -644,6 +644,32 @@ xy_str_find (const char *str, const char *substr)
return result;
}
/**
* @brief 获取字符串下一行的内容
* @note 将忽略开头的换行,截取至下一个换行前(不含换行符)
*/
static char *
xy_str_take_until_newline (const char *str)
{
if (!str)
return xy_strdup ("");
const char *cur = str;
while (*cur == '\n')
cur++;
if ('\0' == *cur)
return xy_strdup ("");
const char *newline = strchr (cur, '\n');
size_t len = newline ? (size_t) (newline - cur) : strlen (cur);
char *ret = xy_malloc0 (len + 1);
strncpy (ret, cur, len);
ret[len] = '\0';
return ret;
}
/**