diff options
| author | Richard Grenville <pyxlcy@gmail.com> | 2013-09-15 08:56:53 +0800 |
|---|---|---|
| committer | Richard Grenville <pyxlcy@gmail.com> | 2013-09-15 08:56:53 +0800 |
| commit | 9c609b9b97eee09e975d96082ffab32543258251 (patch) | |
| tree | 2fd93864474c5d1f077f47e0b50967951c6cfe54 | |
| parent | 631f50d665057a034d4cd22b49e030d1913ab79a (diff) | |
| download | tdebase-9c609b9b97eee09e975d96082ffab32543258251.tar.gz tdebase-9c609b9b97eee09e975d96082ffab32543258251.zip | |
Bug fix #143: GLSL shader error on European locales
Set LC_NUMERIC=C when generating GLSL shader strings to avoid decimal
point issues on European locales. Thanks to hiciu for reporting.
| -rw-r--r-- | opengl.c | 9 | ||||
| -rw-r--r-- | opengl.h | 1 |
2 files changed, 10 insertions, 0 deletions
@@ -225,6 +225,11 @@ glx_init_blur(session_t *ps) { #ifdef CONFIG_VSYNC_OPENGL_GLSL { + char *lc_numeric_old = mstrcpy(setlocale(LC_NUMERIC, NULL)); + // Enforce LC_NUMERIC locale "C" here to make sure decimal point is sane + // Thanks to hiciu for reporting. + setlocale(LC_NUMERIC, "C"); + static const char *FRAG_SHADER_BLUR_PREFIX = "#version 110\n" "%s" @@ -331,6 +336,10 @@ glx_init_blur(session_t *ps) { #undef P_GET_UNIFM_LOC } free(extension); + + // Restore LC_NUMERIC + setlocale(LC_NUMERIC, lc_numeric_old); + free(lc_numeric_old); } @@ -11,6 +11,7 @@ #include "common.h" #include <ctype.h> +#include <locale.h> #ifdef DEBUG_GLX_ERR |
