4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-18 12:29:32 +08:00

2007-04-09 Joel Schopp <jschopp@austin.ibm.com>

* libc/machine/spu/strxfrm.c: Fix strxfrm so we still copy data
        even if the passed in length n is shorter than the source string.
        This matches both the non-spu specific and the glibc strxfrm
        behaviour.
This commit is contained in:
Jeff Johnston 2007-04-09 16:03:26 +00:00
parent 69de39769d
commit abe43f4262
2 changed files with 10 additions and 8 deletions

View File

@ -1,3 +1,10 @@
2007-04-09 Joel Schopp <jschopp@austin.ibm.com>
* libc/machine/spu/strxfrm.c: Fix strxfrm so we still copy data
even if the passed in length n is shorter than the source string.
This matches both the non-spu specific and the glibc strxfrm
behaviour.
2007-04-04 Mark Mitchell <mark@codesourcery.com>
* libc/stdlib/__call_atexit.c (__call_exitprocs): Handle atexit

View File

@ -34,6 +34,7 @@
#include <stddef.h>
#include <string.h>
#define min(a, b) (a) < (b) ? (a) : (b)
/* The strxfrm() function transforms the src string into a form such that
* the result of strcmp() on two strings that have been transformed with
@ -54,13 +55,7 @@ size_t strxfrm(char * __restrict__ dest, const char * __restrict__ src, size_t n
size_t len;
len = strlen(src);
(void)memcpy((void *)dest, (void *)src, min(n,len + 1));
/* Since the destination is indeterminant if n is less than of equal
* to the string length, we skip performing the copy (altogether) in
* this case.
*/
if (n > len) {
(void)memcpy((void *)dest, (void *)src, n);
}
return (len);
return len;
}