Mercurial > pidgin
view src/protocols/zephyr/error_message.c @ 5351:2aa7e4237142
[gaim-migrate @ 5727]
Buddy icon support!
The MSN protocol does not support this, but it does allow for different
content-types, which no client (except a couple broken ones I can name)
will see. So, I managed to extend the protocol a bit to do buddy icons.
It should work like AIM. Setup your icon in your account editor, and
message somebody. If they change their icon, however, you will have to
close the conversation window, re-open it, and send another message. That's
just how it has to work for now, I'm afraid.
Oh, and another thing. MSNP7 (P6 as well? Not sure) times out inactive
conversations after 5 minutes. Right now, you're seeing "User has closed
the conversation window" messages, but they're really not. So, we now print
out a message saying it timed out. Ugly, yes, but unless we have both
messages, there's confusion. Oh well! Kick the hay!
committer: Tailor Script <tailor@pidgin.im>
| author | Christian Hammond <chipx86@chipx86.com> |
|---|---|
| date | Sat, 10 May 2003 23:55:18 +0000 |
| parents | 424a40f12a6c |
| children | 347e456550e6 |
line wrap: on
line source
/* * $Header$ * $Source$ * $Locker$ * * Copyright 1987 by the Student Information Processing Board * of the Massachusetts Institute of Technology * * For copyright info, see "mit-sipb-copyright.h". */ #include <sysdep.h> #include "error_table.h" #include "mit-sipb-copyright.h" #include "com_err.h" static const char rcsid[] = "$Header$"; static const char copyright[] = "Copyright 1986, 1987, 1988 by the Student Information Processing Board\nand the department of Information Systems\nof the Massachusetts Institute of Technology"; char *error_table_name_r __P((int, char *)); struct et_list * _et_list = (struct et_list *) NULL; const char * error_message (code) long code; { static char buf[COM_ERR_BUF_LEN]; return(error_message_r(code, buf)); } const char * error_message_r (code, buf) long code; char *buf; { int offset; struct et_list *et; int table_num; int started = 0; char *cp, namebuf[6]; offset = code & ((1<<ERRCODE_RANGE)-1); table_num = code - offset; if (!table_num) return strerror(offset); for (et = _et_list; et; et = et->next) { if (et->table->base == table_num) { /* This is the right table */ if (et->table->n_msgs <= offset) break; return(et->table->msgs[offset]); } } strcpy (buf, "Unknown code "); if (table_num) { strcat (buf, error_table_name_r (table_num, namebuf)); strcat (buf, " "); } for (cp = buf; *cp; cp++) ; if (offset >= 100) { *cp++ = '0' + offset / 100; offset %= 100; started++; } if (started || offset >= 10) { *cp++ = '0' + offset / 10; offset %= 10; } *cp++ = '0' + offset; *cp = '\0'; return(buf); }
