/*====================================================================*
*
* 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