comparison src/blist.c @ 5237:757d680f923d

[gaim-migrate @ 5607] I guess I shouldn't force the aliases on everyone...now they're optional. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sat, 26 Apr 2003 21:44:00 +0000
parents 890b29f00b68
children 60983a46700e
comparison
equal deleted inserted replaced
5236:0d4b8ca97c17 5237:757d680f923d
201 201
202 void gaim_blist_alias_chat(struct chat *chat, const char *alias) 202 void gaim_blist_alias_chat(struct chat *chat, const char *alias)
203 { 203 {
204 struct gaim_blist_ui_ops *ops = gaimbuddylist->ui_ops; 204 struct gaim_blist_ui_ops *ops = gaimbuddylist->ui_ops;
205 205
206 if(!alias || !strlen(alias))
207 return;
208
209 g_free(chat->alias); 206 g_free(chat->alias);
210 chat->alias = g_strdup(alias); 207
208 if(alias && strlen(alias))
209 chat->alias = g_strdup(alias);
210 else
211 chat->alias = NULL;
212
211 if(ops) 213 if(ops)
212 ops->update(gaimbuddylist, (GaimBlistNode*)chat); 214 ops->update(gaimbuddylist, (GaimBlistNode*)chat);
213 } 215 }
214 216
215 void gaim_blist_alias_buddy (struct buddy *buddy, const char *alias) 217 void gaim_blist_alias_buddy (struct buddy *buddy, const char *alias)
245 struct chat *gaim_chat_new(struct gaim_account *account, const char *alias, GHashTable *components) 247 struct chat *gaim_chat_new(struct gaim_account *account, const char *alias, GHashTable *components)
246 { 248 {
247 struct chat *chat; 249 struct chat *chat;
248 struct gaim_blist_ui_ops *ops; 250 struct gaim_blist_ui_ops *ops;
249 251
250 if(!alias || !strlen(alias) || !components) 252 if(!components)
251 return NULL; 253 return NULL;
252 254
253 chat = g_new0(struct chat, 1); 255 chat = g_new0(struct chat, 1);
254 chat->account = account; 256 chat->account = account;
255 chat->alias = g_strdup(alias); 257 if(alias && strlen(alias))
258 chat->alias = g_strdup(alias);
256 chat->components = components; 259 chat->components = components;
257 260
258 ((GaimBlistNode*)chat)->type = GAIM_BLIST_CHAT_NODE; 261 ((GaimBlistNode*)chat)->type = GAIM_BLIST_CHAT_NODE;
259 262
260 ops = gaim_get_blist_ui_ops(); 263 ops = gaim_get_blist_ui_ops();
1213 tag_stack = g_list_delete_link(tag_stack, tag_stack); 1216 tag_stack = g_list_delete_link(tag_stack, tag_stack);
1214 blist_parser_group_settings = NULL; 1217 blist_parser_group_settings = NULL;
1215 } else if(!strcmp(element_name, "chat")) { 1218 } else if(!strcmp(element_name, "chat")) {
1216 struct gaim_account *account = gaim_account_find(blist_parser_account_name, 1219 struct gaim_account *account = gaim_account_find(blist_parser_account_name,
1217 blist_parser_account_protocol); 1220 blist_parser_account_protocol);
1218 if(account && blist_parser_chat_alias) { 1221 if(account) {
1219 struct chat *chat = gaim_chat_new(account, blist_parser_chat_alias, blist_parser_chat_components); 1222 struct chat *chat = gaim_chat_new(account, blist_parser_chat_alias, blist_parser_chat_components);
1220 struct group *g = gaim_find_group(blist_parser_group_name); 1223 struct group *g = gaim_find_group(blist_parser_group_name);
1221 gaim_blist_add_chat(chat,g,NULL); 1224 gaim_blist_add_chat(chat,g,NULL);
1222 } 1225 }
1223 g_free(blist_parser_chat_alias); 1226 g_free(blist_parser_chat_alias);
1558 g_free(acct_name); 1561 g_free(acct_name);
1559 } 1562 }
1560 } else if(GAIM_BLIST_NODE_IS_CHAT(bnode)) { 1563 } else if(GAIM_BLIST_NODE_IS_CHAT(bnode)) {
1561 struct chat *chat = (struct chat *)bnode; 1564 struct chat *chat = (struct chat *)bnode;
1562 if(!exp_acct || chat->account == exp_acct) { 1565 if(!exp_acct || chat->account == exp_acct) {
1563 char *chat_alias = g_markup_escape_text(chat->alias, -1);
1564 char *acct_name = g_markup_escape_text(chat->account->username, -1); 1566 char *acct_name = g_markup_escape_text(chat->account->username, -1);
1565 fprintf(file, "\t\t\t<chat protocol=\"%d\" account=\"%s\">\n", chat->account->protocol, acct_name); 1567 fprintf(file, "\t\t\t<chat protocol=\"%d\" account=\"%s\">\n", chat->account->protocol, acct_name);
1566 fprintf(file, "\t\t\t\t<alias>%s</alias>\n", chat_alias); 1568 if(chat->alias) {
1569 char *chat_alias = g_markup_escape_text(chat->alias, -1);
1570 fprintf(file, "\t\t\t\t<alias>%s</alias>\n", chat_alias);
1571 g_free(chat_alias);
1572 }
1567 g_hash_table_foreach(chat->components, 1573 g_hash_table_foreach(chat->components,
1568 blist_print_chat_components, file); 1574 blist_print_chat_components, file);
1569 fprintf(file, "\t\t\t</chat>\n"); 1575 fprintf(file, "\t\t\t</chat>\n");
1576 g_free(acct_name);
1570 } 1577 }
1571 } 1578 }
1572 } 1579 }
1573 fprintf(file, "\t\t</group>\n"); 1580 fprintf(file, "\t\t</group>\n");
1574 g_free(group_name); 1581 g_free(group_name);