diff options
-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 |