Mercurial > hg
comparison mcabber/src/hooks.c @ 510:6c3cd3aa4a91
New 'buddy_format' option
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 12 Nov 2005 17:36:20 +0100 |
parents | 21ab22a60bcb |
children | 979eb0fe2969 |
comparison
equal
deleted
inserted
replaced
509:cd52ddef5ce1 | 510:6c3cd3aa4a91 |
---|---|
143 | 143 |
144 inline void hk_statuschange(const char *jid, const char *resname, gchar prio, | 144 inline void hk_statuschange(const char *jid, const char *resname, gchar prio, |
145 time_t timestamp, enum imstatus status, | 145 time_t timestamp, enum imstatus status, |
146 const char *status_msg) | 146 const char *status_msg) |
147 { | 147 { |
148 int buddy_format; | |
149 char *bn = NULL; | |
148 const char *rn = (resname ? resname : "default"); | 150 const char *rn = (resname ? resname : "default"); |
149 scr_LogPrint(LPRINT_LOGNORM, "Buddy status has changed: [%c>%c] <%s/%s> %s", | 151 |
152 buddy_format = settings_opt_get_int("buddy_format"); | |
153 if (buddy_format) { | |
154 const char *name = roster_getname(jid); | |
155 if (name && strcmp(name, jid)) { | |
156 if (buddy_format == 1) | |
157 bn = g_strdup_printf("%s <%s/%s>", name, jid, rn); | |
158 else if (buddy_format == 2) | |
159 bn = g_strdup_printf("%s/%s", name, rn); | |
160 else if (buddy_format == 3) | |
161 bn = g_strdup_printf("%s", name); | |
162 } | |
163 } | |
164 | |
165 if (!bn) { | |
166 bn = g_strdup_printf("<%s/%s>", jid, rn); | |
167 } | |
168 | |
169 scr_LogPrint(LPRINT_LOGNORM, "Buddy status has changed: [%c>%c] %s %s", | |
150 imstatus2char[roster_getstatus(jid, resname)], | 170 imstatus2char[roster_getstatus(jid, resname)], |
151 imstatus2char[status], jid, rn, | 171 imstatus2char[status], bn, |
152 ((status_msg) ? status_msg : "")); | 172 ((status_msg) ? status_msg : "")); |
173 g_free(bn); | |
153 roster_setstatus(jid, rn, prio, status, status_msg, role_none, NULL); | 174 roster_setstatus(jid, rn, prio, status, status_msg, role_none, NULL); |
154 buddylist_build(); | 175 buddylist_build(); |
155 scr_DrawRoster(); | 176 scr_DrawRoster(); |
156 hlog_write_status(jid, 0, status, status_msg); | 177 hlog_write_status(jid, 0, status, status_msg); |
157 // External command | 178 // External command |