Changes in irc_im.c [1aacef41:5535a47]
Legend:
- Unmodified
- Added
- Removed
-
irc_im.c
r1aacef41 r5535a47 50 50 51 51 memset(nick, 0, MAX_NICK_LENGTH + 1); 52 str cpy(nick, nick_get(bu));52 strncpy(nick, nick_get(bu), MAX_NICK_LENGTH); 53 53 54 54 bu->ui_data = iu = irc_user_new(irc, nick); … … 576 576 ic->data = c; 577 577 578 if (ic->topic == NULL) { 579 /* New channel with no preset topic - make up a generic one */ 580 topic = g_strdup_printf( 581 "BitlBee groupchat: \"%s\". Please keep in mind that root-commands won't work here. Have fun!", 582 c->title); 583 irc_channel_set_topic(ic, topic, irc->root); 584 } else { 585 /* Preset topic from the channel we picked */ 586 topic = g_strdup(ic->topic); 587 } 588 589 g_free(c->topic); 590 c->topic = topic; /* Let groupchat borrow this pointer */ 578 topic = g_strdup_printf( 579 "BitlBee groupchat: \"%s\". Please keep in mind that root-commands won't work here. Have fun!", 580 c->title); 581 irc_channel_set_topic(ic, topic, irc->root); 582 g_free(topic); 591 583 592 584 return TRUE; … … 608 600 c->ui_data = NULL; 609 601 irc_channel_del_user(ic, ic->irc->user, IRC_CDU_KICK, "Chatroom closed by server"); 610 611 return TRUE;612 }613 614 static gboolean bee_irc_chat_placeholder_new(bee_t *bee, struct im_connection *ic, const char *handle,615 const char *name, const char *topic)616 {617 irc_t *irc = bee->ui_data;618 irc_channel_t *ircc;619 char *full_name = irc_channel_name_gen(irc, name);620 621 ircc = irc_channel_new(irc, full_name);622 623 set_setstr(&ircc->set, "type", "chat");624 set_setstr(&ircc->set, "chat_type", "placeholder");625 set_setstr(&ircc->set, "account", ic->acc->tag);626 set_setstr(&ircc->set, "room", (char *) handle);627 628 irc_channel_set_topic(ircc, topic, NULL);629 630 g_free(full_name);631 602 632 603 return TRUE; … … 752 723 g_free(channel); 753 724 channel = s; 725 } else { 726 g_free(s); 754 727 } 755 728 } … … 853 826 static gboolean bee_irc_channel_chat_join(irc_channel_t *ic) 854 827 { 855 char *acc_s, *room , *chat_type;828 char *acc_s, *room; 856 829 account_t *acc; 857 830 858 chat_type = set_getstr(&ic->set, "chat_type"); 859 860 if (strcmp(chat_type, "room") != 0 && strcmp(chat_type, "placeholder") != 0) { 831 if (strcmp(set_getstr(&ic->set, "chat_type"), "room") != 0) { 861 832 return TRUE; 862 833 } … … 1014 985 struct irc_channel *ic = set->data; 1015 986 1016 ic->flags &= ~(IRC_CHANNEL_TEMP | IRC_CHANNEL_KEEP_PLACEHOLDER);1017 1018 987 if (strcmp(value, "groupchat") == 0) { 1019 988 ic->flags |= IRC_CHANNEL_TEMP; 1020 989 } else if (strcmp(value, "room") == 0) { 1021 // beep boop 1022 } else if (strcmp(value, "placeholder") == 0) { 1023 ic->flags |= IRC_CHANNEL_TEMP | IRC_CHANNEL_KEEP_PLACEHOLDER; 990 ic->flags &= ~IRC_CHANNEL_TEMP; 1024 991 } else { 1025 992 return NULL; … … 1105 1072 bee_irc_chat_new, 1106 1073 bee_irc_chat_free, 1107 bee_irc_chat_placeholder_new,1108 1074 bee_irc_chat_log, 1109 1075 bee_irc_chat_msg,
Note: See TracChangeset
for help on using the changeset viewer.