HEX
Server: Apache/2
System: Linux ctr1224126.novalocal 4.9.241-37.el7.x86_64 #1 SMP Mon Nov 2 13:55:04 UTC 2020 x86_64
User: gokitchen (1017)
PHP: 8.0.30
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/include/dovecot/sort.h
#ifndef SORT_H
#define SORT_H

#define INTEGER_CMP(name, type)					     \
	static inline int name(const type *i1, const type *i2)	     \
	{							     \
		if (*i1 < *i2)					     \
			return -1;				     \
		else if (*i1 > *i2)				     \
			return 1;				     \
		else						     \
			return 0;				     \
	}

INTEGER_CMP(uint64_cmp, uint64_t)
INTEGER_CMP(uint32_cmp, uint32_t)

#define i_qsort(base, nmemb, size, cmp) \
	qsort(base, nmemb, size -					\
	      CALLBACK_TYPECHECK(cmp, int (*)(typeof(const typeof(*base) *), \
					      typeof(const typeof(*base) *))), \
	      (int (*)(const void *, const void *))cmp)

#define i_bsearch(key, base, nmemb, size, cmp) \
	bsearch(key, base, nmemb, size - \
		CALLBACK_TYPECHECK(cmp, int (*)(typeof(const typeof(*key) *), \
						typeof(const typeof(*base) *))), \
		(int (*)(const void *, const void *))cmp)

int bsearch_strcmp(const char *key, const char *const *member) ATTR_PURE;
int bsearch_strcasecmp(const char *key, const char *const *member) ATTR_PURE;

#endif