From 006ceae3848f96f179e7aafdc02f40263477f265 Mon Sep 17 00:00:00 2001 From: hiro Date: Thu, 17 Mar 2005 11:20:27 +0000 Subject: optimized strncpy2(). git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@182 ee746299-78ed-0310-b773-934348b2243d --- ChangeLog | 4 ++++ ChangeLog.ja | 4 ++++ src/utils.c | 18 ++++++------------ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index e571a991..275ef5dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2005-03-17 + + * src/utils.c: strncpy2(): optimized based on Alfons' code. + 2005-03-17 * src/codeconv.[ch] diff --git a/ChangeLog.ja b/ChangeLog.ja index 0c9d234d..4fbf5b09 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,7 @@ +2005-03-17 + + * src/utils.c: strncpy2(): Alfons さんのコードに基づいて最適化。 + 2005-03-17 * src/codeconv.[ch] diff --git a/src/utils.c b/src/utils.c index de2324f6..5d65c418 100644 --- a/src/utils.c +++ b/src/utils.c @@ -309,20 +309,14 @@ gpointer my_memmem(gconstpointer haystack, size_t haystacklen, /* Copy no more than N characters of SRC to DEST, with NULL terminating. */ gchar *strncpy2(gchar *dest, const gchar *src, size_t n) { - register gchar c; - gchar *s = dest; + register const gchar *s = src; + register gchar *d = dest; - do { - if (--n == 0) { - *dest = '\0'; - return s; - } - c = *src++; - *dest++ = c; - } while (c != '\0'); + while (--n && *s) + *d++ = *s++; + *d = '\0'; - /* don't do zero fill */ - return s; + return dest; } #if !HAVE_ISWALNUM -- cgit v1.2.3