From d6d77527fa55d59e47b8e8fa301ab004894bc467 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Mon, 15 Sep 2025 23:15:06 +0000 Subject: Add s6-rc-set-changestate. FINALLY. --- src/libs6rc/s6rc_repo_makesvlist.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/libs6rc/s6rc_repo_makesvlist.c') diff --git a/src/libs6rc/s6rc_repo_makesvlist.c b/src/libs6rc/s6rc_repo_makesvlist.c index 9cf0faa..3567bf7 100644 --- a/src/libs6rc/s6rc_repo_makesvlist.c +++ b/src/libs6rc/s6rc_repo_makesvlist.c @@ -12,8 +12,6 @@ #include -#define dienomem() strerr_diefu1sys(111, "stralloc_catb") - static inline int s6rc_repo_addsub (char const *sub, uint8_t i, stralloc *sa, genalloc *ga) { DIR *dir = opendir(sub) ; @@ -27,12 +25,16 @@ static inline int s6rc_repo_addsub (char const *sub, uint8_t i, stralloc *sa, ge if (!d) break ; if (d->d_name[0] == '.') continue ; - if (!stralloc_cats(sa, d->d_name) || !stralloc_0(sa)) dienomem() ; - if (!genalloc_append(s6rc_repo_sv, ga, &sv)) dienomem() ; + if (!stralloc_cats(sa, d->d_name) || !stralloc_0(sa) + || !genalloc_append(s6rc_repo_sv, ga, &sv)) goto nomem ; } dir_close(dir) ; if (errno) { strerr_warnfu2sys("readdir ", sub) ; return 0 ; } return 1 ; + + nomem: + strerr_warnfu1sys("stralloc_catb") ; + return 0 ; } int s6rc_repo_makesvlist (char const *repo, char const *set, stralloc *sa, genalloc *ga) @@ -54,7 +56,7 @@ int s6rc_repo_makesvlist (char const *repo, char const *set, stralloc *sa, genal memcpy(subfn + repolen + setlen + 10, s6rc_repo_subnames[i], 7) ; if (!s6rc_repo_addsub(subfn, i, sa, ga)) goto err ; } - qsortr(genalloc_s(s6rc_repo_sv, ga), genalloc_len(s6rc_repo_sv, ga), sizeof(s6rc_repo_sv), &s6rc_repo_sv_cmp, sa) ; + qsortr(genalloc_s(s6rc_repo_sv, ga), genalloc_len(s6rc_repo_sv, ga), sizeof(s6rc_repo_sv), &s6rc_repo_sv_cmpr, sa->s) ; return 1 ; err: -- cgit v1.3.1