annotate osdep/strlcpy.c @ 22039:cb8cf313ce0b

Move platform-specific stuff together.
author diego
date Sun, 28 Jan 2007 22:31:53 +0000
parents 8d9e6b4fbf4d
children 9fb716ab06a3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21857
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
1 /* strlcpy implementation for systems that do not have it in libc
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
2 * Time-stamp: <2004-03-14 njk>
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
3 * (C) 2003-2004 Nicholas J. Kain <njk@aerifal.cx>
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
4 */
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
5
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
6 #include "config.h"
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
7
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
8 unsigned int strlcpy (char *dest, const char *src, unsigned int size)
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
9 {
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
10 register unsigned int i = 0;
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
11
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
12 if (size > 0) {
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
13 size--;
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
14 for (i=0; size > 0 && src[i] != '\0'; ++i, size--)
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
15 dest[i] = src[i];
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
16
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
17 dest[i] = '\0';
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
18 }
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
19 while (src[i++]);
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
20
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
21 return i;
8d9e6b4fbf4d Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.
diego
parents:
diff changeset
22 }