return __pakfire_string_set(buffer + l, length - l, appendix);
}
+int __pakfire_string_appendf(char* buffer, size_t length, const char* format, ...) {
+ char* appendix = NULL;
+ va_list args;
+ int r;
+
+ va_start(args, format);
+ r = vasprintf(&appendix, format, args);
+ va_end(args);
+
+ // Return on error
+ if (r < 0)
+ return r;
+
+ // Append the string
+ r = __pakfire_string_append(buffer, length, appendix);
+ free(appendix);
+
+ return r;
+}
+
int pakfire_string_search(const char* haystack, ssize_t lhaystack,
const char* needle, ssize_t lneedle) {
// Check inputs
__pakfire_string_append(s, sizeof(s), appendix)
int __pakfire_string_append(char* buffer, size_t length, const char* appendix);
+#define pakfire_string_appendf(s, format, ...) \
+ __pakfire_string_appendf(s, sizeof(s), format, __VA_ARGS__)
+int __pakfire_string_appendf(char* buffer, size_t length, const char* format, ...)
+ __attribute__((format(printf, 3, 4)));
+
int pakfire_string_search(const char* haystack, ssize_t lhaystack,
const char* needle, ssize_t lneedle);