/*------------------------------------------------------------------------*/
/*                                                                        */
/*  APPEND3.CPP                                                           */
/*                                                                        */
/*  string& string::append( const char *cp, size_t n );                   */
/*                                                                        */
/*------------------------------------------------------------------------*/

/* $Copyright: 1992$ */

#if !defined(__FLAT__)
#if defined(__MEDIUM__) || defined(__LARGE__) || defined(__HUGE__)
static void __debug(void){}
#pragma codeseg _TEXTC
#endif
#endif



#include <string.h>
#include <cstring.h>


string _FAR & string::append( const char _FAR *cp, size_t orig, size_t n )
    throw( xalloc, string::lengtherror )
{
    if( cp != 0 )
        {
        cow();
        size_t slen = strlen(cp);
        size_t loc = min(orig,slen);
        size_t len = min(slen-loc,n);
        p->splice( p->nchars, 0, cp+loc, len );
        }
    return *this;
}


