Parcourir la source

main: use "C" locale for LC_NUMERIC

Some locales use ',' as decimal separator instead of '.', which is taken
into account by sscanf when parsing floating point values.

This can lead to parsing failures for the `colormatrix` and
`forwardmatrix` config options. Setting LC_NUMERIC to "C" solves this
problem.
Arnaud Ferraris il y a 4 ans
Parent
commit
e7d5da17cb
1 fichiers modifiés avec 3 ajouts et 0 suppressions
  1. 3 0
      main.c

+ 3 - 0
main.c

@@ -15,6 +15,7 @@
 #include <wordexp.h>
 #include <gtk/gtk.h>
 #include <tiffio.h>
+#include <locale.h>
 #include "config.h"
 #include "ini.h"
 #include "quickdebayer.h"
@@ -1466,6 +1467,8 @@ main(int argc, char *argv[])
 		return ret;
 	}
 
+	setenv("LC_NUMERIC", "C", 1);
+
 	TIFFSetTagExtender(register_custom_tiff_tags);
 
 	gtk_init(&argc, &argv);