X-Git-Url: https://git.libav.org/?p=libav.git;a=blobdiff_plain;f=libavformat%2Fcutils.c;h=eeeef51464afbbe74e8f168b25400fc93d40111a;hp=bde1c1d39acf15ebd276d8a341ab2b5a2a2d253b;hb=aa38ada2d408ae7945c9434aed1da36c001dc3b7;hpb=12a6f28928b85d366478b45422495bf0066fcf05 diff --git a/libavformat/cutils.c b/libavformat/cutils.c index bde1c1d39a..eeeef51464 100644 --- a/libavformat/cutils.c +++ b/libavformat/cutils.c @@ -44,23 +44,15 @@ int strstart(const char *str, const char *pfx, const char **ptr) * prefix. * * @param str input string - * @param val prefix to test + * @param pfx prefix to test * @param ptr updated after the prefix in str in there is a match * @return TRUE if there is a match */ -int stristart(const char *str, const char *val, const char **ptr) +int stristart(const char *str, const char *pfx, const char **ptr) { - const char *p, *q; - p = str; - q = val; - while (*q != '\0') { - if (toupper(*(const unsigned char *)p) != toupper(*(const unsigned char *)q)) - return 0; - p++; - q++; - } - if (ptr) - *ptr = p; - return 1; + while (*pfx && toupper((unsigned)*pfx++) == toupper((unsigned)*str++)); + if (!*pfx && ptr) + *ptr = str; + return !*pfx; } /** @@ -75,26 +67,18 @@ int stristart(const char *str, const char *val, const char **ptr) */ void pstrcpy(char *buf, int buf_size, const char *str) { - int c; - char *q = buf; - if (buf_size <= 0) return; - for(;;) { - c = *str++; - if (c == 0 || q >= buf + buf_size - 1) - break; - *q++ = c; - } - *q = '\0'; + while (buf_size-- > 1 && *str) + *buf++ = *str++; + *buf = 0; } /* strcat and truncate. */ char *pstrcat(char *buf, int buf_size, const char *s) { - int len; - len = strlen(buf); + int len = strlen(buf); if (len < buf_size) pstrcpy(buf + len, buf_size - len, s); return buf;