diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-03-17 11:20:27 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-03-17 11:20:27 +0000 |
commit | 006ceae3848f96f179e7aafdc02f40263477f265 (patch) | |
tree | aef3593ea2b89bd81867a7ba9637507830f2253b | |
parent | f456f34ed250904cc8dfbbb526219420d3956e5d (diff) |
optimized strncpy2().
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@182 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | ChangeLog.ja | 4 | ||||
-rw-r--r-- | src/utils.c | 18 |
3 files changed, 14 insertions, 12 deletions
@@ -1,5 +1,9 @@ 2005-03-17 + * src/utils.c: strncpy2(): optimized based on Alfons' code. + +2005-03-17 + * src/codeconv.[ch] src/textview.c src/unmime.c diff --git a/ChangeLog.ja b/ChangeLog.ja index 0c9d234d..4fbf5b09 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,5 +1,9 @@ 2005-03-17 + * src/utils.c: strncpy2(): Alfons さんのコードに基づいて最適化。 + +2005-03-17 + * src/codeconv.[ch] src/textview.c src/unmime.c 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 |