Mercurial > pidgin
diff plugins/zephyr/error_message.c @ 1700:1e0fa7e130d0
[gaim-migrate @ 1710]
Zephyr.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Thu, 12 Apr 2001 09:21:16 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/zephyr/error_message.c Thu Apr 12 09:21:16 2001 +0000 @@ -0,0 +1,76 @@ +/* + * $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); +}