[Flac] Annoying semi-bug in flac

Nicholas Wilson nicholas.c.wilson at ntlworld.com
Sat Jul 14 16:31:18 PDT 2007


Dear all,

I use flac a lot and find it really useful.  However, there is one slight issue that keeps bugging me.  
When encoding/checking files with long filenames, you get output like this (usually much longer):

30 Gardiner, John Eliot Monteverdi Choir, English Baroque Soloists - 30 Recitative Und sie kamen eilend.flac: ok
21 Gardiner, John Eliot Monteverdi Choir, English Baroque Soloists - 21 Chorus Ehre sei Gott in der H?e.flac: ok
34 Gardiner, John Eliot Monteverdi Choir, English Baroque Soloists - 34 Recitative Und die Hirten kehrten wieder um.flac: testing, 29% compl
34 Gardiner, John Eliot Monteverdi Choir, English Baroque Soloists - 34 Recitative Und die Hirten kehrten wieder um.flac: testing, 58% compl
34 Gardiner, John Eliot Monteverdi Choir, English Baroque Soloists - 34 Recitative Und die Hirten kehrten wieder um.flac: testing, 88% compl
34 Gardiner, John Eliot Monteverdi Choir, English Baroque Soloists - 34 Recitative Und die Hirten kehrten wieder um.flac: testing, 100% comp
34 Gardiner, John Eliot Monteverdi Choir, English Baroque Soloists - 34 Recitative Und die Hirten kehrten wieder um.flac: ok                
08 Gardiner, John Eliot Monteverdi Choir, English Baroque Soloists - 8 Aria Gro?r Herr und starker K?ig.flac: ok

Now, I realise this is a minor issue, as it does not affect speed or quality of any of the operations,
but it is annoying.  The problem seems to be in encode.c, around line 1652.  Now without my beloved
iomanip and iostreams, I really have no idea how to output text, so I am probably totally wrong, but
the code seems to be just clearing the last line each time, which causes the problem when the last
output took two lines.  What would be nice would be a little check on the terminal width and length of the
last output to see how many lines need to be cleared.  This way, those of us with long filenames or
narrow terminals avoid getting the screen totally swamped.

As far as I could tell from a five minute scan of the code, the encode function is used for checking also,
so I think that the change only needs to be made once here—possibly flac__utils_printf might need a
little change too?

Thank you for the great programme.

Nicholas

PS.  What exactly is the mechanism for removing lines of text already printed from stderr/stdout, using
the printf-type functions?


More information about the Flac mailing list