annotate osdep/strl.c @ 18715:30d7ddf08889

Fix window position when changing videos while in fullscreen and for window managers that modify position on Map. Oked by Alexander Strasser.
author reimar
date Thu, 15 Jun 2006 08:00:37 +0000
parents 61227210498e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
1 /* strl(cat|cpy) implementation for systems that do not have it in libc */
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
2 /* strl.c - strlcpy/strlcat implementation
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
3 * Time-stamp: <2004-03-14 njk>
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
4 * (C) 2003-2004 Nicholas J. Kain <njk@aerifal.cx>
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
5 */
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
6
16985
08cac43f1e38 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16853
diff changeset
7 #include "config.h"
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
8
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
9 #ifndef HAVE_STRLCPY
15058
f48dc20c9185 - fix gcc warnings, strlcat/strlcpy prototypes
rathann
parents: 12646
diff changeset
10 unsigned int strlcpy (char *dest, const char *src, unsigned int size)
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
11 {
17767
61227210498e Missing initialization
reimar
parents: 16985
diff changeset
12 register unsigned int i = 0;
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
13
16853
da29ac12242d fix broken (off-by-one) behavior of our strl* functions (patch by reimar)
rfelker
parents: 15058
diff changeset
14 if (size > 0) {
da29ac12242d fix broken (off-by-one) behavior of our strl* functions (patch by reimar)
rfelker
parents: 15058
diff changeset
15 size--;
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
16 for (i=0; size > 0 && src[i] != '\0'; ++i, size--)
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
17 dest[i] = src[i];
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
18
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
19 dest[i] = '\0';
16853
da29ac12242d fix broken (off-by-one) behavior of our strl* functions (patch by reimar)
rfelker
parents: 15058
diff changeset
20 }
da29ac12242d fix broken (off-by-one) behavior of our strl* functions (patch by reimar)
rfelker
parents: 15058
diff changeset
21 while (src[i++]);
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
22
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
23 return i;
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
24 }
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
25 #endif
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
26
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
27 #ifndef HAVE_STRLCAT
15058
f48dc20c9185 - fix gcc warnings, strlcat/strlcpy prototypes
rathann
parents: 12646
diff changeset
28 unsigned int strlcat (char *dest, const char *src, unsigned int size)
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
29 {
15058
f48dc20c9185 - fix gcc warnings, strlcat/strlcpy prototypes
rathann
parents: 12646
diff changeset
30 register char *d = dest;
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
31
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
32 for (; size > 0 && *d != '\0'; size--, d++);
16853
da29ac12242d fix broken (off-by-one) behavior of our strl* functions (patch by reimar)
rfelker
parents: 15058
diff changeset
33 return (d - dest) + strlcpy(d, src, size);
12646
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
34 }
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
35 #endif
9a495bdc3a1e string handling security fixes
diego
parents:
diff changeset
36