All pastes #279423 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-12-15 00:46 UTC
rendered paste body
parseaux.h
==========
#ifndef PARSEAUX_H_INCLUDED
#define PARSEAUX_H_INCLUDED

char *read_string(char **pptr);
unsigned short read_ushort(char **ptr);
unsigned char read_uchar(char **ptr);
int read_uchar(char **ptr);

#endif

parseaux.c
==========

#include <stdlib.h>
#include <string.h>
#include "parseaux.h"

char *read_string(char **pptr)
{	
	char *ptr = *pptr;
	unsigned char slen = 0;
	
	// Read string length
	slen = *((unsigned char *) ptr); 
	ptr += sizeof(unsigned char);
	
	// Read string data
	char *str = (char *) malloc(slen + 1);
	memcpy(str, ptr, slen);
	str[slen] = '\0';
	
	// Move pointer ahead
	*pptr = ptr;
}

unsigned short read_ushort(char **ptr)
{
	unsigned short dummy = *((unsigned short *) (*ptr)); 
	(*ptr) += sizeof(unsigned short);	
	
	return dummy;
}

unsigned char read_uchar(char **ptr)
{
	unsigned char dummy = *((unsigned char *) (*ptr)); 
	(*ptr) += sizeof(unsigned char);	
	
	return dummy;
}

int read_uchar(char **ptr)
{
	int dummy = *((int *) (*ptr)); 
	(*ptr) += sizeof(int);	
	
	return dummy;
}