Changes in irc_im.c [e3e2059:1aacef41]
Legend:
- Unmodified
- Added
- Removed
-
irc_im.c
re3e2059 r1aacef41 576 576 ic->data = c; 577 577 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); 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 */ 583 591 584 592 return TRUE; … … 600 608 c->ui_data = NULL; 601 609 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); 602 631 603 632 return TRUE; … … 824 853 static gboolean bee_irc_channel_chat_join(irc_channel_t *ic) 825 854 { 826 char *acc_s, *room ;855 char *acc_s, *room, *chat_type; 827 856 account_t *acc; 828 857 829 if (strcmp(set_getstr(&ic->set, "chat_type"), "room") != 0) { 858 chat_type = set_getstr(&ic->set, "chat_type"); 859 860 if (strcmp(chat_type, "room") != 0 && strcmp(chat_type, "placeholder") != 0) { 830 861 return TRUE; 831 862 } … … 983 1014 struct irc_channel *ic = set->data; 984 1015 1016 ic->flags &= ~(IRC_CHANNEL_TEMP | IRC_CHANNEL_KEEP_PLACEHOLDER); 1017 985 1018 if (strcmp(value, "groupchat") == 0) { 986 1019 ic->flags |= IRC_CHANNEL_TEMP; 987 1020 } else if (strcmp(value, "room") == 0) { 988 ic->flags &= ~IRC_CHANNEL_TEMP; 1021 // beep boop 1022 } else if (strcmp(value, "placeholder") == 0) { 1023 ic->flags |= IRC_CHANNEL_TEMP | IRC_CHANNEL_KEEP_PLACEHOLDER; 989 1024 } else { 990 1025 return NULL; … … 1070 1105 bee_irc_chat_new, 1071 1106 bee_irc_chat_free, 1107 bee_irc_chat_placeholder_new, 1072 1108 bee_irc_chat_log, 1073 1109 bee_irc_chat_msg,
Note: See TracChangeset
for help on using the changeset viewer.