diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-11-05 04:40:36 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2025-11-05 04:40:36 +0000 |
| commit | 6a5a4baf2454530cd7c53cada4176c3ef90afa40 (patch) | |
| tree | 7bb266ab96765ce584f5a79225a12b28e4cd9a15 /src/libs6f | |
| parent | 3b56d41ef579c18feafbf47d170a6ea4375beb6f (diff) | |
| download | s6-frontend-6a5a4baf2454530cd7c53cada4176c3ef90afa40.tar.gz | |
Now it builds again
Diffstat (limited to 'src/libs6f')
| -rw-r--r-- | src/libs6f/s6f_equote.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/libs6f/s6f_equote.c b/src/libs6f/s6f_equote.c index 41cef42..a4c41bb 100644 --- a/src/libs6f/s6f_equote.c +++ b/src/libs6f/s6f_equote.c @@ -4,19 +4,25 @@ #include "s6f.h" -size_t s6f_equote_space (char const *const *argv, unsigned int argc) +size_t s6f_equote_space (char const *const *argv, unsigned int argc, char const *prefix) { - size_t l = 0 ; - for (unsigned int i = 0 ; i < argc ; i++) l += i + 2 + strlen(argv[i]) ; + size_t l = (prefix ? strlen(prefix) + 3 : 2) * argc ; + for (unsigned int i = 0 ; i < argc ; i++) l += strlen(argv[i]) ; return l ; } -unsigned int s6f_equote (char const **newargv, char const *const *argv, unsigned int argc, char *s) +unsigned int s6f_equote (char const **newargv, char const *const *argv, unsigned int argc, char const *prefix, char *s) { + size_t prefixlen = prefix ? strlen(prefix) : 0 ; for (unsigned int i = 0 ; i < argc ; i++) { newargv[i] = s ; *s++ = ' ' ; + if (prefix) + { + memcpy(s, prefix, prefixlen) ; + *s++ = '/' ; + } s = stpcpy(s, argv[i]) + 1 ; } newargv[argc] = "" ; |
