Hello community, here is the log from the commit of package chck for openSUSE:Factory checked in at 2017-02-16 17:05:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chck (Old) and /work/SRC/openSUSE:Factory/.chck.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chck" Changes: -------- --- /work/SRC/openSUSE:Factory/chck/chck.changes 2016-05-08 10:46:16.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.chck.new/chck.changes 2017-02-16 17:05:45.861790820 +0100 @@ -1,0 +2,5 @@ +Wed Feb 8 19:58:27 UTC 2017 - [email protected] + +- update to 0.0.20161208 + +------------------------------------------------------------------- Old: ---- chck-0.0.20160429.tar.xz New: ---- chck-0.0.20161208.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chck.spec ++++++ --- /var/tmp/diff_new_pack.pLq3uk/_old 2017-02-16 17:05:46.233738192 +0100 +++ /var/tmp/diff_new_pack.pLq3uk/_new 2017-02-16 17:05:46.237737626 +0100 @@ -17,7 +17,7 @@ Name: chck -Version: 0.0.20160429 +Version: 0.0.20161208 Release: 0 Summary: C utilities collection library License: MIT ++++++ chck-0.0.20160429.tar.xz -> chck-0.0.20161208.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/atlas/atlas.h new/chck-0.0.20161208/chck/atlas/atlas.h --- old/chck-0.0.20160429/chck/atlas/atlas.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/atlas/atlas.h 2016-12-08 16:14:10.000000000 +0100 @@ -42,13 +42,13 @@ uint32_t total_area; }; -CHCK_NONULL bool chck_atlas(struct chck_atlas *atlas); +bool chck_atlas(struct chck_atlas *atlas); void chck_atlas_release(struct chck_atlas *atlas); -CHCK_NONULL uint32_t chck_atlas_push(struct chck_atlas *atlas, uint32_t width, uint32_t height); -CHCK_NONULL uint32_t chck_atlas_pop(struct chck_atlas *atlas); -CHCK_NONULLV(1) const struct chck_atlas_texture* chck_atlas_get(const struct chck_atlas *atlas, uint32_t index, struct chck_atlas_rect *out_transformed); +uint32_t chck_atlas_push(struct chck_atlas *atlas, uint32_t width, uint32_t height); +uint32_t chck_atlas_pop(struct chck_atlas *atlas); +const struct chck_atlas_texture* chck_atlas_get(const struct chck_atlas *atlas, uint32_t index, struct chck_atlas_rect *out_transformed); // returns total unused area -CHCK_NONULLV(1) uint32_t chck_atlas_pack(struct chck_atlas *atlas, bool force_pot, bool one_px_border, uint32_t *out_w, uint32_t *out_h); +uint32_t chck_atlas_pack(struct chck_atlas *atlas, bool force_pot, bool one_px_border, uint32_t *out_w, uint32_t *out_h); #endif /* __chck_atlas_h__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/buffer/buffer.c new/chck-0.0.20161208/chck/buffer/buffer.c --- old/chck-0.0.20160429/chck/buffer/buffer.c 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/buffer/buffer.c 2016-12-08 16:14:10.000000000 +0100 @@ -10,7 +10,18 @@ # define HAS_ZLIB 0 #endif -static inline bool +struct chck_variant { + union { + uint64_t u64; + uint32_t u32; + uint16_t u16; + uint8_t u8; + uint8_t b[sizeof(uint64_t)]; + }; + enum chck_bits bits; +}; + +CHCK_CONST static inline bool valid_bits(enum chck_bits bits) { return (bits == CHCK_BUFFER_B8 || @@ -19,6 +30,46 @@ bits == CHCK_BUFFER_B64); } +CHCK_CONST static inline enum chck_bits +smallest_bits_for_value(uintmax_t v) +{ + static const struct { + uintmax_t off; + enum chck_bits bits; + } map[3] = { + { ~(uint32_t)0, CHCK_BUFFER_B64 }, + { ~(uint16_t)0, CHCK_BUFFER_B32 }, + { ~(uint8_t)0, CHCK_BUFFER_B16 }, + }; + + for (size_t i = 0; i < sizeof(map) / sizeof(map[0]); ++i) { + if (v <= map[i].off) + continue; + + return map[i].bits; + } + + return CHCK_BUFFER_B8; +} + +CHCK_PURE static inline uintmax_t +variant_get_value(struct chck_variant v) +{ + switch (v.bits) { + case CHCK_BUFFER_B8: + return v.u8; + case CHCK_BUFFER_B16: + return v.u16; + case CHCK_BUFFER_B32: + return v.u32; + case CHCK_BUFFER_B64: + return v.u64; + } + + assert(0 && "should not happen"); + return 0; +} + void chck_buffer_flush(struct chck_buffer *buf) { @@ -257,10 +308,12 @@ if (out_len) *out_len = 0; - size_t len = 0; - if (unlikely(!chck_buffer_read_int(&len, bits, buf))) + struct chck_variant v = { .bits = bits }; + if (unlikely(!chck_buffer_read_int(v.b, bits, buf))) return false; + const size_t len = variant_get_value(v); + if (out_len) *out_len = len; @@ -288,7 +341,7 @@ *len = 0; uint8_t bits; - if (unlikely(!chck_buffer_read_int(&bits, sizeof(uint8_t), buf))) + if (unlikely(!chck_buffer_read_int(&bits, sizeof(bits), buf))) return false; return likely(chck_buffer_read_string_of_type(str, len, bits, buf)); @@ -344,11 +397,24 @@ { assert(buf); - if (unlikely(!chck_buffer_write_int(&len, bits, buf))) - return false; + bool ret = false; + switch (bits) { + case CHCK_BUFFER_B8: + ret = chck_buffer_write_int((uint8_t[]){len}, bits, buf); + break; + case CHCK_BUFFER_B16: + ret = chck_buffer_write_int((uint16_t[]){len}, bits, buf); + break; + case CHCK_BUFFER_B32: + ret = chck_buffer_write_int((uint32_t[]){len}, bits, buf); + break; + case CHCK_BUFFER_B64: + ret = chck_buffer_write_int((uint64_t[]){len}, bits, buf); + break; + } - if (len <= 0) - return true; + if (unlikely(!ret)) + return false; return likely(chck_buffer_write(str, 1, len, buf) == len); } @@ -357,9 +423,9 @@ chck_buffer_write_string(const char *str, size_t len, struct chck_buffer *buf) { assert(buf); - const enum chck_bits bits = (len > 0xffff ? sizeof(uint32_t) : (len > 0xff ? sizeof(uint16_t) : sizeof(uint8_t))); - if (unlikely(!chck_buffer_write_int(&bits, sizeof(uint8_t), buf))) + const uint8_t bits = smallest_bits_for_value(len); + if (unlikely(!chck_buffer_write_int(&bits, sizeof(bits), buf))) return false; return likely(chck_buffer_write_string_of_type(str, len, bits, buf)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/buffer/buffer.h new/chck-0.0.20161208/chck/buffer/buffer.h --- old/chck-0.0.20160429/chck/buffer/buffer.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/buffer/buffer.h 2016-12-08 16:14:10.000000000 +0100 @@ -32,44 +32,44 @@ bool copied; }; -CHCK_NONULL static inline bool +static inline bool chck_buffer_native_endianess(const struct chck_buffer *buf) { return (chck_endianess() == buf->endianess); } void chck_buffer_release(struct chck_buffer *buf); -CHCK_NONULL void chck_buffer_flush(struct chck_buffer *buf); -CHCK_NONULLV(1) bool chck_buffer_from_pointer(struct chck_buffer *buf, void *ptr, size_t size, enum chck_endianess endianess); -CHCK_NONULL bool chck_buffer(struct chck_buffer *buf, size_t size, enum chck_endianess endianess); -CHCK_NONULLV(1) void chck_buffer_set_pointer(struct chck_buffer *buf, void *ptr, size_t size, enum chck_endianess endianess); - -CHCK_NONULLV(4) size_t chck_buffer_fill(const void *src, size_t size, size_t memb, struct chck_buffer *buf); -CHCK_NONULL size_t chck_buffer_fill_from_file(FILE *src, size_t size, size_t memb, struct chck_buffer *buf); -CHCK_NONULL size_t chck_buffer_fill_from_fd(int fd, size_t size, size_t memb, struct chck_buffer *buf); - -CHCK_NONULLV(4) size_t chck_buffer_write(const void *src, size_t size, size_t nmemb, struct chck_buffer *buf); -CHCK_NONULL size_t chck_buffer_write_from_file(FILE *src, size_t size, size_t nmemb, struct chck_buffer *buf); -CHCK_NONULL size_t chck_buffer_write_from_fd(int fd, size_t size, size_t nmemb, struct chck_buffer *buf); - -CHCK_NONULL size_t chck_buffer_read(void *dst, size_t size, size_t memb, struct chck_buffer *buf); -CHCK_NONULL bool chck_buffer_read_int(void *i, enum chck_bits bits, struct chck_buffer *buf); -CHCK_NONULLV(1, 3) bool chck_buffer_read_string(char **str, size_t *len, struct chck_buffer *buf); -CHCK_NONULLV(1, 4) bool chck_buffer_read_string_of_type(char **str, size_t *len, enum chck_bits bits, struct chck_buffer *buf); - -CHCK_NONULL bool chck_buffer_write_int(const void *i, enum chck_bits bits, struct chck_buffer *buf); -CHCK_NONULLV(3) bool chck_buffer_write_string(const char *str, size_t len, struct chck_buffer *buf); -CHCK_NONULLV(4) bool chck_buffer_write_string_of_type(const char *str, size_t len, enum chck_bits bits, struct chck_buffer *buf); +void chck_buffer_flush(struct chck_buffer *buf); +bool chck_buffer_from_pointer(struct chck_buffer *buf, void *ptr, size_t size, enum chck_endianess endianess); +bool chck_buffer(struct chck_buffer *buf, size_t size, enum chck_endianess endianess); +void chck_buffer_set_pointer(struct chck_buffer *buf, void *ptr, size_t size, enum chck_endianess endianess); + +size_t chck_buffer_fill(const void *src, size_t size, size_t memb, struct chck_buffer *buf); +size_t chck_buffer_fill_from_file(FILE *src, size_t size, size_t memb, struct chck_buffer *buf); +size_t chck_buffer_fill_from_fd(int fd, size_t size, size_t memb, struct chck_buffer *buf); + +size_t chck_buffer_write(const void *src, size_t size, size_t nmemb, struct chck_buffer *buf); +size_t chck_buffer_write_from_file(FILE *src, size_t size, size_t nmemb, struct chck_buffer *buf); +size_t chck_buffer_write_from_fd(int fd, size_t size, size_t nmemb, struct chck_buffer *buf); + +size_t chck_buffer_read(void *dst, size_t size, size_t memb, struct chck_buffer *buf); +bool chck_buffer_read_int(void *i, enum chck_bits bits, struct chck_buffer *buf); +bool chck_buffer_read_string(char **str, size_t *len, struct chck_buffer *buf); +bool chck_buffer_read_string_of_type(char **str, size_t *len, enum chck_bits bits, struct chck_buffer *buf); + +bool chck_buffer_write_int(const void *i, enum chck_bits bits, struct chck_buffer *buf); +bool chck_buffer_write_string(const char *str, size_t len, struct chck_buffer *buf); +bool chck_buffer_write_string_of_type(const char *str, size_t len, enum chck_bits bits, struct chck_buffer *buf); -CHCK_NONULL CHCK_FORMAT(printf, 2, 3) size_t chck_buffer_write_format(struct chck_buffer *buf, const char *fmt, ...); -CHCK_NONULL size_t chck_buffer_write_varg(struct chck_buffer *buf, const char *fmt, va_list args); +CHCK_FORMAT(printf, 2, 3) size_t chck_buffer_write_format(struct chck_buffer *buf, const char *fmt, ...); +size_t chck_buffer_write_varg(struct chck_buffer *buf, const char *fmt, va_list args); -CHCK_NONULL ptrdiff_t chck_buffer_seek(struct chck_buffer *buf, long offset, int whence); -CHCK_NONULL bool chck_buffer_resize(struct chck_buffer *buf, size_t size); +ptrdiff_t chck_buffer_seek(struct chck_buffer *buf, long offset, int whence); +bool chck_buffer_resize(struct chck_buffer *buf, size_t size); /* -DHAS_ZLIB=1 -lz */ CHCK_CONST bool chck_buffer_has_zlib(void); -CHCK_NONULL bool chck_buffer_compress_zlib(struct chck_buffer *buf); -CHCK_NONULL bool chck_buffer_decompress_zlib(struct chck_buffer *buf); +bool chck_buffer_compress_zlib(struct chck_buffer *buf); +bool chck_buffer_decompress_zlib(struct chck_buffer *buf); #endif /* __chck_buffer__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/buffer/endianess.h new/chck-0.0.20161208/chck/buffer/endianess.h --- old/chck-0.0.20160429/chck/buffer/endianess.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/buffer/endianess.h 2016-12-08 16:14:10.000000000 +0100 @@ -56,7 +56,7 @@ # define chck_endianess() CHCK_ENDIANESS_LITTLE #else // runtime endianess check -static inline enum +CHCK_CONST static inline enum chck_endianess chck_endianess(void) { union { @@ -67,16 +67,21 @@ }; #endif -CHCK_NONULL static inline void +static inline void chck_bswap_generic(void *p, size_t size) { - size_t s; - uint8_t b[size]; + if (size <= sizeof(uint8_t)) + return; + + assert(size <= sizeof(intmax_t)); + uint8_t b[sizeof(intmax_t)]; memcpy(b, p, size); - for (s = 0; s < size; ++s) memset((uint8_t*)p + s, b[size - s - 1], 1); + + for (size_t s = 0; s < size; ++s) + memset((uint8_t*)p + s, b[size - s - 1], 1); } -CHCK_NONULL static inline void +static inline void chck_bswap_single(void *p, size_t size) { #if HAS_BYTESWAP @@ -100,12 +105,12 @@ #endif } -CHCK_NONULL static inline void +static inline void chck_bswap(void *v, size_t size, size_t memb) { assert(v); - for (uint8_t *p = v; p < (uint8_t*)v + (memb * size); p += size) + for (uint8_t *p = v; size > sizeof(uint8_t) && p < (uint8_t*)v + (memb * size); p += size) chck_bswap_single(p, size); } @@ -113,10 +118,10 @@ #if HAS_BYTESWAP # define generic_swap(T, n) \ - CHCK_NONULL static inline T chck_bswap##n(T v) { return bswap##n(v); } + static inline T chck_bswap##n(T v) { return bswap##n(v); } #else # define generic_swap(T, n) \ - CHCK_NONULL static inline T chck_bswap##n(T v) { chck_bswap_generic(&v, sizeof(v)); return v; } + static inline T chck_bswap##n(T v) { chck_bswap_generic(&v, sizeof(v)); return v; } #endif generic_swap(uint16_t, 16) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/dl/dl.h new/chck-0.0.20161208/chck/dl/dl.h --- old/chck-0.0.20160429/chck/dl/dl.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/dl/dl.h 2016-12-08 16:14:10.000000000 +0100 @@ -3,8 +3,8 @@ #include <chck/macros.h> -CHCK_NONULLV(1) void* chck_dl_load(const char *file, const char **out_error); -CHCK_NONULLV(1,2) void* chck_dl_load_symbol(void *handle, const char *name, const char **out_error); -CHCK_NONULL void chck_dl_unload(void *handle); +void* chck_dl_load(const char *file, const char **out_error); +void* chck_dl_load_symbol(void *handle, const char *name, const char **out_error); +void chck_dl_unload(void *handle); #endif /* __chck_cdl__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/fs/fs.c new/chck-0.0.20161208/chck/fs/fs.c --- old/chck-0.0.20160429/chck/fs/fs.c 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/fs/fs.c 2016-12-08 16:14:10.000000000 +0100 @@ -14,7 +14,7 @@ # include <mach-o/dyld.h> #endif -#if defined(BSD) +#if defined(BSD) || defined(__FreeBSD__) # include <sys/param.h> # include <sys/sysctl.h> #endif @@ -121,7 +121,7 @@ #elif defined(_WIN32) || defined(_WIN64) if (_pgmptr && !(exepath = ccopy(_pgmptr))) return NULL; if (exepath) return exepath; -#elif defined(BSD) /* works on all BSD's? */ +#elif defined(BSD) || defined(__FreeBSD__) /* works on all BSD's? */ int mib[4]; mib[0] = CTL_KERN; mib[1] = KERN_PROC; @@ -140,7 +140,7 @@ path = "/proc/self/exe"; #elif defined(__NetBSD__) path = "/proc/curproc/exe"; -#elif defined(BSD) +#elif defined(BSD) || defined(__FreeBSD__) path = "/proc/curproc/file"; #elif defined(__sun) path = "/proc/self/path/a.out"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/fs/fs.h new/chck-0.0.20161208/chck/fs/fs.h --- old/chck-0.0.20160429/chck/fs/fs.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/fs/fs.h 2016-12-08 16:14:10.000000000 +0100 @@ -7,7 +7,7 @@ #include <stdio.h> #include <assert.h> -CHCK_PURE CHCK_NONULL static inline const char* +CHCK_PURE static inline const char* chck_basename(const char *path) { assert(path); @@ -15,7 +15,7 @@ return (base ? base + 1 : path); } -CHCK_NONULL static inline bool +static inline bool chck_filename_is_safe(const char *name) { if (!name || !*name) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/lut/lut.h new/chck-0.0.20161208/chck/lut/lut.h --- old/chck-0.0.20160429/chck/lut/lut.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/lut/lut.h 2016-12-08 16:14:10.000000000 +0100 @@ -53,7 +53,7 @@ } // default simple string hash -CHCK_NONULL CHCK_CONST static inline uint32_t +CHCK_CONST static inline uint32_t chck_default_str_hash(const char *str, size_t len) { (void)len; @@ -78,16 +78,16 @@ #define chck_lut_for_each(lut, pos) \ for (size_t _I = 0; (pos = chck_lut_iter(lut, &_I));) -CHCK_NONULL bool chck_lut(struct chck_lut *lut, int set, size_t count, size_t member); -CHCK_NONULL void chck_lut_uint_algorithm(struct chck_lut *lut, uint32_t (*hashuint)(uint32_t uint)); -CHCK_NONULL void chck_lut_str_algorithm(struct chck_lut *lut, uint32_t (*hashstr)(const char *str, size_t len)); +bool chck_lut(struct chck_lut *lut, int set, size_t count, size_t member); +void chck_lut_uint_algorithm(struct chck_lut *lut, uint32_t (*hashuint)(uint32_t uint)); +void chck_lut_str_algorithm(struct chck_lut *lut, uint32_t (*hashstr)(const char *str, size_t len)); void chck_lut_release(struct chck_lut *lut); -CHCK_NONULL void chck_lut_flush(struct chck_lut *lut); -CHCK_NONULLV(1) bool chck_lut_set(struct chck_lut *lut, uint32_t lookup, const void *data); -CHCK_NONULL void* chck_lut_get(struct chck_lut *lut, uint32_t lookup); -CHCK_NONULLV(1, 2) bool chck_lut_str_set(struct chck_lut *lut, const char *str, size_t len, const void *data); -CHCK_NONULL void* chck_lut_str_get(struct chck_lut *lut, const char *str, size_t len); -CHCK_NONULL void* chck_lut_iter(struct chck_lut *lut, size_t *iter); +void chck_lut_flush(struct chck_lut *lut); +bool chck_lut_set(struct chck_lut *lut, uint32_t lookup, const void *data); +void* chck_lut_get(struct chck_lut *lut, uint32_t lookup); +bool chck_lut_str_set(struct chck_lut *lut, const char *str, size_t len, const void *data); +void* chck_lut_str_get(struct chck_lut *lut, const char *str, size_t len); +void* chck_lut_iter(struct chck_lut *lut, size_t *iter); /** * Hash tables are wrappers around LUTs that does not have collisions. @@ -104,16 +104,16 @@ #define chck_hash_table_for_each(table, pos) \ for (struct chck_hash_table_iterator _I = { table, 0, NULL, 0 }; (pos = chck_hash_table_iter(&_I));) -CHCK_NONULL bool chck_hash_table(struct chck_hash_table *table, int set, size_t count, size_t member); -CHCK_NONULL void chck_hash_table_uint_algorithm(struct chck_hash_table *table, uint32_t (*hashuint)(uint32_t uint)); -CHCK_NONULL void chck_hash_table_str_algorithm(struct chck_hash_table *table, uint32_t (*hashstr)(const char *str, size_t len)); +bool chck_hash_table(struct chck_hash_table *table, int set, size_t count, size_t member); +void chck_hash_table_uint_algorithm(struct chck_hash_table *table, uint32_t (*hashuint)(uint32_t uint)); +void chck_hash_table_str_algorithm(struct chck_hash_table *table, uint32_t (*hashstr)(const char *str, size_t len)); void chck_hash_table_release(struct chck_hash_table *table); -CHCK_NONULL void chck_hash_table_flush(struct chck_hash_table *table); -CHCK_NONULL uint32_t chck_hash_table_collisions(struct chck_hash_table *table); -CHCK_NONULLV(1) bool chck_hash_table_set(struct chck_hash_table *table, uint32_t key, const void *data); -CHCK_NONULLV(1) void* chck_hash_table_get(struct chck_hash_table *table, uint32_t key); -CHCK_NONULLV(1, 2) bool chck_hash_table_str_set(struct chck_hash_table *table, const char *str, size_t len, const void *data); -CHCK_NONULLV(1, 2) void* chck_hash_table_str_get(struct chck_hash_table *table, const char *str, size_t len); -CHCK_NONULL void* chck_hash_table_iter(struct chck_hash_table_iterator *iter); +void chck_hash_table_flush(struct chck_hash_table *table); +uint32_t chck_hash_table_collisions(struct chck_hash_table *table); +bool chck_hash_table_set(struct chck_hash_table *table, uint32_t key, const void *data); +void* chck_hash_table_get(struct chck_hash_table *table, uint32_t key); +bool chck_hash_table_str_set(struct chck_hash_table *table, const char *str, size_t len, const void *data); +void* chck_hash_table_str_get(struct chck_hash_table *table, const char *str, size_t len); +void* chck_hash_table_iter(struct chck_hash_table_iterator *iter); #endif /* __chck_lut__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/macros.h new/chck-0.0.20161208/chck/macros.h --- old/chck-0.0.20160429/chck/macros.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/macros.h 2016-12-08 16:14:10.000000000 +0100 @@ -7,8 +7,6 @@ # define unlikely(x) __builtin_expect(!!(x), 0) # endif # define CHCK_FORMAT(f, x, y) __attribute__((format(f, x, y))) -# define CHCK_NONULL __attribute__((nonnull)) -# define CHCK_NONULLV(...) __attribute__((nonnull(__VA_ARGS__))) # define CHCK_CONST __attribute__((const)) # define CHCK_PURE __attribute__((pure)) # define CHCK_MALLOC __attribute__((malloc)) @@ -18,8 +16,6 @@ # define unlikely(x) !!(x) # endif # define CHCK_FORMAT(f, x, y) -# define CHCK_NONULL -# define CHCK_NONULLV # define CHCK_CONST # define CHCK_PURE # define CHCK_MALLOC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/math/test.c new/chck-0.0.20161208/chck/math/test.c --- old/chck-0.0.20160429/chck/math/test.c 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/math/test.c 2016-12-08 16:14:10.000000000 +0100 @@ -8,12 +8,12 @@ int main(void) { - assert(chck_equalld(10.0, 10.000000000001l, 1000000.0l)); - assert(!chck_equalld(10.0, 10.000000000001l, 1.0l)); - assert(chck_equal(10.0, 10.000000000001, 1000.0)); - assert(!chck_equal(10.0, 10.000000000001, 1.0)); - assert(chck_equalf(10.0f, 10.00001f, 10.0f)); - assert(!chck_equalf(10.0f, 10.00001f, 1.0f)); + assert(chck_equalld(LDBL_MIN, LDBL_MIN + LDBL_MIN, LDBL_DIG / LDBL_EPSILON)); + assert(!chck_equalld(LDBL_MIN, LDBL_MIN + LDBL_MIN, 1.0l)); + assert(chck_equal(DBL_MIN, DBL_MIN + DBL_MIN, DBL_DIG / DBL_EPSILON)); + assert(!chck_equal(DBL_MIN, DBL_MIN + DBL_MIN, 1.0)); + assert(chck_equalf(FLT_MIN, FLT_MIN + FLT_MIN, FLT_DIG / FLT_EPSILON)); + assert(!chck_equalf(FLT_MIN, FLT_MIN + FLT_MIN, 1.0f)); for (uint32_t i = 0xFFFF; i < 0xFFFFFF; ++i) { assert(chck_minu32(i, i - 20) == i - 20); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/overflow/overflow.h new/chck-0.0.20161208/chck/overflow/overflow.h --- old/chck-0.0.20160429/chck/overflow/overflow.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/overflow/overflow.h 2016-12-08 16:14:10.000000000 +0100 @@ -38,9 +38,9 @@ // T = type name, n = function suffix, s = is type signed? #define decl_generics_for_type(T, n, s) \ - of_attr CHCK_NONULL static inline bool chck_add_of##n(T a, T b, T *r) { assert((!s || b >= 0) && r); return add_of(a, b, r); } \ - of_attr CHCK_NONULL static inline bool chck_sub_of##n(T a, T b, T *r) { assert((!s || b >= 0) && r); return sub_of(a, b, r); } \ - of_attr CHCK_NONULL static inline bool chck_mul_of##n(T a, T b, T *r) { assert(r); return mul_of(a, b, r); } + of_attr static inline bool chck_add_of##n(T a, T b, T *r) { assert((!s || b >= 0) && r); return add_of(a, b, r); } \ + of_attr static inline bool chck_sub_of##n(T a, T b, T *r) { assert((!s || b >= 0) && r); return sub_of(a, b, r); } \ + of_attr static inline bool chck_mul_of##n(T a, T b, T *r) { assert(r); return mul_of(a, b, r); } // UT = unsigned type, un = unsigned function suffix // T = signed type, n = signed function suffix diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/pool/pool.c new/chck-0.0.20161208/chck/pool/pool.c --- old/chck-0.0.20160429/chck/pool/pool.c 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/pool/pool.c 2016-12-08 16:14:10.000000000 +0100 @@ -545,109 +545,3 @@ assert(pool); return pool_buffer_to_c_array(&pool->items, out_memb); } - -bool -chck_ring_pool(struct chck_ring_pool *pool, size_t grow, size_t capacity, size_t member_size) -{ - assert(pool && member_size > 0); - - if (unlikely(!member_size)) - return false; - - *pool = (struct chck_ring_pool){0}; - return pool_buffer(&pool->items, grow, capacity, member_size); -} - -bool -chck_ring_pool_from_c_array(struct chck_ring_pool *pool, const void *items, size_t memb, size_t grow, size_t member_size) -{ - return (!chck_ring_pool(pool, grow, 0, member_size) && !chck_ring_pool_set_c_array(pool, items, memb)); -} - -void -chck_ring_pool_release(struct chck_ring_pool *pool) -{ - if (!pool) - return; - - pool_buffer_release(&pool->items); - free(pool->popped); - pool->popped = NULL; -} - -void -chck_ring_pool_flush(struct chck_ring_pool *pool) -{ - assert(pool); - pool_buffer_flush(&pool->items, true); - free(pool->popped); - pool->popped = NULL; -} - -void* -chck_ring_pool_push_front(struct chck_ring_pool *pool, const void *data) -{ - assert(pool); - return pool_buffer_add_move(&pool->items, data, 0, NULL); -} - -void* -chck_ring_pool_push_back(struct chck_ring_pool *pool, const void *data) -{ - assert(pool); - return pool_buffer_add(&pool->items, data, pool->items.used, NULL); -} - -void* -chck_ring_pool_pop_first(struct chck_ring_pool *pool) -{ - assert(pool); - - if (unlikely(pool->items.count <= 0)) - return NULL; - - if (!pool->popped && !(pool->popped = malloc(pool->items.member))) - return NULL; - - memcpy(pool->popped, pool->items.buffer, pool->items.member); - pool_buffer_remove_move(&pool->items, 0); - return pool->popped; -} - -void* -chck_ring_pool_pop_last(struct chck_ring_pool *pool) -{ - assert(pool); - - if (unlikely(pool->items.count <= 0)) - return NULL; - - const void *ptr = pool_buffer_get(&pool->items, pool->items.count - 1); - if (!ptr || (!pool->popped && !(pool->popped = malloc(pool->items.member)))) - return NULL; - - memcpy(pool->popped, ptr, pool->items.member); - pool_buffer_remove_move(&pool->items, pool->items.count - 1); - return pool->popped; -} - -void* -chck_ring_pool_iter(const struct chck_ring_pool *pool, size_t *iter, bool reverse) -{ - assert(pool && iter); - return pool_buffer_iter(&pool->items, iter, reverse); -} - -bool -chck_ring_pool_set_c_array(struct chck_ring_pool *pool, const void *items, size_t memb) -{ - assert(pool); - return pool_buffer_set_c_array(&pool->items, items, memb); -} - -void* -chck_ring_pool_to_c_array(struct chck_ring_pool *pool, size_t *out_memb) -{ - assert(pool); - return pool_buffer_to_c_array(&pool->items, out_memb); -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/pool/pool.h new/chck-0.0.20161208/chck/pool/pool.h --- old/chck-0.0.20160429/chck/pool/pool.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/pool/pool.h 2016-12-08 16:14:10.000000000 +0100 @@ -59,18 +59,18 @@ #define chck_pool_for_each_reverse(pool, pos) \ for (size_t _I = (pool)->items.count - 1; (pos = chck_pool_iter(pool, &_I, true));) -CHCK_NONULL bool chck_pool(struct chck_pool *pool, size_t grow, size_t capacity, size_t member_size); -CHCK_NONULL bool chck_pool_from_c_array(struct chck_pool *pool, const void *items, size_t memb, size_t grow, size_t member_size); +bool chck_pool(struct chck_pool *pool, size_t grow, size_t capacity, size_t member_size); +bool chck_pool_from_c_array(struct chck_pool *pool, const void *items, size_t memb, size_t grow, size_t member_size); void chck_pool_release(struct chck_pool *pool); -CHCK_NONULL void chck_pool_flush(struct chck_pool *pool); -CHCK_NONULL void chck_pool_print(const struct chck_pool *pool, FILE *out); -CHCK_PURE CHCK_NONULL void* chck_pool_get(const struct chck_pool *pool, size_t index); -CHCK_PURE CHCK_NONULL void* chck_pool_get_last(const struct chck_pool *pool); -CHCK_NONULLV(1) void* chck_pool_add(struct chck_pool *pool, const void *data, size_t *out_index); -CHCK_NONULL void chck_pool_remove(struct chck_pool *pool, size_t index); -CHCK_NONULL void* chck_pool_iter(const struct chck_pool *pool, size_t *iter, bool reverse); -CHCK_NONULLV(1) bool chck_pool_set_c_array(struct chck_pool *pool, const void *items, size_t memb); /* struct item *c_array; */ -CHCK_NONULLV(1) void* chck_pool_to_c_array(struct chck_pool *pool, size_t *memb); /* struct item *c_array; (contains holes) */ +void chck_pool_flush(struct chck_pool *pool); +void chck_pool_print(const struct chck_pool *pool, FILE *out); +CHCK_PURE void* chck_pool_get(const struct chck_pool *pool, size_t index); +CHCK_PURE void* chck_pool_get_last(const struct chck_pool *pool); +void* chck_pool_add(struct chck_pool *pool, const void *data, size_t *out_index); +void chck_pool_remove(struct chck_pool *pool, size_t index); +void* chck_pool_iter(const struct chck_pool *pool, size_t *iter, bool reverse); +bool chck_pool_set_c_array(struct chck_pool *pool, const void *items, size_t memb); /* struct item *c_array; */ +void* chck_pool_to_c_array(struct chck_pool *pool, size_t *memb); /* struct item *c_array; (contains holes) */ /** * IterPools don't have holes in buffer. @@ -92,49 +92,19 @@ #define chck_iter_pool_for_each_reverse(pool, pos) \ for (size_t _I = (pool)->items.count - 1; (pos = chck_iter_pool_iter(pool, &_I, true));) -CHCK_NONULL bool chck_iter_pool(struct chck_iter_pool *pool, size_t grow, size_t capacity, size_t member_size); -CHCK_NONULL bool chck_iter_pool_from_c_array(struct chck_iter_pool *pool, const void *items, size_t memb, size_t grow_step, size_t member_size); +bool chck_iter_pool(struct chck_iter_pool *pool, size_t grow, size_t capacity, size_t member_size); +bool chck_iter_pool_from_c_array(struct chck_iter_pool *pool, const void *items, size_t memb, size_t grow_step, size_t member_size); void chck_iter_pool_release(struct chck_iter_pool *pool); -CHCK_NONULL void chck_iter_pool_flush(struct chck_iter_pool *pool); -CHCK_NONULL void chck_iter_pool_empty(struct chck_iter_pool *pool); -CHCK_PURE CHCK_NONULL void* chck_iter_pool_get(const struct chck_iter_pool *pool, size_t index); -CHCK_PURE CHCK_NONULL void* chck_iter_pool_get_last(const struct chck_iter_pool *pool); -CHCK_NONULLV(1) void* chck_iter_pool_push_front(struct chck_iter_pool *pool, const void *data); -CHCK_NONULLV(1) void* chck_iter_pool_push_back(struct chck_iter_pool *pool, const void *data); -CHCK_NONULLV(1) void* chck_iter_pool_insert(struct chck_iter_pool *pool, size_t index, const void *data); -CHCK_NONULL void chck_iter_pool_remove(struct chck_iter_pool *pool, size_t index); -CHCK_NONULL void* chck_iter_pool_iter(const struct chck_iter_pool *pool, size_t *iter, bool reverse); -CHCK_NONULLV(1) bool chck_iter_pool_set_c_array(struct chck_iter_pool *pool, const void *items, size_t memb); /* struct item *c_array; */ -CHCK_NONULLV(1) void* chck_iter_pool_to_c_array(struct chck_iter_pool *pool, size_t *memb); /* struct item *c_array; */ - -/** - * RingPools are circular pools. - * You push items to them and the pool grows as needed. - * You can push and pop to/from both sides. - */ - -#define chck_ring_pool_for_each_call(pool, function, ...) \ -{ void *_P; for (size_t _I = 0; (_P = chck_ring_pool_iter(pool, &_I, false));) function(_P, ##__VA_ARGS__); } - -#define chck_ring_pool_for_each_call_reverse(pool, function, ...) \ -{ void *_P; for (size_t _I = (pool)->items.count - 1; (_P = chck_ring_pool_iter(pool, &_I, true));) function(_P, ##__VA_ARGS__); } - -#define chck_ring_pool_for_each(pool, pos) \ - for (size_t _I = 0; (pos = chck_ring_pool_iter(pool, &_I, false));) - -#define chck_ring_pool_for_each_reverse(pool, pos) \ - for (size_t _I = (pool)->items.count - 1; (pos = chck_ring_pool_iter(pool, &_I, true));) - -CHCK_NONULL bool chck_ring_pool(struct chck_ring_pool *pool, size_t grow, size_t capacity, size_t member_size); -CHCK_NONULL bool chck_ring_pool_from_c_array(struct chck_ring_pool *pool, const void *items, size_t memb, size_t growStep, size_t memberSize); -void chck_ring_pool_release(struct chck_ring_pool *pool); -CHCK_NONULL void chck_ring_pool_flush(struct chck_ring_pool *pool); -CHCK_NONULLV(1) void* chck_ring_pool_push_front(struct chck_ring_pool *pool, const void *data); -CHCK_NONULLV(1) void* chck_ring_pool_push_back(struct chck_ring_pool *pool, const void *data); -CHCK_NONULL void* chck_ring_pool_pop_first(struct chck_ring_pool *pool); -CHCK_NONULL void* chck_ring_pool_pop_last(struct chck_ring_pool *pool); -CHCK_NONULL void* chck_ring_pool_iter(const struct chck_ring_pool *pool, size_t *iter, bool reverse); -CHCK_NONULLV(1) bool chck_ring_pool_set_c_array(struct chck_ring_pool *pool, const void *items, size_t memb); /* struct item *c_array; */ -CHCK_NONULLV(1) void* chck_ring_pool_to_c_array(struct chck_ring_pool *pool, size_t *memb); /* struct item *c_array; */ +void chck_iter_pool_flush(struct chck_iter_pool *pool); +void chck_iter_pool_empty(struct chck_iter_pool *pool); +CHCK_PURE void* chck_iter_pool_get(const struct chck_iter_pool *pool, size_t index); +CHCK_PURE void* chck_iter_pool_get_last(const struct chck_iter_pool *pool); +void* chck_iter_pool_push_front(struct chck_iter_pool *pool, const void *data); +void* chck_iter_pool_push_back(struct chck_iter_pool *pool, const void *data); +void* chck_iter_pool_insert(struct chck_iter_pool *pool, size_t index, const void *data); +void chck_iter_pool_remove(struct chck_iter_pool *pool, size_t index); +void* chck_iter_pool_iter(const struct chck_iter_pool *pool, size_t *iter, bool reverse); +bool chck_iter_pool_set_c_array(struct chck_iter_pool *pool, const void *items, size_t memb); /* struct item *c_array; */ +void* chck_iter_pool_to_c_array(struct chck_iter_pool *pool, size_t *memb); /* struct item *c_array; */ #endif /* __chck_pool__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/pool/test.c new/chck-0.0.20161208/chck/pool/test.c --- old/chck-0.0.20160429/chck/pool/test.c 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/pool/test.c 2016-12-08 16:14:10.000000000 +0100 @@ -349,143 +349,6 @@ assert(pool.items.used == 0); } - /* TEST: ring pool */ - { - struct chck_ring_pool pool = {0}; - - { - size_t iter = 0; - assert(!chck_ring_pool_iter(&pool, &iter, false)); - assert(!iter); - assert(!chck_ring_pool_iter(&pool, &iter, true)); - assert(!iter); - } - - assert(chck_ring_pool(&pool, 32, 0, sizeof(struct item))); - assert(pool.items.step == 32 * sizeof(struct item)); - assert(pool.items.member == sizeof(struct item)); - assert(pool.items.allocated == 0); - assert(pool.items.used == 0); - assert(pool.items.count == 0); - assert(!pool.items.buffer); - - void *a, *b, *c; - a = chck_ring_pool_push_back(&pool, (&(struct item){1, NULL})); - b = chck_ring_pool_push_back(&pool, (&(struct item){2, NULL})); - c = chck_ring_pool_push_back(&pool, (&(struct item){3, NULL})); - - assert(a != NULL && b != NULL && c != NULL); - assert(a != b && b != c && a != c); - - { - size_t iter = 0; - struct item *current; - while ((current = chck_ring_pool_iter(&pool, &iter, false))) - assert(current != NULL); - - assert(pool.items.count == 3); - assert(pool.items.used == 3 * sizeof(struct item)); - assert(pool.items.allocated == 32 * sizeof(struct item)); - assert(iter == 3); - } - - assert(((struct item*)chck_ring_pool_pop_first(&pool))->a == 1); - - { - size_t iter = 0; - struct item *current; - while ((current = chck_ring_pool_iter(&pool, &iter, true))) - assert(current != NULL); - - assert(pool.items.count == 2); - assert(pool.items.used == 2 * sizeof(struct item)); - assert(pool.items.allocated == 32 * sizeof(struct item)); - assert(iter == (size_t)-1); - } - - assert(chck_ring_pool_push_front(&pool, NULL)); - - { - size_t iter = 0; - struct item *current; - while ((current = chck_ring_pool_iter(&pool, &iter, false))) - assert(current != NULL); - - assert(pool.items.count == 3); - assert(pool.items.used == 3 * sizeof(struct item)); - assert(pool.items.allocated == 32 * sizeof(struct item)); - assert(iter == 3); - } - - assert(((struct item*)chck_ring_pool_pop_last(&pool))->a == 3); - - { - size_t iter = 0; - struct item *current; - while ((current = chck_ring_pool_iter(&pool, &iter, false))) - assert(current != NULL); - - assert(pool.items.count == 2); - assert(pool.items.used == 2 * sizeof(struct item)); - assert(pool.items.allocated == 32 * sizeof(struct item)); - assert(iter == 2); - } - - chck_ring_pool_push_back(&pool, NULL); - - { - size_t iter = 0; - struct item *current; - while ((current = chck_ring_pool_iter(&pool, &iter, false))) - assert(current != NULL); - - assert(pool.items.count == 3); - assert(pool.items.used == 3 * sizeof(struct item)); - assert(pool.items.allocated == 32 * sizeof(struct item)); - assert(iter == 3); - } - - chck_ring_pool_flush(&pool); - - chck_ring_pool_push_back(&pool, (&(struct item){1, NULL})); - chck_ring_pool_push_front(&pool, (&(struct item){3, NULL})); - chck_ring_pool_push_back(&pool, (&(struct item){2, NULL})); - - assert(((struct item*)chck_ring_pool_to_c_array(&pool, NULL))[0].a == 3); - assert(((struct item*)chck_ring_pool_to_c_array(&pool, NULL))[1].a == 1); - assert(((struct item*)chck_ring_pool_to_c_array(&pool, NULL))[2].a == 2); - chck_ring_pool_for_each_call(&pool, printa); - - assert(((struct item*)chck_ring_pool_pop_last(&pool))->a == 2); - assert(((struct item*)chck_ring_pool_pop_first(&pool))->a == 3); - assert(((struct item*)chck_ring_pool_pop_last(&pool))->a == 1); - assert(pool.items.used == 0); - - { - for (uint32_t i = 0; i < 33; ++i) - chck_ring_pool_push_back(&pool, NULL); - - assert(pool.items.used == 33 * sizeof(struct item)); - assert(pool.items.allocated == 64 * sizeof(struct item)); - - for (uint32_t i = 0; i < 32; ++i) - chck_ring_pool_pop_last(&pool); - - assert(pool.items.used == 1 * sizeof(struct item)); - assert(pool.items.allocated == 32 * sizeof(struct item)); - } - - struct item bars[4] = {{.a = 1}}; - assert(chck_ring_pool_set_c_array(&pool, &bars, 4)); - assert(pool.items.allocated == 4 * sizeof(struct item)); - assert(pool.items.used == 4 * sizeof(struct item)); - assert(!memcmp(pool.items.buffer, bars, sizeof(bars))); - - chck_ring_pool_release(&pool); - assert(pool.items.allocated == 0); - assert(pool.items.used == 0); - } - /* TEST: benchmark (many insertions, and removal expanding from center) */ { const uint32_t iters = 0xFFFFF; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/sjis/sjis.h new/chck-0.0.20161208/chck/sjis/sjis.h --- old/chck-0.0.20160429/chck/sjis/sjis.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/sjis/sjis.h 2016-12-08 16:14:10.000000000 +0100 @@ -6,7 +6,7 @@ #include <stdbool.h> #include <stdint.h> -CHCK_NONULLV(1) char* chck_sjis_to_utf8(const unsigned char *sjis, size_t size, size_t *out_size, bool terminate); -CHCK_NONULLV(1) uint8_t* chck_utf8_to_sjis(const char *input, size_t size, size_t *out_size, bool terminate); +char* chck_sjis_to_utf8(const unsigned char *sjis, size_t size, size_t *out_size, bool terminate); +uint8_t* chck_utf8_to_sjis(const char *input, size_t size, size_t *out_size, bool terminate); #endif /* __sjis_h__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/string/string.h new/chck-0.0.20161208/chck/string/string.h --- old/chck-0.0.20160429/chck/string/string.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/string/string.h 2016-12-08 16:14:10.000000000 +0100 @@ -170,16 +170,16 @@ } void chck_string_release(struct chck_string *string); -CHCK_NONULLV(1) bool chck_string_set_cstr(struct chck_string *string, const char *data, bool is_heap); -CHCK_NONULLV(1) bool chck_string_set_cstr_with_length(struct chck_string *string, const char *data, size_t len, bool is_heap); -CHCK_NONULL bool chck_string_set(struct chck_string *string, const struct chck_string *other, bool is_heap); -CHCK_NONULLV(1,2) CHCK_FORMAT(printf, 2, 3) bool chck_string_set_format(struct chck_string *string, const char *fmt, ...); -CHCK_NONULL bool chck_string_set_varg(struct chck_string *string, const char *fmt, va_list args); +bool chck_string_set_cstr(struct chck_string *string, const char *data, bool is_heap); +bool chck_string_set_cstr_with_length(struct chck_string *string, const char *data, size_t len, bool is_heap); +bool chck_string_set(struct chck_string *string, const struct chck_string *other, bool is_heap); +CHCK_FORMAT(printf, 2, 3) bool chck_string_set_format(struct chck_string *string, const char *fmt, ...); +bool chck_string_set_varg(struct chck_string *string, const char *fmt, va_list args); -CHCK_NONULL char* chck_cstr_strip(char *cstr); /* modifies inplace */ -CHCK_NONULL char* chck_cstr_remove_chars(char *cstr, const char *bad); /* modifies inplace */ -CHCK_NONULL char* chck_cstr_replace_char(char *cstr, char replace, char with); /* modifies inplace */ -CHCK_NONULLV(2,3,5) const char* chck_cstr_tokenize(const char *cstr, size_t *out_len, const char *separator, bool skip_whitespace, const char **state); -CHCK_NONULLV(2,3,5) const char* chck_cstr_tokenize_quoted(const char *cstr, size_t *out_len, const char *separator, const char *quotes, const char **state); +char* chck_cstr_strip(char *cstr); /* modifies inplace */ +char* chck_cstr_remove_chars(char *cstr, const char *bad); /* modifies inplace */ +char* chck_cstr_replace_char(char *cstr, char replace, char with); /* modifies inplace */ +const char* chck_cstr_tokenize(const char *cstr, size_t *out_len, const char *separator, bool skip_whitespace, const char **state); +const char* chck_cstr_tokenize_quoted(const char *cstr, size_t *out_len, const char *separator, const char *quotes, const char **state); #endif /* __chck_string_h__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/thread/queue/queue.h new/chck-0.0.20161208/chck/thread/queue/queue.h --- old/chck-0.0.20160429/chck/thread/queue/queue.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/thread/queue/queue.h 2016-12-08 16:14:10.000000000 +0100 @@ -32,13 +32,13 @@ } threads; }; -CHCK_NONULL bool chck_tqueue_add_task(struct chck_tqueue *tqueue, void *data, useconds_t block); -CHCK_NONULL size_t chck_tqueue_collect(struct chck_tqueue *tqueue); -CHCK_NONULL void chck_tqueue_set_fd(struct chck_tqueue *tqueue, int fd); -CHCK_PURE CHCK_NONULL int chck_tqueue_get_fd(struct chck_tqueue *tqueue); -CHCK_NONULL void chck_tqueue_set_keep_alive(struct chck_tqueue *tqueue, bool keep_alive); -CHCK_PURE CHCK_NONULL bool chck_tqueue_get_keep_alive(struct chck_tqueue *tqueue); +bool chck_tqueue_add_task(struct chck_tqueue *tqueue, void *data, useconds_t block); +size_t chck_tqueue_collect(struct chck_tqueue *tqueue); +void chck_tqueue_set_fd(struct chck_tqueue *tqueue, int fd); +CHCK_PURE int chck_tqueue_get_fd(struct chck_tqueue *tqueue); +void chck_tqueue_set_keep_alive(struct chck_tqueue *tqueue, bool keep_alive); +CHCK_PURE bool chck_tqueue_get_keep_alive(struct chck_tqueue *tqueue); void chck_tqueue_release(struct chck_tqueue *tqueue); -CHCK_NONULLV(1, 5) bool chck_tqueue(struct chck_tqueue *tqueue, size_t nthreads, size_t qsize, size_t msize, void (*work)(), void (*callback)(), void (*destructor)()); +bool chck_tqueue(struct chck_tqueue *tqueue, size_t nthreads, size_t qsize, size_t msize, void (*work)(), void (*callback)(), void (*destructor)()); #endif /* __chck_dispatch_h__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/unicode/unicode.h new/chck-0.0.20161208/chck/unicode/unicode.h --- old/chck-0.0.20160429/chck/unicode/unicode.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/unicode/unicode.h 2016-12-08 16:14:10.000000000 +0100 @@ -18,12 +18,12 @@ CHCK_UTF16_UNEXPECTED_LOW, }; -CHCK_NONULL uint8_t chck_utf32_encode(uint32_t dec, char out[4]); -CHCK_NONULLV(2,3) uint8_t chck_utf16_encode(uint16_t dec, char out[4], uint16_t *in_out_hi, enum chck_utf16_error *out_error); -CHCK_NONULL uint32_t chck_utf8_decode(uint32_t *state /* accept, reject */, uint32_t *codep, uint8_t byte); -CHCK_PURE CHCK_NONULL uint8_t chck_utf8_mblen(const char u8[4]); -CHCK_NONULL bool chck_utf8_validate(const char u8[4]); -CHCK_NONULL uint32_t chck_utf8_codepoint(const char u8[4]); -CHCK_NONULL bool chck_utf8_strlen(const char *u8, size_t len, size_t *out_len); +uint8_t chck_utf32_encode(uint32_t dec, char out[4]); +uint8_t chck_utf16_encode(uint16_t dec, char out[4], uint16_t *in_out_hi, enum chck_utf16_error *out_error); +uint32_t chck_utf8_decode(uint32_t *state /* accept, reject */, uint32_t *codep, uint8_t byte); +CHCK_PURE uint8_t chck_utf8_mblen(const char u8[4]); +bool chck_utf8_validate(const char u8[4]); +uint32_t chck_utf8_codepoint(const char u8[4]); +bool chck_utf8_strlen(const char *u8, size_t len, size_t *out_len); #endif /* __chck_unicode_h__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/chck-0.0.20160429/chck/xdg/xdg.h new/chck-0.0.20161208/chck/xdg/xdg.h --- old/chck-0.0.20160429/chck/xdg/xdg.h 2016-05-05 14:21:04.000000000 +0200 +++ new/chck-0.0.20161208/chck/xdg/xdg.h 2016-12-08 16:14:10.000000000 +0100 @@ -10,7 +10,7 @@ uint32_t iter; }; -CHCK_NONULL char* xdg_get_path(const char *xdg_env, const char *default_path); -CHCK_NONULL const char* xdg_get_paths(const char *xdg_env, const char *default_paths, struct xdg_paths *state, uint32_t max_iter); +char* xdg_get_path(const char *xdg_env, const char *default_path); +const char* xdg_get_paths(const char *xdg_env, const char *default_paths, struct xdg_paths *state, uint32_t max_iter); #endif /* __chck_xdg__ */
