libbitvec-c

C bit vector library
git clone https://git.sinitax.com/sinitax/libbitvec-c
Log | Files | Refs | LICENSE | sfeed.txt

commit 0c2eda20ec1ce6d40a929a846771c4262ba3e1e7
parent fc0aa2c9c84fc09027f23d104917f4dd9b67b354
Author: Louis Burda <quent.burda@gmail.com>
Date:   Mon, 13 Mar 2023 21:22:33 +0100

Negate errno in return, positive values reserved

Diffstat:
Msrc/bitvec.c | 8++++----
Msrc/test.c | 2+-
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/bitvec.c b/src/bitvec.c @@ -41,7 +41,7 @@ bitvec_init(struct bitvec *vec, size_t cap) if (cap) { vec->data = calloc(SLOTCNT(cap), SLOT_BYTES); - if (!vec->data) return errno; + if (!vec->data) return -errno; } else { vec->data = NULL; } @@ -66,7 +66,7 @@ bitvec_alloc(struct bitvec **bitvec, size_t cap) int rc; *bitvec = malloc(sizeof(struct bitvec)); - if (!*bitvec) return errno; + if (!*bitvec) return -errno; rc = bitvec_init(*bitvec, cap); if (rc) { @@ -95,7 +95,7 @@ bitvec_reserve(struct bitvec *vec, size_t cnt) if (vec->cap >= cnt) return 0; alloc = realloc(vec->data, SLOTCNT(cnt) * SLOT_BYTES); - if (!alloc) return errno; + if (!alloc) return -errno; alloc = vec->data; memset(vec->data + SLOT(vec->cap), 0, SLOT(cnt) - SLOT(vec->cap)); vec->cap = cnt; @@ -114,7 +114,7 @@ bitvec_shrink(struct bitvec *vec, size_t cnt) if (vec->cap <= cnt) return 0; alloc = realloc(vec->data, SLOTCNT(cnt)); - if (!alloc) return errno; + if (!alloc) return -errno; vec->data = alloc; vec->cap = cnt; diff --git a/src/test.c b/src/test.c @@ -5,7 +5,7 @@ #include <stdio.h> #include <string.h> -#define LIBBITVEC_ERR(rc) errx(1, "libbitvec: %s", strerror(rc)) +#define LIBBITVEC_ERR(rc) errx(1, "libbitvec: %s", rc < 0 ? strerror(-rc) : "???") int main(int argc, const char **argv)