{
(*intobj)->diff = timelib_rel_time_ctor();
-#define PHP_DATE_INTERVAL_READ_PROPERTY(element, member, itype) \
+#define PHP_DATE_INTERVAL_READ_PROPERTY(element, member, itype, def) \
do { \
zval **z_arg = NULL; \
if (zend_hash_find(myht, element, strlen(element) + 1, (void**) &z_arg) == SUCCESS) { \
convert_to_long(*z_arg); \
(*intobj)->diff->member = (itype)Z_LVAL_PP(z_arg); \
} else { \
- (*intobj)->diff->member = (itype)-1; \
+ (*intobj)->diff->member = (itype)def; \
} \
} while (0);
} \
} while (0);
- PHP_DATE_INTERVAL_READ_PROPERTY("y", y, timelib_sll)
- PHP_DATE_INTERVAL_READ_PROPERTY("m", m, timelib_sll)
- PHP_DATE_INTERVAL_READ_PROPERTY("d", d, timelib_sll)
- PHP_DATE_INTERVAL_READ_PROPERTY("h", h, timelib_sll)
- PHP_DATE_INTERVAL_READ_PROPERTY("i", i, timelib_sll)
- PHP_DATE_INTERVAL_READ_PROPERTY("s", s, timelib_sll)
- PHP_DATE_INTERVAL_READ_PROPERTY("weekday", weekday, int)
- PHP_DATE_INTERVAL_READ_PROPERTY("weekday_behavior", weekday_behavior, int)
- PHP_DATE_INTERVAL_READ_PROPERTY("first_last_day_of", first_last_day_of, int)
- PHP_DATE_INTERVAL_READ_PROPERTY("invert", invert, int);
+ PHP_DATE_INTERVAL_READ_PROPERTY("y", y, timelib_sll, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("m", m, timelib_sll, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("d", d, timelib_sll, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("h", h, timelib_sll, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("i", i, timelib_sll, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("s", s, timelib_sll, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("weekday", weekday, int, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("weekday_behavior", weekday_behavior, int, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("first_last_day_of", first_last_day_of, int, -1)
+ PHP_DATE_INTERVAL_READ_PROPERTY("invert", invert, int, 0);
PHP_DATE_INTERVAL_READ_PROPERTY_I64("days", days);
- PHP_DATE_INTERVAL_READ_PROPERTY("special_type", special.type, unsigned int);
+ PHP_DATE_INTERVAL_READ_PROPERTY("special_type", special.type, unsigned int, 0);
PHP_DATE_INTERVAL_READ_PROPERTY_I64("special_amount", special.amount);
- PHP_DATE_INTERVAL_READ_PROPERTY("have_weekday_relative", have_weekday_relative, unsigned int);
- PHP_DATE_INTERVAL_READ_PROPERTY("have_special_relative", have_special_relative, unsigned int);
+ PHP_DATE_INTERVAL_READ_PROPERTY("have_weekday_relative", have_weekday_relative, unsigned int, 0);
+ PHP_DATE_INTERVAL_READ_PROPERTY("have_special_relative", have_special_relative, unsigned int, 0);
(*intobj)->initialized = 1;
return 0;