/*====================================================================*
 *
 *   void decout (const byte memory [], size_t extent, char c, char e, FILE * fp);
 *
 *   memory.h
 *
 *   print a memory region as a series of decimal octets separated  
 *   by character c; normally, c will be DEC_EXTENDER as defined in 
 *   number.h; 
 *
 *   for example, decout (memory, 4, '.', stdout) would print
 *
 *      192.168.101.002
 *
 *   Motley Tools by Charles Maier <cmaier@cmassoc.net>;
 *   Copyright (c) 2001-2006 by Charles Maier Associates;
 *   Licensed under the Internet Software Consortium License;
 *
 *--------------------------------------------------------------------*/

#ifndef DECOUT_SOURCE
#define DECOUT_SOURCE

#include <stdio.h>
#include <ctype.h>

#include "../tools/memory.h"
#include "../tools/number.h"

void decout (void const * memory, size_t extent, char c, char e, FILE * fp) 

{ 
	byte * offset = (byte *) (memory); 
	while (extent--) 
	{ 
		unsigned order = 100; 
		while (order) 
		{ 
			putc (DIGITS_DEC [(* offset / order) % RADIX_DEC], fp); 
			order /= RADIX_DEC; 
		} 
		if ((extent) && (c)) 
		{ 
			putc (c, fp); 
		} 
		offset++; 
	} 
	if (e) 
	{ 
		putc (e, fp); 
	} 
	return; 
} 

#endif