[PATCH] replace: clean-up strlcpy and add note on return value
David Disseldorp
ddiss at samba.org
Thu Mar 26 05:21:44 MDT 2015
The existing implementation uses single line ifs, making the code hard
to visually parse.
Signed-off-by: David Disseldorp <ddiss at samba.org>
---
lib/replace/replace.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/lib/replace/replace.c b/lib/replace/replace.c
index 2a9ca3e..9fae44a 100644
--- a/lib/replace/replace.c
+++ b/lib/replace/replace.c
@@ -64,14 +64,22 @@ int rep_ftruncate(int f, off_t l)
#ifndef HAVE_STRLCPY
-/* like strncpy but does not 0 fill the buffer and always null
- terminates. bufsize is the size of the destination buffer */
+/*
+ * Like strncpy but does not 0 fill the buffer and always null
+ * terminates. bufsize is the size of the destination buffer.
+ * Returns the length of s.
+ */
size_t rep_strlcpy(char *d, const char *s, size_t bufsize)
{
size_t len = strlen(s);
size_t ret = len;
- if (bufsize <= 0) return 0;
- if (len >= bufsize) len = bufsize-1;
+
+ if (bufsize <= 0) {
+ return 0;
+ }
+ if (len >= bufsize) {
+ len = bufsize - 1;
+ }
memcpy(d, s, len);
d[len] = 0;
return ret;
--
2.1.4
More information about the samba-technical
mailing list