diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2009-10-11 00:57:26 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2009-10-11 00:57:26 +0100 |
commit | c5c18c155cfdc3edcbd764633761d33e3c5992a3 (patch) | |
tree | 1473c17473c26af70946f00ed06e247e79850789 /lib/events_libevent.c | |
parent | e046390da36e369c94af607fdedfe7b9f99d9e47 (diff) |
Hacked up a B_EV_FLAG_FORCE_REPEAT event handler flag to make libpurple
happy.
Diffstat (limited to 'lib/events_libevent.c')
-rw-r--r-- | lib/events_libevent.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/events_libevent.c b/lib/events_libevent.c index b52a5dd3..43d770ea 100644 --- a/lib/events_libevent.c +++ b/lib/events_libevent.c @@ -59,6 +59,7 @@ struct b_event_data gint timeout; b_event_handler function; void *data; + guint flags; }; void b_main_init() @@ -149,7 +150,7 @@ static void b_event_passthrough( int fd, short event, void *data ) /* This event was killed already, don't touch it! */ return; } - else if( !st ) + else if( !st && !( b_ev->flags & B_EV_FLAG_FORCE_REPEAT ) ) { event_debug( "Handler returned FALSE: " ); b_event_remove( id_cur ); @@ -211,6 +212,7 @@ gint b_input_add( gint fd, b_input_condition condition, b_event_handler function g_hash_table_insert( write_hash, &b_ev->evinfo.ev_fd, b_ev ); } + b_ev->flags = condition; g_hash_table_insert( id_hash, &b_ev->id, b_ev ); return b_ev->id; } |