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