From 9352fc9e6670721f696dda5a15fa1d2419c2e6f8 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 29 Aug 2008 09:39:01 +0200 Subject: tag: pass length to fix_utf8() Same as the previous patch, prepare the function fix_utf8() this time. --- src/tag.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/tag.c b/src/tag.c index 1d22b46d1..ff8b1dbd1 100644 --- a/src/tag.c +++ b/src/tag.c @@ -347,17 +347,18 @@ int tag_equal(struct tag *tag1, struct tag *tag2) return 1; } -static inline char *fix_utf8(char *str) { +static inline char *fix_utf8(char *str, size_t *length_r) { char *temp; assert(str != NULL); - if (validUtf8String(str, strlen(str))) + if (validUtf8String(str, *length_r)) return str; DEBUG("not valid utf8 in tag: %s\n",str); temp = latin1StrToUtf8Dup(str); free(str); + *length_r = strlen(temp); return temp; } @@ -370,7 +371,7 @@ static void appendToTagItems(struct tag *tag, enum tag_type type, memcpy(duplicated, value, len); duplicated[len] = '\0'; - duplicated = fix_utf8(duplicated); + duplicated = fix_utf8(duplicated, &len); stripReturnChar(duplicated); tag->numOfItems++; -- cgit v1.2.3