aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs6f
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-11-05 04:40:36 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2025-11-05 04:40:36 +0000
commit6a5a4baf2454530cd7c53cada4176c3ef90afa40 (patch)
tree7bb266ab96765ce584f5a79225a12b28e4cd9a15 /src/libs6f
parent3b56d41ef579c18feafbf47d170a6ea4375beb6f (diff)
downloads6-frontend-6a5a4baf2454530cd7c53cada4176c3ef90afa40.tar.gz
Now it builds again
Diffstat (limited to 'src/libs6f')
-rw-r--r--src/libs6f/s6f_equote.c14
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] = "" ;