librazor/razor.h
changeset 305 e10b4f060a9d
parent 302 9b71b537d175
child 306 cd3954499086
     1.1 --- a/librazor/razor.h	Mon Jun 30 08:51:26 2008 +0100
     1.2 +++ b/librazor/razor.h	Mon Jun 30 13:26:55 2008 -0400
     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 *