id3lib - patch UTF16 writing bug

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

id3lib - patch UTF16 writing bug

Messaggio 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.

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

Perfetto, dopo procedo con l'aggiornamento ;)
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio 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.

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

Si infatti, come regola nei sorgenti inserisco sempre il file .diff ;)
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio da bloodlust »

Sei da sposare ;)

Rispondi