Browse Source

avstring: Add locale independent implementations of strcasecmp/strncasecmp

Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n0.9
Reimar Döffinger Martin Storsjö 13 years ago
parent
commit
ba04ecfdac
4 changed files with 37 additions and 1 deletions
  1. +3
    -0
      doc/APIchanges
  2. +21
    -0
      libavutil/avstring.c
  3. +12
    -0
      libavutil/avstring.h
  4. +1
    -1
      libavutil/avutil.h

+ 3
- 0
doc/APIchanges 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()



+ 21
- 0
libavutil/avstring.c 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


+ 12
- 0
libavutil/avstring.h 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 */

+ 1
- 1
libavutil/avutil.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, \


Loading…
Cancel
Save