URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [newlib/] [libc/] [string/] [strxfrm.c] - Rev 816
Compare with Previous | Blame | View Log
/* FUNCTION <<strxfrm>>---transform string INDEX strxfrm ANSI_SYNOPSIS #include <string.h> size_t strxfrm(char *<[s1]>, const char *<[s2]>, size_t <[n]>); TRAD_SYNOPSIS #include <string.h> size_t strxfrm(<[s1]>, <[s2]>, <[n]>); char *<[s1]>; char *<[s2]>; size_t <[n]>; DESCRIPTION This function transforms the string pointed to by <[s2]> and places the resulting string into the array pointed to by <[s1]>. The transformation is such that if the <<strcmp>> function is applied to the two transformed strings, it returns a value greater than, equal to, or less than zero, correspoinding to the result of a <<strcoll>> function applied to the same two original strings. No more than <[n]> characters are placed into the resulting array pointed to by <[s1]>, including the terminating null character. If <[n]> is zero, <[s1]> may be a null pointer. If copying takes place between objects that overlap, the behavior is undefined. With a C locale, this function just copies. RETURNS The <<strxfrm>> function returns the length of the transformed string (not including the terminating null character). If the value returned is <[n]> or more, the contents of the array pointed to by <[s1]> are indeterminate. PORTABILITY <<strxfrm>> is ANSI C. <<strxfrm>> requires no supporting OS subroutines. QUICKREF strxfrm ansi pure */ #include <string.h> size_t _DEFUN (strxfrm, (s1, s2, n), char *s1 _AND _CONST char *s2 _AND size_t n) { size_t res; res = 0; while (n-- > 0) { if ((*s1++ = *s2++) != '\0') ++res; else return res; } while (*s2) { ++s2; ++res; } return res; }