From 78bf2fe4a5bf37514f6dfd203ef969da0bf40c2e Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Mon, 22 Sep 2025 17:32:44 +0200 Subject: Setup project skeleton --- sanitize.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sanitize.c (limited to 'sanitize.c') diff --git a/sanitize.c b/sanitize.c new file mode 100644 index 0000000..50aee3b --- /dev/null +++ b/sanitize.c @@ -0,0 +1,54 @@ +#define _POSIX_C_SOURCE 200809L + +#include "utils.h" +#include +#include +#include +#include + +char *sanitize(const char *s) +{ + struct dynstr d; + + dynstr_init(&d); + + while (*s) + { + char ss[sizeof "\"\""] = {0}; + + switch (*s) + { + case '\'': + strcpy(ss, "\'\'"); + break; + + case '\"': + strcpy(ss, "\"\""); + break; + + default: + *ss = *s; + break; + } + + if (dynstr_append(&d, "%s", ss)) + { + fprintf(stderr, "%s: dynstr_append failed\n", __func__); + goto failure; + } + + s++; + } + + if (!d.str && dynstr_append(&d, "%c", '\0')) + { + fprintf(stderr, "%s: dynstr_append failed\n", __func__); + goto failure; + } + + return d.str; + +failure: + dynstr_free(&d); + return NULL; +} -- cgit v1.2.3