diff options
author | sezero <sezero@users.sourceforge.net> | 2018-11-11 00:51:10 +0300 |
---|---|---|
committer | Thomas Daede <daede003@umn.edu> | 2019-01-28 15:41:18 -0800 |
commit | 3a1344bc67ca006c102c4ca891aba9b5100e3e30 (patch) | |
tree | fd9752f8fe3c05ffb8edb4aeb825025c4a4e007c | |
parent | 603cd941ea32576bdbca33c9d5625d878cd0d1c9 (diff) | |
download | libvorbis-git-3a1344bc67ca006c102c4ca891aba9b5100e3e30.tar.gz |
info.c (tagcompare): use a locale-insensitive toupper()
see: https://gitlab.xiph.org/xiph/vorbis/issues/2079
-rw-r--r-- | lib/info.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -19,7 +19,6 @@ #include <stdlib.h> #include <string.h> -#include <ctype.h> #include <ogg/ogg.h> #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++; } |