aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-03-17 11:20:27 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-03-17 11:20:27 +0000
commit006ceae3848f96f179e7aafdc02f40263477f265 (patch)
treeaef3593ea2b89bd81867a7ba9637507830f2253b
parentf456f34ed250904cc8dfbbb526219420d3956e5d (diff)
optimized strncpy2().
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@182 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog4
-rw-r--r--ChangeLog.ja4
-rw-r--r--src/utils.c18
3 files changed, 14 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index e571a991..275ef5dc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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