Expose util function to truncate first line

Move the local implementation from adb functions to the string util
functions.
This commit is contained in:
Romain Vimont
2021-11-17 18:25:56 +01:00
parent 443cb14d6e
commit f2781a8b6d
4 changed files with 32 additions and 12 deletions

View File

@@ -253,17 +253,6 @@ adb_execute_for_output(const char *serial, const char *const adb_cmd[],
return r;
}
static size_t
truncate_first_line(char *data, size_t len) {
data[len - 1] = '\0';
char *eol = strpbrk(data, "\r\n");
if (eol) {
*eol = '\0';
len = eol - data;
}
return len;
}
char *
adb_get_serialno(void) {
char buf[128];
@@ -275,6 +264,6 @@ adb_get_serialno(void) {
return NULL;
}
truncate_first_line(buf, r);
sc_str_truncate_first_line(buf, r);
return strdup(buf);
}

View File

@@ -291,3 +291,14 @@ error:
free(buf.s);
return NULL;
}
size_t
sc_str_truncate_first_line(char *data, size_t len) {
data[len - 1] = '\0';
char *eol = strpbrk(data, "\r\n");
if (eol) {
*eol = '\0';
len = eol - data;
}
return len;
}

View File

@@ -103,4 +103,15 @@ sc_str_from_wchars(const wchar_t *s);
char *
sc_str_wrap_lines(const char *input, unsigned columns, unsigned indent);
/**
* Truncate the data after the first line
*
* An '\0' is always written at the end of the data, even if no newline
* character is encountered.
*
* Return the size of the resulting line.
*/
size_t
sc_str_truncate_first_line(char *data, size_t len);
#endif