diff --git a/glib/giounix.c b/glib/giounix.c index 72a3ed4df..5624ac9d0 100644 --- a/glib/giounix.c +++ b/glib/giounix.c @@ -454,7 +454,10 @@ g_io_channel_new_file (const gchar *filename, MODE_R = 1 << 0, MODE_W = 1 << 1, MODE_A = 1 << 2, - MODE_PLUS = 1 << 3 + MODE_PLUS = 1 << 3, + MODE_R_PLUS = MODE_R | MODE_PLUS, + MODE_W_PLUS = MODE_W | MODE_PLUS, + MODE_A_PLUS = MODE_A | MODE_PLUS } mode_num; struct stat buffer; @@ -505,15 +508,16 @@ g_io_channel_new_file (const gchar *filename, case MODE_A: flags = O_WRONLY | O_APPEND | O_CREAT; break; - case MODE_R | MODE_PLUS: + case MODE_R_PLUS: flags = O_RDWR; break; - case MODE_W | MODE_PLUS: + case MODE_W_PLUS: flags = O_RDWR | O_TRUNC | O_CREAT; break; - case MODE_A | MODE_PLUS: + case MODE_A_PLUS: flags = O_RDWR | O_APPEND | O_CREAT; break; + case MODE_PLUS: default: g_assert_not_reached (); flags = 0; @@ -556,12 +560,13 @@ g_io_channel_new_file (const gchar *filename, channel->is_readable = FALSE; channel->is_writeable = TRUE; break; - case MODE_R | MODE_PLUS: - case MODE_W | MODE_PLUS: - case MODE_A | MODE_PLUS: + case MODE_R_PLUS: + case MODE_W_PLUS: + case MODE_A_PLUS: channel->is_readable = TRUE; channel->is_writeable = TRUE; break; + case MODE_PLUS: default: g_assert_not_reached (); }