From 3a1344bc67ca006c102c4ca891aba9b5100e3e30 Mon Sep 17 00:00:00 2001 From: sezero Date: Sun, 11 Nov 2018 00:51:10 +0300 Subject: info.c (tagcompare): use a locale-insensitive toupper() see: https://gitlab.xiph.org/xiph/vorbis/issues/2079 --- lib/info.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/info.c b/lib/info.c index 23efa25c..4a5e2b30 100644 --- a/lib/info.c +++ b/lib/info.c @@ -19,7 +19,6 @@ #include #include -#include #include #include "vorbis/codec.h" #include "codec_internal.h" @@ -47,6 +46,10 @@ static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){ } } +static int _v_toupper(int c) { + return (c >= 'a' && c <= 'z') ? (c & ~('a' - 'A')) : c; +} + void vorbis_comment_init(vorbis_comment *vc){ memset(vc,0,sizeof(*vc)); } @@ -78,7 +81,7 @@ void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *con static int tagcompare(const char *s1, const char *s2, int n){ int c=0; while(c < n){ - if(toupper(s1[c]) != toupper(s2[c])) + if(_v_toupper(s1[c]) != _v_toupper(s2[c])) return !0; c++; } -- cgit v1.2.1