diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-06-06 08:22:32 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-06-06 08:22:32 +0200 |
| commit | 11c38c3e4147e71cebd50718d2bc3f2b7e4d1ea6 (patch) | |
| tree | 15c6304e7859f70678c9de41bd5ac9408cae30f1 /src | |
| parent | fcca08d841c934f07fc1f92c89b8ea55b3db953c (diff) | |
Fix "Fl::get_font_name() with Pango is inconsistent"-cont'd (#732)
Diffstat (limited to 'src')
| -rw-r--r-- | src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx | 5 | ||||
| -rw-r--r-- | src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx index fcc83dc5b..c9e2c37f8 100644 --- a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx +++ b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx @@ -1075,7 +1075,10 @@ Fl_Font Fl_Cairo_Graphics_Driver::set_fonts(const char* /*pattern_name*/) // Force LANG=C to prevent pango_font_face_get_face_name() below from returning // translated versions of Bold, Italic, etc… (see issue #732). // Unfortunately, using setlocale() doesn't do the job. - saved_lang = strdup(saved_lang); + char *p = saved_lang; + saved_lang = (char*)malloc(strlen(p) + 6); + memcpy(saved_lang, "LANG=", 5); + strcpy(saved_lang + 5, p); fl_putenv(Clang); } else saved_lang = NULL; static PangoFontMap *pfmap_ = pango_cairo_font_map_get_default(); // 1.10 diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx index e9b686205..500a48d0d 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx @@ -1398,7 +1398,10 @@ Fl_Font Fl_Xlib_Graphics_Driver::set_fonts(const char* pattern_name) // Force LANG=C to prevent pango_font_face_get_face_name() below from returning // translated versions of Bold, Italic, etc… (see issue #732). // Unfortunately, using setlocale() doesn't do the job. - saved_lang = strdup(saved_lang); + char *p = saved_lang; + saved_lang = (char*)malloc(strlen(p) + 6); + memcpy(saved_lang, "LANG=", 5); + strcpy(saved_lang + 5, p); fl_putenv(Clang); } else saved_lang = NULL; for (int fam = 0; fam < n_families; fam++) { |
