Annotate a few prototypes with it.
#define MALLOC __attribute__((malloc))
#define NONNULL(...) __attribute__((nonnull(__VA_ARGS__)))
#define PURE __attribute__((pure))
+#define ENDNULL __attribute__((sentinel))
#define NMH_UNUSED(i) (void) i
#else
#define NORETURN
#define MALLOC
#define NONNULL(...)
#define PURE
+#define ENDNULL
#define NMH_UNUSED(i) i
#endif
int check_charset (char *, int);
int client(char *, char *, char *, int, int);
void closefds(int);
-char *concat (const char *, ...);
+char *concat (const char *, ...) ENDNULL;
int context_del (char *);
char *context_find (const char *) PURE;
char *context_find_by_type (const char *, const char *, const char *);
char res_body[RESPONSE_BODY_MAX];
};
-static boolean get_json_strings(const char *, size_t, FILE *, ...);
-static boolean make_query_url(char *, size_t, CURL *, const char *, ...);
+static boolean get_json_strings(const char *, size_t, FILE *, ...) ENDNULL;
+static boolean make_query_url(char *, size_t, CURL *, const char *, ...) ENDNULL;
static boolean post(struct curl_ctx *, const char *, const char *);
int