X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Futil.h;h=09e556d0114b7da5756823727e767955fa37637a;hp=c9d078257f5a96620c4c03054c012060b0b180f1;hb=51d122af23533b0b8318911c4fc8b128ad8eafb7;hpb=5862d652ba14178cff46b8a8fc6c6d8392bf32b1 diff --git a/src/shared/util.h b/src/shared/util.h index c9d078257..09e556d01 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -405,6 +405,7 @@ static inline const char *ansi_highlight_off(void) { int running_in_chroot(void); char *ellipsize(const char *s, size_t length, unsigned percent); + /* bytes columns */ char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, unsigned percent); int touch(const char *path); @@ -771,3 +772,15 @@ bool id128_is_valid(const char *s) _pure_; void parse_user_at_host(char *arg, char **user, char **host); int split_pair(const char *s, const char *sep, char **l, char **r); + +/** + * Normal qsort requires base to be nonnull. Here were require + * that only if nmemb > 0. + */ +static inline void qsort_safe(void *base, size_t nmemb, size_t size, + int (*compar)(const void *, const void *)) { + if (nmemb) { + assert(base); + qsort(base, nmemb, size, compar); + } +}