Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dirkmueller:Factory
gnuplot
gnuplot-4.6.0-fonts.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnuplot-4.6.0-fonts.diff of Package gnuplot
--- src/gplt_x11.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) --- src/gplt_x11.c +++ src/gplt_x11.c 2020-07-17 07:20:04.523781257 +0000 @@ -99,15 +99,16 @@ * patches by Masahito Yamaga <ma@yama-ga.com> */ +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif +#include <string.h> #include <X11/Xos.h> #include <X11/Xlib.h> #include <X11/Xresource.h> #include <X11/Xutil.h> #include <X11/Xatom.h> #include <X11/keysym.h> -#ifdef USE_X11_MULTIBYTE -# include <X11/Xlocale.h> -#endif #include <X11/XKBlib.h> /* for XkbKeycodeToKeysym */ #include <assert.h> @@ -118,6 +119,12 @@ #include "gplt_x11.h" #include "version.h" +#ifdef USE_X11_MULTIBYTE +# include <locale.h> +# include <langinfo.h> +# include <X11/Xlocale.h> +#endif + #ifdef EXPORT_SELECTION # undef EXPORT_SELECTION #endif /* EXPORT SELECTION */ @@ -522,8 +529,8 @@ static char *gpFallbackFont(void); static int gpXGetFontascent(XFontStruct *cfont); enum set_encoding_id encoding = S_ENC_DEFAULT; /* EAM - mirrored from core code by 'QE' */ -static char default_font[196] = { '\0' }; -static char default_encoding[16] = { '\0' }; +static char default_font[256] = { '\0' }; +static char default_encoding[64] = { '\0' }; #define Nwidths 10 static unsigned int widths[Nwidths] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -2294,6 +2301,8 @@ exec_cmd(plot_struct *plot, char *comman /* Save the request default font */ c = &(buffer[strlen(buffer)-1]); while (*c <= ' ') *c-- = '\0'; + if (strlen(&buffer[2]) == 0) + break; strncpy(default_font, &buffer[2], sizeof(default_font)-1); FPRINTF((stderr, "gnuplot_x11: exec_cmd() set default_font to \"%s\"\n", default_font)); break; @@ -5820,7 +5829,7 @@ XFontStruct *gpXLoadQueryFont (Display * } #else if (first_time) { - fprintf(stderr,"gnuplot_x11: Some character sets not available\n"); + FPRINTF(("gnuplot_x11: Some character sets not available\n")); first_time = FALSE; } while (n_miss-- > 0) @@ -5972,6 +5981,18 @@ char *fontname; } #ifdef USE_X11_MULTIBYTE + if ((!fontname || !(*fontname)) && multibyte_fonts_usable) { + const char * codeset = nl_langinfo(CODESET); + if (strcasestr(codeset, "UTF-8")) { + const char* utf8 = "mbfont:-*-sazanami*mincho-medium-r-normal--16-* \ +-*-mincho-medium-r-normal--16-*,-*-verdana-medium-r-normal--16-* \ +-*-dejavu*sans-medium-r-normal--16-*,-*-medium-r-normal--16-*"; + strncpy(default_font, utf8, strlen(utf8)+1); + } + } +#endif + +#ifdef USE_X11_MULTIBYTE if (fontname && strncmp(fontname, "mbfont:", 7) == 0) { if (multibyte_fonts_usable) { usemultibyte = 1;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor