summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsezero <sezero@users.sourceforge.net>2018-11-11 00:51:10 +0300
committerThomas Daede <daede003@umn.edu>2019-01-28 15:41:18 -0800
commit3a1344bc67ca006c102c4ca891aba9b5100e3e30 (patch)
treefd9752f8fe3c05ffb8edb4aeb825025c4a4e007c
parent603cd941ea32576bdbca33c9d5625d878cd0d1c9 (diff)
downloadlibvorbis-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.c7
1 files 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 <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++;
}