Changes in irc_channel.c [7d4ffc2:0e788f5]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
irc_channel.c
r7d4ffc2 r0e788f5 2 2 * BitlBee -- An IRC to other IM-networks gateway * 3 3 * * 4 * Copyright 2002-201 0Wilmer van der Gaast and others *4 * Copyright 2002-2013 Wilmer van der Gaast and others * 5 5 \********************************************************************/ 6 6 … … 670 670 671 671 icc->account = acc; 672 if( icc->type== IRC_CC_TYPE_ACCOUNT )672 if( ( icc->type & IRC_CC_TYPE_MASK ) == IRC_CC_TYPE_ACCOUNT ) 673 673 bee_irc_channel_update( ic->irc, ic, NULL ); 674 674 … … 680 680 struct irc_channel *ic = set->data; 681 681 struct irc_control_channel *icc = ic->data; 682 683 if( strcmp( value, "all" ) == 0 ) 684 icc->type = IRC_CC_TYPE_DEFAULT; 685 else if( strcmp( value, "rest" ) == 0 ) 686 icc->type = IRC_CC_TYPE_REST; 687 else if( strcmp( value, "group" ) == 0 ) 688 icc->type = IRC_CC_TYPE_GROUP; 689 else if( strcmp( value, "account" ) == 0 ) 690 icc->type = IRC_CC_TYPE_ACCOUNT; 691 else if( strcmp( value, "protocol" ) == 0 ) 692 icc->type = IRC_CC_TYPE_PROTOCOL; 682 char *s; 683 684 icc->type &= ~( IRC_CC_TYPE_MASK | IRC_CC_TYPE_INVERT ); 685 686 s = value; 687 if( s[0] == '!' ) 688 { 689 icc->type |= IRC_CC_TYPE_INVERT; 690 s ++; 691 } 692 693 if( strcmp( s, "all" ) == 0 ) 694 icc->type |= IRC_CC_TYPE_DEFAULT; 695 else if( strcmp( s, "rest" ) == 0 ) 696 icc->type |= IRC_CC_TYPE_REST; 697 else if( strcmp( s, "group" ) == 0 ) 698 icc->type |= IRC_CC_TYPE_GROUP; 699 else if( strcmp( s, "account" ) == 0 ) 700 icc->type |= IRC_CC_TYPE_ACCOUNT; 701 else if( strcmp( s, "protocol" ) == 0 ) 702 icc->type |= IRC_CC_TYPE_PROTOCOL; 693 703 else 694 704 return SET_INVALID; … … 704 714 705 715 icc->group = bee_group_by_name( ic->irc->b, value, TRUE ); 706 if( icc->type== IRC_CC_TYPE_GROUP )716 if( ( icc->type & IRC_CC_TYPE_MASK ) == IRC_CC_TYPE_GROUP ) 707 717 bee_irc_channel_update( ic->irc, ic, NULL ); 708 718 … … 720 730 721 731 icc->protocol = prpl; 722 if( icc->type== IRC_CC_TYPE_PROTOCOL )732 if( ( icc->type & IRC_CC_TYPE_MASK ) == IRC_CC_TYPE_PROTOCOL ) 723 733 bee_irc_channel_update( ic->irc, ic, NULL ); 724 734 … … 776 786 { 777 787 struct irc_control_channel *icc = ic->data; 788 gboolean ret = FALSE; 778 789 779 790 if( iu->bu == NULL ) 780 791 return FALSE; 781 792 782 switch( icc->type )793 switch( icc->type & IRC_CC_TYPE_MASK ) 783 794 { 784 795 case IRC_CC_TYPE_GROUP: 785 return iu->bu->group == icc->group; 796 ret = iu->bu->group == icc->group; 797 break; 786 798 case IRC_CC_TYPE_ACCOUNT: 787 return iu->bu->ic->acc == icc->account; 799 ret = iu->bu->ic->acc == icc->account; 800 break; 788 801 case IRC_CC_TYPE_PROTOCOL: 789 return iu->bu->ic->acc->prpl == icc->protocol; 802 ret = iu->bu->ic->acc->prpl == icc->protocol; 803 break; 790 804 case IRC_CC_TYPE_DEFAULT: 791 805 default: 792 return TRUE; 793 } 806 ret = TRUE; 807 break; 808 } 809 810 if( icc->type & IRC_CC_TYPE_INVERT ) 811 ret = !ret; 812 813 return ret; 794 814 } 795 815
Note: See TracChangeset
for help on using the changeset viewer.