Sat, 26 Apr 2003 20:30:43 +0000
[gaim-migrate @ 5604]
Chats in the buddy list!
You can now put chat rooms in your buddy list, and double-click them to join
them, instead of having to do all that typing. I'm eventually gonna add
auto-join support, so that ugly hack involving pouncing can go away.
Someone should make some new artwork so we don't have 2 + icons next to
each other in the menus.
This also has some fixes to let gaim compile again, after the renaming of
the buddy list files.
This also fixes the problem with offline buddies not showing up in the list
sometimes for accounts that didn't log in at startup.
This probably fixes other stuff, but I can't remember any of it off the top
of my head.
I'm going to stop typing and let people play with this now.
| 2849 | 1 | /* |
| 2 | Copyright (C) 1999 Aladdin Enterprises. All rights reserved. | |
| 3 | ||
| 4 | This software is provided 'as-is', without any express or implied | |
| 5 | warranty. In no event will the authors be held liable for any damages | |
| 6 | arising from the use of this software. | |
| 7 | ||
| 8 | Permission is granted to anyone to use this software for any purpose, | |
| 9 | including commercial applications, and to alter it and redistribute it | |
| 10 | freely, subject to the following restrictions: | |
| 11 | ||
| 12 | 1. The origin of this software must not be misrepresented; you must not | |
| 13 | claim that you wrote the original software. If you use this software | |
| 14 | in a product, an acknowledgment in the product documentation would be | |
| 15 | appreciated but is not required. | |
| 16 | 2. Altered source versions must be plainly marked as such, and must not be | |
| 17 | misrepresented as being the original software. | |
| 18 | 3. This notice may not be removed or altered from any source distribution. | |
| 19 | ||
| 20 | L. Peter Deutsch | |
| 21 | ghost@aladdin.com | |
| 22 | ||
| 23 | */ | |
| 24 | /* | |
| 25 | Independent implementation of MD5 (RFC 1321). | |
| 26 | ||
| 27 | This code implements the MD5 Algorithm defined in RFC 1321. | |
| 28 | It is derived directly from the text of the RFC and not from the | |
| 29 | reference implementation. | |
| 30 | ||
| 31 | The original and principal author of md5.h is L. Peter Deutsch | |
| 32 | <ghost@aladdin.com>. Other authors are noted in the change history | |
| 33 | that follows (in reverse chronological order): | |
| 34 | ||
| 35 | 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. | |
| 36 | 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5); | |
| 37 | added conditionalization for C++ compilation from Martin | |
| 38 | Purschke <purschke@bnl.gov>. | |
| 39 | 1999-05-03 lpd Original version. | |
| 40 | */ | |
| 41 | ||
| 42 | #ifndef md5_INCLUDED | |
| 43 | # define md5_INCLUDED | |
| 44 | ||
| 45 | /* | |
| 46 | * This code has some adaptations for the Ghostscript environment, but it | |
| 47 | * will compile and run correctly in any environment with 8-bit chars and | |
| 48 | * 32-bit ints. Specifically, it assumes that if the following are | |
| 49 | * defined, they have the same meaning as in Ghostscript: P1, P2, P3, | |
| 50 | * ARCH_IS_BIG_ENDIAN. | |
| 51 | */ | |
| 52 | ||
| 53 | typedef unsigned char md5_byte_t; /* 8-bit byte */ | |
| 54 | typedef unsigned int md5_word_t; /* 32-bit word */ | |
| 55 | ||
| 56 | /* Define the state of the MD5 Algorithm. */ | |
| 57 | typedef struct md5_state_s { | |
| 58 | md5_word_t count[2]; /* message length in bits, lsw first */ | |
| 59 | md5_word_t abcd[4]; /* digest buffer */ | |
| 60 | md5_byte_t buf[64]; /* accumulate block */ | |
| 61 | } md5_state_t; | |
| 62 | ||
| 63 | #ifdef __cplusplus | |
| 64 | extern "C" | |
| 65 | { | |
| 66 | #endif | |
| 67 | ||
| 68 | /* Initialize the algorithm. */ | |
| 69 | #ifdef P1 | |
| 70 | void md5_init(P1(md5_state_t *pms)); | |
| 71 | #else | |
| 72 | void md5_init(md5_state_t *pms); | |
| 73 | #endif | |
| 74 | ||
| 75 | /* Append a string to the message. */ | |
| 76 | #ifdef P3 | |
| 77 | void md5_append(P3(md5_state_t *pms, const md5_byte_t *data, int nbytes)); | |
| 78 | #else | |
| 79 | void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes); | |
| 80 | #endif | |
| 81 | ||
| 82 | /* Finish the message and return the digest. */ | |
| 83 | #ifdef P2 | |
| 84 | void md5_finish(P2(md5_state_t *pms, md5_byte_t digest[16])); | |
| 85 | #else | |
| 86 | void md5_finish(md5_state_t *pms, md5_byte_t digest[16]); | |
| 87 | #endif | |
| 88 | ||
| 89 | #ifdef __cplusplus | |
| 90 | } /* end extern "C" */ | |
| 91 | #endif | |
| 92 | ||
| 93 | #endif /* md5_INCLUDED */ |