aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs6f/s6f_equote.c
blob: 41cef42bc4295a9bb5f3556d2add629e4ba33a85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* ISC license. */

#include <string.h>

#include "s6f.h"

size_t s6f_equote_space (char const *const *argv, unsigned int argc)
{
  size_t l = 0 ;
  for (unsigned int i = 0 ; i < argc ; i++) l += i + 2 + strlen(argv[i]) ;
  return l ;
}

unsigned int s6f_equote (char const **newargv, char const *const *argv, unsigned int argc, char *s)
{
  for (unsigned int i = 0 ; i < argc ; i++)
  {
    newargv[i] = s ;
    *s++ = ' ' ;
    s = stpcpy(s, argv[i]) + 1 ;
  }
  newargv[argc] = "" ;
  return argc + 1 ;
}