On 8.4.2013 21:38, Janne Hyvärinen wrote:
Friendly people on Hydrogenaudio found some bugs with the Unicode printing code, so I was forced to make adjustments.

While doing testing I noticed that long filenames cause printing bugs on Linux too. If line length on status printing exceeded console length it kept printing the same line over and over. The patch I included fixes encoding side nicely, but on decoding side there is still minor glitch left. On long lines the final status of the decoding will still be printed on its own line.

The Unicode printing patch no longer relies on character counts returned by fwprintf function as that didn't match reality. And I switched to use WriteConsole command when output isn't redirected so that special characters can be printed. They were replaced by question marks with fwprintf. Fixing fwprintf output would have required setting console mode to UTF-16 and that would have required all print functions to be replaced by wide char variants. Use of regular ansi function would instantly crash the program in that mode.


The long line patch is broken and requires much more work, please ignore it. The other patch is still good. Here's a patch to get working Unicode support for one forgotten print function in metaflac.

diff --git a/src/metaflac/utils.c b/src/metaflac/utils.c
index 934cfcf..af17d5b 100644
--- a/src/metaflac/utils.c
+++ b/src/metaflac/utils.c
@@ -136,7 +136,7 @@ void print_error_with_chain_status(FLAC__Metadata_Chain 
*chain, const char *form
 
        va_start(args, format);
 
-       (void) vfprintf(stderr, format, args);
+       (void) flac_vfprintf(stderr, format, args);
 
        va_end(args);
 
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to