blob: 7fd334cb4d8e2150811b6cf4dc033707e2f0bbd3 [file] [log] [blame]
extern void abort(void);
extern int inside_main;
typedef __SIZE_TYPE__ size_t;
__attribute__ ((__noinline__))
char *
strncat (char *s1, const char *s2, size_t n)
{
char *dest = s1;
char c = '\0';
#ifdef __OPTIMIZE__
if (inside_main)
abort();
#endif
while (*s1) s1++;
c = '\0';
while (n > 0)
{
c = *s2++;
*s1++ = c;
if (c == '\0')
return dest;
n--;
}
if (c != '\0')
*s1 = '\0';
return dest;
}