Patch to fix displaying id3v1 info under UTF-8 locale
Miklos Szeredi <[email protected]>
| Newsgroups | gmane.comp.multimedia.xmms.devel |
|---|---|
| Message-ID | <[email protected]> |
And this patch does the same with id3v1 tags, and applies on top of
the previous one.
Miklos
Index: Input/mpg123/mpg123.c
===================================================================
RCS file: /cvs/xmms/Input/mpg123/mpg123.c,v
retrieving revision 1.56
diff -u -r1.56 mpg123.c
--- Input/mpg123/mpg123.c 18 Jul 2004 23:14:00 -0000 1.56
+++ Input/mpg123/mpg123.c 23 Oct 2004 14:04:25 -0000
@@ -2,6 +2,7 @@
#include "id3_header.h"
#include "libxmms/configfile.h"
#include "libxmms/titlestring.h"
+#include "libxmms/charset.h"
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
@@ -400,6 +401,14 @@
return ext;
}
+static char *convert_id3v1_field(const char *v1field, unsigned len)
+{
+ char *tmp = g_strndup(v1field, len);
+ char *v2field = xmms_charset_from_latin1(g_strstrip(tmp));
+ g_free(tmp);
+ return v2field;
+}
+
/*
* Function id3v1_to_id3v2 (v1, v2)
*
@@ -411,10 +420,10 @@
char *year;
struct id3v2tag_t *v2 = g_malloc0(sizeof (struct id3v2tag_t));
- v2->title = g_strstrip(g_strndup(v1->title, 30));
- v2->artist = g_strstrip(g_strndup(v1->artist, 30));
- v2->album = g_strstrip(g_strndup(v1->album, 30));
- v2->comment = g_strstrip(g_strndup(v1->u.v1_0.comment, 30));
+ v2->title = convert_id3v1_field(v1->title, 30);
+ v2->artist = convert_id3v1_field(v1->artist, 30);
+ v2->album = convert_id3v1_field(v1->album, 30);
+ v2->comment = convert_id3v1_field(v1->u.v1_0.comment, 30);
v2->genre = g_strstrip(g_strdup(get_id3_genre(v1->genre)));
year = g_strndup(v1->year, 4);