avstring: Add locale independent implementations of strcasecmp/strncasecmp

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Reimar Döffinger 2011-11-05 17:20:41 +02:00 committed by Martin Storsjö
parent 07b172fe8f
commit ba04ecfdac
4 changed files with 37 additions and 1 deletions

View File

@ -13,6 +13,9 @@ libavutil: 2011-04-18
API changes, most recent first:
2011-11-xx - xxxxxxx - lavu 51.14.0
Add av_strcasecmp() and av_strncasecmp() to avstring.h.
2011-11-xx - xxxxxxx - lavu 51.13.0
Add av_toupper()/av_tolower()

View File

@ -134,6 +134,27 @@ char *av_get_token(const char **buf, const char *term)
return ret;
}
int av_strcasecmp(const char *a, const char *b)
{
uint8_t c1, c2;
do {
c1 = av_tolower(*a++);
c2 = av_tolower(*b++);
} while (c1 && c1 == c2);
return c1 - c2;
}
int av_strncasecmp(const char *a, const char *b, size_t n)
{
const char *end = a + n;
uint8_t c1, c2;
do {
c1 = av_tolower(*a++);
c2 = av_tolower(*b++);
} while (a < end && c1 && c1 == c2);
return c1 - c2;
}
#ifdef TEST
#undef printf

View File

@ -151,4 +151,16 @@ static inline int av_tolower(int c)
return c;
}
/*
* Locale independent case-insensitive compare.
* Note: This means only ASCII-range characters are case-insensitive
*/
int av_strcasecmp(const char *a, const char *b);
/**
* Locale independent case-insensitive compare.
* Note: This means only ASCII-range characters are case-insensitive
*/
int av_strncasecmp(const char *a, const char *b, size_t n);
#endif /* AVUTIL_AVSTRING_H */

View File

@ -40,7 +40,7 @@
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
#define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 13
#define LIBAVUTIL_VERSION_MINOR 14
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \