From f765c262754bdb181cffa686c9bdf19b6ae184bb Mon Sep 17 00:00:00 2001
From: Warren Dukes <warren.dukes@gmail.com>
Date: Tue, 13 Apr 2004 02:38:09 +0000
Subject: fix a small booboo and add some debugging stuff

git-svn-id: https://svn.musicpd.org/mpd/trunk@708 09075e82-0dd4-0310-85a5-a0d7c8717e4f
---
 src/tag.c  | 2 ++
 src/utf8.c | 6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/tag.c b/src/tag.c
index 2fabf5639..63a7719db 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -25,6 +25,7 @@
 #include "aac_decode.h"
 #include "utils.h"
 #include "utf8.h"
+#include "log.h"
 
 #include <sys/stat.h>
 #include <stdlib.h>
@@ -61,6 +62,7 @@ void printMpdTag(FILE * fp, MpdTag * tag) {
 #define fixUtf8(str) { \
 	if(str && !validUtf8String(str)) { \
 		char * temp; \
+		DEBUG("not valid utf8 in tag: %s\n",str); \
 		temp = asciiStrToUtf8Dup(str); \
 		free(str); \
 		str = temp; \
diff --git a/src/utf8.c b/src/utf8.c
index aa427e99b..140316150 100644
--- a/src/utf8.c
+++ b/src/utf8.c
@@ -59,7 +59,7 @@ int validateUtf8Char(unsigned char * utf8Char) {
 	
 	if(utf8Char[0]>=0xC0 && utf8Char[0]<=0xFD) {
 		int count = 1;
-		unsigned char t = 0x20;
+		unsigned char t = 1 << 5;
 		int i;
 		while(count < 6 && (t & utf8Char[0])) {
 			t = (t >> 1);
@@ -69,7 +69,7 @@ int validateUtf8Char(unsigned char * utf8Char) {
 		for(i=1;i<=count;i++) {
 			if(utf8Char[i] < 0x80 || utf8Char[i] > 0xBF) return 0;
 		}
-		return count;
+		return count+1;
 	}
 	else return 0;
 }
@@ -79,7 +79,7 @@ int validUtf8String(unsigned char * string) {
 
 	while(*string) {
 		ret = validateUtf8Char(string);
-		if(!ret) return 0;
+		if(0==ret) return 0;
 		string+= ret;
 	}
 
-- 
cgit v1.2.3