aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-08-29 09:38:54 +0200
committerMax Kellermann <max@duempel.org>2008-08-29 09:38:54 +0200
commitf99fe808117fb29fc8dfba8c2eb1b18472aa6faa (patch)
treed131bffc0f6b7e2406494c5d270234f4b269787d
parentc855415c733d712aa0f129fbfdef2af11e289234 (diff)
downloadmpd-f99fe808117fb29fc8dfba8c2eb1b18472aa6faa.tar.gz
mpd-f99fe808117fb29fc8dfba8c2eb1b18472aa6faa.tar.xz
mpd-f99fe808117fb29fc8dfba8c2eb1b18472aa6faa.zip
tag: converted macro fixUtf8() to an inline function
Since the inline function cannot modify its caller's variables (which is a good thing for code readability), the new string pointer is the return value. The resulting binary should be the same as with the macro.
-rw-r--r--src/tag.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/tag.c b/src/tag.c
index f99375110..bb3ff08ac 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -347,14 +347,16 @@ int tag_equal(struct tag *tag1, struct tag *tag2)
return 1;
}
-#define fixUtf8(str) { \
- if(str && !validUtf8String(str)) { \
- char * temp; \
- DEBUG("not valid utf8 in tag: %s\n",str); \
- temp = latin1StrToUtf8Dup(str); \
- free(str); \
- str = temp; \
- } \
+static inline char *fix_utf8(char *str) {
+ char *temp;
+
+ if (str != NULL && validUtf8String(str))
+ return str;
+
+ DEBUG("not valid utf8 in tag: %s\n",str);
+ temp = latin1StrToUtf8Dup(str);
+ free(str);
+ return temp;
}
static void appendToTagItems(struct tag *tag, enum tag_type type,
@@ -366,7 +368,7 @@ static void appendToTagItems(struct tag *tag, enum tag_type type,
memcpy(duplicated, value, len);
duplicated[len] = '\0';
- fixUtf8(duplicated);
+ duplicated = fix_utf8(duplicated);
stripReturnChar(duplicated);
tag->numOfItems++;