[FFmpeg-cvslog] avstring: Add locale independent implementations of strcasecmp/strncasecmp

Reimar Döffinger git at videolan.org
Mon Nov 7 03:17:56 CET 2011


ffmpeg | branch: master | Reimar Döffinger <Reimar.Doeffinger at gmx.de> | Sat Nov  5 17:20:41 2011 +0200| [ba04ecfdacec4cf86e74b43fe8bcc09e06bb7a72] | committer: Martin Storsjö

avstring: Add locale independent implementations of strcasecmp/strncasecmp

Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ba04ecfdacec4cf86e74b43fe8bcc09e06bb7a72
---

 doc/APIchanges       |    3 +++
 libavutil/avstring.c |   21 +++++++++++++++++++++
 libavutil/avstring.h |   12 ++++++++++++
 libavutil/avutil.h   |    2 +-
 4 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index 0dd8350..f3dfe1f 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -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()
 
diff --git a/libavutil/avstring.c b/libavutil/avstring.c
index 2b8c2d4..11f3a7c 100644
--- a/libavutil/avstring.c
+++ b/libavutil/avstring.c
@@ -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
diff --git a/libavutil/avstring.h b/libavutil/avstring.h
index 8d97e1f..6988f0e 100644
--- a/libavutil/avstring.h
+++ b/libavutil/avstring.h
@@ -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 */
diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index b688321..5ad7034 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -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, \



More information about the ffmpeg-cvslog mailing list