view src/protocols/icq/icqbyteorder.c @ 6982:083d1e4a9c78

[gaim-migrate @ 7538] This is Mr. Holland's Opus. And by Mr. Holland I mean Robot101. He rewrote the coreish IM image support so that the binary data gets ripped out in the prpl and put in an imgstore instead of just being passed in the same huge as char string as the actual message. This is good because it's prpl agnostic, or something. It also means we don't have a silly length of "-1" with pretty much every send or receive IM function. It should be crash free, bug free, and memleak free, but additional testing is always a good thing. If you like good stuff then you'll love this patch. But don't take my word for it--ba dun dunt! committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sat, 27 Sep 2003 19:17:21 +0000
parents 424a40f12a6c
children
line wrap: on
line source

/*
 * $Id: icqbyteorder.c 2096 2001-07-31 01:00:39Z warmenhoven $
 *
 * This header defines macros to handle ICQ protocol byte order conversion.
 *
 * Vadim Zaliva <lord@crocodile.org>
 * http://www.crocodile.org/
 * 
 * Copyright (C) 1999 Vadim Zaliva
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

/*
 * I am really trying to use builtin optimized byte swap routines.
 * they are highly optimised on some platforms.
 * But as last resort this simple code is used.
 */

#ifndef HAVE_BYTESWAP_H
# ifndef bswap_32
unsigned long bswap_32(unsigned long v)
{
  unsigned char c,*x=(unsigned char *)&v;
  c=x[0];x[0]=x[3];x[3]=c;
  c=x[1];x[1]=x[2];x[2]=c;
  return v;
}
# endif

# ifndef bswap_16
unsigned short bswap_16(unsigned short v)
{
  unsigned char c,*x=(unsigned char *)&v;
  c=x[0];x[0]=x[1];x[1]=c;
  return v;
}
# endif
#endif