diff options
author | ache <ache@FreeBSD.org> | 1995-02-18 11:36:33 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1995-02-18 11:36:33 +0000 |
commit | 4fd94cf7956efed45122c9c3f61d5e4b00067e8e (patch) | |
tree | bbf9e3bdf183cce4f36c45952f91773e95377483 /lib | |
parent | aff5591acf4cc509ca3a7ffdc38199e307e5e399 (diff) | |
download | FreeBSD-src-4fd94cf7956efed45122c9c3f61d5e4b00067e8e.zip FreeBSD-src-4fd94cf7956efed45122c9c3f61d5e4b00067e8e.tar.gz |
Minor optimization.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/string/strxfrm.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/libc/string/strxfrm.c b/lib/libc/string/strxfrm.c index 6d6a13e..eb02c13 100644 --- a/lib/libc/string/strxfrm.c +++ b/lib/libc/string/strxfrm.c @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: strxfrm.c,v 1.2 1995/02/16 17:01:11 ache Exp $ + * $Id: strxfrm.c,v 1.3 1995/02/18 01:39:00 ache Exp $ */ #include <stdlib.h> @@ -49,13 +49,15 @@ strxfrm(dest, src, len) } if (__collate_load_error) { - size_t slen, ncopy; + size_t slen = strlen(src); - slen = strlen(src); - ncopy = slen < len ? slen : len - 1; - (void)memcpy(d, src, ncopy); - d[ncopy] = '\0'; - return ncopy; + if (slen < len) { + strcpy(d, src); + return slen; + } + strncpy(d, src, len - 1); + d[len - 1] = '\0'; + return len - 1; } ss = s = __collate_substitute(src); |