On 2016-03-31 14:55, Thomas Schmitt wrote:
Interpretation of TAB character in text categories of CD-TEXT is not
implemented. Our cheat sheet
http://libburnia-project.org/browser/libburn/trunk/doc/cdtext.txt
says:
If a text of a track (pack types 0x80 to 0x85 and 0x8e) repeats
identically
for the next track, then it may be represented by a TAB character
(ASCII 9)
for single byte texts, and two TAB characters for double byte texts.
(This should be used because 256 * 12 bytes is few space for 99
tracks.)
The misattribution of the uninterpreted TAB for track 2 to the text
for track 3 is caused by the demand in cdtext.c that a text must have
more than one character. I do not see a reason why 1 should not
suffice.
At least i can get the TAB attributed to track 2 by this change:
Thanks for pointing that out. It should indeed say > 0.
Copying of previous text on TAB is probably best implemented in
cdtext_set().
I would strongly object on that. cdtext_set() is the public function to
work on the cdtext_t struct. TAB-substitution however is part of the
binary format.
Also, because cdtext_set is part of the API, changing its parameters
means changing the API. So I would really like to avoid it. Also the
charset information already contains the information if it is
double-byte.
But: TAB-Completion can also be implemented in cdtext_data_init without
causing that much trouble. I have not yet decided whether to restructure
the loop a little or make it an ugly conditional within the current
loop.
I wonder why test/cdtext.right does not show an ARRANGER of track 2
in english and in german, although test/data/cdtext.cdt has no TABs
as abbreviation in the 0x84 packs.
Because it was also affected by 'The Hunt'-bug and is in fact not
'right'.
The fix is included in a patch I already prepared. I will submit it as
soon as I am back at home.
Regards
Leon