about summary refs log tree commit diff
path: root/src/libstddjb/string_quote.c
blob: c3a38f0ffbf5c9f83cab55a8ffc453abe48b9285 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* ISC license. */

#include <skalibs/stralloc.h>
#include <skalibs/skamisc.h>

int string_quote_options (stralloc *sa, char const *s, size_t len, uint32_t options)
{
  size_t base = sa->len ;
  int wasnull = !sa->s ;
  if (!stralloc_catb(sa, "\"", 1)) return 0 ;
  if (!string_quote_nodelim_mustquote_options(sa, s, len, "\"", 1, options) || !stralloc_catb(sa, "\"", 1))
  {
    if (wasnull) stralloc_free(sa) ; else sa->len = base ;
    return 0 ;
  }
  return 1 ;
}