Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed

/****************************************************************************
*
*     Copyright (c) 2003 Dave Hylands
*           All Rights Reserved
*
*       Permission is granted to any individual or institution to use, copy, or
*       redistribute this software so long as it is not sold for profit, and that
*       this copyright notice is retained.
*
****************************************************************************/

/**
*
*  @file    StrMaxCat.cpp
*
*  @brief   Implements StrMaxCat, a bounded string concatenation routine.
*
****************************************************************************/


/* ---- Include Files ---------------------------------------------------- */

#include "Str.h"
#include <string.h>

/* ---- Public Variables ------------------------------------------------- */
/* ---- Private Constants and Types -------------------------------------- */
/* ---- Private Variables ------------------------------------------------ */
/* ---- Private Function Prototypes -------------------------------------- */
/* ---- Functions -------------------------------------------------------- */

/**
 * @addtogroup Str
 * @{
 */


/***************************************************************************/
/**
*  Concatenates source to the destination, but makes sure that the
*  destination string (including terminating null), doesn't exceed maxLen.
*
*  @param   dst      (mod) String to concatnate onto.
*  @param   src      (in)  String to being added to the end of @a dst.
*  @param   maxLen   (in)  Maximum length that @a dst is allowed to be.
*
*  @return  A pointer to the destination string.
*/


char *StrMaxCat( char *dst, const char *src, size_t maxLen )
{
        size_t  dstLen = strlen( dst );

        if ( dstLen < maxLen )
        {
                StrMaxCpy( &dst[ dstLen ], src, maxLen - dstLen );
        }

        return dst;

} /* StrMaxCat */

/** @} */