X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcommon%2Fstring-utils%2Fstring-utils.h;h=3cafa0f8a91fddb38b7d72dd353f324617ecc34d;hb=4878de5c7deb512bbdac4fdfc498907efa06fb7c;hp=6c357c1a77e699d354e63e0b1bb5aa7998fb4b5e;hpb=f181fa5afa242b51c1a6cd8868f56a579a7e39a0;p=lttng-tools.git diff --git a/src/common/string-utils/string-utils.h b/src/common/string-utils/string-utils.h index 6c357c1a7..3cafa0f8a 100644 --- a/src/common/string-utils/string-utils.h +++ b/src/common/string-utils/string-utils.h @@ -1,18 +1,8 @@ /* - * Copyright (C) 2017 - Philippe Proulx + * Copyright (C) 2017 Philippe Proulx * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License, version 2 only, as - * published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 51 - * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _STRING_UTILS_H @@ -20,26 +10,38 @@ #include #include +#include -LTTNG_HIDDEN void strutils_normalize_star_glob_pattern(char *pattern); -LTTNG_HIDDEN bool strutils_is_star_glob_pattern(const char *pattern); -LTTNG_HIDDEN bool strutils_is_star_at_the_end_only_glob_pattern(const char *pattern); -LTTNG_HIDDEN char *strutils_unescape_string(const char *input, char only_char); -LTTNG_HIDDEN -char **strutils_split(const char *input, char delim, bool escape_delim); +int strutils_split(const char *input, char delim, bool escape_delim, + struct lttng_dynamic_pointer_array *out_strings); -LTTNG_HIDDEN void strutils_free_null_terminated_array_of_strings(char **array); -LTTNG_HIDDEN size_t strutils_array_of_strings_len(char * const *array); +/* + * Append `append` to the malloc-end string `str`. + * + * On success, `str` is free'd (if not NULL) and assigned a new malloc-ed + * string. On failure, `str` is not modified. + * + * Return 0 on success, -ENOMEM on failure. + */ +C_LINKAGE int strutils_append_str(char **str, const char *append); + +/* + * Like `strutils_append_str`, but the appended string is formatted using + * `fmt` and the following arguments. + */ +C_LINKAGE ATTR_FORMAT_PRINTF(2, 3) +int strutils_appendf(char **s, const char *fmt, ...); + #endif /* _STRING_UTILS_H */