Hi, We handle booleans with these definitions: /* This type is not intended to be used in exported APIs! Use classic "int" there! */ #ifdef HAVE_STD_BOOL typedef bool pa_bool_t; #else typedef int pa_bool_t; #endif #ifndef FALSE #define FALSE ((pa_bool_t) 0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif As far as I know, the "bool" data type is a feature of C99, and we also rely on other other C99 features, so I don't think there's any benefit in having the HAVE_STD_BOOL check, or compatibility problems if we drop the check. We could define pa_bool_t as bool unconditionally. And if we do that, then we could as well start using bool directly instead of wrapping it in pa_bool_t. Therefore, I propose that we deprecate pa_bool_t (I have a feeling that someone has proposed that already before, but that discussion didn't go anywhere). My proposal for the transition strategy is that pa_bool_t is kept for now, but it would always be defined as bool. New boolean variables should not use pa_bool_t. Old pa_bool_t uses would be converted gradually like was done e.g. with pa_streq(). There was recently a patch that changed all remaining strcmp() uses into pa_streq(), and if someone wants to write a patch that converts all pa_bool_t instances into bool in one go, that's fine for me. What do others think? -- Tanu