/*
**
** Copyright (C) 1993 Swedish University Network (SUNET)
**
**
** This program is developed by UDAC, Uppsala University by commission
** of the Swedish University Network (SUNET).
**
** 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 FITTNESS 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.
**
**
** Martin.Wendel@its.uu.se
** Torbjorn.Wictorin@its.uu.se
**
** ITS
** P.O. Box 887
** S-751 08 Uppsala
** Sweden
**
*/
#include "emil.h"
char *
makelong(unsigned long i, int length)
{
unsigned char *s, *t;
s = (char *)Yalloc(length + 1);
t = s;
for (;length != 0; length--)
{
*s = 0xFF & (i >> (length - 1)*8);
s++;
}
return(t);
}
int
getlong(unsigned long *l, struct data *d)
{
unsigned char *s;
int i;
if (get_length(d) < 4)
return(NOK);
s = d->contents + d->offset;
*l = 0;
for (i = 0; i < 4; i++)
*l = (unsigned long) *s++ | *l<<8;
d->offset += 4;
return(OK);
}
unsigned long
getblong(unsigned char *s)
{
unsigned long l;
int i;
l = 0;
for (i = 0; i < 4; i++)
l = (unsigned long) *s++ | l<<8;
return(l);
}
int
getshort(unsigned short *l, struct data *d)
{
unsigned char *s;
int i;
if (get_length(d) < 2)
return(NOK);
s = d->contents + d->offset;
*l = 0;
for (i = 0; i < 2; i++)
*l = (unsigned short) *s++ | *l<<8;
d->offset += 2;
return(OK);
}
syntax highlighted by Code2HTML, v. 0.9.1