strdecr.c
Author: cmaier@cmassoc.net

    /*====================================================================*
     *
     *   signed strdecr (void * memory, size_t extent, byte min, byte max);
     *
     *   memory.h
     *
     *   decrement a multi-byte memory region; start at max and reset at
     *   min; return -1 if all bytes are min;
     *
     *   Motley Tools by Charles Maier <cmaier@cmassoc.net>;
     *   Copyright (c) 2001-2006 by Charles Maier Associates;
     *   Licensed under the Internet Software Consortium License;
     *
     *--------------------------------------------------------------------*/

    #ifndef STRDECR_SOURCE
    #define STRDECR_SOURCE

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

    signed strdecr (void * memory, register size_t extent, register byte min, register byte max)

    {
    	register byte * offset = (byte *)(memory);
    	while (extent--)
    	{
    		if (-- offset [extent] >= min)
    		{
    			return (0);
    		}
    		offset [extent] = max;
    	}
    	return (-1);
    }

    #endif

[PREV] [HOME] [NEXT]