Pagina 1 di 1

id3lib - patch UTF16 writing bug

Inviato: mer 22 ago 2007, 16:10
da bloodlust
La versione 3.8.3 di id3lib presenta questo bug (segnalato nel tracker #1016290) che mi si è presentato parecchie volte mentre riorganizzavo la collezione musicale.

Ecco il contenuto del patch file per sistemare il problema:

Codice: Seleziona tutto

--- io_helpers.cpp_ORIG 2007-08-22 15:41:49.000000000 +0200
+++ io_helpers.cpp      2007-08-22 15:44:12.000000000 +0200
@@ -363,9 +363,10 @@
     // Write the BOM: 0xFEFF
     unicode_t BOM = 0xFEFF;
     writer.writeChars((const unsigned char*) &BOM, 2);
+    unsigned char *pdata = (unsigned char *) data.c_str();
     for (size_t i = 0; i < size; i += 2)
     {
-      unicode_t ch = (data[i] << 8) | data[i+1];
+      unicode_t ch = (pdata[i] << 8) | pdata[i+1];
       writer.writeChars((const unsigned char*) &ch, 2);
     }
   }
Per applicarlo usate il solito metodo

Codice: Seleziona tutto

patch -p0 <patch_id3lib_3.8.3_UTF16_writing_bug.diff
e ricompilate.

PS: Se volete utilizzare lo slackbuild basta modifcarlo per far "patchare" il file prima della compilazione.

Inviato: mer 22 ago 2007, 17:44
da Loris
Perfetto, dopo procedo con l'aggiornamento ;)

Inviato: mer 22 ago 2007, 19:08
da bloodlust
Nel tarball dei sorgenti e anche in CVS il codice non risulta ancora modificato quindi penso che la cosa più comoda sia distribuire il file diff assieme allo slackbuild.

Inviato: mer 22 ago 2007, 19:18
da Loris
Si infatti, come regola nei sorgenti inserisco sempre il file .diff ;)

Inviato: mer 22 ago 2007, 19:35
da bloodlust
Sei da sposare ;)