annotate osdep/strl.c @ 21477:706ee13d09f1

help_mp-de.h: r21367: If a glyph is not found in the current font, switch to another one. r21476: Open embedded fonts directly from memory. [...] mplayer.1: r21357: Cycling through video tracks works with libavformat as well. r21398: improve description of lavf's i_certify_that_my_video_stream_does_not_use_b_frames r21399: fix suggested by Diego r21410: document new meaning of dia=-1 introduced by lavc r7192 r21413: mark lavc's uneven multi-hexagon search as slow, remove stray '.' r21430: documented -mpegopts :[va]buf_size r21441: Audio track switching works for AVI and libavformat as well. r21446: Remove long-deprecated -vop option. r21449: Merge dga/nodga suboption of vo_vesa, no short forms. r21452: document s3fb video out driver r21484: documented -mpegopts :tele_src and :tele_dest r21486: Improoving readability of pullup filter section r21487: document s3fb suboption, [...]
author kraymer
date Mon, 04 Dec 2006 19:06:19 +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