Changes in protocols/nogaim.c [52e6e17:9143aeb]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/nogaim.c
r52e6e17 r9143aeb 343 343 /* dialogs.c */ 344 344 345 void imcb_ask( struct im_connection *ic, char *msg, void *data, void *doit, void *dont ) 345 void imcb_ask( struct im_connection *ic, char *msg, void *data, 346 query_callback doit, query_callback dont ) 346 347 { 347 348 query_add( ic->irc, ic, msg, doit, dont, data ); … … 495 496 }; 496 497 497 void show_got_added_no( gpointer w, struct show_got_added_data*data )498 { 499 g_free( data->handle );498 void show_got_added_no( void *data ) 499 { 500 g_free( ((struct show_got_added_data*)data)->handle ); 500 501 g_free( data ); 501 502 } 502 503 503 void show_got_added_yes( gpointer w, struct show_got_added_data *data ) 504 { 505 data->ic->acc->prpl->add_buddy( data->ic, data->handle, NULL ); 506 /* imcb_add_buddy( data->ic, NULL, data->handle, data->handle ); */ 507 508 return show_got_added_no( w, data ); 504 void show_got_added_yes( void *data ) 505 { 506 struct show_got_added_data *sga = data; 507 508 sga->ic->acc->prpl->add_buddy( sga->ic, sga->handle, NULL ); 509 /* imcb_add_buddy( sga->ic, NULL, sga->handle, sga->handle ); */ 510 511 return show_got_added_no( data ); 509 512 } 510 513 … … 603 606 604 607 /* LISPy... */ 605 if( ( u->online ) && /* Don't touch offline people */ 606 ( ( ( u->online != oo ) && !u->away ) || /* Do joining people */ 607 ( ( u->online == oo ) && ( oa == !u->away ) ) ) ) /* Do people changing state */ 608 if( ( set_getbool( &ic->irc->set, "away_devoice" ) ) && /* Don't do a thing when user doesn't want it */ 609 ( u->online ) && /* Don't touch offline people */ 610 ( ( ( u->online != oo ) && !u->away ) || /* Voice joining people */ 611 ( ( u->online == oo ) && ( oa == !u->away ) ) ) ) /* (De)voice people changing state */ 608 612 { 609 613 char *from; … … 618 622 ic->irc->myhost ); 619 623 } 620 if(!strcmp(set_getstr(&ic->irc->set, "voice_buddies"), "notaway")) { 621 irc_write( ic->irc, ":%s MODE %s %cv %s", from, ic->irc->channel, 622 u->away?'-':'+', u->nick ); 623 } 624 if(!strcmp(set_getstr(&ic->irc->set, "halfop_buddies"), "notaway")) { 625 irc_write( ic->irc, ":%s MODE %s %ch %s", from, ic->irc->channel, 626 u->away?'-':'+', u->nick ); 627 } 628 if(!strcmp(set_getstr(&ic->irc->set, "op_buddies"), "notaway")) { 629 irc_write( ic->irc, ":%s MODE %s %co %s", from, ic->irc->channel, 630 u->away?'-':'+', u->nick ); 631 } 624 irc_write( ic->irc, ":%s MODE %s %cv %s", from, ic->irc->channel, 625 u->away?'-':'+', u->nick ); 632 626 g_free( from ); 633 627 } … … 639 633 char *wrapped; 640 634 user_t *u; 641 642 /* pass the message through OTR */ 643 msg = otr_handle_message(ic, handle, msg); 644 if(!msg) { 645 /* this was an internal OTR protocol message */ 646 return; 647 } 648 635 649 636 u = user_findhandle( ic, handle ); 637 650 638 if( !u ) 651 639 { … … 657 645 imcb_log( ic, "Ignoring message from unknown handle %s", handle ); 658 646 659 g_free(msg);660 647 return; 661 648 } … … 690 677 irc_msgfrom( irc, u->nick, wrapped ); 691 678 g_free( wrapped ); 692 g_free( msg );693 679 } 694 680 … … 931 917 932 918 919 /* Misc. BitlBee stuff which shouldn't really be here */ 920 921 char *set_eval_away_devoice( set_t *set, char *value ) 922 { 923 irc_t *irc = set->data; 924 int st; 925 926 if( ( g_strcasecmp( value, "true" ) == 0 ) || ( g_strcasecmp( value, "yes" ) == 0 ) || ( g_strcasecmp( value, "on" ) == 0 ) ) 927 st = 1; 928 else if( ( g_strcasecmp( value, "false" ) == 0 ) || ( g_strcasecmp( value, "no" ) == 0 ) || ( g_strcasecmp( value, "off" ) == 0 ) ) 929 st = 0; 930 else if( sscanf( value, "%d", &st ) != 1 ) 931 return( NULL ); 932 933 st = st != 0; 934 935 /* Horror.... */ 936 937 if( st != set_getbool( &irc->set, "away_devoice" ) ) 938 { 939 char list[80] = ""; 940 user_t *u = irc->users; 941 int i = 0, count = 0; 942 char pm; 943 char v[80]; 944 945 if( st ) 946 pm = '+'; 947 else 948 pm = '-'; 949 950 while( u ) 951 { 952 if( u->ic && u->online && !u->away ) 953 { 954 if( ( strlen( list ) + strlen( u->nick ) ) >= 79 ) 955 { 956 for( i = 0; i < count; v[i++] = 'v' ); v[i] = 0; 957 irc_write( irc, ":%s MODE %s %c%s%s", 958 irc->myhost, 959 irc->channel, pm, v, list ); 960 961 *list = 0; 962 count = 0; 963 } 964 965 sprintf( list + strlen( list ), " %s", u->nick ); 966 count ++; 967 } 968 u = u->next; 969 } 970 971 /* $v = 'v' x $i */ 972 for( i = 0; i < count; v[i++] = 'v' ); v[i] = 0; 973 irc_write( irc, ":%s MODE %s %c%s%s", irc->myhost, 974 irc->channel, pm, v, list ); 975 } 976 977 return( set_eval_bool( set, value ) ); 978 } 979 980 981 982 933 983 /* The plan is to not allow straight calls to prpl functions anymore, but do 934 984 them all from some wrappers. We'll start to define some down here: */ … … 944 994 msg = buf; 945 995 } 946 947 /* if compiled without otr support, this just calls the prpl buddy_msg */ 948 st = otr_send_message(ic, handle, msg, flags); 949 950 g_free(buf); 996 997 st = ic->acc->prpl->buddy_msg( ic, handle, msg, flags ); 998 g_free( buf ); 999 951 1000 return st; 952 1001 }
Note: See TracChangeset
for help on using the changeset viewer.