| 561 |
567 |
| 562 status->type = status_type; |
568 status->type = status_type; |
| 563 status->presence = presence; |
569 status->presence = presence; |
| 564 |
570 |
| 565 status->attr_values = |
571 status->attr_values = |
| 566 g_hash_table_new_full(g_str_hash, g_str_equal, g_free, |
572 g_hash_table_new_full(g_str_hash, g_str_equal, NULL, |
| 567 (GDestroyNotify)purple_value_destroy); |
573 (GDestroyNotify)purple_value_destroy); |
| 568 |
574 |
| 569 for (l = purple_status_type_get_attrs(status_type); l != NULL; l = l->next) |
575 for (l = purple_status_type_get_attrs(status_type); l != NULL; l = l->next) |
| 570 { |
576 { |
| 571 PurpleStatusAttr *attr = (PurpleStatusAttr *)l->data; |
577 PurpleStatusAttr *attr = (PurpleStatusAttr *)l->data; |
| 572 PurpleValue *value = purple_status_attr_get_value(attr); |
578 PurpleValue *value = purple_status_attr_get_value(attr); |
| 573 PurpleValue *new_value = purple_value_dup(value); |
579 PurpleValue *new_value = purple_value_dup(value); |
| 574 |
580 |
| 575 g_hash_table_insert(status->attr_values, |
581 g_hash_table_insert(status->attr_values, |
| 576 g_strdup(purple_status_attr_get_id(attr)), |
582 (char *)purple_status_attr_get_id(attr), |
| 577 new_value); |
583 new_value); |
| 578 } |
584 } |
| 579 |
585 |
| 580 return status; |
586 return status; |
| 581 } |
587 } |