diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-08-05 11:57:19 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska@appnovation.com> | 2025-08-05 11:57:19 +0000 |
| commit | 24629a6da66019db9aab610d20c3bcf3fde76196 (patch) | |
| tree | 9fead4e0434d95e58104cf90c546248ecca73ecd /src/libstddjb/sals.c | |
| parent | f23996b445422bdc79b4a16da63c740ae6bddda9 (diff) | |
| download | skalibs-24629a6da66019db9aab610d20c3bcf3fde76196.tar.gz | |
Remove sals specialcasing
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/libstddjb/sals.c')
| -rw-r--r-- | src/libstddjb/sals.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/src/libstddjb/sals.c b/src/libstddjb/sals.c index 839df6d..f6b2aa1 100644 --- a/src/libstddjb/sals.c +++ b/src/libstddjb/sals.c @@ -13,27 +13,24 @@ int sals (char const *fn, stralloc *sa, size_t *x) size_t sabase = sa->len ; size_t maxlen = 0 ; DIR *dir = opendir(fn) ; - if (dir) + if (!dir) return -1 ; + for (;;) { - for (;;) - { - direntry *d ; - size_t len ; - errno = 0 ; - d = readdir(dir) ; - if (!d) break ; - if (d->d_name[0] == '.') - if (((d->d_name[1] == '.') && !d->d_name[2]) || !d->d_name[1]) - continue ; - len = strlen(d->d_name) ; - if (len > maxlen) maxlen = len ; - if (!stralloc_catb(sa, d->d_name, len+1)) goto err ; - n++ ; - } - if (errno) goto err ; - dir_close(dir) ; + direntry *d ; + size_t len ; + errno = 0 ; + d = readdir(dir) ; + if (!d) break ; + if (d->d_name[0] == '.') + if (((d->d_name[1] == '.') && !d->d_name[2]) || !d->d_name[1]) + continue ; + len = strlen(d->d_name) ; + if (len > maxlen) maxlen = len ; + if (!stralloc_catb(sa, d->d_name, len+1)) goto err ; + n++ ; } - else if (errno != ENOENT) return -1 ; + if (errno) goto err ; + dir_close(dir) ; if (x) *x = maxlen ; return n ; |
