1 /*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Chris Torek. 7 * 8 * %sccs.include.redist.c% 9 */ 10 11 #if defined(LIBC_SCCS) && !defined(lint) 12 static char sccsid[] = "@(#)strxfrm.c 5.2 (Berkeley) 01/26/91"; 13 #endif /* LIBC_SCCS and not lint */ 14 15 #include <sys/cdefs.h> 16 #include <string.h> 17 18 /* 19 * Transform src, storing the result in dst, such that 20 * strcmp() on transformed strings returns what strcoll() 21 * on the original untransformed strings would return. 22 */ 23 size_t 24 strxfrm(dst, src, n) 25 register char *dst; 26 register const char *src; 27 register size_t n; 28 { 29 register size_t r = 0; 30 register int c; 31 32 /* 33 * Since locales are unimplemented, this is just a copy. 34 */ 35 if (n != 0) { 36 while ((c = *src++) != 0) { 37 r++; 38 if (--n == 0) { 39 while (*src++ != 0) 40 r++; 41 break; 42 } 43 *dst++ = c; 44 } 45 *dst = 0; 46 } 47 return (r); 48 } 49