SHA256
1
0
forked from pool/gnuplot
gnuplot/gnuplot-4.2.2-fonts.dif

91 lines
3.0 KiB
Plaintext

--- src/gplt_x11.c
+++ src/gplt_x11.c 2008-03-14 15:26:15.789448595 +0100
@@ -104,6 +104,10 @@ static char *RCSid() { return RCSid("$Id
* patches by Masahito Yamaga <ma@yama-ga.com>
*/
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include <string.h>
#include "syscfg.h"
#include "stdfn.h"
#include "gp_types.h"
@@ -133,6 +137,8 @@ Error. Incompatible options.
#include <X11/Xatom.h>
#include <X11/keysym.h>
#ifdef USE_X11_MULTIBYTE
+# include <locale.h>
+# include <langinfo.h>
# include <X11/Xlocale.h>
#endif
@@ -471,7 +477,7 @@ static double mouse_to_axis __PROTO((int
static char *FallbackFont = "fixed";
#ifdef USE_X11_MULTIBYTE
static char *FallbackFontMB =
- "mbfont:*-medium-r-normal--14-*;*-medium-r-normal--16-*";
+ "mbfont:*-medium-r-normal--14-*,*-medium-r-normal--16-*";
# define FontSetSep ';'
static int usemultibyte = 0;
static int multibyte_fonts_usable=1;
@@ -488,8 +494,8 @@ static char *gpFallbackFont __PROTO((voi
static int gpXGetFontascent __PROTO((XFontStruct *cfont));
enum set_encoding_id encoding = S_ENC_DEFAULT; /* EAM - mirrored from core code by 'QE' */
-static char default_font[64] = { '\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] = { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
@@ -2099,6 +2105,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], strlen(&buffer[2])+1);
FPRINTF((stderr, "gnuplot_x11: exec_cmd() set default_font to \"%s\"\n", default_font));
break;
@@ -5397,7 +5405,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)
@@ -5490,6 +5498,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;
--- src/variable.c
+++ src/variable.c 2008-03-14 15:27:11.596615232 +0100
@@ -263,6 +263,8 @@ static const struct path_table fontpath_
{ "$`kpsexpand '$TEXMFDIST'`/fonts/type1!" },
#endif
/* Linux paths */
+ { "/usr/share/fonts/Type1" },
+ { "/usr/share/fonts/truetype" },
{ "/usr/X11R6/lib/X11/fonts/Type1" },
{ "/usr/X11R6/lib/X11/fonts/truetype" },
/* HP-UX */