ignore Parameters.s
[p5sagit/Function-Parameters.git] / Parameters.xs
index 261a5bc..87b1e38 100644 (file)
@@ -61,6 +61,12 @@ WARNINGS_ENABLE
 #define HAVE_PERL_VERSION(R, V, S) \
        (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || (PERL_VERSION == (V) && (PERL_SUBVERSION >= (S))))))
 
+#if HAVE_PERL_VERSION(5, 16, 0)
+ #define IF_HAVE_PERL_5_16(YES, NO) YES
+#else
+ #define IF_HAVE_PERL_5_16(YES, NO) NO
+#endif
+
 typedef struct {
        enum {
                FLAG_NAME_OPTIONAL = 1,
@@ -106,7 +112,7 @@ static int kw_flags(pTHX_ const char *kw_ptr, STRLEN kw_len, Spec *spec) {
                        memcmp(kw_ptr, p, kw_len) == 0
                ) {
 
-#define FETCH_HINTK_INTO(NAME, PTR, LEN, X) do { \
+#define FETCH_HINTK_INTO(NAME, PTR, LEN, X) STMT_START { \
        const char *fk_ptr_; \
        STRLEN fk_len_; \
        SV *fk_sv_; \
@@ -116,7 +122,7 @@ static int kw_flags(pTHX_ const char *kw_ptr, STRLEN kw_len, Spec *spec) {
        if (!((X) = hv_fetch(hints, fk_ptr_, fk_len_, 0))) { \
                croak("%s: internal error: $^H{'%.*s'} not set", MY_PKG, (int)fk_len_, fk_ptr_); \
        } \
-} while (0)
+} STMT_END
 
                        FETCH_HINTK_INTO(NAME_, kw_ptr, kw_len, psv);
                        spec->name = SvIV(*psv);