#include <ncbi.h>
#include <gishlib.h>

long _cdecl
swap_long(i)
	long	i;
{
	long	j;
	register CharPtr	src = (CharPtr) &i;
	register CharPtr	dst = ((CharPtr) &j) + (sizeof(j) - 1);
	register int	b;

	/* ANSI C guarantees at least 4 bytes of precision in a "long" */
	*dst = *src;
	*--dst = *++src;
	*--dst = *++src;
	*--dst = *++src;

	for (b = 0; b < (sizeof(j)-4); ++b)
		*--dst = *++src;

	return j;
}


short _cdecl
swap_short(s)
	int	s;
{
	short	i = (short)s;
	short	j;
	register CharPtr	src = (CharPtr) &i;
	register CharPtr	dst = ((CharPtr) &j) + (sizeof(j) - 1);
	register int	b;

	/* ANSI C guarantees at least 2 bytes of precision in a "short" */
	*dst = *src;
	*--dst = *++src;

	for (b = 0; b < (sizeof(j)-2); ++b)
		*--dst = *++src;

	return j;
}
