diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-10-22 22:05:56 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2025-10-22 22:05:56 +0000 |
| commit | e0bcc0ef3466b7b5fc776d2e78d7e7ec027810c0 (patch) | |
| tree | d9686a3c25525760ef9ce5ed5594ec382b3fb6e7 /src/libs6rc/s6rc_ls.c | |
| parent | 3b9836248ed7f5164140d63e96ece21973fc43f7 (diff) | |
| download | s6-rc-e0bcc0ef3466b7b5fc776d2e78d7e7ec027810c0.tar.gz | |
Separate libs6rcrepo
Diffstat (limited to 'src/libs6rc/s6rc_ls.c')
| -rw-r--r-- | src/libs6rc/s6rc_ls.c | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/src/libs6rc/s6rc_ls.c b/src/libs6rc/s6rc_ls.c deleted file mode 100644 index 75f90f2..0000000 --- a/src/libs6rc/s6rc_ls.c +++ /dev/null @@ -1,46 +0,0 @@ -/* ISC license. */ - -#include <string.h> -#include <errno.h> - -#include <skalibs/direntry.h> -#include <skalibs/stralloc.h> -#include <skalibs/genalloc.h> - -#include <s6-rc/s6rc-utils.h> - -int s6rc_ls (char const *fn, stralloc *sa, genalloc *ga) -{ - size_t sabase = sa->len ; - size_t gabase = genalloc_len(size_t, ga) ; - int sawasnull = !sa->s ; - int gawasnull = !genalloc_s(size_t, ga) ; - int n = 0 ; - - DIR *dir = opendir(fn) ; - if (!dir) return -1 ; - for (;;) - { - direntry *d ; - size_t len ; - errno = 0 ; - d = readdir(dir) ; - if (!d) break ; - if (d->d_name[0] == '.') continue ; - len = strlen(d->d_name) ; - if (!genalloc_catb(size_t, ga, &sa->len, 1)) goto err ; - if (!stralloc_catb(sa, d->d_name, len+1)) goto err ; - n++ ; - } - if (errno) goto err ; - dir_close(dir) ; - return n ; - - err: - dir_close(dir) ; - if (gawasnull) genalloc_free(size_t, ga) ; - else genalloc_setlen(size_t, ga, gabase) ; - if (sawasnull) stralloc_free(sa) ; - else sa->len = sabase ; - return -1 ; -} |
