diff -r 9b71b537d175 -r bf23ba00db03 librazor/razor.h --- a/librazor/razor.h Mon Jun 30 08:51:26 2008 +0100 +++ b/librazor/razor.h Mon Jun 30 10:46:20 2008 +0100 @@ -22,6 +22,13 @@ #include +/* GCC sentinel */ +#if defined(__GNUC__) && __GNUC__ >= 4 +#define RAZOR_SENTINEL __attribute__ ((__sentinel__(0))); +#else +#define RAZOR_SENTINEL +#endif + enum razor_repo_file_type { RAZOR_REPO_FILE_MAIN, RAZOR_REPO_FILE_DETAILS, @@ -29,7 +36,7 @@ }; enum razor_detail_type { - RAZOR_DETAIL_NAME = 1, /* 0 is the marker for the vararg */ + RAZOR_DETAIL_NAME = 1, /* NULL (0 on 32 bit) is the sentinel */ RAZOR_DETAIL_VERSION, RAZOR_DETAIL_ARCH, RAZOR_DETAIL_SUMMARY, @@ -94,7 +101,9 @@ razor_set_get_package(struct razor_set *set, const char *package); void -razor_package_get_details(struct razor_set *set, struct razor_package *package, ...); +razor_package_get_details(struct razor_set *set, + struct razor_package *package, ...) + RAZOR_SENTINEL; /** @@ -144,7 +153,8 @@ const char *filename); int razor_package_iterator_next(struct razor_package_iterator *pi, - struct razor_package **package, ...); + struct razor_package **package, ...) + RAZOR_SENTINEL; void razor_package_iterator_destroy(struct razor_package_iterator *pi); struct razor_package_query *