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) {