decout.c
Author: cmaier@cmassoc.net

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

[PREV] [HOME] [NEXT]