Mercurial > pidgin
view src/protocols/zephyr/ZMakeAscii.c @ 8212:ad164c1ca79d
[gaim-migrate @ 8935]
a yahoo web auth fix from marv that i debated whether to commit or not (as
he did as well apparently fromt he message he left in the patch post) ;-)
also:
" Here's a large zephyr fix, tested against current CVS
and also 0.75. It does thie following:
Support a few additional zephyr formatting "@" tags,
Using the gaim_chat_set_topic function to allow the
user to set the instance that a zephyr is being sent to.
Listing people in chats (really, the zephyr protocol
doesn't allow for this, but I faked it by seeing who
has sent to a class).
Added proto options allowing for: setting the zephyr
exposure (currently, just by entering the correct text
string), and setting whether you want gaim to export
to .zephyr.subs , and .anyone (buddy list).
You also can add and remove buddies from within gaim.
It also fixes a minor (but annoying bug), where random
buffer garbage is sent with the zephyr, as an
additional zephyr field." --Arun (att) A Tharuvai
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Thu, 05 Feb 2004 16:28:51 +0000 |
parents | 424a40f12a6c |
children | 43d6c08d7e96 |
line wrap: on
line source
/* This file is part of the Project Athena Zephyr Notification System. * It contains source for the ZMakeAscii function. * * Created by: Robert French * * $Source$ * $Author: warmenhoven $ * * Copyright (c) 1987 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ /* $Header$ */ #include <internal.h> #include <assert.h> #ifndef lint static const char rcsid_ZMakeAscii_c[] = "$Id: ZMakeAscii.c 2096 2001-07-31 01:00:39Z warmenhoven $"; #endif static char *itox_chars = "0123456789ABCDEF"; Code_t ZMakeAscii(ptr, len, field, num) register char *ptr; int len; unsigned char *field; int num; { int i; for (i=0;i<num;i++) { /* we need to add "0x" if we are between 4 byte pieces */ if ((i & 3) == 0) { if (len < (i?4:3)) return ZERR_FIELDLEN; /* except at the beginning, put a space in before the "0x" */ if (i) { *ptr++ = ' '; len--; } *ptr++ = '0'; *ptr++ = 'x'; len -= 2; } if (len < 3) return ZERR_FIELDLEN; *ptr++ = itox_chars[(int) (field[i] >> 4)]; *ptr++ = itox_chars[(int) (field[i] & 0xf)]; len -= 2; } *ptr = '\0'; return ZERR_NONE; } Code_t ZMakeAscii32(ptr, len, value) register char *ptr; int len; unsigned long value; { if (len < 11) return ZERR_FIELDLEN; *ptr++ = '0'; *ptr++ = 'x'; *ptr++ = itox_chars[(value >> 28) & 0xf]; *ptr++ = itox_chars[(value >> 24) & 0xf]; *ptr++ = itox_chars[(value >> 20) & 0xf]; *ptr++ = itox_chars[(value >> 16) & 0xf]; *ptr++ = itox_chars[(value >> 12) & 0xf]; *ptr++ = itox_chars[(value >> 8) & 0xf]; *ptr++ = itox_chars[(value >> 4) & 0xf]; *ptr++ = itox_chars[(value >> 0) & 0xf]; *ptr = 0; return ZERR_NONE; } Code_t ZMakeAscii16(ptr, len, value) register char *ptr; int len; unsigned int value; { if (len < 7) return ZERR_FIELDLEN; *ptr++ = '0'; *ptr++ = 'x'; *ptr++ = itox_chars[(value >> 12) & 0xf]; *ptr++ = itox_chars[(value >> 8) & 0xf]; *ptr++ = itox_chars[(value >> 4) & 0xf]; *ptr++ = itox_chars[(value >> 0) & 0xf]; *ptr = 0; return ZERR_NONE; }