-#define Data_Get_Notmuch_Database (obj, ptr) \
- do { \
- Check_Type (obj, T_DATA); \
- if (DATA_PTR (obj) == NULL) \
- rb_raise (rb_eRuntimeError, "database closed"); \
- Data_Get_Struct (obj, notmuch_database_t, ptr); \
+/* RSTRING_PTR() is new in ruby-1.9 */
+#if !defined(RSTRING_PTR)
+# define RSTRING_PTR(v) (RSTRING((v))->ptr)
+#endif /* !defined (RSTRING_PTR) */
+
+#define Data_Get_Notmuch_Database(obj, ptr) \
+ do { \
+ Check_Type ((obj), T_DATA); \
+ if (DATA_PTR ((obj)) == NULL) \
+ rb_raise (rb_eRuntimeError, "database closed"); \
+ Data_Get_Struct ((obj), notmuch_database_t, (ptr)); \