1.1 --- a/librazor/razor.h Mon Jun 30 08:51:26 2008 +0100
1.2 +++ b/librazor/razor.h Mon Jun 30 10:46:20 2008 +0100
1.3 @@ -22,6 +22,13 @@
1.4
1.5 #include <stdint.h>
1.6
1.7 +/* GCC sentinel */
1.8 +#if defined(__GNUC__) && __GNUC__ >= 4
1.9 +#define RAZOR_SENTINEL __attribute__ ((__sentinel__(0)));
1.10 +#else
1.11 +#define RAZOR_SENTINEL
1.12 +#endif
1.13 +
1.14 enum razor_repo_file_type {
1.15 RAZOR_REPO_FILE_MAIN,
1.16 RAZOR_REPO_FILE_DETAILS,
1.17 @@ -29,7 +36,7 @@
1.18 };
1.19
1.20 enum razor_detail_type {
1.21 - RAZOR_DETAIL_NAME = 1, /* 0 is the marker for the vararg */
1.22 + RAZOR_DETAIL_NAME = 1, /* NULL (0 on 32 bit) is the sentinel */
1.23 RAZOR_DETAIL_VERSION,
1.24 RAZOR_DETAIL_ARCH,
1.25 RAZOR_DETAIL_SUMMARY,
1.26 @@ -94,7 +101,9 @@
1.27 razor_set_get_package(struct razor_set *set, const char *package);
1.28
1.29 void
1.30 -razor_package_get_details(struct razor_set *set, struct razor_package *package, ...);
1.31 +razor_package_get_details(struct razor_set *set,
1.32 + struct razor_package *package, ...)
1.33 + RAZOR_SENTINEL;
1.34
1.35
1.36 /**
1.37 @@ -144,7 +153,8 @@
1.38 const char *filename);
1.39
1.40 int razor_package_iterator_next(struct razor_package_iterator *pi,
1.41 - struct razor_package **package, ...);
1.42 + struct razor_package **package, ...)
1.43 + RAZOR_SENTINEL;
1.44 void razor_package_iterator_destroy(struct razor_package_iterator *pi);
1.45
1.46 struct razor_package_query *