Mercurial > pidgin.yaz
comparison libpurple/protocols/jabber/buddy.c @ 27445:eff7db4db632
Various minor changes to jabber_presence_parse. No functionality changes.
This will spit out a few more warnings and refuse to handle a presence with
a non-standard type. There is no actual 'available' type, so don't bother
checking for it in the last chunk in presence.c
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 06 Jul 2009 00:45:54 +0000 |
parents | 41cc041a0733 |
children | b118127843cc |
comparison
equal
deleted
inserted
replaced
27444:c4196cd47602 | 27445:eff7db4db632 |
---|---|
1818 return JABBER_BUDDY_STATE_ERROR; | 1818 return JABBER_BUDDY_STATE_ERROR; |
1819 | 1819 |
1820 return JABBER_BUDDY_STATE_UNKNOWN; | 1820 return JABBER_BUDDY_STATE_UNKNOWN; |
1821 } | 1821 } |
1822 | 1822 |
1823 JabberBuddyState jabber_buddy_show_get_state(const char *id) { | 1823 const struct { |
1824 if(!id) | 1824 const char *name; |
1825 return JABBER_BUDDY_STATE_UNKNOWN; | 1825 JabberBuddyState state; |
1826 if(!strcmp(id, "available")) | 1826 } show_state_pairs[] = { |
1827 return JABBER_BUDDY_STATE_ONLINE; | 1827 { "available", JABBER_BUDDY_STATE_ONLINE }, |
1828 if(!strcmp(id, "chat")) | 1828 { "chat", JABBER_BUDDY_STATE_CHAT }, |
1829 return JABBER_BUDDY_STATE_CHAT; | 1829 { "away", JABBER_BUDDY_STATE_AWAY }, |
1830 if(!strcmp(id, "away")) | 1830 { "xa", JABBER_BUDDY_STATE_XA }, |
1831 return JABBER_BUDDY_STATE_AWAY; | 1831 { "dnd", JABBER_BUDDY_STATE_DND }, |
1832 if(!strcmp(id, "xa")) | 1832 { "offline", JABBER_BUDDY_STATE_UNAVAILABLE }, |
1833 return JABBER_BUDDY_STATE_XA; | 1833 { "error", JABBER_BUDDY_STATE_ERROR }, |
1834 if(!strcmp(id, "dnd")) | 1834 { NULL, JABBER_BUDDY_STATE_UNKNOWN } |
1835 return JABBER_BUDDY_STATE_DND; | 1835 }; |
1836 if(!strcmp(id, "offline")) | 1836 |
1837 return JABBER_BUDDY_STATE_UNAVAILABLE; | 1837 JabberBuddyState jabber_buddy_show_get_state(const char *id) |
1838 if(!strcmp(id, "error")) | 1838 { |
1839 return JABBER_BUDDY_STATE_ERROR; | 1839 int i; |
1840 | 1840 |
1841 g_return_val_if_fail(id != NULL, JABBER_BUDDY_STATE_UNKNOWN); | |
1842 | |
1843 for (i = 0; show_state_pairs[i].name; ++i) | |
1844 if (g_str_equal(id, show_state_pairs[i].name)) | |
1845 return show_state_pairs[i].state; | |
1846 | |
1847 purple_debug_warning("jabber", "Invalid value of presence <show/> " | |
1848 "attribute: %s\n", id); | |
1841 return JABBER_BUDDY_STATE_UNKNOWN; | 1849 return JABBER_BUDDY_STATE_UNKNOWN; |
1842 } | 1850 } |
1843 | 1851 |
1844 const char *jabber_buddy_state_get_show(JabberBuddyState state) { | 1852 const char * |
1845 switch(state) { | 1853 jabber_buddy_state_get_show(JabberBuddyState state) |
1846 case JABBER_BUDDY_STATE_CHAT: | 1854 { |
1847 return "chat"; | 1855 int i; |
1848 case JABBER_BUDDY_STATE_AWAY: | 1856 |
1849 return "away"; | 1857 for (i = 0; show_state_pairs[i].name; ++i) |
1850 case JABBER_BUDDY_STATE_XA: | 1858 if (state == show_state_pairs[i].state) |
1851 return "xa"; | 1859 return show_state_pairs[i].name; |
1852 case JABBER_BUDDY_STATE_DND: | 1860 |
1853 return "dnd"; | 1861 /* purple_debug_warning("jabber", "Unknown buddy state: %d\n", state); */ |
1854 case JABBER_BUDDY_STATE_ONLINE: | |
1855 return "available"; | |
1856 case JABBER_BUDDY_STATE_UNKNOWN: | |
1857 case JABBER_BUDDY_STATE_ERROR: | |
1858 return NULL; | |
1859 case JABBER_BUDDY_STATE_UNAVAILABLE: | |
1860 return "offline"; | |
1861 } | |
1862 return NULL; | 1862 return NULL; |
1863 } | 1863 } |
1864 | 1864 |
1865 const char *jabber_buddy_state_get_status_id(JabberBuddyState state) { | 1865 const char *jabber_buddy_state_get_status_id(JabberBuddyState state) { |
1866 switch(state) { | 1866 switch(state) { |