diff --git a/gnuplot-4.4.0-demo.dif b/gnuplot-4.2.5-demo.dif similarity index 78% rename from gnuplot-4.4.0-demo.dif rename to gnuplot-4.2.5-demo.dif index c290de2..d3a614b 100644 --- a/gnuplot-4.4.0-demo.dif +++ b/gnuplot-4.2.5-demo.dif @@ -1,37 +1,14 @@ ---- demo/ellipse.dem -+++ demo/ellipse.dem 2010-04-06 16:00:28.000000000 +0000 -@@ -9,6 +9,7 @@ if ((GPVAL_VERSION == 4.3 || GPVAL_VERSI - print "This copy of gnuplot was built without support for placing ellipses\n" ; \ - exit ; - -+random="`mktemp /tmp/random.XXXXXX` - - unset key - set xrange [-8:8] -@@ -27,7 +28,7 @@ set object 1 ellipse center 1.5,1.0 size - set obj 2 ellipse center 1.5, 1 size 6, 12 angle 20 front fs empty bo 3 - - A = pi/9. --plot 'random.tmp' using (1.5 + $1*cos(A)-2.*$2*sin(A)):(1.0 + $1*sin(A)+2.*$2*cos(A)) with dots -+plot random using (1.5 + $1*cos(A)-2.*$2*sin(A)):(1.0 + $1*sin(A)+2.*$2*cos(A)) with dots - - pause -1 "Hit return to continue" - --- demo/fit.dem -+++ demo/fit.dem 2010-04-07 07:33:39.097446751 +0000 -@@ -5,9 +5,11 @@ ++++ demo/fit.dem 2009-06-15 14:13:03.358008816 +0200 +@@ -5,6 +5,7 @@ print "Some examples how data fitting using nonlinear least squares fit" print "can be done." print "" -+logfile = "`mktemp /tmp/fit.log.XXXXXX`" ++set fit logfile "`mktemp /tmp/fit.log.XXXXXX`" pause -1 "first plotting the pure data set (-> return)" - reset -+set fit logfile logfile set title 'data for first fit demo' - set xlabel "Temperature T [deg Cels.]" - set ylabel "Density [g/cm3]" -@@ -162,7 +164,7 @@ pause -1 "(-> return)" +@@ -125,7 +126,7 @@ plot 'soundvel.dat', vlong(x), vtrans(x) # Must provide an error estimate for a 3d fit. Use constant 1 fit f(x,y) 'soundvel.dat' using 1:-2:2:(1) via 'sound.par' #create soundfit.par, reading from sound.par and updating values @@ -40,32 +17,19 @@ print "" pause -1 "(-> return)" set title 'pseudo-3d multi-branch fit to velocity data' -@@ -251,6 +253,7 @@ print "" - pause -1 "Hit return to continue" - - reset -+set fit logfile logfile - set xlabel 'x' - set ylabel 'y' - set zlabel 'z' -@@ -340,3 +343,4 @@ print "from time to time!" - print "" - pause -1 "Done with fitting demo (-> return)" - reset -+set fit logfile logfile --- demo/poldat.dem -+++ demo/poldat.dem 2010-04-07 07:40:04.016079881 +0000 -@@ -11,7 +11,7 @@ unset grid ++++ demo/poldat.dem 2009-05-09 13:32:24.000000000 +0200 +@@ -11,7 +11,7 @@ unset polar set title "Primitive Smith Chart" unset key -set xlabel "Impedance or Admittance Coordinates" -+set xlabel "Impedance or Admittance Coordinates" offset 12,-1 ++set xlabel "Impedance or Admittance Coordinates" 12,-1 set para set rrange [-0 : 10] set trange [-pi : pi] --- demo/random.dem -+++ demo/random.dem 2009-06-15 12:28:57.000000000 +0000 ++++ demo/random.dem 2009-06-15 14:28:57.277902957 +0200 @@ -53,7 +53,8 @@ set parametric # non-pressing plot-command feature addition may address this issue. set samples nsamp @@ -130,24 +94,17 @@ title "scaled bin frequency", \ maxwell(x, 1/sqrt(2)) with lines title "Maxwell p.d.f." # ---- demo/simple.dem -+++ demo/simple.dem 2009-05-09 11:32:24.000000000 +0000 -@@ -7,12 +7,11 @@ - # gnuplot> load 'simple.dem' - # - set key left box --set samples 50 -+set samples 400 - plot [-10:10] sin(x),atan(x),cos(atan(x)) - pause -1 "Hit return to continue" +@@ -202,7 +203,7 @@ set format xy "%.0f" + set title 'Example of range-limited axes and tics' + + A = pi/9. +-plot 'random.tmp' using (1.5 + $1*cos(A)-2.*$2*sin(A)):(1.0 + $1*sin(A)+2.*$2*cos(A)) with dots ++plot random using (1.5 + $1*cos(A)-2.*$2*sin(A)):(1.0 + $1*sin(A)+2.*$2*cos(A)) with dots - set key right nobox --set samples 100 - plot [-pi/2:pi] cos(x),-(sin(x) > sin(x+1) ? sin(x) : sin(x+1)) pause -1 "Hit return to continue" --- demo/stringvar.dem -+++ demo/stringvar.dem 2009-06-15 12:46:14.000000000 +0000 ++++ demo/stringvar.dem 2009-06-15 14:46:14.406401438 +0200 @@ -1,7 +1,8 @@ # # Miscellaneous neat things you can do using the string variables code @@ -185,8 +142,24 @@ unset xtics unset ytics set yrange [0:1] +--- demo/simple.dem ++++ demo/simple.dem 2009-05-09 13:32:24.000000000 +0200 +@@ -7,12 +7,11 @@ + # gnuplot> load 'simple.dem' + # + set key left box +-set samples 50 ++set samples 400 + plot [-10:10] sin(x),atan(x),cos(atan(x)) + pause -1 "Hit return to continue" + + set key right nobox +-set samples 100 + plot [-pi/2:pi] cos(x),-(sin(x) > sin(x+1) ? sin(x) : sin(x+1)) + pause -1 "Hit return to continue" + --- demo/vector.dem -+++ demo/vector.dem 2009-06-15 12:24:23.000000000 +0000 ++++ demo/vector.dem 2009-06-15 14:24:23.430401839 +0200 @@ -62,19 +62,21 @@ splot vtot(x,y) w l print "Now create a file with equipotential lines" pause -1 "Hit return to continue" @@ -224,17 +197,8 @@ reset --- src/variable.c -+++ src/variable.c 2009-06-15 12:01:39.000000000 +0000 -@@ -37,7 +37,7 @@ static char *RCSid() { return RCSid("$Id - /* The Death of Global Variables - part one. */ - - #include -- -+#include - #include "variable.h" - - #include "alloc.h" -@@ -95,6 +95,14 @@ loadpath_handler(int action, char *path) ++++ src/variable.c 2009-06-15 14:01:38.998402587 +0200 +@@ -94,6 +94,14 @@ loadpath_handler(int action, char *path) if (!loadpath) { char *envlib = getenv("GNUPLOT_LIB"); @@ -249,7 +213,7 @@ if (envlib) { int len = strlen(envlib); loadpath = gp_strdup(envlib); -@@ -103,6 +111,10 @@ loadpath_handler(int action, char *path) +@@ -102,6 +110,10 @@ loadpath_handler(int action, char *path) /* convert all PATHSEPs to \0 */ PATHSEP_TO_NUL(loadpath); } /* else: NULL = empty */ diff --git a/gnuplot-4.4.0-fonts.dif b/gnuplot-4.2.5-fonts.dif similarity index 72% rename from gnuplot-4.4.0-fonts.dif rename to gnuplot-4.2.5-fonts.dif index b2ad252..3a37b0e 100644 --- a/gnuplot-4.4.0-fonts.dif +++ b/gnuplot-4.2.5-fonts.dif @@ -1,6 +1,6 @@ --- src/gplt_x11.c -+++ src/gplt_x11.c 2010-04-06 16:31:39.655185838 +0000 -@@ -104,15 +104,16 @@ static char *RCSid() { return RCSid("$Id ++++ src/gplt_x11.c 2008-03-14 15:26:16.000000000 +0100 +@@ -104,6 +104,10 @@ static char *RCSid() { return RCSid("$Id * patches by Masahito Yamaga */ @@ -8,32 +8,19 @@ +#define _GNU_SOURCE +#endif +#include - #include - #include - #include - #include - #include - #include --#ifdef USE_X11_MULTIBYTE --# include --#endif - #include "syscfg.h" #include "stdfn.h" -@@ -120,6 +121,12 @@ static char *RCSid() { return RCSid("$Id - #include "term_api.h" - #include "gplt_x11.h" - -+#ifdef USE_X11_MULTIBYTE + #include "gp_types.h" +@@ -133,6 +137,8 @@ Error. Incompatible options. + #include + #include + #ifdef USE_X11_MULTIBYTE +# include +# include -+# include -+#endif -+ - #ifdef EXPORT_SELECTION - # undef EXPORT_SELECTION - #endif /* EXPORT SELECTION */ -@@ -490,7 +497,7 @@ static double mouse_to_axis __PROTO((int + # include + #endif + +@@ -474,7 +480,7 @@ static double mouse_to_axis __PROTO((int static char *FallbackFont = "fixed"; #ifdef USE_X11_MULTIBYTE static char *FallbackFontMB = @@ -42,7 +29,7 @@ # define FontSetSep ';' static int usemultibyte = 0; static int multibyte_fonts_usable=1; -@@ -507,8 +514,8 @@ static char *gpFallbackFont __PROTO((voi +@@ -491,8 +497,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' */ @@ -53,7 +40,7 @@ #define Nwidths 10 static unsigned int widths[Nwidths] = { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -@@ -2117,6 +2124,8 @@ exec_cmd(plot_struct *plot, char *comman +@@ -2116,6 +2122,8 @@ exec_cmd(plot_struct *plot, char *comman /* Save the request default font */ c = &(buffer[strlen(buffer)-1]); while (*c <= ' ') *c-- = '\0'; @@ -62,7 +49,7 @@ strncpy(default_font, &buffer[2], strlen(&buffer[2])+1); FPRINTF((stderr, "gnuplot_x11: exec_cmd() set default_font to \"%s\"\n", default_font)); break; -@@ -5480,7 +5489,7 @@ XFontStruct *gpXLoadQueryFont (Display * +@@ -5326,7 +5334,7 @@ XFontStruct *gpXLoadQueryFont (Display * } #else if (first_time) { @@ -71,7 +58,7 @@ first_time = FALSE; } while (n_miss-- > 0) -@@ -5573,6 +5582,18 @@ char *fontname; +@@ -5419,6 +5427,18 @@ char *fontname; } #ifdef USE_X11_MULTIBYTE @@ -91,8 +78,8 @@ if (multibyte_fonts_usable) { usemultibyte = 1; --- src/variable.c -+++ src/variable.c 2009-06-15 11:55:05.000000000 +0000 -@@ -276,6 +276,8 @@ static const struct path_table fontpath_ ++++ src/variable.c 2009-06-15 13:55:04.902957631 +0200 +@@ -263,6 +263,8 @@ static const struct path_table fontpath_ { "$`kpsexpand '$TEXMFDIST'`/fonts/type1!" }, #endif /* Linux paths */ diff --git a/gnuplot-4.2.5-gcc45.dif b/gnuplot-4.2.5-gcc45.dif new file mode 100644 index 0000000..d47a3e0 --- /dev/null +++ b/gnuplot-4.2.5-gcc45.dif @@ -0,0 +1,13 @@ +Index: gnuplot-4.2.6/src/gplt_x11.c +=================================================================== +--- gnuplot-4.2.6.orig/src/gplt_x11.c 2010-03-04 10:45:10.000000000 +0100 ++++ gnuplot-4.2.6/src/gplt_x11.c 2010-03-04 11:59:35.000000000 +0100 +@@ -1189,7 +1189,7 @@ static int + read_input() + { + const int rdbuf_size = 10 * Nbuf; +- static char rdbuf[rdbuf_size+1]; ++ static char rdbuf[10*Nbuf+1]; + static int total_chars; + static int rdbuf_offset; + static int buf_offset; diff --git a/gnuplot-4.2.5-utf8.dif b/gnuplot-4.2.5-utf8.dif new file mode 100644 index 0000000..1fc1b38 --- /dev/null +++ b/gnuplot-4.2.5-utf8.dif @@ -0,0 +1,4297 @@ +Index: docs/gnuplot.doc +=================================================================== +--- docs/gnuplot.doc.orig 2009-05-18 04:47:35.000000000 +0200 ++++ docs/gnuplot.doc 2010-03-04 10:44:07.000000000 +0100 +@@ -5871,6 +5871,7 @@ C ... and restart the table: + ?show encoding + ?encoding + ?encodings ++=UTF-8 + The `set encoding` command selects a character encoding. + Syntax: + set encoding {} +@@ -5881,6 +5882,7 @@ C ... and restart the table: + iso_8859_1 - the most common Western European font used by many + Unix workstations and by MS-Windows. This encoding is + known in the PostScript world as 'ISO-Latin1'. ++ iso_8859_15 - a variant of iso_8859_1 that includes the Euro symbol + iso_8859_2 - used in Central and Eastern Europe + iso_8859_15 - a variant of iso_8859_1 that includes the Euro symbol + koi8r - popular Unix cyrillic encoding +@@ -5889,6 +5891,9 @@ C ... and restart the table: + cp850 - codepage for OS/2, Western Europe + cp852 - codepage for OS/2, Central and Eastern Europe + cp1250 - codepage for MS Windows, Central and Eastern Europe ++ cp1254 - codepage for MS Windows, Turkish (superset of Latin5) ++ utf8 - variable-length (multibyte) representation of Unicode ++ entry point for each character + + Generally you must set the encoding before setting the terminal type. + Note that encoding is not supported by all terminal drivers and that +Index: src/set.c +=================================================================== +--- src/set.c.orig 2009-09-01 18:38:55.000000000 +0200 ++++ src/set.c 2010-03-04 10:44:07.000000000 +0100 +@@ -1211,7 +1211,7 @@ set_encoding() + temp = lookup_table(&set_encoding_tbl[0],c_token); + + if (temp == S_ENC_INVALID) +- int_error(c_token, "expecting one of 'default', 'iso_8859_1', 'iso_8859_2', 'iso_8859_15', 'cp437', 'cp850', 'cp852', 'koi8r' or 'koi8u'"); ++ int_error(c_token, "expecting one of 'default', 'utf8', 'iso_8859_1', 'iso_8859_2', 'iso_8859_9', 'iso_8859_15', 'cp437', 'cp850', 'cp852', 'koi8r', or 'koi8u'"); + c_token++; + } + encoding = temp; +Index: src/term.c +=================================================================== +--- src/term.c.orig 2010-03-04 10:44:00.000000000 +0100 ++++ src/term.c 2010-03-04 10:44:07.000000000 +0100 +@@ -134,19 +134,23 @@ TBOOLEAN multiplot = FALSE; + enum set_encoding_id encoding; + /* table of encoding names, for output of the setting */ + const char *encoding_names[] = { +- "default", "iso_8859_1", "iso_8859_2", "iso_8859_15", +- "cp437", "cp850", "cp852", "cp1250", "koi8r", "koi8u", NULL }; ++ "default", "iso_8859_1", "iso_8859_2", "iso_8859_9", "iso_8859_15", ++ "cp437", "cp850", "cp852", "cp1250", "cp1254", "koi8r", "koi8u", ++ "utf8", NULL }; + /* 'set encoding' options */ + const struct gen_table set_encoding_tbl[] = + { + { "def$ault", S_ENC_DEFAULT }, ++ { "utf$8", S_ENC_UTF8 }, + { "iso$_8859_1", S_ENC_ISO8859_1 }, + { "iso_8859_2", S_ENC_ISO8859_2 }, ++ { "iso_8859_9", S_ENC_ISO8859_9 }, + { "iso_8859_15", S_ENC_ISO8859_15 }, + { "cp4$37", S_ENC_CP437 }, + { "cp850", S_ENC_CP850 }, + { "cp852", S_ENC_CP852 }, + { "cp1250", S_ENC_CP1250 }, ++ { "cp1254", S_ENC_CP1254 }, + { "koi8$r", S_ENC_KOI8_R }, + { "koi8$u", S_ENC_KOI8_U }, + { NULL, S_ENC_INVALID } +@@ -945,7 +949,7 @@ term_check_multiplot_okay(TBOOLEAN f_int + + void + write_multiline( +- unsigned int x, unsigned y, ++ unsigned int x, unsigned int y, + char *text, + JUSTIFY hor, /* horizontal ... */ + VERT_JUSTIFY vert, /* ... and vertical just - text in hor direction despite angle */ +Index: src/term_api.h +=================================================================== +--- src/term_api.h.orig 2008-12-15 05:18:36.000000000 +0100 ++++ src/term_api.h 2010-03-04 10:44:07.000000000 +0100 +@@ -124,7 +124,9 @@ typedef enum termlayer { + TERM_LAYER_RESET, + TERM_LAYER_BACKTEXT, + TERM_LAYER_FRONTTEXT, +- TERM_LAYER_END_TEXT ++ TERM_LAYER_END_TEXT, ++ TERM_LAYER_BEFORE_PLOT, ++ TERM_LAYER_AFTER_PLOT + } t_termlayer; + + typedef struct fill_style_type { +@@ -134,8 +136,9 @@ typedef struct fill_style_type { + int border_linetype; + } fill_style_type; + +-typedef enum t_fillstyle { FS_EMPTY, FS_SOLID, FS_PATTERN, FS_DEFAULT } +- t_fillstyle; ++typedef enum t_fillstyle { FS_EMPTY, FS_SOLID, FS_PATTERN, FS_DEFAULT, ++ FS_TRANSPARENT_SOLID, FS_TRANSPARENT_PATTERN } ++ t_fillstyle; + #define FS_OPAQUE (FS_SOLID + (100<<4)) + + #ifdef WITH_IMAGE +@@ -159,6 +162,7 @@ typedef enum t_imagecolor { IC_PALETTE, + #define TERM_ENHANCED_TEXT 32 /* enhanced text mode is enabled */ + #define TERM_NO_OUTPUTFILE 64 /* terminal doesnt write to a file */ + #define TERM_CAN_CLIP 128 /* terminal does its own clipping */ ++#define TERM_CAN_DASH 256 /* terminal supports dashed lines */ + + /* The terminal interface structure --- heart of the terminal layer. + * +@@ -254,6 +258,11 @@ typedef struct TERMENTRY { + */ + void (*path) __PROTO((int p)); + ++/* Scale factor for converting terminal coordinates to output ++ * pixel coordinates. Used to provide data for external mousing code. ++ */ ++ double tscale; ++ + } TERMENTRY; + + #ifdef WIN16 +@@ -263,9 +272,10 @@ typedef struct TERMENTRY { + #endif + + enum set_encoding_id { +- S_ENC_DEFAULT, S_ENC_ISO8859_1, S_ENC_ISO8859_2, S_ENC_ISO8859_15, +- S_ENC_CP437, S_ENC_CP850, S_ENC_CP852, S_ENC_CP1250, +- S_ENC_KOI8_R, S_ENC_KOI8_U, ++ S_ENC_DEFAULT, S_ENC_ISO8859_1, S_ENC_ISO8859_2, S_ENC_ISO8859_9, S_ENC_ISO8859_15, ++ S_ENC_CP437, S_ENC_CP850, S_ENC_CP852, S_ENC_CP1250, S_ENC_CP1254, ++ S_ENC_KOI8_R, S_ENC_KOI8_U, ++ S_ENC_UTF8, + S_ENC_INVALID + }; + +Index: src/util.c +=================================================================== +--- src/util.c.orig 2009-02-09 05:43:44.000000000 +0100 ++++ src/util.c 2010-03-04 10:44:07.000000000 +0100 +@@ -1218,3 +1218,85 @@ getusername () + + return fullname; + } ++ ++TBOOLEAN contains8bit(const char *s) ++{ ++ while (*s) { ++ if ((*s++ & 0x80)) ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++#define INVALID_UTF8 0xfffful ++ ++/* Read from second byte to end of UTF-8 sequence. ++ used by utftoulong() */ ++TBOOLEAN ++utf8_getmore (unsigned long * wch, const char **str, int nbytes) ++{ ++ int i; ++ unsigned char c; ++ unsigned long minvalue[] = {0x80, 0x800, 0x10000, 0x200000, 0x4000000}; ++ ++ for (i = 0; i < nbytes; i++) { ++ c = (unsigned char) **str; ++ ++ if ((c & 0xc0) != 0x80) { ++ *wch = INVALID_UTF8; ++ return FALSE; ++ } ++ *wch = (*wch << 6) | (c & 0x3f); ++ (*str)++; ++ } ++ ++ /* check for overlong UTF-8 sequences */ ++ if (*wch < minvalue[nbytes-1]) { ++ *wch = INVALID_UTF8; ++ return FALSE; ++ } ++ return TRUE; ++} ++ ++/* Convert UTF-8 multibyte sequence from string to unsigned long character. ++ Returns TRUE on success. ++*/ ++TBOOLEAN ++utf8toulong (unsigned long * wch, const char ** str) ++{ ++ unsigned char c; ++ ++ c = (unsigned char) *(*str)++; ++ if ((c & 0x80) == 0) { ++ *wch = (unsigned long) c; ++ return TRUE; ++ } ++ ++ if ((c & 0xe0) == 0xc0) { ++ *wch = c & 0x1f; ++ return utf8_getmore(wch, str, 1); ++ } ++ ++ if ((c & 0xf0) == 0xe0) { ++ *wch = c & 0x0f; ++ return utf8_getmore(wch, str, 2); ++ } ++ ++ if ((c & 0xf8) == 0xf0) { ++ *wch = c & 0x07; ++ return utf8_getmore(wch, str, 3); ++ } ++ ++ if ((c & 0xfc) == 0xf8) { ++ *wch = c & 0x03; ++ return utf8_getmore(wch, str, 4); ++ } ++ ++ if ((c & 0xfe) == 0xfc) { ++ *wch = c & 0x01; ++ return utf8_getmore(wch, str, 5); ++ } ++ ++ *wch = INVALID_UTF8; ++ return FALSE; ++} +Index: term/Makefile.am.in +=================================================================== +--- term/Makefile.am.in.orig 2006-06-20 00:02:46.000000000 +0200 ++++ term/Makefile.am.in 2010-03-04 10:44:07.000000000 +0100 +@@ -13,7 +13,7 @@ postscriptdir = $(pkgdatadir)/$(VERSION_ + postscript_DATA = PostScript/8859-15.ps PostScript/8859-1.ps\ + PostScript/8859-2.ps PostScript/cp1250.ps PostScript/cp437.ps\ + PostScript/cp850.ps PostScript/cp852.ps PostScript/koi8r.ps PostScript/koi8u.ps\ +- PostScript/prologue.ps ++ PostScript/prologue.ps PostScript/utf-8.ps PostScript/aglfn.txt PostScript/NOTE.aglfn + + Makefile.am: Makefile.am.in + rm -f $@ $@t +Index: term/gd.trm +=================================================================== +--- term/gd.trm.orig 2009-03-03 03:43:52.000000000 +0100 ++++ term/gd.trm 2010-03-04 10:44:07.000000000 +0100 +@@ -1861,7 +1861,7 @@ ENHGD_FLUSH() + #ifdef gdFTEX_Adobe_Custom + /* libgd defaults to UTF-8 encodings. We have limited options for */ + /* over-riding this, but we can try */ +- if (ENHgd_font && !strcmp(ENHgd_font,"Symbol")) { ++ if (encoding != S_ENC_UTF8 && ENHgd_font && !strcmp(ENHgd_font,"Symbol")) { + PNG_FONT_INFO.flags |= gdFTEX_CHARMAP; + PNG_FONT_INFO.charmap = gdFTEX_Adobe_Custom; + } else { +Index: term/post.trm +=================================================================== +--- term/post.trm.orig 2009-03-03 03:44:07.000000000 +0100 ++++ term/post.trm 2010-03-04 10:44:07.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Hello, Emacs: this is -*-C-*- ! +- * $Id: post.trm,v 1.203.2.17 2009/03/02 17:40:06 mikulik Exp $ ++ * $Id: post.trm,v 1.230 2008/03/13 18:01:27 sfeam Exp $ + */ + + /* GNUPLOT - post.trm */ +@@ -61,14 +61,18 @@ + * + * Dan Sebald, 7 March 2003: terminal entry for image functionality + * +- * Harald Harders (h.harders@tu-bs.de), 2004-12-02: +- * Moved all terminal settings into a single structure. ++ * Harald Harders (h.harders@tu-bs.de), 2004-12-02: ++ * Moved all terminal settings into a single structure. + * +- * Harald Harders (h.harders@tu-bs.de), 2005-02-08: +- * Merged functionality of postscript, pslatex, pstex, and epslatex terminals. ++ * Harald Harders (h.harders@tu-bs.de), 2005-02-08: ++ * Merged functionality of postscript, pslatex, pstex, and epslatex terminals. + * +- * Ethan Merritt Mar 2006: Break out prolog and character encodings into +- * separate files loaded at runtime ++ * Ethan Merritt Mar 2006: Break out prolog and character encodings into ++ * separate files loaded at runtime ++ * ++ * Thomas Henlich Sep 2007: Add support for UTF-8 encoding via the glyphshow ++ * operator. It supports PostScript Type1 fonts that use glyph names according ++ * to the Adobe Glyph List For New Fonts. + */ + + #include "driver.h" +@@ -106,7 +110,7 @@ TERM_PUBLIC void PS_previous_palette (vo + TERM_PUBLIC void PS_set_color (t_colorspec *); + TERM_PUBLIC void PS_filled_polygon (int, gpiPoint *); + #ifdef WITH_IMAGE +-TERM_PUBLIC void PS_image __PROTO((unsigned, unsigned, coordval *, gpiPoint *, t_imagecolor)); ++TERM_PUBLIC void PS_image __PROTO((unsigned int, unsigned int, coordval *, gpiPoint *, t_imagecolor)); + #endif + + /* To support "set term post enhanced" */ +@@ -123,6 +127,9 @@ TERM_PUBLIC char *PS_escape_string __PRO + + TERM_PUBLIC void PS_path __PROTO((int p)); + static TBOOLEAN PS_newpath = FALSE; ++static TBOOLEAN ENHps_opened_string = FALSE; /* try to cut out empty ()'s */ ++ ++TERM_PUBLIC void PS_layer __PROTO((t_termlayer syncpoint)); + + #endif /* TERM_PROTO */ + +@@ -140,11 +147,12 @@ static TBOOLEAN PS_newpath = FALSE; + } \ + } while (0) + +-/* Datastructure implementing inclusion of font files */ ++/* Data structure implementing inclusion of font files */ + struct ps_fontfile_def { + struct ps_fontfile_def *next;/* pointer to next fontfile in linked list */ + char *fontfile_name; + char *fontfile_fullname; ++ char *fontname; + }; + + /* Terminal type of postscript dialect */ +@@ -181,13 +189,14 @@ typedef struct ps_params_t { + double palfunc_deviation; /* terminal option */ + TBOOLEAN oldstyle; + TBOOLEAN epslatex_standalone; ++ TBOOLEAN adobeglyphnames; /* Choice of output names for UTF8 */ + } ps_params_t; + + #define POST_PARAMS_DEFAULT { \ + PSTERM_POSTSCRIPT, 50, 50, \ + PSTERM_LANDSCAPE, FALSE, FALSE, FALSE, FALSE, 1.0, 1.0, FALSE, \ + FALSE, FALSE, NULL, "Helvetica", 14, FALSE, FALSE, 2000, 0.003, \ +- FALSE, FALSE \ ++ FALSE, TRUE \ + } + + static ps_params_t post_params = POST_PARAMS_DEFAULT; +@@ -261,7 +270,9 @@ static int eps_explicit_y = 0; + static char *pslatex_auxname = NULL; + + /* Routine to copy pre-existing prolog files into output stream */ ++static FILE *PS_open_prologue_file __PROTO((char *)); + static void PS_dump_prologue_file __PROTO((char *)); ++static void PS_load_glyphlist __PROTO((void)); + + static const char GPFAR * GPFAR OldEPSL_linetypes[] = { + /* Line Types */ +@@ -280,20 +291,21 @@ static const char GPFAR * GPFAR ENHPS_he + /* For MFshow and MFwidth the tos is an array with the string and font info: */ + /* [ ] */ + /* EAM Mar 2004 - Add in a special case overprint 3 = save, overprint 4 = restore */ ++/* EAM Nov 2007 - Accommodate UTF-8 support (Gshow) */ + + "/MFshow {\n", + " { dup 5 get 3 ge\n", /* EAM test for overprint 3 or 4 */ + " { 5 get 3 eq {gsave} {grestore} ifelse }\n", /* EAM */ + " {dup dup 0 get findfont exch 1 get scalefont setfont\n", + " [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6\n", +-" get exch 4 get {show} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq\n", ++" get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq\n", + " {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5\n", + " get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div\n", + " dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get\n", + " show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop\n", + " pop aload pop M} ifelse }ifelse }ifelse }\n", + " ifelse }\n", /* EAM */ +-" forall} bind def\n", ++" forall} def\n", + + /* get the width of the text */ + /* HH 2005-07-24 - Add in a special case overprint 3 = save, 4 = restore +@@ -301,9 +313,12 @@ static const char GPFAR * GPFAR ENHPS_he + * additional value on the stack. between XYsave and XYrestore, + * this number is increased by the strings. By pop'ing this number, all + * strings between XYsave and XYrestore are ignored. */ ++/* EAM Nov 2007 - GSwidth is to allow the operator to work either with a string ++ * or with a glyph. Needed for UTF-8 support. Gwidth may do it better. */ ++"/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def\n", + "/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }\n", + " {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont\n", +-" 6 get stringwidth pop add} {pop} ifelse} ifelse} forall} bind def\n", ++" 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def\n", + + /* flush left show */ + "/MLshow { currentpoint stroke M\n", +@@ -366,8 +381,11 @@ PS_RememberFont(char *fname, int can_ree + if (strcmp(fnp->name, myfname) == 0) + return NULL; + +- /* we did not find the name */ ++ /* Ignore it if illegal characters will corrupt the PostScript syntax */ ++ if (strpbrk(myfname, "{}[]() ")) ++ return NULL; + ++ /* we have not seen this font before; store name and apply encoding */ + fnp = (struct PS_FontName *)gp_alloc(sizeof(struct PS_FontName), + "PostScript Font record"); + fnp->name = gp_strdup(myfname); +@@ -376,12 +394,17 @@ PS_RememberFont(char *fname, int can_ree + + switch(encoding) { + case S_ENC_ISO8859_1: ++ case S_ENC_UTF8: + recode = "reencodeISO def\n"; + break; + case S_ENC_ISO8859_2: + recode = "reencodeISO2 def\n"; + break; +- case S_ENC_ISO8859_15: ++ case S_ENC_ISO8859_9: /* ISO8859-9 is Latin5 */ ++ case S_ENC_CP1254: ++ recode = "reencodeISO9 def\n"; ++ break; ++ case S_ENC_ISO8859_15: /* ISO8859-15 is Latin9 */ + recode = "reencodeISO15 def\n"; + break; + case S_ENC_CP437: +@@ -407,11 +430,13 @@ PS_RememberFont(char *fname, int can_ree + break; + } + +- if (can_reencode && recode) { +- fprintf(gppsfile,"/%s %s", myfname, recode); +- return NULL; +- } else +- return recode; ++ if (recode) { ++ if (ENHps_opened_string) ++ ENHPS_FLUSH(); ++ fprintf(gppsfile,"/%s %s", fnp->name, recode); ++ } ++ ++ return NULL; + } + + char * +@@ -454,6 +479,7 @@ enum PS_id { + PSLATEX_ROTATE, PSLATEX_NOROTATE, PSLATEX_AUXFILE, PSLATEX_NOAUXFILE, + PSLATEX_OLDSTYLE, PSLATEX_NEWSTYLE, EPSLATEX_HEADER, EPSLATEX_NOHEADER, + PS_SIZE, ++ PS_ADOBEGLYPHNAMES, PS_NOADOBEGLYPHNAMES, + PS_OTHER + }; + +@@ -499,6 +525,8 @@ static struct gen_table PS_opts[] = + { "noa$uxfile", PSLATEX_NOAUXFILE }, + { "old$style", PSLATEX_OLDSTYLE }, + { "new$style", PSLATEX_NEWSTYLE }, ++ { "adobe$glyphnames", PS_ADOBEGLYPHNAMES }, ++ { "noadobe$glyphnames", PS_NOADOBEGLYPHNAMES }, + { NULL, PS_OTHER } + }; + +@@ -848,35 +876,36 @@ PS_options() + break; + case PS_FONTFILE: { + TBOOLEAN deleteentry = FALSE; ++ char *fontfilename = NULL; + c_token++; + if (ps_params->terminal != PSTERM_POSTSCRIPT) + int_error(c_token, + "extraneous argument in set terminal %s",term->name); + +- if (!isstring(c_token)) { +- if (equals(c_token, "add")) +- c_token++; +- else if (almost_equals(c_token, "del$ete")) { +- deleteentry = TRUE; +- c_token++; +- } else +- int_error(c_token, "Font filename expected"); +- } +- if (isstring(c_token)) { +- TBOOLEAN filename_doubled = FALSE; +- struct ps_fontfile_def *curr_ps_fontfile = ++ if (equals(c_token, "add")) ++ c_token++; ++ else if (almost_equals(c_token, "del$ete")) { ++ deleteentry = TRUE; ++ c_token++; ++ } ++ ++ if (!(fontfilename = try_to_get_string())) { ++ int_error(c_token, "Font filename expected"); ++ } else { ++ TBOOLEAN filename_doubled = FALSE; ++ struct ps_fontfile_def *curr_ps_fontfile = + ps_params->first_fontfile; +- struct ps_fontfile_def *prev_ps_fontfile = NULL; +- struct ps_fontfile_def *new_ps_fontfile = +- gp_alloc(sizeof(struct ps_fontfile_def), +- "new_ps_fontfile"); +- +- new_ps_fontfile->fontfile_name = +- gp_alloc (token_len(c_token), +- "new_ps_fontfile->fontfile_name"); +- quote_str(new_ps_fontfile->fontfile_name, +- c_token, token_len(c_token)); +- gp_expand_tilde(&(new_ps_fontfile->fontfile_name)); ++ struct ps_fontfile_def *prev_ps_fontfile = NULL; ++ struct ps_fontfile_def *new_ps_fontfile = ++ gp_alloc(sizeof(struct ps_fontfile_def), ++ "new_ps_fontfile"); ++ ++ new_ps_fontfile->fontfile_name = ++ gp_alloc (token_len(c_token), ++ "new_ps_fontfile->fontfile_name"); ++ gp_expand_tilde(&fontfilename); ++ new_ps_fontfile->fontfile_name = fontfilename; ++ new_ps_fontfile->fontname = NULL; + if (!deleteentry) { + #if defined(PIPES) + if (*(new_ps_fontfile->fontfile_name) != '<') { +@@ -884,7 +913,7 @@ PS_options() + new_ps_fontfile->fontfile_fullname = + fontpath_fullname(new_ps_fontfile->fontfile_name); + if (!new_ps_fontfile->fontfile_fullname) +- int_error(c_token, "Font file '%s' not found", ++ int_error(c_token-1, "Font file '%s' not found", + new_ps_fontfile->fontfile_name); + #if defined(PIPES) + } else +@@ -901,45 +930,43 @@ PS_options() + lf=lf->prev; + } + if ((lf && lf->interactive) || interactive) +- /* if (interactive) { */ + PS_load_fontfile(new_ps_fontfile,FALSE); + } + +- if (ps_params->first_fontfile) { +- while (curr_ps_fontfile) { +- if (strcmp(curr_ps_fontfile->fontfile_name, +- new_ps_fontfile->fontfile_name) == 0) { +- filename_doubled = TRUE; +- if (deleteentry) { ++ if (ps_params->first_fontfile) { ++ while (curr_ps_fontfile) { ++ if (strcmp(curr_ps_fontfile->fontfile_name, ++ new_ps_fontfile->fontfile_name) == 0) { ++ filename_doubled = TRUE; ++ if (deleteentry) { + delete_ps_fontfile(prev_ps_fontfile, + curr_ps_fontfile); +- curr_ps_fontfile = NULL; +- break; +- } +- } +- prev_ps_fontfile = curr_ps_fontfile; +- curr_ps_fontfile = curr_ps_fontfile->next; +- } +- if (!filename_doubled) { +- if (!deleteentry) +- prev_ps_fontfile->next = new_ps_fontfile; +- else +- int_warn(c_token,"Can't delete Font filename '%s'", +- new_ps_fontfile->fontfile_name); +- } +- } else { +- if (!deleteentry) +- ps_params->first_fontfile = new_ps_fontfile; +- else +- int_warn(c_token, "Can't delete Font filename '%s'", +- new_ps_fontfile->fontfile_name); +- } +- c_token++; +- } else +- int_error(c_token, "Font filename expected"); +- break; +- } +- case PS_NOFONTFILES: ++ curr_ps_fontfile = NULL; ++ break; ++ } ++ } ++ prev_ps_fontfile = curr_ps_fontfile; ++ curr_ps_fontfile = curr_ps_fontfile->next; ++ } ++ if (!filename_doubled) { ++ if (!deleteentry) ++ prev_ps_fontfile->next = new_ps_fontfile; ++ else ++ int_warn(c_token,"Can't delete Font filename '%s'", ++ new_ps_fontfile->fontfile_name); ++ } ++ } else { ++ if (!deleteentry) ++ ps_params->first_fontfile = new_ps_fontfile; ++ else ++ int_warn(c_token, "Can't delete Font filename '%s'", ++ new_ps_fontfile->fontfile_name); ++ } ++ c_token++; ++ } ++ break; ++ } ++ case PS_NOFONTFILES: + if (ps_params->terminal != PSTERM_POSTSCRIPT) + int_error(c_token, + "extraneous argument in set terminal %s",term->name); +@@ -948,6 +975,14 @@ PS_options() + ps_params->first_fontfile); + ++c_token; + break; ++ case PS_ADOBEGLYPHNAMES: ++ ps_params->adobeglyphnames = TRUE; ++ ++c_token; ++ break; ++ case PS_NOADOBEGLYPHNAMES: ++ ps_params->adobeglyphnames = FALSE; ++ ++c_token; ++ break; + case PS_PALFUNCPARAM: + if (set_palfunc) + int_error(c_token, +@@ -999,8 +1034,16 @@ PS_options() + set_fontsize = TRUE; + *comma = '\0'; + } +- if (*s) ++ if (*s) { ++ /* Filter out characters that would confuse PostScript */ ++ if (strpbrk(s, "()[]{}| ")) { ++ int_warn(c_token-1,"Illegal characters in PostScript font name."); ++ int_warn(NO_CARET,"I will try to fix it but this may not work."); ++ while (strpbrk(s, "()[]{}| ")) ++ *(strpbrk(s, "()[]{}| ")) = '-'; ++ } + strncpy(ps_params->font, s, sizeof(ps_params->font)); ++ } + free(s); + } else + int_error(c_token-1, +@@ -1118,6 +1161,12 @@ PS_options() + } + #endif + ++ if ((encoding == S_ENC_UTF8) && (ps_params->terminal == PSTERM_POSTSCRIPT)) { ++ sprintf(tmp_term_options," %sadobeglyphnames \\\n ", ++ ps_params->adobeglyphnames ? "" : "no"); ++ strcat(term_options,tmp_term_options); ++ } ++ + if (ps_explicit_size) { + if (ps_explicit_units == CM) + sprintf(tmp_term_options,"size %.2fcm, %.2fcm ", +@@ -1152,6 +1201,29 @@ PS_options() + static TBOOLEAN ps_common_uses_fonts; + static unsigned int ps_common_xoff, ps_common_yoff; + ++/* The default UTF8 code will use glyph identifiers uniXXXX for all glyphs above 0x0100. ++ * If you define ADOBE_ENCODING_NAMES, then it will instead use the glyph names from the ++ * file aglfn.txt. Names in the range 0x0100 - 0x01FF correspond to those used by the ++ * Latin1 encoding scheme. This unicode code page deliberately uses the same character ++ * mapping as Latin1. Adobe also recommends names for many characters outside this ++ * range, but not all fonts adhere to this. You can substitute a different aglfn.txt ++ * file at run time if you want to use a different scheme. ++ */ ++#define ADOBE_ENCODING_NAMES 1 ++ ++#if (ADOBE_ENCODING_NAMES) ++ ++typedef struct ps_glyph { ++ unsigned long unicode; ++ char * glyphname; ++} ps_glyph; ++ ++static ps_glyph *aglist = NULL; ++static int aglist_alloc = 0; ++static int aglist_size = 0; ++static int psglyphs = 0; ++ ++#endif + + TERM_PUBLIC void + PS_load_fontfile(struct ps_fontfile_def *current_ps_fontfile, TBOOLEAN doload) +@@ -1206,7 +1278,7 @@ PS_load_fontfile(struct ps_fontfile_def + current_ps_fontfile->fontfile_name + 1); + #endif + } +- else if (strcmp(ext,"ttf") == 0) { ++ else if (!strcmp(ext,"ttf") || !strcmp(ext,"otf")) { + /* TrueType */ + #if defined(PIPES) + ispipe = TRUE; +@@ -1285,6 +1357,7 @@ PS_load_fontfile(struct ps_fontfile_def + strcpy(fontname,strstr(line+1,"/")+1); + fnende = strstr(fontname," "); + *fnende = '\0'; ++ current_ps_fontfile->fontname = gp_strdup(fontname); + /* Print font name */ + if (!doload) { + if (current_ps_fontfile->fontfile_fullname) +@@ -1365,6 +1438,8 @@ PS_load_fontfiles(TBOOLEAN doload) + + while (current_ps_fontfile) { + PS_load_fontfile(current_ps_fontfile,doload); ++ if (current_ps_fontfile->fontname) ++ PS_RememberFont(current_ps_fontfile->fontname, 1); + current_ps_fontfile = current_ps_fontfile->next; + } + } +@@ -1518,11 +1593,16 @@ end\n\ + free(outstr2); + } + ++ /* Dump the body of the prologue */ ++ PS_dump_prologue_file("prologue.ps"); ++ + /* insert font encoding vector */ + if (uses_fonts) { + switch (encoding) { + case S_ENC_ISO8859_1: PS_dump_prologue_file("8859-1.ps"); break; + case S_ENC_ISO8859_2: PS_dump_prologue_file("8859-2.ps"); break; ++ case S_ENC_CP1254: ++ case S_ENC_ISO8859_9: PS_dump_prologue_file("8859-9.ps"); break; + case S_ENC_ISO8859_15: PS_dump_prologue_file("8859-15.ps"); break; + case S_ENC_CP437: PS_dump_prologue_file("cp437.ps"); break; + case S_ENC_CP850: PS_dump_prologue_file("cp850.ps"); break; +@@ -1530,14 +1610,14 @@ end\n\ + case S_ENC_CP1250: PS_dump_prologue_file("cp1250.ps"); break; + case S_ENC_KOI8_R: PS_dump_prologue_file("koi8r.ps"); break; + case S_ENC_KOI8_U: PS_dump_prologue_file("koi8u.ps"); break; ++ case S_ENC_UTF8: PS_dump_prologue_file("utf-8.ps"); ++ if (!aglist) PS_load_glyphlist(); ++ break; + case S_ENC_DEFAULT: + default: break; + } + } + +- /* Dump the body of the prologue */ +- PS_dump_prologue_file("prologue.ps"); +- + /* Redefine old epslatex linetypes if requested */ + if ((ps_params->terminal == PSTERM_EPSLATEX) && ps_params->oldstyle) { + for (i = 0; OldEPSL_linetypes[i] != NULL; i++) +@@ -1582,6 +1662,7 @@ PS_init() + xmax_t = term->xmax * (xsize + xoffset) / (2*PS_SC); + ymin_t = term->ymax * yoffset / (2*PS_SC); + ymax_t = term->ymax * (ysize + yoffset) / (2*PS_SC); ++ term->tscale = PS_SC * 2; + break; + case PSTERM_PORTRAIT: + if (!ps_explicit_size) { +@@ -1592,6 +1673,7 @@ PS_init() + xmax_t = term->xmax * (xsize + xoffset) / PS_SC; + ymin_t = term->ymax * yoffset / PS_SC; + ymax_t = term->ymax * (ysize + yoffset) / PS_SC; ++ term->tscale = PS_SC; + break; + case PSTERM_LANDSCAPE: + if (!ps_explicit_size) { +@@ -1602,6 +1684,7 @@ PS_init() + ymax_t = term->xmax * (xsize+xoffset) / PS_SC; + xmin_t = term->ymax * (1-ysize-yoffset) / PS_SC; + xmax_t = term->ymax * (1-yoffset) / PS_SC; ++ term->tscale = PS_SC; + break; + default: + int_error(NO_CARET, "invalid postscript format used"); +@@ -1694,11 +1777,6 @@ PS_reset() + { + fputs("%%Trailer\n", gppsfile); + +- /* I think the following commands should be executed +- `if (ps_common_uses_fonts)`. So I changed the next line. +- Please see "PS_RememberFont", too. */ /* JFi */ +- +- /* if (!ps_common_uses_fonts) { */ /* JFi */ + if (ps_common_uses_fonts) { + fputs("%%DocumentFonts: ", gppsfile); + while (PS_DocFonts) { +@@ -1884,38 +1962,97 @@ PS_vector(unsigned int x, unsigned int y + TERM_PUBLIC void + PS_put_text(unsigned int x, unsigned int y, const char *str) + { +- char ch; ++#define PS_NONE 0 ++#define PS_TEXT 1 ++#define PS_GLYPH 2 ++ unsigned long ch; + + if (!str && !strlen(str)) + return; + PS_move(x,y); + if (ps_ang != 0) +- fprintf(gppsfile,"currentpoint gsave translate %d rotate 0 0 M\n", +- ps_ang); +- putc('(',gppsfile); +- ch = *str++; +- while(ch!='\0') { +- if ((ch=='(') || (ch==')') || (ch=='\\')) +- putc('\\', gppsfile); +- putc(ch, gppsfile); +- ch = *str++; +- } ++ fprintf(gppsfile,"currentpoint gsave translate %d rotate 0 0 M\n", ps_ang); + +- switch(ps_justify) { +- case LEFT : +- fputs(") Lshow\n", gppsfile); +- break; +- case CENTRE : +- fputs(") Cshow\n", gppsfile); +- break; +- case RIGHT : +- fputs(") Rshow\n", gppsfile); +- break; ++ if (encoding == S_ENC_UTF8 && contains8bit(str)) { ++ /* UTF-8 encoding with multibyte characters present */ ++ int mode = PS_NONE; ++ ++ putc('[', gppsfile); ++ ++ for (utf8toulong(&ch, &str); ch != '\0'; utf8toulong(&ch, &str)) { ++ if (ch < 0x100) { ++ if (mode != PS_TEXT) ++ putc('(', gppsfile); ++ if (ch == '(' || ch == ')' || ch == '\\') ++ putc('\\', gppsfile); ++ putc((char)ch, gppsfile); ++ mode = PS_TEXT; ++ } else { ++ int i; ++ if (mode == PS_TEXT) ++ putc(')', gppsfile); ++ putc('/', gppsfile); ++#if (ADOBE_ENCODING_NAMES) ++ for (i = 0; i < psglyphs; i++) { ++ if (aglist[i].unicode == ch) { ++ fputs(aglist[i].glyphname, gppsfile); ++ break; ++ } ++ } ++ if (i >= psglyphs) /* Must not have found a glyph name */ ++#endif ++ fprintf(gppsfile, (ch > 0xffff) ? "u%lX" : "uni%04lX", ch); ++ mode = PS_GLYPH; ++ } ++ } ++ ++ if (mode == PS_TEXT) ++ putc(')', gppsfile); ++ ++ switch(ps_justify) { ++ case LEFT : ++ fputs("] GLshow\n", gppsfile); ++ break; ++ case CENTRE : ++ fputs("] GCshow\n", gppsfile); ++ break; ++ case RIGHT : ++ fputs("] GRshow\n", gppsfile); ++ break; ++ } ++ ++ } else { ++ /* plain old 8-bit mode (not UTF-8), or UTF-8 string with only 7-bit characters */ ++ putc('(',gppsfile); ++ ch = (char) *str++; ++ while(ch!='\0') { ++ if ((ch=='(') || (ch==')') || (ch=='\\')) ++ putc('\\', gppsfile); ++ putc((char) ch, gppsfile); ++ ch = (char) *str++; ++ } ++ ++ switch(ps_justify) { ++ case LEFT : ++ fputs(") Lshow\n", gppsfile); ++ break; ++ case CENTRE : ++ fputs(") Cshow\n", gppsfile); ++ break; ++ case RIGHT : ++ fputs(") Rshow\n", gppsfile); ++ break; ++ } + } ++ + if (ps_ang != 0) + fputs("grestore\n", gppsfile); + ps_path_count = 0; + PS_relative_ok = FALSE; ++ ++#undef PS_NONE ++#undef PS_TEXT ++#undef PS_GLYPH + } + + +@@ -2034,6 +2171,7 @@ PS_fillbox( + switch(style & 0xf) { + + case FS_SOLID: ++ case FS_TRANSPARENT_SOLID: + /* style == 1 --> fill with intensity according to filldensity */ + filldens = (style >> 4) / 100.0; + if(filldens < 0.0) +@@ -2045,6 +2183,7 @@ PS_fillbox( + break; + + case FS_PATTERN: ++ case FS_TRANSPARENT_PATTERN: + /* style == 2 --> fill with pattern according to fillpattern */ + /* the upper 3 nibbles of 'style' contain pattern number */ + pattern = (style >> 4) % 8; +@@ -2097,8 +2236,6 @@ PS_fillbox( + + /* ENHPOST */ + +-static TBOOLEAN ENHps_opened_string; /* try to cut out empty ()'s */ +- + /* + * close a postscript string if it has been opened + */ +@@ -2111,6 +2248,8 @@ ENHPS_FLUSH() + } + } + ++static char *ENHps_opensequence = NULL; ++ + /* + * open a postscript string + */ +@@ -2134,22 +2273,92 @@ ENHPS_OPEN( + } + + if (!ENHps_opened_string) { +- fprintf(gppsfile, "[(%s) %.1f %.1f %s %s %d (", ++ int safelen = strlen(fontname) + 40; ++ free(ENHps_opensequence); ++ ENHps_opensequence = gp_alloc(safelen,"ENHPS_opensequence"); ++ /* EAM November 2007 - moved here from enhanced_recursion() */ ++ PS_RememberFont(fontname,1); ++#ifdef HAVE_SNPRINTF ++ snprintf(ENHps_opensequence, safelen, "[(%s) %.1f %.1f %s %s %d ", ++ fontname, fontsize, base, ++ widthflag ? "true" : "false", ++ showflag ? "true" : "false", ++ overprint); ++#else ++ sprintf(ENHps_opensequence, "[(%s) %.1f %.1f %s %s %d ", + fontname, fontsize, base, + widthflag ? "true" : "false", + showflag ? "true" : "false", + overprint); ++#endif ++ fprintf(gppsfile, "%s(", ENHps_opensequence); + ENHps_opened_string = TRUE; + } + } + + /* +- * write one or more characters from inside enhanced text processing ++ * Write one character from inside enhanced text processing. ++ * This is trivial except in the case of multi-byte encoding. + */ + TERM_PUBLIC void + ENHPS_WRITEC(int c) + { +- fputc(c, gppsfile); ++ static int in_utf8 = 0; /* nonzero means we are inside a multibyte sequence */ ++ static char utf8[6]; /* holds the multibyte sequence being accumulated */ ++ static int nbytes = 0; /* number of bytes expected in the sequence */ ++ ++ /* UTF-8 Encoding */ ++ if (encoding == S_ENC_UTF8 && (c & 0x80) != 0) { ++ if (in_utf8 == 0) { ++ nbytes = (c & 0xE0) == 0xC0 ? 2 ++ : (c & 0xF0) == 0xE0 ? 3 ++ : (c & 0xF8) == 0xF0 ? 4 ++ : 0; ++ if (!nbytes) /* Illegal UTF8 char; hope it's printable */ ++ fputc(c, gppsfile); ++ else ++ utf8[in_utf8++] = c; ++ } else { ++ utf8[in_utf8++] = c; ++ if (in_utf8 >= nbytes) { ++ unsigned long wch = '\0'; ++ const char *str = &utf8[0]; ++ int i; ++ ++ utf8[nbytes] = '\0'; ++ in_utf8 = 0; ++ utf8toulong(&wch, &str); ++ ++ if (wch < 0x100) { /* Single byte ISO8859-1 character */ ++ fputc(wch, gppsfile); ++ return; ++ } ++ ++ /* Finish off previous partial string, if any */ ++ ENHPS_FLUSH(); ++ ++ /* Write a new partial string for this glyph */ ++ fprintf(gppsfile, "%s/", ENHps_opensequence); ++#if (ADOBE_ENCODING_NAMES) ++ for (i = 0; i < psglyphs; i++) { ++ if (aglist[i].unicode == wch) { ++ fputs(aglist[i].glyphname, gppsfile); ++ break; ++ } ++ } ++ if (i >= psglyphs) /* Must not have found a glyph name */ ++#endif ++ fprintf(gppsfile, (wch > 0xffff) ? "u%lX" : "uni%04lX", wch); ++ fprintf(gppsfile, "]\n"); ++ ++ /* Mark string closed */ ++ ENHps_opened_string = FALSE; ++ } ++ } ++ } else ++ ++ /* Single byte character */ ++ fputc(c, gppsfile); + } + + /* a set-font routine for enhanced post : simply copies +@@ -2198,7 +2407,7 @@ ENHPS_put_text(unsigned int x, unsigned + + PS_FLUSH_PATH; + +- /* if there are no magic characters, we should just be able ++ /* FIXME: if there are no magic characters, we should just be able + * punt the string to PS_put_text(), which will give shorter + * ps output [eg tics and stuff rarely need extra processing], + * but we need to make sure that the current font is the +@@ -2574,7 +2783,7 @@ PS_make_header(t_sm_palette *palette) + TERM_PUBLIC int PS_make_palette (t_sm_palette *palette) + { + if (palette == NULL) { +- return 0; /* postscript can do continuous colors */ ++ return 0; /* postscript can do continuous colors */ + } + + PS_make_header(palette); +@@ -2647,6 +2856,9 @@ TERM_PUBLIC void PS_filled_polygon (int + /* General case for solid or pattern-filled polygons + * gsave N ... density PolyFill + */ ++ int fillpar = style >> 4; ++ style = style &0xf; ++ + fprintf(gppsfile, "gsave "); + fprintf(gppsfile, "%i %i N", corners[0].x, corners[0].y); + for (i = 1; i < points; i++) { +@@ -2662,6 +2874,8 @@ TERM_PUBLIC void PS_filled_polygon (int + + case FS_SOLID: + filldens = (style >> 4) / 100.0; ++ case FS_TRANSPARENT_SOLID: ++ filldens = (fillpar) / 100.0; + if(filldens < 0.0) + filldens = 0.0; + if(filldens >= 1.0) +@@ -2670,8 +2884,10 @@ TERM_PUBLIC void PS_filled_polygon (int + fprintf(gppsfile, " %.2f PolyFill\n", filldens); + break; + ++ case FS_TRANSPARENT_PATTERN: ++ fprintf(gppsfile," /TransparentPatterns true def\n"); + case FS_PATTERN: +- pattern = (style >> 4) % 8; ++ pattern = (fillpar) % 8; + if (pattern == 0) { + filldens = 0.5; + fprintf(gppsfile, " %.1f PolyFill\n", filldens); +@@ -2730,10 +2946,11 @@ delete_ps_fontfile(struct ps_fontfile_de + if (prev != NULL) /* there is a previous ps_fontfile */ + prev->next = this->next; + else /* this = ps_params->first_fontfile */ +- /* so change ps_params->first_fontfile */ ++ /* so change ps_params->first_fontfile */ + ps_params->first_fontfile = this->next; + free(this->fontfile_name); + free(this->fontfile_fullname); ++ free(this->fontname); + free(this); + this = NULL; + } +@@ -2770,15 +2987,15 @@ enum PS_ENCODING { + * routine. + */ + static char * +-PS_encode_image(unsigned M, unsigned N, coordval *image, t_imagecolor color_mode, ++PS_encode_image(unsigned int M, unsigned int N, coordval *image, t_imagecolor color_mode, + int bits_per_component, int max_colors, double cscale, + enum PS_ENCODING encoding, int *return_num_bytes) + { +- unsigned coord_remaining; ++ unsigned int coord_remaining; + coordval *coord_ptr; + unsigned short i_line; +- unsigned i_element; +- unsigned end_of_line; ++ unsigned int i_element; ++ unsigned int end_of_line; + unsigned short bits_remaining, bits_start; + + unsigned long tuple4; +@@ -2954,7 +3171,7 @@ PS_encode_image(unsigned M, unsigned N, + + + static void +-print_five_operand_image(unsigned M, unsigned N, gpiPoint *corner, t_imagecolor color_mode, unsigned short bits_per_component) ++print_five_operand_image(unsigned int M, unsigned int N, gpiPoint *corner, t_imagecolor color_mode, unsigned short bits_per_component) + { + char *space = ps_params->level1 ? "" : " "; + +@@ -2980,7 +3197,7 @@ print_five_operand_image(unsigned M, uns + + + TERM_PUBLIC void +-PS_image (unsigned M, unsigned N, coordval *image, gpiPoint *corner, t_imagecolor color_mode) ++PS_image (unsigned int M, unsigned int N, coordval *image, gpiPoint *corner, t_imagecolor color_mode) + { + char *encoded_image; + int num_encoded_bytes; +@@ -3163,13 +3380,12 @@ PS_image (unsigned M, unsigned N, coordv + * If unsuccessful, look for hardcoded absolute path on UNIX, + * or hardcoded relative path on Windows and OS2, + * or files included at compile time. */ +-static void +-PS_dump_prologue_file(char *name) ++static FILE * ++PS_open_prologue_file(char *name) + { + char *fullname; + char *ps_prologue_dir; + FILE *prologue_fd; +- char buf[256]; + + if ((ps_prologue_dir = getenv("GNUPLOT_PS_DIR")) == NULL) { + #ifdef GNUPLOT_PS_DIR +@@ -3221,6 +3437,8 @@ PS_dump_prologue_file(char *name) + dump = prologue_8859_1_ps; + else if (!strcmp(name,"8859-2.ps")) + dump = prologue_8859_2_ps; ++ else if (!strcmp(name,"8859-9.ps")) ++ dump = prologue_8859_9_ps; + else if (!strcmp(name,"cp1250.ps")) + dump = prologue_cp1250_ps; + else if (!strcmp(name,"cp437.ps")) +@@ -3233,16 +3451,18 @@ PS_dump_prologue_file(char *name) + dump = prologue_koi8r_ps; + else if (!strcmp(name,"koi8u.ps")) + dump = prologue_koi8u_ps; ++ else if (!strcmp(name,"utf-8.ps")) ++ dump = prologue_utf_8_ps; + else if (!strcmp(name,"prologue.ps")) + dump = prologue_prologue_ps; + else +- int_error(NO_CARET,"Requested Postscript prologue is not included"); ++ int_warn(NO_CARET,"Requested Postscript prologue %s not found",name); + + if (dump) { + for (i = 0; dump[i] != NULL; ++i) + fprintf(gppsfile, "%s", dump[i]); + } +- return; ++ return NULL; + #endif /* GNUPLOT_PS_DIR */ + } + +@@ -3273,8 +3493,62 @@ PS_dump_prologue_file(char *name) + int_error(NO_CARET,"Plot failed!"); + } + free(fullname); +- while (fgets(buf, sizeof(buf), prologue_fd)) +- fputs(buf, gppsfile); ++ return prologue_fd; ++} ++ ++static void ++PS_dump_prologue_file(char *name) ++{ ++ char buf[256]; ++ FILE *prologue_fd = PS_open_prologue_file(name); ++ ++ if (prologue_fd) { ++ while (fgets(buf, sizeof(buf), prologue_fd)) ++ fputs(buf, gppsfile); ++ fclose(prologue_fd); ++ } ++} ++ ++static void ++PS_load_glyphlist() ++{ ++ char buf[256]; ++ char *next = NULL; ++ unsigned int code; ++ int len; ++ char glyph_name[32]; ++ FILE *prologue_fd = PS_open_prologue_file("aglfn.txt"); ++ ++ if (!prologue_fd) ++ return; ++ ++ while (fgets(buf, sizeof(buf), prologue_fd)) { ++ if (*buf == '#' || *buf == '\n') ++ continue; ++ code = strtol(buf,&next,16); ++ ++ /* User control over whether Adobe glyph names are used for unicode */ ++ /* entries above 0x0100. I.e. when we see a UTF-8 alpha, do we write */ ++ /* /alpha rather than /uni03B1? Some fonts want one or the other. */ ++ /* This is controlled by 'set term post adobeglyphnames'. */ ++ if (code >= 0x0100 && !ps_params->adobeglyphnames) ++ continue; ++ ++ next++; ++ len = strchr(next,';') - next; ++ strncpy(glyph_name, next, len); ++ glyph_name[len] = '\0'; ++ FPRINTF((stderr, "%04X %s\n", code, glyph_name)); ++ if (aglist_size + sizeof(ps_glyph) > aglist_alloc) { ++ aglist_alloc += 2048; ++ aglist = gp_realloc(aglist, aglist_alloc, "aglist"); ++ } ++ aglist[psglyphs].unicode = code; ++ aglist[psglyphs].glyphname = gp_strdup(glyph_name); ++ aglist_size += sizeof(ps_glyph); ++ psglyphs++; ++ } ++ + fclose(prologue_fd); + } + +@@ -3295,6 +3569,32 @@ PS_path(int p) + + } + ++TERM_PUBLIC void ++PS_layer(t_termlayer syncpoint) ++{ ++ static int plotno = 0; ++ ++ /* We must ignore all syncpoints that we don't recognize */ ++ switch (syncpoint) { ++ ++ default: ++ break; ++ ++ case TERM_LAYER_BEFORE_PLOT: ++ fprintf(gppsfile, "%% Begin plot #%d\n", ++plotno); ++ break; ++ ++ case TERM_LAYER_AFTER_PLOT: ++ fprintf(gppsfile, "%% End plot #%d\n", plotno); ++ break; ++ ++ case TERM_LAYER_RESET: ++ plotno = 0; ++ break; ++ ++ } ++} ++ + #endif /* TERM_BODY */ + + #ifdef TERM_TABLE +@@ -3307,7 +3607,7 @@ TERM_TABLE_START(post_driver) + PS_text, null_scale, PS_graphics, PS_move, PS_vector, + PS_linetype, PS_put_text, PS_text_angle, + PS_justify_text, PS_point, PS_arrow, PS_set_font, PS_pointsize, +- TERM_BINARY|TERM_IS_POSTSCRIPT|TERM_CAN_CLIP /*flags*/, ++ TERM_BINARY|TERM_IS_POSTSCRIPT|TERM_CAN_CLIP|TERM_CAN_DASH /*flags*/, + 0 /*suspend*/, 0 /*resume*/, PS_fillbox, PS_linewidth + #ifdef USE_MOUSE + , 0, 0, 0, 0, 0 /* no mouse support for postscript */ +@@ -3320,8 +3620,9 @@ TERM_TABLE_START(post_driver) + , PS_image + #endif + , ENHPS_OPEN, ENHPS_FLUSH, ENHPS_WRITEC +- , 0 /* layer control */ ++ , PS_layer /* used only to insert comments */ + , PS_path ++ , PS_SC /* terminal to pixel coord scale factor */ + TERM_TABLE_END(post_driver) + + #undef LAST_TERM +@@ -3432,7 +3733,7 @@ PS_COMMON_OPTS2 + " but transfers the texts to LaTeX instead of including in the PostScript", + " code. Thus, many options are the same as in the `postscript terminal`.", + "", +-" From version 4.0 to 4.2, some changes have been invoked into the default ", ++" From version 4.0 to 4.1, some changes have been invoked into the default ", + " appearance of the epslatex terminal to reach better consistency with the", + " postscript terminal: The plot size has been changed from 5 x 3 inches to", + " 5 x 3.5 inches; the character width is now estimated to be 60% of the font", +@@ -3625,7 +3926,7 @@ PS_COMMON_DOC1 + " \\special{psfile=...} command. Remember to close the `output file` before", + " next plot unless in `multiplot` mode.", + "", +-" Gnuplot versions prior version 4.2 have generated plots of the size", ++" Gnuplot versions prior version 4.1 have generated plots of the size", + " 5 x 3 inches using the ps(la)tex terminal while the current version generates", + " 5 x 3.5 inches to be consistent with the postscript eps terminal. In", + " addition, the character width is now estimated to be 60% of the font size", +@@ -3678,7 +3979,7 @@ START_HELP(post) + " {enhanced | noenhanced}", + " {defaultplex | simplex | duplex}", + " {fontfile [add | delete] \"\"", +-" | nofontfiles}", ++" | nofontfiles} {{no}adobeglyphnames}", + PS_COMMON_OPTS1 + PS_COMMON_OPTS2 + PS_COMMON_PROLOG_INFO +@@ -3748,112 +4049,6 @@ PS_COMMON_DOC1 + " A PostScript file is editable, so once `gnuplot` has created one, you are", + " free to modify it to your heart's desire. See the `editing postscript`", + " section for some hints.", +-"2 enhanced postscript", +-"?commands set terminal postscript enhanced", +-"?set terminal postscript enhanced", +-"?set term postscript enhanced", +-"?terminal postscript enhanced", +-"?term postscript enhanced", +-"?enhanced_postscript", +-"?enhanced postscript", +-"?Enhanced postscript", +-"?enhanced text", +-"?Enhanced text", +-"?enhanced", +-" Several terminal types support an enhanced text mode in which ", +-" additional formatting information is embedded in the text string.", +-"", +-"@start table - first is interactive cleartext form", +-" Control Examples Explanation", +-" ^ a^x superscript", +-" _ a_x subscript", +-" @ @x or a@^b_c phantom box (occupies no width)", +-" & &{space} inserts space of specified length", +-" ~ ~a{.8-} overprints '-' on 'a', raised by .8", +-" times the current fontsize", +-"#\\begin{tabular}{|ccl|} \\hline", +-"#\\multicolumn{3}{|c|}{Enhanced Text Control Codes} \\\\ \\hline", +-"#Control & Examples & Explanation \\\\ \\hline", +-"#\\verb~^~ & \\verb~a^x~ & superscript\\\\", +-"#\\verb~_~ & \\verb~a_x~ & subscript\\\\", +-"#\\verb~@~ & \\verb~@x or a@^b_c~ & phantom box (occupies no width)\\\\", +-"#\\verb~&~ & \\verb~&{space}~ & inserts space of specified length\\\\", +-"#\\verb|~| & \\verb|~a{.8-}| & overprints '-' on 'a', raised by .8\\\\", +-"#\\verb~ ~ & \\verb~ ~ & times the current fontsize\\\\", +-"%c c l .", +-"%.TE", /* ugly - doc2ms uses @ for column separator, but here we */ +-"%.TS", /* need @ in table, so end and restart the table ! */ +-"%center box tab ($) ;", +-"%c c l .", +-"%Control$Examples$Explanation", +-"%_", +-"%^$a^x$superscript", +-"%\\&_$a\\&_x$subscript", +-"% @ $ @x or a\\&@^b\\&_c$phantom box (occupies no width)", +-"% & $ &{space}$inserts space of specified length", +-"% ~ $ ~a{.8-}$overprints '-' on 'a', raised by .8", +-"% $ $times the current fontsize", +-"@end table", +-"", +-" Braces can be used to place multiple-character text where a single character", +-" is expected (e.g., 2^{10}). To change the font and/or size, use the full", +-" form: {/[fontname][=fontsize | *fontscale] text}. Thus {/Symbol=20 G} is a", +-" 20-point GAMMA and {/*0.75 K} is a K at three-quarters of whatever fontsize", +-" is currently in effect. (The '/' character MUST be the first character after", +-" the '{'.)", +-"", +-" If the encoding vector has been changed by `set encoding`, the default", +-" encoding vector can be used instead by following the slash with a dash. This", +-" is unnecessary if you use the Symbol font, however---since /Symbol uses its", +-" own encoding vector, `gnuplot` will not apply any other encoding vector to", +-" it.", +-"", +-" The phantom box is useful for a@^b_c to align superscripts and subscripts", +-" but does not work well for overwriting an accent on a letter. (To do the", +-" latter, it is much better to use 'set encoding iso_8859_1' to change to the", +-" ISO Latin-1 encoding vector, which contains a large variety of letters with", +-" accents or other diacritical marks.) Since the box is non-spacing, it is", +-" sensible to put the shorter of the subscript or superscript in the box (that", +-" is, after the @).", +-"", +-" Space equal in length to a string can be inserted using the '&' character.", +-" Thus", +-" 'abc&{def}ghi'", +-" would produce", +-" 'abc ghi'.", +-"", +-" The '~' character causes the next character or bracketed text to be", +-" overprinted by the following character or bracketed text. The second text", +-" will be horizontally centered on the first. Thus '~a/' will result in an 'a'", +-" with a slash through it. You can also shift the second text vertically by", +-" preceding the second text with a number, which will define the fraction of the", +-" current fontsize by which the text will be raised or lowered. In this case", +-" the number and text must be enclosed in brackets because more than one", +-" character is necessary. If the overprinted text begins with a number, put a", +-" space between the vertical offset and the text ('~{abc}{.5 000}'); otherwise", +-" no space is needed ('~{abc}{.5---}'). You can change the font for one or", +-" both strings ('~a{.5 /*.2 o}'---an 'a' with a one-fifth-size 'o' on top---and", +-" the space between the number and the slash is necessary), but you can't", +-" change it after the beginning of the string. Neither can you use any other", +-" special syntax within either string. You can, of course, use control", +-" characters by escaping them (see below), such as '~a{\\^}'", +-"", +-" You can access special symbols numerically by specifying \\character-code (in", +-" octal), e.g., {/Symbol \\245} is the symbol for infinity.", +-"", +-" You can escape control characters using \\, e.g., \\\\, \\{, and so on.", +-"", +-" But be aware that strings in double-quotes are parsed differently than those", +-" enclosed in single-quotes. The major difference is that backslashes may need", +-" to be doubled when in double-quoted strings.", +-"", +-" Examples (these are hard to describe in words---try them!):", +-" set xlabel 'Time (10^6 {/Symbol m}s)'", +-" set title '{/Symbol=18 \\362@_{/=9.6 0}^{/=12 x}} \\", +-" {/Helvetica e^{-{/Symbol m}^2/2} d}{/Symbol m}'", +-"", +-" The file \"ps_guide.ps\" in the /docs/psdoc subdirectory of the `gnuplot` source", +-" distribution contains more examples of the enhanced syntax.", + "2 editing postscript", + "?commands set terminal postscript editing", + "?set terminal postscript editing", +@@ -4009,6 +4204,26 @@ PS_COMMON_DOC1 + " controlled at the time gnuplot is built. However, you can control this", + " either by defining an environment variable GNUPLOT_PS_DIR or by using the", + " gnuplot command `set loadpath`. See `set loadpath`.", ++"2 postscript adobeglyphnames", ++"?commands set terminal postscript adobeglyphnames", ++"?set terminal postscript adobeglyphnames", ++"?terminal postscript adobeglyphnames", ++"?postscript adobeglyphnames", ++"?adobeglyphnames", ++"=UTF-8", ++" This setting is only relevant to PostScript output with UTF-8 encoding.", ++" It controls the names used to describe characters with Unicode entry points", ++" higher than 0x00FF. That is, all characters outside of the Latin1 set.", ++" In general unicode characters do not have a unique name; they have only a", ++" unicode identification code. However, Adobe have a recommended scheme for", ++" assigning names to certain ranges of characters (extended Latin, Greek, etc).", ++" Some fonts use this scheme, others do not. By default, gnuplot will use", ++" the Adobe glyph names. E.g. the lower case Greek letter alpha will be called", ++" /alpha. If you specific `noadobeglyphnames` then instead gnuplot will use", ++" /uni03B1 to describe this character. If you get this setting wrong, the", ++" character may not be found even if it is present in the font.", ++" It is probably always correct to use the default for Adobe fonts, but for", ++" other fonts you may have to try both settings. See also `fontfile`.", + "", + "" + END_HELP(post) +Index: term/pslatex.trm +=================================================================== +--- term/pslatex.trm.orig 2009-05-17 07:34:12.000000000 +0200 ++++ term/pslatex.trm 2010-03-04 10:44:26.000000000 +0100 +@@ -441,7 +441,10 @@ EPSLATEX_common_init() + case S_ENC_ISO8859_2: + inputenc = "latin2"; + break; +- case S_ENC_ISO8859_15: ++ case S_ENC_ISO8859_9: /* ISO8859-9 is Latin5 */ ++ inputenc = "latin5"; ++ break; ++ case S_ENC_ISO8859_15: /* ISO8859-15 is Latin9 */ + inputenc = "latin9"; + break; + case S_ENC_CP437: +Index: term/PostScript/8859-1.ps +=================================================================== +--- term/PostScript/8859-1.ps.orig 2006-03-24 22:48:47.000000000 +0100 ++++ term/PostScript/8859-1.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,3 +1,6 @@ ++% ++% Encoding for ISO-8859-1 (also called Latin1) ++% + /reencodeISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse } forall +Index: term/PostScript/8859-15.ps +=================================================================== +--- term/PostScript/8859-15.ps.orig 2006-03-24 22:48:47.000000000 +0100 ++++ term/PostScript/8859-15.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,3 +1,6 @@ ++% ++% Encoding for ISO-8859-15 (also called Latin9) ++% + /reencodeISO15 { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse } forall +Index: term/PostScript/8859-2.ps +=================================================================== +--- term/PostScript/8859-2.ps.orig 2006-08-12 00:35:05.000000000 +0200 ++++ term/PostScript/8859-2.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,4 +1,5 @@ +-% Encoding for ISO-8859-2 (also called as Latin-2), with ++% ++% Encoding for ISO-8859-2 (also called Latin2), with + % minor differences to "true" ISO-8859-2 (*commaaccent + % instead of *cedilla for sStT -> incorrect in ISO-8859-2, + % the standard will probably be modified in this respect) +Index: term/PostScript/8859-9.ps +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ term/PostScript/8859-9.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -0,0 +1,44 @@ ++% ++% Encoding for ISO_8859_9 (also called Latin5) ++% Plus code points 80-9F used in Codepage 1254 ++% ++/reencodeISO9 { ++dup dup findfont dup length dict begin ++{ 1 index /FID ne { def }{ pop pop } ifelse } forall ++currentdict /CharStrings known { ++ CharStrings /Idieresis known { ++ /Encoding ISOLatin5Encoding def } if ++} if ++currentdict end definefont ++} def ++/ISOLatin5Encoding [ ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright ++/parenleft/parenright/asterisk/plus/comma/minus/period/slash ++/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon ++/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N ++/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright ++/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m ++/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde ++/Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl ++/circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef/.notdef/.notdef ++/.notdef/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash ++/tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef/Ydieresis ++/.notdef/space/exclamdown/cent/sterling/currency/yen/brokenbar ++/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot ++/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior ++/acute/mu/paragraph/bullet/cedilla/onesuperior/ordmasculine ++/guillemotright/onequarter/onehalf/threequarters/questiondown ++/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla ++/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex ++/Idieresis/Gbreve/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis ++/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Idotaccent ++/Scedilla/germandbls/agrave/aacute/acircumflex/atilde/adieresis ++/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave ++/iacute/icircumflex/idieresis/gbreve/ntilde/ograve/oacute/ocircumflex ++/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis ++/dotlessi/scedilla/ydieresis ++] def +Index: term/PostScript/NOTE.aglfn +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ term/PostScript/NOTE.aglfn 2010-03-04 10:44:07.000000000 +0100 +@@ -0,0 +1,2 @@ ++The document aglfn.txt was obtained from http://www.adobe.com/devnet/opentype/archives/aglfn.txt ++Do never change this document as this is not allowed by the license found therein. +Index: term/PostScript/aglfn.txt +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ term/PostScript/aglfn.txt 2010-03-04 10:44:07.000000000 +0100 +@@ -0,0 +1,932 @@ ++# ################################################################################### ++# Copyright (c) 2003,2005,2006,2007 Adobe Systems Incorporated ++# ++# Permission is hereby granted, free of charge, to any person obtaining a ++# copy of this documentation file to use, copy, publish, distribute, ++# sublicense, and/or sell copies of the documentation, and to permit ++# others to do the same, provided that: ++# - No modification, editing or other alteration of this document is ++# allowed; and ++# - The above copyright notice and this permission notice shall be ++# included in all copies of the documentation. ++# ++# Permission is hereby granted, free of charge, to any person obtaining a ++# copy of this documentation file, to create their own derivative works ++# from the content of this document to use, copy, publish, distribute, ++# sublicense, and/or sell the derivative works, and to permit others to do ++# the same, provided that the derived work is not represented as being a ++# copy or version of this document. ++# ++# Adobe shall not be liable to any party for any loss of revenue or profit ++# or for indirect, incidental, special, consequential, or other similar ++# damages, whether based on tort (including without limitation negligence ++# or strict liability), contract or other legal or equitable grounds even ++# if Adobe has been advised or had reason to know of the possibility of ++# such damages.� The Adobe materials are provided on an "AS IS" basis.� ++# Adobe specifically disclaims all express, statutory, or implied ++# warranties relating to the Adobe materials, including but not limited to ++# those concerning merchantability or fitness for a particular purpose or ++# non-infringement of any third party rights regarding the Adobe ++# materials. ++# ################################################################################### ++# Name: Adobe Glyph List For New Fonts ++# Table version: 1.6 ++# Date: 30 Januaury 2006 ++# ++# Description: ++# ++# The Adobe Glyph List For New Fonts (AGLFN) is meant to provide a list of ++# base glyph names which are compatible with the AGL specification at ++# http://partners.adobe.com/asn/developer/type/unicodegn.html. ++# and which can be used as described in section 6 of that document. ++# ++# This list comprises the set of glyph names from the AGLv2,0 which map ++# to via the AGL rules to the semanticly correct Unicode value. For ++# example, Asmall is omitted as the AGL maps this to the Unicode ++# Private Use Area value F761, rather than to the Unicode value for the ++# character "A". "ffi" is also omitted, as the AGL maps this to the ++# Alphabetic Presentation Forms Area value FB03, rather than ++# decomposing it to the three-value Unicode sequence 0066,0066,0069. ++# See section 7.1 of the Unicode Standard 4.0 on this issue. ++# "arrowvertex" is omitted becuase this now has a real Unicode ++# character value, and the AGL is now incorrect in mapping this to the ++# Private Use Area value F8E6. ++# ++# If you do not find an appropriate name for your glyph in this list, ++# then please refer to section 6 of the document: ++# http://partners.adobe.com/asn/developer/typeforum/unicodegn.html. ++# ++# The Unicode values and names are given for convenience. ++# ++# Format: Semicolon-delimited fields: ++# ++# (1) Standard UV or CUS UV. (4 uppercase hexadecimal digits) ++# ++# (2) Glyph name. (upper- and lowercase letters, digits) ++# ++# (3) Character names: Unicode character names for standard UVs, and ++# descriptive names for CUS UVs. (uppercase letters, hyphen, space) ++# ++# The entries are sorted by glyph name in increasing ASCII order; entries ++# with the same glyph name are sorted in decreasing priority order. ++# ++# Lines starting with "#" are comments; blank lines should be ignored. ++# ++# 1.6 [30 January 2006] ++# - Completed work intended in 1.5 ++# ++# 1.5 [23 November 2005] ++# - removed duplicated block at end of file ++# - changed mappings: ++# 2206;Delta;INCREMENT changed to 0394;Delta;GREEK CAPITAL LETTER DELTA ++# 2126;Omega;OHM SIGN changed to 03A9;Omega;GREEK CAPITAL LETTER OMEGA ++# 03BC;mu;MICRO SIGN changed to 03BC;mu;GREEK SMALL LETTER MU ++# - corrected statement above about why ffi is omitted. ++ ++# 1.4 [24 September 2003] Changed version to 1.4, to avoid confusion ++# with the AGL 1.3 ++# fixed spelling errors in the header ++# fully removed arrowvertex, as it is mapped only to a PUA Unicode value in some fonts. ++# ++# 1.1 [17 April 2003] Renamed [Tt]cedilla back to [Tt]commaaccent: ++# ++# 1.0 [31 Jan 2003] Original version. Derived from the AGLv1.2 by: ++# - removing the PUA area codes ++# - removing duplicate Unicode mappings, and ++# - renaming tcommaaccent to tcedilla and Tcommaaccent to Tcedilla ++# ++0041;A;LATIN CAPITAL LETTER A ++00C6;AE;LATIN CAPITAL LETTER AE ++01FC;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE ++00C1;Aacute;LATIN CAPITAL LETTER A WITH ACUTE ++0102;Abreve;LATIN CAPITAL LETTER A WITH BREVE ++00C2;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX ++00C4;Adieresis;LATIN CAPITAL LETTER A WITH DIAERESIS ++00C0;Agrave;LATIN CAPITAL LETTER A WITH GRAVE ++0391;Alpha;GREEK CAPITAL LETTER ALPHA ++0386;Alphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS ++0100;Amacron;LATIN CAPITAL LETTER A WITH MACRON ++0104;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK ++00C5;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE ++01FA;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE ++00C3;Atilde;LATIN CAPITAL LETTER A WITH TILDE ++0042;B;LATIN CAPITAL LETTER B ++0392;Beta;GREEK CAPITAL LETTER BETA ++0043;C;LATIN CAPITAL LETTER C ++0106;Cacute;LATIN CAPITAL LETTER C WITH ACUTE ++010C;Ccaron;LATIN CAPITAL LETTER C WITH CARON ++00C7;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA ++0108;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX ++010A;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE ++03A7;Chi;GREEK CAPITAL LETTER CHI ++0044;D;LATIN CAPITAL LETTER D ++010E;Dcaron;LATIN CAPITAL LETTER D WITH CARON ++0110;Dcroat;LATIN CAPITAL LETTER D WITH STROKE ++0394;Delta;GREEK CAPITAL LETTER DELTA ++0045;E;LATIN CAPITAL LETTER E ++00C9;Eacute;LATIN CAPITAL LETTER E WITH ACUTE ++0114;Ebreve;LATIN CAPITAL LETTER E WITH BREVE ++011A;Ecaron;LATIN CAPITAL LETTER E WITH CARON ++00CA;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX ++00CB;Edieresis;LATIN CAPITAL LETTER E WITH DIAERESIS ++0116;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE ++00C8;Egrave;LATIN CAPITAL LETTER E WITH GRAVE ++0112;Emacron;LATIN CAPITAL LETTER E WITH MACRON ++014A;Eng;LATIN CAPITAL LETTER ENG ++0118;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK ++0395;Epsilon;GREEK CAPITAL LETTER EPSILON ++0388;Epsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS ++0397;Eta;GREEK CAPITAL LETTER ETA ++0389;Etatonos;GREEK CAPITAL LETTER ETA WITH TONOS ++00D0;Eth;LATIN CAPITAL LETTER ETH ++20AC;Euro;EURO SIGN ++0046;F;LATIN CAPITAL LETTER F ++0047;G;LATIN CAPITAL LETTER G ++0393;Gamma;GREEK CAPITAL LETTER GAMMA ++011E;Gbreve;LATIN CAPITAL LETTER G WITH BREVE ++01E6;Gcaron;LATIN CAPITAL LETTER G WITH CARON ++011C;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX ++0122;Gcommaaccent;LATIN CAPITAL LETTER G WITH CEDILLA ++0120;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE ++0048;H;LATIN CAPITAL LETTER H ++25CF;H18533;BLACK CIRCLE ++25AA;H18543;BLACK SMALL SQUARE ++25AB;H18551;WHITE SMALL SQUARE ++25A1;H22073;WHITE SQUARE ++0126;Hbar;LATIN CAPITAL LETTER H WITH STROKE ++0124;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX ++0049;I;LATIN CAPITAL LETTER I ++0132;IJ;LATIN CAPITAL LIGATURE IJ ++00CD;Iacute;LATIN CAPITAL LETTER I WITH ACUTE ++012C;Ibreve;LATIN CAPITAL LETTER I WITH BREVE ++00CE;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX ++00CF;Idieresis;LATIN CAPITAL LETTER I WITH DIAERESIS ++0130;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE ++2111;Ifraktur;BLACK-LETTER CAPITAL I ++00CC;Igrave;LATIN CAPITAL LETTER I WITH GRAVE ++012A;Imacron;LATIN CAPITAL LETTER I WITH MACRON ++012E;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK ++0399;Iota;GREEK CAPITAL LETTER IOTA ++03AA;Iotadieresis;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA ++038A;Iotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS ++0128;Itilde;LATIN CAPITAL LETTER I WITH TILDE ++004A;J;LATIN CAPITAL LETTER J ++0134;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX ++004B;K;LATIN CAPITAL LETTER K ++039A;Kappa;GREEK CAPITAL LETTER KAPPA ++0136;Kcommaaccent;LATIN CAPITAL LETTER K WITH CEDILLA ++004C;L;LATIN CAPITAL LETTER L ++0139;Lacute;LATIN CAPITAL LETTER L WITH ACUTE ++039B;Lambda;GREEK CAPITAL LETTER LAMDA ++013D;Lcaron;LATIN CAPITAL LETTER L WITH CARON ++013B;Lcommaaccent;LATIN CAPITAL LETTER L WITH CEDILLA ++013F;Ldot;LATIN CAPITAL LETTER L WITH MIDDLE DOT ++0141;Lslash;LATIN CAPITAL LETTER L WITH STROKE ++004D;M;LATIN CAPITAL LETTER M ++039C;Mu;GREEK CAPITAL LETTER MU ++004E;N;LATIN CAPITAL LETTER N ++0143;Nacute;LATIN CAPITAL LETTER N WITH ACUTE ++0147;Ncaron;LATIN CAPITAL LETTER N WITH CARON ++0145;Ncommaaccent;LATIN CAPITAL LETTER N WITH CEDILLA ++00D1;Ntilde;LATIN CAPITAL LETTER N WITH TILDE ++039D;Nu;GREEK CAPITAL LETTER NU ++004F;O;LATIN CAPITAL LETTER O ++0152;OE;LATIN CAPITAL LIGATURE OE ++00D3;Oacute;LATIN CAPITAL LETTER O WITH ACUTE ++014E;Obreve;LATIN CAPITAL LETTER O WITH BREVE ++00D4;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX ++00D6;Odieresis;LATIN CAPITAL LETTER O WITH DIAERESIS ++00D2;Ograve;LATIN CAPITAL LETTER O WITH GRAVE ++01A0;Ohorn;LATIN CAPITAL LETTER O WITH HORN ++0150;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE ++014C;Omacron;LATIN CAPITAL LETTER O WITH MACRON ++03A9;Omega;GREEK CAPITAL LETTER OMEGA ++038F;Omegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS ++039F;Omicron;GREEK CAPITAL LETTER OMICRON ++038C;Omicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS ++00D8;Oslash;LATIN CAPITAL LETTER O WITH STROKE ++01FE;Oslashacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE ++00D5;Otilde;LATIN CAPITAL LETTER O WITH TILDE ++0050;P;LATIN CAPITAL LETTER P ++03A6;Phi;GREEK CAPITAL LETTER PHI ++03A0;Pi;GREEK CAPITAL LETTER PI ++03A8;Psi;GREEK CAPITAL LETTER PSI ++0051;Q;LATIN CAPITAL LETTER Q ++0052;R;LATIN CAPITAL LETTER R ++0154;Racute;LATIN CAPITAL LETTER R WITH ACUTE ++0158;Rcaron;LATIN CAPITAL LETTER R WITH CARON ++0156;Rcommaaccent;LATIN CAPITAL LETTER R WITH CEDILLA ++211C;Rfraktur;BLACK-LETTER CAPITAL R ++03A1;Rho;GREEK CAPITAL LETTER RHO ++0053;S;LATIN CAPITAL LETTER S ++250C;SF010000;BOX DRAWINGS LIGHT DOWN AND RIGHT ++2514;SF020000;BOX DRAWINGS LIGHT UP AND RIGHT ++2510;SF030000;BOX DRAWINGS LIGHT DOWN AND LEFT ++2518;SF040000;BOX DRAWINGS LIGHT UP AND LEFT ++253C;SF050000;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL ++252C;SF060000;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL ++2534;SF070000;BOX DRAWINGS LIGHT UP AND HORIZONTAL ++251C;SF080000;BOX DRAWINGS LIGHT VERTICAL AND RIGHT ++2524;SF090000;BOX DRAWINGS LIGHT VERTICAL AND LEFT ++2500;SF100000;BOX DRAWINGS LIGHT HORIZONTAL ++2502;SF110000;BOX DRAWINGS LIGHT VERTICAL ++2561;SF190000;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE ++2562;SF200000;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE ++2556;SF210000;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE ++2555;SF220000;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE ++2563;SF230000;BOX DRAWINGS DOUBLE VERTICAL AND LEFT ++2551;SF240000;BOX DRAWINGS DOUBLE VERTICAL ++2557;SF250000;BOX DRAWINGS DOUBLE DOWN AND LEFT ++255D;SF260000;BOX DRAWINGS DOUBLE UP AND LEFT ++255C;SF270000;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE ++255B;SF280000;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE ++255E;SF360000;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE ++255F;SF370000;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE ++255A;SF380000;BOX DRAWINGS DOUBLE UP AND RIGHT ++2554;SF390000;BOX DRAWINGS DOUBLE DOWN AND RIGHT ++2569;SF400000;BOX DRAWINGS DOUBLE UP AND HORIZONTAL ++2566;SF410000;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL ++2560;SF420000;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT ++2550;SF430000;BOX DRAWINGS DOUBLE HORIZONTAL ++256C;SF440000;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL ++2567;SF450000;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE ++2568;SF460000;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE ++2564;SF470000;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE ++2565;SF480000;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE ++2559;SF490000;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE ++2558;SF500000;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE ++2552;SF510000;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE ++2553;SF520000;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE ++256B;SF530000;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE ++256A;SF540000;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE ++015A;Sacute;LATIN CAPITAL LETTER S WITH ACUTE ++0160;Scaron;LATIN CAPITAL LETTER S WITH CARON ++015E;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA ++015C;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX ++0218;Scommaaccent;LATIN CAPITAL LETTER S WITH COMMA BELOW ++03A3;Sigma;GREEK CAPITAL LETTER SIGMA ++0054;T;LATIN CAPITAL LETTER T ++03A4;Tau;GREEK CAPITAL LETTER TAU ++0166;Tbar;LATIN CAPITAL LETTER T WITH STROKE ++0164;Tcaron;LATIN CAPITAL LETTER T WITH CARON ++0162;Tcommaaccent;LATIN CAPITAL LETTER T WITH CEDILLA ++0398;Theta;GREEK CAPITAL LETTER THETA ++00DE;Thorn;LATIN CAPITAL LETTER THORN ++0055;U;LATIN CAPITAL LETTER U ++00DA;Uacute;LATIN CAPITAL LETTER U WITH ACUTE ++016C;Ubreve;LATIN CAPITAL LETTER U WITH BREVE ++00DB;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX ++00DC;Udieresis;LATIN CAPITAL LETTER U WITH DIAERESIS ++00D9;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE ++01AF;Uhorn;LATIN CAPITAL LETTER U WITH HORN ++0170;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE ++016A;Umacron;LATIN CAPITAL LETTER U WITH MACRON ++0172;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK ++03A5;Upsilon;GREEK CAPITAL LETTER UPSILON ++03D2;Upsilon1;GREEK UPSILON WITH HOOK SYMBOL ++03AB;Upsilondieresis;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA ++038E;Upsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS ++016E;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE ++0168;Utilde;LATIN CAPITAL LETTER U WITH TILDE ++0056;V;LATIN CAPITAL LETTER V ++0057;W;LATIN CAPITAL LETTER W ++1E82;Wacute;LATIN CAPITAL LETTER W WITH ACUTE ++0174;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX ++1E84;Wdieresis;LATIN CAPITAL LETTER W WITH DIAERESIS ++1E80;Wgrave;LATIN CAPITAL LETTER W WITH GRAVE ++0058;X;LATIN CAPITAL LETTER X ++039E;Xi;GREEK CAPITAL LETTER XI ++0059;Y;LATIN CAPITAL LETTER Y ++00DD;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE ++0176;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX ++0178;Ydieresis;LATIN CAPITAL LETTER Y WITH DIAERESIS ++1EF2;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE ++005A;Z;LATIN CAPITAL LETTER Z ++0179;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE ++017D;Zcaron;LATIN CAPITAL LETTER Z WITH CARON ++017B;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE ++0396;Zeta;GREEK CAPITAL LETTER ZETA ++0061;a;LATIN SMALL LETTER A ++00E1;aacute;LATIN SMALL LETTER A WITH ACUTE ++0103;abreve;LATIN SMALL LETTER A WITH BREVE ++00E2;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX ++00B4;acute;ACUTE ACCENT ++0301;acutecomb;COMBINING ACUTE ACCENT ++00E4;adieresis;LATIN SMALL LETTER A WITH DIAERESIS ++00E6;ae;LATIN SMALL LETTER AE ++01FD;aeacute;LATIN SMALL LETTER AE WITH ACUTE ++2015;afii00208;HORIZONTAL BAR ++0410;afii10017;CYRILLIC CAPITAL LETTER A ++0411;afii10018;CYRILLIC CAPITAL LETTER BE ++0412;afii10019;CYRILLIC CAPITAL LETTER VE ++0413;afii10020;CYRILLIC CAPITAL LETTER GHE ++0414;afii10021;CYRILLIC CAPITAL LETTER DE ++0415;afii10022;CYRILLIC CAPITAL LETTER IE ++0401;afii10023;CYRILLIC CAPITAL LETTER IO ++0416;afii10024;CYRILLIC CAPITAL LETTER ZHE ++0417;afii10025;CYRILLIC CAPITAL LETTER ZE ++0418;afii10026;CYRILLIC CAPITAL LETTER I ++0419;afii10027;CYRILLIC CAPITAL LETTER SHORT I ++041A;afii10028;CYRILLIC CAPITAL LETTER KA ++041B;afii10029;CYRILLIC CAPITAL LETTER EL ++041C;afii10030;CYRILLIC CAPITAL LETTER EM ++041D;afii10031;CYRILLIC CAPITAL LETTER EN ++041E;afii10032;CYRILLIC CAPITAL LETTER O ++041F;afii10033;CYRILLIC CAPITAL LETTER PE ++0420;afii10034;CYRILLIC CAPITAL LETTER ER ++0421;afii10035;CYRILLIC CAPITAL LETTER ES ++0422;afii10036;CYRILLIC CAPITAL LETTER TE ++0423;afii10037;CYRILLIC CAPITAL LETTER U ++0424;afii10038;CYRILLIC CAPITAL LETTER EF ++0425;afii10039;CYRILLIC CAPITAL LETTER HA ++0426;afii10040;CYRILLIC CAPITAL LETTER TSE ++0427;afii10041;CYRILLIC CAPITAL LETTER CHE ++0428;afii10042;CYRILLIC CAPITAL LETTER SHA ++0429;afii10043;CYRILLIC CAPITAL LETTER SHCHA ++042A;afii10044;CYRILLIC CAPITAL LETTER HARD SIGN ++042B;afii10045;CYRILLIC CAPITAL LETTER YERU ++042C;afii10046;CYRILLIC CAPITAL LETTER SOFT SIGN ++042D;afii10047;CYRILLIC CAPITAL LETTER E ++042E;afii10048;CYRILLIC CAPITAL LETTER YU ++042F;afii10049;CYRILLIC CAPITAL LETTER YA ++0490;afii10050;CYRILLIC CAPITAL LETTER GHE WITH UPTURN ++0402;afii10051;CYRILLIC CAPITAL LETTER DJE ++0403;afii10052;CYRILLIC CAPITAL LETTER GJE ++0404;afii10053;CYRILLIC CAPITAL LETTER UKRAINIAN IE ++0405;afii10054;CYRILLIC CAPITAL LETTER DZE ++0406;afii10055;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I ++0407;afii10056;CYRILLIC CAPITAL LETTER YI ++0408;afii10057;CYRILLIC CAPITAL LETTER JE ++0409;afii10058;CYRILLIC CAPITAL LETTER LJE ++040A;afii10059;CYRILLIC CAPITAL LETTER NJE ++040B;afii10060;CYRILLIC CAPITAL LETTER TSHE ++040C;afii10061;CYRILLIC CAPITAL LETTER KJE ++040E;afii10062;CYRILLIC CAPITAL LETTER SHORT U ++0430;afii10065;CYRILLIC SMALL LETTER A ++0431;afii10066;CYRILLIC SMALL LETTER BE ++0432;afii10067;CYRILLIC SMALL LETTER VE ++0433;afii10068;CYRILLIC SMALL LETTER GHE ++0434;afii10069;CYRILLIC SMALL LETTER DE ++0435;afii10070;CYRILLIC SMALL LETTER IE ++0451;afii10071;CYRILLIC SMALL LETTER IO ++0436;afii10072;CYRILLIC SMALL LETTER ZHE ++0437;afii10073;CYRILLIC SMALL LETTER ZE ++0438;afii10074;CYRILLIC SMALL LETTER I ++0439;afii10075;CYRILLIC SMALL LETTER SHORT I ++043A;afii10076;CYRILLIC SMALL LETTER KA ++043B;afii10077;CYRILLIC SMALL LETTER EL ++043C;afii10078;CYRILLIC SMALL LETTER EM ++043D;afii10079;CYRILLIC SMALL LETTER EN ++043E;afii10080;CYRILLIC SMALL LETTER O ++043F;afii10081;CYRILLIC SMALL LETTER PE ++0440;afii10082;CYRILLIC SMALL LETTER ER ++0441;afii10083;CYRILLIC SMALL LETTER ES ++0442;afii10084;CYRILLIC SMALL LETTER TE ++0443;afii10085;CYRILLIC SMALL LETTER U ++0444;afii10086;CYRILLIC SMALL LETTER EF ++0445;afii10087;CYRILLIC SMALL LETTER HA ++0446;afii10088;CYRILLIC SMALL LETTER TSE ++0447;afii10089;CYRILLIC SMALL LETTER CHE ++0448;afii10090;CYRILLIC SMALL LETTER SHA ++0449;afii10091;CYRILLIC SMALL LETTER SHCHA ++044A;afii10092;CYRILLIC SMALL LETTER HARD SIGN ++044B;afii10093;CYRILLIC SMALL LETTER YERU ++044C;afii10094;CYRILLIC SMALL LETTER SOFT SIGN ++044D;afii10095;CYRILLIC SMALL LETTER E ++044E;afii10096;CYRILLIC SMALL LETTER YU ++044F;afii10097;CYRILLIC SMALL LETTER YA ++0491;afii10098;CYRILLIC SMALL LETTER GHE WITH UPTURN ++0452;afii10099;CYRILLIC SMALL LETTER DJE ++0453;afii10100;CYRILLIC SMALL LETTER GJE ++0454;afii10101;CYRILLIC SMALL LETTER UKRAINIAN IE ++0455;afii10102;CYRILLIC SMALL LETTER DZE ++0456;afii10103;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I ++0457;afii10104;CYRILLIC SMALL LETTER YI ++0458;afii10105;CYRILLIC SMALL LETTER JE ++0459;afii10106;CYRILLIC SMALL LETTER LJE ++045A;afii10107;CYRILLIC SMALL LETTER NJE ++045B;afii10108;CYRILLIC SMALL LETTER TSHE ++045C;afii10109;CYRILLIC SMALL LETTER KJE ++045E;afii10110;CYRILLIC SMALL LETTER SHORT U ++040F;afii10145;CYRILLIC CAPITAL LETTER DZHE ++0462;afii10146;CYRILLIC CAPITAL LETTER YAT ++0472;afii10147;CYRILLIC CAPITAL LETTER FITA ++0474;afii10148;CYRILLIC CAPITAL LETTER IZHITSA ++045F;afii10193;CYRILLIC SMALL LETTER DZHE ++0463;afii10194;CYRILLIC SMALL LETTER YAT ++0473;afii10195;CYRILLIC SMALL LETTER FITA ++0475;afii10196;CYRILLIC SMALL LETTER IZHITSA ++04D9;afii10846;CYRILLIC SMALL LETTER SCHWA ++200E;afii299;LEFT-TO-RIGHT MARK ++200F;afii300;RIGHT-TO-LEFT MARK ++200D;afii301;ZERO WIDTH JOINER ++066A;afii57381;ARABIC PERCENT SIGN ++060C;afii57388;ARABIC COMMA ++0660;afii57392;ARABIC-INDIC DIGIT ZERO ++0661;afii57393;ARABIC-INDIC DIGIT ONE ++0662;afii57394;ARABIC-INDIC DIGIT TWO ++0663;afii57395;ARABIC-INDIC DIGIT THREE ++0664;afii57396;ARABIC-INDIC DIGIT FOUR ++0665;afii57397;ARABIC-INDIC DIGIT FIVE ++0666;afii57398;ARABIC-INDIC DIGIT SIX ++0667;afii57399;ARABIC-INDIC DIGIT SEVEN ++0668;afii57400;ARABIC-INDIC DIGIT EIGHT ++0669;afii57401;ARABIC-INDIC DIGIT NINE ++061B;afii57403;ARABIC SEMICOLON ++061F;afii57407;ARABIC QUESTION MARK ++0621;afii57409;ARABIC LETTER HAMZA ++0622;afii57410;ARABIC LETTER ALEF WITH MADDA ABOVE ++0623;afii57411;ARABIC LETTER ALEF WITH HAMZA ABOVE ++0624;afii57412;ARABIC LETTER WAW WITH HAMZA ABOVE ++0625;afii57413;ARABIC LETTER ALEF WITH HAMZA BELOW ++0626;afii57414;ARABIC LETTER YEH WITH HAMZA ABOVE ++0627;afii57415;ARABIC LETTER ALEF ++0628;afii57416;ARABIC LETTER BEH ++0629;afii57417;ARABIC LETTER TEH MARBUTA ++062A;afii57418;ARABIC LETTER TEH ++062B;afii57419;ARABIC LETTER THEH ++062C;afii57420;ARABIC LETTER JEEM ++062D;afii57421;ARABIC LETTER HAH ++062E;afii57422;ARABIC LETTER KHAH ++062F;afii57423;ARABIC LETTER DAL ++0630;afii57424;ARABIC LETTER THAL ++0631;afii57425;ARABIC LETTER REH ++0632;afii57426;ARABIC LETTER ZAIN ++0633;afii57427;ARABIC LETTER SEEN ++0634;afii57428;ARABIC LETTER SHEEN ++0635;afii57429;ARABIC LETTER SAD ++0636;afii57430;ARABIC LETTER DAD ++0637;afii57431;ARABIC LETTER TAH ++0638;afii57432;ARABIC LETTER ZAH ++0639;afii57433;ARABIC LETTER AIN ++063A;afii57434;ARABIC LETTER GHAIN ++0640;afii57440;ARABIC TATWEEL ++0641;afii57441;ARABIC LETTER FEH ++0642;afii57442;ARABIC LETTER QAF ++0643;afii57443;ARABIC LETTER KAF ++0644;afii57444;ARABIC LETTER LAM ++0645;afii57445;ARABIC LETTER MEEM ++0646;afii57446;ARABIC LETTER NOON ++0648;afii57448;ARABIC LETTER WAW ++0649;afii57449;ARABIC LETTER ALEF MAKSURA ++064A;afii57450;ARABIC LETTER YEH ++064B;afii57451;ARABIC FATHATAN ++064C;afii57452;ARABIC DAMMATAN ++064D;afii57453;ARABIC KASRATAN ++064E;afii57454;ARABIC FATHA ++064F;afii57455;ARABIC DAMMA ++0650;afii57456;ARABIC KASRA ++0651;afii57457;ARABIC SHADDA ++0652;afii57458;ARABIC SUKUN ++0647;afii57470;ARABIC LETTER HEH ++06A4;afii57505;ARABIC LETTER VEH ++067E;afii57506;ARABIC LETTER PEH ++0686;afii57507;ARABIC LETTER TCHEH ++0698;afii57508;ARABIC LETTER JEH ++06AF;afii57509;ARABIC LETTER GAF ++0679;afii57511;ARABIC LETTER TTEH ++0688;afii57512;ARABIC LETTER DDAL ++0691;afii57513;ARABIC LETTER RREH ++06BA;afii57514;ARABIC LETTER NOON GHUNNA ++06D2;afii57519;ARABIC LETTER YEH BARREE ++06D5;afii57534;ARABIC LETTER AE ++20AA;afii57636;NEW SHEQEL SIGN ++05BE;afii57645;HEBREW PUNCTUATION MAQAF ++05C3;afii57658;HEBREW PUNCTUATION SOF PASUQ ++05D0;afii57664;HEBREW LETTER ALEF ++05D1;afii57665;HEBREW LETTER BET ++05D2;afii57666;HEBREW LETTER GIMEL ++05D3;afii57667;HEBREW LETTER DALET ++05D4;afii57668;HEBREW LETTER HE ++05D5;afii57669;HEBREW LETTER VAV ++05D6;afii57670;HEBREW LETTER ZAYIN ++05D7;afii57671;HEBREW LETTER HET ++05D8;afii57672;HEBREW LETTER TET ++05D9;afii57673;HEBREW LETTER YOD ++05DA;afii57674;HEBREW LETTER FINAL KAF ++05DB;afii57675;HEBREW LETTER KAF ++05DC;afii57676;HEBREW LETTER LAMED ++05DD;afii57677;HEBREW LETTER FINAL MEM ++05DE;afii57678;HEBREW LETTER MEM ++05DF;afii57679;HEBREW LETTER FINAL NUN ++05E0;afii57680;HEBREW LETTER NUN ++05E1;afii57681;HEBREW LETTER SAMEKH ++05E2;afii57682;HEBREW LETTER AYIN ++05E3;afii57683;HEBREW LETTER FINAL PE ++05E4;afii57684;HEBREW LETTER PE ++05E5;afii57685;HEBREW LETTER FINAL TSADI ++05E6;afii57686;HEBREW LETTER TSADI ++05E7;afii57687;HEBREW LETTER QOF ++05E8;afii57688;HEBREW LETTER RESH ++05E9;afii57689;HEBREW LETTER SHIN ++05EA;afii57690;HEBREW LETTER TAV ++05F0;afii57716;HEBREW LIGATURE YIDDISH DOUBLE VAV ++05F1;afii57717;HEBREW LIGATURE YIDDISH VAV YOD ++05F2;afii57718;HEBREW LIGATURE YIDDISH DOUBLE YOD ++05B4;afii57793;HEBREW POINT HIRIQ ++05B5;afii57794;HEBREW POINT TSERE ++05B6;afii57795;HEBREW POINT SEGOL ++05BB;afii57796;HEBREW POINT QUBUTS ++05B8;afii57797;HEBREW POINT QAMATS ++05B7;afii57798;HEBREW POINT PATAH ++05B0;afii57799;HEBREW POINT SHEVA ++05B2;afii57800;HEBREW POINT HATAF PATAH ++05B1;afii57801;HEBREW POINT HATAF SEGOL ++05B3;afii57802;HEBREW POINT HATAF QAMATS ++05C2;afii57803;HEBREW POINT SIN DOT ++05C1;afii57804;HEBREW POINT SHIN DOT ++05B9;afii57806;HEBREW POINT HOLAM ++05BC;afii57807;HEBREW POINT DAGESH OR MAPIQ ++05BD;afii57839;HEBREW POINT METEG ++05BF;afii57841;HEBREW POINT RAFE ++05C0;afii57842;HEBREW PUNCTUATION PASEQ ++02BC;afii57929;MODIFIER LETTER APOSTROPHE ++2105;afii61248;CARE OF ++2113;afii61289;SCRIPT SMALL L ++2116;afii61352;NUMERO SIGN ++202C;afii61573;POP DIRECTIONAL FORMATTING ++202D;afii61574;LEFT-TO-RIGHT OVERRIDE ++202E;afii61575;RIGHT-TO-LEFT OVERRIDE ++200C;afii61664;ZERO WIDTH NON-JOINER ++066D;afii63167;ARABIC FIVE POINTED STAR ++02BD;afii64937;MODIFIER LETTER REVERSED COMMA ++00E0;agrave;LATIN SMALL LETTER A WITH GRAVE ++2135;aleph;ALEF SYMBOL ++03B1;alpha;GREEK SMALL LETTER ALPHA ++03AC;alphatonos;GREEK SMALL LETTER ALPHA WITH TONOS ++0101;amacron;LATIN SMALL LETTER A WITH MACRON ++0026;ampersand;AMPERSAND ++2220;angle;ANGLE ++2329;angleleft;LEFT-POINTING ANGLE BRACKET ++232A;angleright;RIGHT-POINTING ANGLE BRACKET ++0387;anoteleia;GREEK ANO TELEIA ++0105;aogonek;LATIN SMALL LETTER A WITH OGONEK ++2248;approxequal;ALMOST EQUAL TO ++00E5;aring;LATIN SMALL LETTER A WITH RING ABOVE ++01FB;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE ++2194;arrowboth;LEFT RIGHT ARROW ++21D4;arrowdblboth;LEFT RIGHT DOUBLE ARROW ++21D3;arrowdbldown;DOWNWARDS DOUBLE ARROW ++21D0;arrowdblleft;LEFTWARDS DOUBLE ARROW ++21D2;arrowdblright;RIGHTWARDS DOUBLE ARROW ++21D1;arrowdblup;UPWARDS DOUBLE ARROW ++2193;arrowdown;DOWNWARDS ARROW ++2190;arrowleft;LEFTWARDS ARROW ++2192;arrowright;RIGHTWARDS ARROW ++2191;arrowup;UPWARDS ARROW ++2195;arrowupdn;UP DOWN ARROW ++21A8;arrowupdnbse;UP DOWN ARROW WITH BASE ++005E;asciicircum;CIRCUMFLEX ACCENT ++007E;asciitilde;TILDE ++002A;asterisk;ASTERISK ++2217;asteriskmath;ASTERISK OPERATOR ++0040;at;COMMERCIAL AT ++00E3;atilde;LATIN SMALL LETTER A WITH TILDE ++0062;b;LATIN SMALL LETTER B ++005C;backslash;REVERSE SOLIDUS ++007C;bar;VERTICAL LINE ++03B2;beta;GREEK SMALL LETTER BETA ++2588;block;FULL BLOCK ++007B;braceleft;LEFT CURLY BRACKET ++007D;braceright;RIGHT CURLY BRACKET ++005B;bracketleft;LEFT SQUARE BRACKET ++005D;bracketright;RIGHT SQUARE BRACKET ++02D8;breve;BREVE ++00A6;brokenbar;BROKEN BAR ++2022;bullet;BULLET ++0063;c;LATIN SMALL LETTER C ++0107;cacute;LATIN SMALL LETTER C WITH ACUTE ++02C7;caron;CARON ++21B5;carriagereturn;DOWNWARDS ARROW WITH CORNER LEFTWARDS ++010D;ccaron;LATIN SMALL LETTER C WITH CARON ++00E7;ccedilla;LATIN SMALL LETTER C WITH CEDILLA ++0109;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX ++010B;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE ++00B8;cedilla;CEDILLA ++00A2;cent;CENT SIGN ++03C7;chi;GREEK SMALL LETTER CHI ++25CB;circle;WHITE CIRCLE ++2297;circlemultiply;CIRCLED TIMES ++2295;circleplus;CIRCLED PLUS ++02C6;circumflex;MODIFIER LETTER CIRCUMFLEX ACCENT ++2663;club;BLACK CLUB SUIT ++003A;colon;COLON ++20A1;colonmonetary;COLON SIGN ++002C;comma;COMMA ++2245;congruent;APPROXIMATELY EQUAL TO ++00A9;copyright;COPYRIGHT SIGN ++00A4;currency;CURRENCY SIGN ++0064;d;LATIN SMALL LETTER D ++2020;dagger;DAGGER ++2021;daggerdbl;DOUBLE DAGGER ++010F;dcaron;LATIN SMALL LETTER D WITH CARON ++0111;dcroat;LATIN SMALL LETTER D WITH STROKE ++00B0;degree;DEGREE SIGN ++03B4;delta;GREEK SMALL LETTER DELTA ++2666;diamond;BLACK DIAMOND SUIT ++00A8;dieresis;DIAERESIS ++0385;dieresistonos;GREEK DIALYTIKA TONOS ++00F7;divide;DIVISION SIGN ++2593;dkshade;DARK SHADE ++2584;dnblock;LOWER HALF BLOCK ++0024;dollar;DOLLAR SIGN ++20AB;dong;DONG SIGN ++02D9;dotaccent;DOT ABOVE ++0323;dotbelowcomb;COMBINING DOT BELOW ++0131;dotlessi;LATIN SMALL LETTER DOTLESS I ++22C5;dotmath;DOT OPERATOR ++0065;e;LATIN SMALL LETTER E ++00E9;eacute;LATIN SMALL LETTER E WITH ACUTE ++0115;ebreve;LATIN SMALL LETTER E WITH BREVE ++011B;ecaron;LATIN SMALL LETTER E WITH CARON ++00EA;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX ++00EB;edieresis;LATIN SMALL LETTER E WITH DIAERESIS ++0117;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE ++00E8;egrave;LATIN SMALL LETTER E WITH GRAVE ++0038;eight;DIGIT EIGHT ++2208;element;ELEMENT OF ++2026;ellipsis;HORIZONTAL ELLIPSIS ++0113;emacron;LATIN SMALL LETTER E WITH MACRON ++2014;emdash;EM DASH ++2205;emptyset;EMPTY SET ++2013;endash;EN DASH ++014B;eng;LATIN SMALL LETTER ENG ++0119;eogonek;LATIN SMALL LETTER E WITH OGONEK ++03B5;epsilon;GREEK SMALL LETTER EPSILON ++03AD;epsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS ++003D;equal;EQUALS SIGN ++2261;equivalence;IDENTICAL TO ++212E;estimated;ESTIMATED SYMBOL ++03B7;eta;GREEK SMALL LETTER ETA ++03AE;etatonos;GREEK SMALL LETTER ETA WITH TONOS ++00F0;eth;LATIN SMALL LETTER ETH ++0021;exclam;EXCLAMATION MARK ++203C;exclamdbl;DOUBLE EXCLAMATION MARK ++00A1;exclamdown;INVERTED EXCLAMATION MARK ++2203;existential;THERE EXISTS ++0066;f;LATIN SMALL LETTER F ++2640;female;FEMALE SIGN ++2012;figuredash;FIGURE DASH ++25A0;filledbox;BLACK SQUARE ++25AC;filledrect;BLACK RECTANGLE ++0035;five;DIGIT FIVE ++215D;fiveeighths;VULGAR FRACTION FIVE EIGHTHS ++0192;florin;LATIN SMALL LETTER F WITH HOOK ++0034;four;DIGIT FOUR ++2044;fraction;FRACTION SLASH ++20A3;franc;FRENCH FRANC SIGN ++0067;g;LATIN SMALL LETTER G ++03B3;gamma;GREEK SMALL LETTER GAMMA ++011F;gbreve;LATIN SMALL LETTER G WITH BREVE ++01E7;gcaron;LATIN SMALL LETTER G WITH CARON ++011D;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX ++0123;gcommaaccent;LATIN SMALL LETTER G WITH CEDILLA ++0121;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE ++00DF;germandbls;LATIN SMALL LETTER SHARP S ++2207;gradient;NABLA ++0060;grave;GRAVE ACCENT ++0300;gravecomb;COMBINING GRAVE ACCENT ++003E;greater;GREATER-THAN SIGN ++2265;greaterequal;GREATER-THAN OR EQUAL TO ++00AB;guillemotleft;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK ++00BB;guillemotright;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK ++2039;guilsinglleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK ++203A;guilsinglright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK ++0068;h;LATIN SMALL LETTER H ++0127;hbar;LATIN SMALL LETTER H WITH STROKE ++0125;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX ++2665;heart;BLACK HEART SUIT ++0309;hookabovecomb;COMBINING HOOK ABOVE ++2302;house;HOUSE ++02DD;hungarumlaut;DOUBLE ACUTE ACCENT ++002D;hyphen;HYPHEN-MINUS ++0069;i;LATIN SMALL LETTER I ++00ED;iacute;LATIN SMALL LETTER I WITH ACUTE ++012D;ibreve;LATIN SMALL LETTER I WITH BREVE ++00EE;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX ++00EF;idieresis;LATIN SMALL LETTER I WITH DIAERESIS ++00EC;igrave;LATIN SMALL LETTER I WITH GRAVE ++0133;ij;LATIN SMALL LIGATURE IJ ++012B;imacron;LATIN SMALL LETTER I WITH MACRON ++221E;infinity;INFINITY ++222B;integral;INTEGRAL ++2321;integralbt;BOTTOM HALF INTEGRAL ++2320;integraltp;TOP HALF INTEGRAL ++2229;intersection;INTERSECTION ++25D8;invbullet;INVERSE BULLET ++25D9;invcircle;INVERSE WHITE CIRCLE ++263B;invsmileface;BLACK SMILING FACE ++012F;iogonek;LATIN SMALL LETTER I WITH OGONEK ++03B9;iota;GREEK SMALL LETTER IOTA ++03CA;iotadieresis;GREEK SMALL LETTER IOTA WITH DIALYTIKA ++0390;iotadieresistonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS ++03AF;iotatonos;GREEK SMALL LETTER IOTA WITH TONOS ++0129;itilde;LATIN SMALL LETTER I WITH TILDE ++006A;j;LATIN SMALL LETTER J ++0135;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX ++006B;k;LATIN SMALL LETTER K ++03BA;kappa;GREEK SMALL LETTER KAPPA ++0137;kcommaaccent;LATIN SMALL LETTER K WITH CEDILLA ++0138;kgreenlandic;LATIN SMALL LETTER KRA ++006C;l;LATIN SMALL LETTER L ++013A;lacute;LATIN SMALL LETTER L WITH ACUTE ++03BB;lambda;GREEK SMALL LETTER LAMDA ++013E;lcaron;LATIN SMALL LETTER L WITH CARON ++013C;lcommaaccent;LATIN SMALL LETTER L WITH CEDILLA ++0140;ldot;LATIN SMALL LETTER L WITH MIDDLE DOT ++003C;less;LESS-THAN SIGN ++2264;lessequal;LESS-THAN OR EQUAL TO ++258C;lfblock;LEFT HALF BLOCK ++20A4;lira;LIRA SIGN ++2227;logicaland;LOGICAL AND ++00AC;logicalnot;NOT SIGN ++2228;logicalor;LOGICAL OR ++017F;longs;LATIN SMALL LETTER LONG S ++25CA;lozenge;LOZENGE ++0142;lslash;LATIN SMALL LETTER L WITH STROKE ++2591;ltshade;LIGHT SHADE ++006D;m;LATIN SMALL LETTER M ++00AF;macron;MACRON ++2642;male;MALE SIGN ++2212;minus;MINUS SIGN ++2032;minute;PRIME ++03BC;mu;GREEK SMALL LETTER MU ++00D7;multiply;MULTIPLICATION SIGN ++266A;musicalnote;EIGHTH NOTE ++266B;musicalnotedbl;BEAMED EIGHTH NOTES ++006E;n;LATIN SMALL LETTER N ++0144;nacute;LATIN SMALL LETTER N WITH ACUTE ++0149;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE ++0148;ncaron;LATIN SMALL LETTER N WITH CARON ++0146;ncommaaccent;LATIN SMALL LETTER N WITH CEDILLA ++0039;nine;DIGIT NINE ++2209;notelement;NOT AN ELEMENT OF ++2260;notequal;NOT EQUAL TO ++2284;notsubset;NOT A SUBSET OF ++00F1;ntilde;LATIN SMALL LETTER N WITH TILDE ++03BD;nu;GREEK SMALL LETTER NU ++0023;numbersign;NUMBER SIGN ++006F;o;LATIN SMALL LETTER O ++00F3;oacute;LATIN SMALL LETTER O WITH ACUTE ++014F;obreve;LATIN SMALL LETTER O WITH BREVE ++00F4;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX ++00F6;odieresis;LATIN SMALL LETTER O WITH DIAERESIS ++0153;oe;LATIN SMALL LIGATURE OE ++02DB;ogonek;OGONEK ++00F2;ograve;LATIN SMALL LETTER O WITH GRAVE ++01A1;ohorn;LATIN SMALL LETTER O WITH HORN ++0151;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE ++014D;omacron;LATIN SMALL LETTER O WITH MACRON ++03C9;omega;GREEK SMALL LETTER OMEGA ++03D6;omega1;GREEK PI SYMBOL ++03CE;omegatonos;GREEK SMALL LETTER OMEGA WITH TONOS ++03BF;omicron;GREEK SMALL LETTER OMICRON ++03CC;omicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS ++0031;one;DIGIT ONE ++2024;onedotenleader;ONE DOT LEADER ++215B;oneeighth;VULGAR FRACTION ONE EIGHTH ++00BD;onehalf;VULGAR FRACTION ONE HALF ++00BC;onequarter;VULGAR FRACTION ONE QUARTER ++2153;onethird;VULGAR FRACTION ONE THIRD ++25E6;openbullet;WHITE BULLET ++00AA;ordfeminine;FEMININE ORDINAL INDICATOR ++00BA;ordmasculine;MASCULINE ORDINAL INDICATOR ++221F;orthogonal;RIGHT ANGLE ++00F8;oslash;LATIN SMALL LETTER O WITH STROKE ++01FF;oslashacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE ++00F5;otilde;LATIN SMALL LETTER O WITH TILDE ++0070;p;LATIN SMALL LETTER P ++00B6;paragraph;PILCROW SIGN ++0028;parenleft;LEFT PARENTHESIS ++0029;parenright;RIGHT PARENTHESIS ++2202;partialdiff;PARTIAL DIFFERENTIAL ++0025;percent;PERCENT SIGN ++002E;period;FULL STOP ++00B7;periodcentered;MIDDLE DOT ++22A5;perpendicular;UP TACK ++2030;perthousand;PER MILLE SIGN ++20A7;peseta;PESETA SIGN ++03C6;phi;GREEK SMALL LETTER PHI ++03D5;phi1;GREEK PHI SYMBOL ++03C0;pi;GREEK SMALL LETTER PI ++002B;plus;PLUS SIGN ++00B1;plusminus;PLUS-MINUS SIGN ++211E;prescription;PRESCRIPTION TAKE ++220F;product;N-ARY PRODUCT ++2282;propersubset;SUBSET OF ++2283;propersuperset;SUPERSET OF ++221D;proportional;PROPORTIONAL TO ++03C8;psi;GREEK SMALL LETTER PSI ++0071;q;LATIN SMALL LETTER Q ++003F;question;QUESTION MARK ++00BF;questiondown;INVERTED QUESTION MARK ++0022;quotedbl;QUOTATION MARK ++201E;quotedblbase;DOUBLE LOW-9 QUOTATION MARK ++201C;quotedblleft;LEFT DOUBLE QUOTATION MARK ++201D;quotedblright;RIGHT DOUBLE QUOTATION MARK ++2018;quoteleft;LEFT SINGLE QUOTATION MARK ++201B;quotereversed;SINGLE HIGH-REVERSED-9 QUOTATION MARK ++2019;quoteright;RIGHT SINGLE QUOTATION MARK ++201A;quotesinglbase;SINGLE LOW-9 QUOTATION MARK ++0027;quotesingle;APOSTROPHE ++0072;r;LATIN SMALL LETTER R ++0155;racute;LATIN SMALL LETTER R WITH ACUTE ++221A;radical;SQUARE ROOT ++0159;rcaron;LATIN SMALL LETTER R WITH CARON ++0157;rcommaaccent;LATIN SMALL LETTER R WITH CEDILLA ++2286;reflexsubset;SUBSET OF OR EQUAL TO ++2287;reflexsuperset;SUPERSET OF OR EQUAL TO ++00AE;registered;REGISTERED SIGN ++2310;revlogicalnot;REVERSED NOT SIGN ++03C1;rho;GREEK SMALL LETTER RHO ++02DA;ring;RING ABOVE ++2590;rtblock;RIGHT HALF BLOCK ++0073;s;LATIN SMALL LETTER S ++015B;sacute;LATIN SMALL LETTER S WITH ACUTE ++0161;scaron;LATIN SMALL LETTER S WITH CARON ++015F;scedilla;LATIN SMALL LETTER S WITH CEDILLA ++015D;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX ++0219;scommaaccent;LATIN SMALL LETTER S WITH COMMA BELOW ++2033;second;DOUBLE PRIME ++00A7;section;SECTION SIGN ++003B;semicolon;SEMICOLON ++0037;seven;DIGIT SEVEN ++215E;seveneighths;VULGAR FRACTION SEVEN EIGHTHS ++2592;shade;MEDIUM SHADE ++03C3;sigma;GREEK SMALL LETTER SIGMA ++03C2;sigma1;GREEK SMALL LETTER FINAL SIGMA ++223C;similar;TILDE OPERATOR ++0036;six;DIGIT SIX ++002F;slash;SOLIDUS ++263A;smileface;WHITE SMILING FACE ++0020;space;SPACE ++2660;spade;BLACK SPADE SUIT ++00A3;sterling;POUND SIGN ++220B;suchthat;CONTAINS AS MEMBER ++2211;summation;N-ARY SUMMATION ++263C;sun;WHITE SUN WITH RAYS ++0074;t;LATIN SMALL LETTER T ++03C4;tau;GREEK SMALL LETTER TAU ++0167;tbar;LATIN SMALL LETTER T WITH STROKE ++0165;tcaron;LATIN SMALL LETTER T WITH CARON ++0163;tcommaaccent;LATIN SMALL LETTER T WITH CEDILLA ++2234;therefore;THEREFORE ++03B8;theta;GREEK SMALL LETTER THETA ++03D1;theta1;GREEK THETA SYMBOL ++00FE;thorn;LATIN SMALL LETTER THORN ++0033;three;DIGIT THREE ++215C;threeeighths;VULGAR FRACTION THREE EIGHTHS ++00BE;threequarters;VULGAR FRACTION THREE QUARTERS ++02DC;tilde;SMALL TILDE ++0303;tildecomb;COMBINING TILDE ++0384;tonos;GREEK TONOS ++2122;trademark;TRADE MARK SIGN ++25BC;triagdn;BLACK DOWN-POINTING TRIANGLE ++25C4;triaglf;BLACK LEFT-POINTING POINTER ++25BA;triagrt;BLACK RIGHT-POINTING POINTER ++25B2;triagup;BLACK UP-POINTING TRIANGLE ++0032;two;DIGIT TWO ++2025;twodotenleader;TWO DOT LEADER ++2154;twothirds;VULGAR FRACTION TWO THIRDS ++0075;u;LATIN SMALL LETTER U ++00FA;uacute;LATIN SMALL LETTER U WITH ACUTE ++016D;ubreve;LATIN SMALL LETTER U WITH BREVE ++00FB;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX ++00FC;udieresis;LATIN SMALL LETTER U WITH DIAERESIS ++00F9;ugrave;LATIN SMALL LETTER U WITH GRAVE ++01B0;uhorn;LATIN SMALL LETTER U WITH HORN ++0171;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE ++016B;umacron;LATIN SMALL LETTER U WITH MACRON ++005F;underscore;LOW LINE ++2017;underscoredbl;DOUBLE LOW LINE ++222A;union;UNION ++2200;universal;FOR ALL ++0173;uogonek;LATIN SMALL LETTER U WITH OGONEK ++2580;upblock;UPPER HALF BLOCK ++03C5;upsilon;GREEK SMALL LETTER UPSILON ++03CB;upsilondieresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA ++03B0;upsilondieresistonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS ++03CD;upsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS ++016F;uring;LATIN SMALL LETTER U WITH RING ABOVE ++0169;utilde;LATIN SMALL LETTER U WITH TILDE ++0076;v;LATIN SMALL LETTER V ++0077;w;LATIN SMALL LETTER W ++1E83;wacute;LATIN SMALL LETTER W WITH ACUTE ++0175;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX ++1E85;wdieresis;LATIN SMALL LETTER W WITH DIAERESIS ++2118;weierstrass;SCRIPT CAPITAL P ++1E81;wgrave;LATIN SMALL LETTER W WITH GRAVE ++0078;x;LATIN SMALL LETTER X ++03BE;xi;GREEK SMALL LETTER XI ++0079;y;LATIN SMALL LETTER Y ++00FD;yacute;LATIN SMALL LETTER Y WITH ACUTE ++0177;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX ++00FF;ydieresis;LATIN SMALL LETTER Y WITH DIAERESIS ++00A5;yen;YEN SIGN ++1EF3;ygrave;LATIN SMALL LETTER Y WITH GRAVE ++007A;z;LATIN SMALL LETTER Z ++017A;zacute;LATIN SMALL LETTER Z WITH ACUTE ++017E;zcaron;LATIN SMALL LETTER Z WITH CARON ++017C;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE ++0030;zero;DIGIT ZERO ++03B6;zeta;GREEK SMALL LETTER ZETA +Index: term/PostScript/cp1250.ps +=================================================================== +--- term/PostScript/cp1250.ps.orig 2009-05-06 05:55:05.000000000 +0200 ++++ term/PostScript/cp1250.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,3 +1,6 @@ ++% ++% Encoding for code page 1250 (Microsoft Windows Central and Eastern European) ++% + /reencodeCP1250 { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse } forall +Index: term/PostScript/cp437.ps +=================================================================== +--- term/PostScript/cp437.ps.orig 2006-08-12 00:35:05.000000000 +0200 ++++ term/PostScript/cp437.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,4 +1,5 @@ +-% encoding for code page 437 ++% ++% encoding for code page 437 (original MSDOS) + % version 1.0: - Mainly letters are mapped. The following positions + % (JFi) are left blank (undefined): + % -- first 32 positions, +Index: term/PostScript/cp850.ps +=================================================================== +--- term/PostScript/cp850.ps.orig 2006-08-12 00:35:05.000000000 +0200 ++++ term/PostScript/cp850.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,4 +1,5 @@ +-% encoding for code page 850 ++% ++% encoding for code page 850 (obsolete MSDOS Western Europe) + % version 1.0: - Mainly letters are mapped. The following positions + % (JFi) are left blank (undefined): + % -- first 32 positions, +Index: term/PostScript/cp852.ps +=================================================================== +--- term/PostScript/cp852.ps.orig 2006-08-12 00:22:05.000000000 +0200 ++++ term/PostScript/cp852.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,4 +1,5 @@ +-% encoding for code page 852 ++% ++% encoding for code page 852 (MSDOS Central European) + /reencodeCP852 { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse } forall +Index: term/PostScript/koi8r.ps +=================================================================== +--- term/PostScript/koi8r.ps.orig 2006-08-12 00:35:05.000000000 +0200 ++++ term/PostScript/koi8r.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,4 +1,5 @@ +-% encoding for code page koi8r ++% ++% encoding for code page koi8r (8-bit Russian) + % version 1.0: - Mainly letters are mapped. The following positions + % (JFi) are left blank (undefined): + % -- first 32 positions, +Index: term/PostScript/koi8u.ps +=================================================================== +--- term/PostScript/koi8u.ps.orig 2006-03-24 22:48:47.000000000 +0100 ++++ term/PostScript/koi8u.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,4 +1,5 @@ + % ++% encoding for code page koi8r (8-bit Ukrainian) + /reencodeKOI8U { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse } forall +Index: term/PostScript/prologue.ps +=================================================================== +--- term/PostScript/prologue.ps.orig 2007-10-01 22:49:08.000000000 +0200 ++++ term/PostScript/prologue.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -1,5 +1,5 @@ + % +-% Gnuplot Prolog Version 4.2 (August 2006) ++% Gnuplot Prolog Version 4.2 (November 2007) + % + /M {moveto} bind def + /L {lineto} bind def +@@ -9,6 +9,7 @@ + /Z {closepath} bind def + /C {setrgbcolor} bind def + /f {rlineto fill} bind def ++/Gshow {show} def % May be redefined later in the file to support UTF-8 + /vpt2 vpt 2 mul def + /hpt2 hpt 2 mul def + /Lshow {currentpoint stroke M 0 vshift R +Index: term/PostScript/prologues.h +=================================================================== +--- term/PostScript/prologues.h.orig 2006-11-20 20:06:01.000000000 +0100 ++++ term/PostScript/prologues.h 2010-03-04 10:44:07.000000000 +0100 +@@ -2,6 +2,9 @@ + * in a form suitable to inclusion in a C source code */ + + static const char *prologue_8859_1_ps[] = { ++"%\n", ++"% Encoding for ISO-8859-1 (also called Latin1)\n", ++"%\n", + "/reencodeISO {\n", + "dup dup findfont dup length dict begin\n", + "{ 1 index /FID ne { def }{ pop pop } ifelse } forall\n", +@@ -46,6 +49,9 @@ NULL + }; + + static const char *prologue_8859_15_ps[] = { ++"%\n", ++"% Encoding for ISO-8859-15 (also called Latin9)\n", ++"%\n", + "/reencodeISO15 {\n", + "dup dup findfont dup length dict begin\n", + "{ 1 index /FID ne { def }{ pop pop } ifelse } forall\n", +@@ -90,7 +96,8 @@ NULL + }; + + static const char *prologue_8859_2_ps[] = { +-"% Encoding for ISO-8859-2 (also called as Latin-2), with\n", ++"%\n", ++"% Encoding for ISO-8859-2 (also called Latin2), with\n", + "% minor differences to \"true\" ISO-8859-2 (*commaaccent \n", + "% instead of *cedilla for sStT -> incorrect in ISO-8859-2,\n", + "% the standard will probably be modified in this respect)\n", +@@ -138,7 +145,58 @@ static const char *prologue_8859_2_ps[] + NULL + }; + ++static const char *prologue_8859_9_ps[] = { ++"%\n", ++"% Encoding for ISO_8859_9 (also called Latin5)\n", ++"% Plus code points 80-9F used in Codepage 1254\n", ++"%\n", ++"/reencodeISO9 {\n", ++"dup dup findfont dup length dict begin\n", ++"{ 1 index /FID ne { def }{ pop pop } ifelse } forall\n", ++"currentdict /CharStrings known {\n", ++"\tCharStrings /Idieresis known {\n", ++"\t\t/Encoding ISOLatin5Encoding def } if\n", ++"} if\n", ++"currentdict end definefont\n", ++"} def\n", ++"/ISOLatin5Encoding [\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n", ++"/parenleft/parenright/asterisk/plus/comma/minus/period/slash\n", ++"/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon\n", ++"/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N\n", ++"/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright\n", ++"/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m\n", ++"/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde\n", ++"/Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl\n", ++"/circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef/.notdef/.notdef\n", ++"/.notdef/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash\n", ++"/tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef/Ydieresis\n", ++"/.notdef/space/exclamdown/cent/sterling/currency/yen/brokenbar\n", ++"/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot\n", ++"/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior\n", ++"/acute/mu/paragraph/bullet/cedilla/onesuperior/ordmasculine\n", ++"/guillemotright/onequarter/onehalf/threequarters/questiondown\n", ++"/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla\n", ++"/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex\n", ++"/Idieresis/Gbreve/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis\n", ++"/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Idotaccent\n", ++"/Scedilla/germandbls/agrave/aacute/acircumflex/atilde/adieresis\n", ++"/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave\n", ++"/iacute/icircumflex/idieresis/gbreve/ntilde/ograve/oacute/ocircumflex\n", ++"/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis\n", ++"/dotlessi/scedilla/ydieresis\n", ++"] def\n", ++NULL ++}; ++ + static const char *prologue_cp1250_ps[] = { ++"%\n", ++"% Encoding for code page 1250 (Microsoft Windows Central and Eastern European)\n", ++"%\n", + "/reencodeCP1250 {\n", + "dup dup findfont dup length dict begin\n", + "{ 1 index /FID ne { def }{ pop pop } ifelse } forall\n", +@@ -181,7 +239,8 @@ NULL + }; + + static const char *prologue_cp437_ps[] = { +-"% encoding for code page 437\n", ++"%\n", ++"% encoding for code page 437 (original MSDOS)\n", + "% version 1.0:\t- Mainly letters are mapped. The following positions\n", + "% (JFi)\t\t are left blank (undefined):\n", + "%\t\t-- first 32 positions,\n", +@@ -233,7 +292,8 @@ NULL + }; + + static const char *prologue_cp850_ps[] = { +-"% encoding for code page 850\n", ++"%\n", ++"% encoding for code page 850 (obsolete MSDOS Western Europe)\n", + "% version 1.0: - Mainly letters are mapped. The following positions\n", + "% (JFi)\t\t are left blank (undefined):\n", + "%\t\t-- first 32 positions,\n", +@@ -282,7 +342,8 @@ NULL + }; + + static const char *prologue_cp852_ps[] = { +-"% encoding for code page 852\n", ++"%\n", ++"% encoding for code page 852 (MSDOS Central European)\n", + "/reencodeCP852 {\n", + "dup dup findfont dup length dict begin\n", + "{ 1 index /FID ne { def }{ pop pop } ifelse } forall\n", +@@ -326,7 +387,8 @@ NULL + }; + + static const char *prologue_koi8r_ps[] = { +-"% encoding for code page koi8r\n", ++"%\n", ++"% encoding for code page koi8r (8-bit Russian)\n", + "% version 1.0:\t- Mainly letters are mapped. The following positions\n", + "% (JFi)\t\t are left blank (undefined):\n", + "%\t\t-- first 32 positions,\n", +@@ -376,6 +438,7 @@ NULL + + static const char *prologue_koi8u_ps[] = { + "%\n", ++"% encoding for code page koi8r (8-bit Ukrainian)\n", + "/reencodeKOI8U {\n", + "dup dup findfont dup length dict begin\n", + "{ 1 index /FID ne { def }{ pop pop } ifelse } forall\n", +@@ -419,7 +482,7 @@ NULL + + static const char *prologue_prologue_ps[] = { + "%\n", +-"% Gnuplot Prolog Version 4.2 (August 2006)\n", ++"% Gnuplot Prolog Version 4.2 (November 2007)\n", + "%\n", + "/M {moveto} bind def\n", + "/L {lineto} bind def\n", +@@ -429,6 +492,7 @@ static const char *prologue_prologue_ps[ + "/Z {closepath} bind def\n", + "/C {setrgbcolor} bind def\n", + "/f {rlineto fill} bind def\n", ++"/Gshow {show} def % May be redefined later in the file to support UTF-8\n", + "/vpt2 vpt 2 mul def\n", + "/hpt2 hpt 2 mul def\n", + "/Lshow {currentpoint stroke M 0 vshift R \n", +@@ -669,7 +733,7 @@ static const char *prologue_prologue_ps[ + " ColR ColG ColB setrgbcolor} def\n", + "/BoxColFill {gsave Rec PolyFill} def\n", + "/PolyFill {gsave Density fill grestore grestore} def\n", +-"/h {rlineto rlineto rlineto gsave fill grestore} bind def\n", ++"/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def\n", + "%\n", + "% PostScript Level 1 Pattern Fill routine for rectangles\n", + "% Usage: x y w h s a XX PatternFill\n", +@@ -789,3 +853,65 @@ static const char *prologue_prologue_ps[ + NULL + }; + ++static const char *prologue_utf_8_ps[] = { ++"%\n", ++"% Base ISO8859-1 character encoding plus support macros for UTF-8 encoding\n", ++"% via the glyphshow operator\n", ++"%\n", ++"/reencodeISO {\n", ++"dup dup findfont dup length dict begin\n", ++"{ 1 index /FID ne { def }{ pop pop } ifelse } forall\n", ++"currentdict /CharStrings known {\n", ++"\tCharStrings /Idieresis known {\n", ++"\t\t/Encoding ISOLatin1Encoding def } if\n", ++"} if\n", ++"currentdict end definefont\n", ++"} def\n", ++"/ISOLatin1Encoding [\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n", ++"/parenleft/parenright/asterisk/plus/comma/minus/period/slash\n", ++"/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon\n", ++"/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N\n", ++"/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright\n", ++"/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m\n", ++"/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n", ++"/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve\n", ++"/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut\n", ++"/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar\n", ++"/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot\n", ++"/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior\n", ++"/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine\n", ++"/guillemotright/onequarter/onehalf/threequarters/questiondown\n", ++"/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla\n", ++"/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex\n", ++"/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis\n", ++"/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute\n", ++"/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis\n", ++"/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave\n", ++"/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex\n", ++"/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis\n", ++"/yacute/thorn/ydieresis\n", ++"] def\n", ++"\n", ++"/Gshow { dup type /stringtype eq { show } { glyphshow } ifelse } def\n", ++"\n", ++"/Gsall { {Gshow} forall } def\n", ++"/Gwidth {\n", ++"\tdup currentpoint pop exch\n", ++"\tgsave 6 array currentmatrix nulldevice setmatrix Gsall currentpoint pop grestore sub\n", ++"\t} def\n", ++"/GLshow {currentpoint stroke M 0 vshift R \n", ++"\tBlacktext {gsave 0 setgray Gsall grestore} {Gsall} ifelse} def\n", ++"/GRshow {currentpoint stroke M dup Gwidth vshift R\n", ++"\tBlacktext {gsave 0 setgray Gsall grestore} {Gsall} ifelse} def\n", ++"/GCshow {currentpoint stroke M dup Gwidth 2 div vshift R \n", ++"\tBlacktext {gsave 0 setgray Gsall grestore} {Gsall} ifelse} def\n", ++NULL ++}; ++ +Index: term/PostScript/unicode_big.map +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ term/PostScript/unicode_big.map 2010-03-04 10:44:07.000000000 +0100 +@@ -0,0 +1,863 @@ ++=00 U+0000 ++=01 U+0001 ++=02 U+0002 ++=03 U+0003 ++=04 U+0004 ++=05 U+0005 ++=06 U+0006 ++=07 U+0007 ++=08 U+0008 ++=09 U+0009 ++=0A U+000A ++=0B U+000B ++=0C U+000C ++=0D U+000D ++=0E U+000E ++=0F U+000F ++=10 U+0010 ++=11 U+0011 ++=12 U+0012 ++=13 U+0013 ++=14 U+0014 ++=15 U+0015 ++=16 U+0016 ++=17 U+0017 ++=18 U+0018 ++=19 U+0019 ++=1A U+001A ++=1B U+001B ++=1C U+001C ++=1D U+001D ++=1E U+001E ++=1F U+001F ++!20 U+0020 space ++!21 U+0021 exclam ++!22 U+0022 quotedbl ++!23 U+0023 numbersign ++!24 U+0024 dollar ++!25 U+0025 percent ++!26 U+0026 ampersand ++!27 U+0027 quotesingle ++!28 U+0028 parenleft ++!29 U+0029 parenright ++!2A U+002A asterisk ++!2B U+002B plus ++!2C U+002C comma ++!2D U+002D hyphen ++!2E U+002E period ++!2F U+002F slash ++!30 U+0030 zero ++!31 U+0031 one ++!32 U+0032 two ++!33 U+0033 three ++!34 U+0034 four ++!35 U+0035 five ++!36 U+0036 six ++!37 U+0037 seven ++!38 U+0038 eight ++!39 U+0039 nine ++!3A U+003A colon ++!3B U+003B semicolon ++!3C U+003C less ++!3D U+003D equal ++!3E U+003E greater ++!3F U+003F question ++!40 U+0040 at ++!41 U+0041 A ++!42 U+0042 B ++!43 U+0043 C ++!44 U+0044 D ++!45 U+0045 E ++!46 U+0046 F ++!47 U+0047 G ++!48 U+0048 H ++!49 U+0049 I ++!4A U+004A J ++!4B U+004B K ++!4C U+004C L ++!4D U+004D M ++!4E U+004E N ++!4F U+004F O ++!50 U+0050 P ++!51 U+0051 Q ++!52 U+0052 R ++!53 U+0053 S ++!54 U+0054 T ++!55 U+0055 U ++!56 U+0056 V ++!57 U+0057 W ++!58 U+0058 X ++!59 U+0059 Y ++!5A U+005A Z ++!5B U+005B bracketleft ++!5C U+005C backslash ++!5D U+005D bracketright ++!5E U+005E asciicircum ++!5F U+005F underscore ++!60 U+0060 grave ++!61 U+0061 a ++!62 U+0062 b ++!63 U+0063 c ++!64 U+0064 d ++!65 U+0065 e ++!66 U+0066 f ++!67 U+0067 g ++!68 U+0068 h ++!69 U+0069 i ++!6A U+006A j ++!6B U+006B k ++!6C U+006C l ++!6D U+006D m ++!6E U+006E n ++!6F U+006F o ++!70 U+0070 p ++!71 U+0071 q ++!72 U+0072 r ++!73 U+0073 s ++!74 U+0074 t ++!75 U+0075 u ++!76 U+0076 v ++!77 U+0077 w ++!78 U+0078 x ++!79 U+0079 y ++!7A U+007A z ++!7B U+007B braceleft ++!7C U+007C bar ++!7D U+007D braceright ++!7E U+007E asciitilde ++=A0 U+00A0 ++!A1 U+00A1 exclamdown ++!A2 U+00A2 cent ++!A3 U+00A3 sterling ++!A4 U+00A4 currency ++!A5 U+00A5 yen ++!A6 U+00A6 brokenbar ++!A7 U+00A7 section ++!A8 U+00A8 dieresis ++!A9 U+00A9 copyright ++!AA U+00AA ordfeminine ++!AB U+00AB guillemotleft ++!AC U+00AC logicalnot ++=AD U+00AD ++!AE U+00AE registered ++!AF U+00AF macron ++!B0 U+00B0 degree ++!B1 U+00B1 plusminus ++=B2 U+00B2 ++=B3 U+00B3 ++!B4 U+00B4 acute ++=B5 U+00B5 ++!B6 U+00B6 paragraph ++!B7 U+00B7 periodcentered ++!B8 U+00B8 cedilla ++=B9 U+00B9 ++!BA U+00BA ordmasculine ++!BB U+00BB guillemotright ++!BC U+00BC onequarter ++!BD U+00BD onehalf ++!BE U+00BE threequarters ++!BF U+00BF questiondown ++!C0 U+00C0 Agrave ++!C1 U+00C1 Aacute ++!C2 U+00C2 Acircumflex ++!C3 U+00C3 Atilde ++!C4 U+00C4 Adieresis ++!C5 U+00C5 Aring ++!C6 U+00C6 AE ++!C7 U+00C7 Ccedilla ++!C8 U+00C8 Egrave ++!C9 U+00C9 Eacute ++!CA U+00CA Ecircumflex ++!CB U+00CB Edieresis ++!CC U+00CC Igrave ++!CD U+00CD Iacute ++!CE U+00CE Icircumflex ++!CF U+00CF Idieresis ++!D0 U+00D0 Eth ++!D1 U+00D1 Ntilde ++!D2 U+00D2 Ograve ++!D3 U+00D3 Oacute ++!D4 U+00D4 Ocircumflex ++!D5 U+00D5 Otilde ++!D6 U+00D6 Odieresis ++!D7 U+00D7 multiply ++!D8 U+00D8 Oslash ++!D9 U+00D9 Ugrave ++!DA U+00DA Uacute ++!DB U+00DB Ucircumflex ++!DC U+00DC Udieresis ++!DD U+00DD Yacute ++!DE U+00DE Thorn ++!DF U+00DF germandbls ++!E0 U+00E0 agrave ++!E1 U+00E1 aacute ++!E2 U+00E2 acircumflex ++!E3 U+00E3 atilde ++!E4 U+00E4 adieresis ++!E5 U+00E5 aring ++!E6 U+00E6 ae ++!E7 U+00E7 ccedilla ++!E8 U+00E8 egrave ++!E9 U+00E9 eacute ++!EA U+00EA ecircumflex ++!EB U+00EB edieresis ++!EC U+00EC igrave ++!ED U+00ED iacute ++!EE U+00EE icircumflex ++!EF U+00EF idieresis ++!F0 U+00F0 eth ++!F1 U+00F1 ntilde ++!F2 U+00F2 ograve ++!F3 U+00F3 oacute ++!F4 U+00F4 ocircumflex ++!F5 U+00F5 otilde ++!F6 U+00F6 odieresis ++!F7 U+00F7 divide ++!F8 U+00F8 oslash ++!F9 U+00F9 ugrave ++!FA U+00FA uacute ++!FB U+00FB ucircumflex ++!FC U+00FC udieresis ++!FD U+00FD yacute ++!FE U+00FE thorn ++!FF U+00FF ydieresis ++!100 U+0100 Amacron ++!101 U+0101 amacron ++!102 U+0102 Abreve ++!103 U+0103 abreve ++!104 U+0104 Aogonek ++!105 U+0105 aogonek ++!106 U+0106 Cacute ++!107 U+0107 cacute ++!108 U+0108 Ccircumflex ++!109 U+0109 ccircumflex ++!10a U+010A Cdotaccent ++!10b U+010B cdotaccent ++!10c U+010C Ccaron ++!10d U+010D ccaron ++!10e U+010E Dcaron ++!10f U+010F dcaron ++!110 U+0110 Dcroat ++!111 U+0111 dcroat ++!112 U+0112 Emacron ++!113 U+0113 emacron ++!114 U+0114 Ebreve ++!115 U+0115 ebreve ++!116 U+0116 Edotaccent ++!117 U+0117 edotaccent ++!118 U+0118 Eogonek ++!119 U+0119 eogonek ++!11a U+011A Ecaron ++!11b U+011B ecaron ++!11c U+011C Gcircumflex ++!11d U+011D gcircumflex ++!11e U+011E Gbreve ++!11f U+011F gbreve ++!120 U+0120 Gdotaccent ++!121 U+0121 gdotaccent ++!122 U+0122 Gcommaaccent ++!123 U+0123 gcommaaccent ++!124 U+0124 Hcircumflex ++!125 U+0125 hcircumflex ++!126 U+0126 Hbar ++!127 U+0127 hbar ++!128 U+0128 Itilde ++!129 U+0129 itilde ++!12a U+012A Imacron ++!12b U+012B imacron ++!12c U+012C Ibreve ++!12d U+012D ibreve ++!12e U+012E Iogonek ++!12f U+012F iogonek ++!130 U+0130 Idotaccent ++!131 U+0131 dotlessi ++!132 U+0132 IJ ++!133 U+0133 ij ++!134 U+0134 Jcircumflex ++!135 U+0135 jcircumflex ++!136 U+0136 Kcommaaccent ++!137 U+0137 kcommaaccent ++!138 U+0138 kgreenlandic ++!139 U+0139 Lacute ++!13a U+013A lacute ++!13b U+013B Lcommaaccent ++!13c U+013C lcommaaccent ++!13d U+013D Lcaron ++!13e U+013E lcaron ++!13f U+013F Ldot ++!140 U+0140 ldot ++!141 U+0141 Lslash ++!142 U+0142 lslash ++!143 U+0143 Nacute ++!144 U+0144 nacute ++!145 U+0145 Ncommaaccent ++!146 U+0146 ncommaaccent ++!147 U+0147 Ncaron ++!148 U+0148 ncaron ++!149 U+0149 napostrophe ++!14a U+014A Eng ++!14b U+014B eng ++!14c U+014C Omacron ++!14d U+014D omacron ++!14e U+014E Obreve ++!14f U+014F obreve ++!150 U+0150 Ohungarumlaut ++!151 U+0151 ohungarumlaut ++!152 U+0152 OE ++!153 U+0153 oe ++!154 U+0154 Racute ++!155 U+0155 racute ++!156 U+0156 Rcommaaccent ++!157 U+0157 rcommaaccent ++!158 U+0158 Rcaron ++!159 U+0159 rcaron ++!15a U+015A Sacute ++!15b U+015B sacute ++!15c U+015C Scircumflex ++!15d U+015D scircumflex ++!15e U+015E Scedilla ++!15f U+015F scedilla ++!160 U+0160 Scaron ++!161 U+0161 scaron ++!162 U+0162 Tcommaaccent ++!163 U+0163 tcommaaccent ++!164 U+0164 Tcaron ++!165 U+0165 tcaron ++!166 U+0166 Tbar ++!167 U+0167 tbar ++!168 U+0168 Utilde ++!169 U+0169 utilde ++!16a U+016A Umacron ++!16b U+016B umacron ++!16c U+016C Ubreve ++!16d U+016D ubreve ++!16e U+016E Uring ++!16f U+016F uring ++!170 U+0170 Uhungarumlaut ++!171 U+0171 uhungarumlaut ++!172 U+0172 Uogonek ++!173 U+0173 uogonek ++!174 U+0174 Wcircumflex ++!175 U+0175 wcircumflex ++!176 U+0176 Ycircumflex ++!177 U+0177 ycircumflex ++!178 U+0178 Ydieresis ++!179 U+0179 Zacute ++!17a U+017A zacute ++!17b U+017B Zdotaccent ++!17c U+017C zdotaccent ++!17d U+017D Zcaron ++!17e U+017E zcaron ++!17f U+017F longs ++!180 U+0192 florin ++!181 U+01A0 Ohorn ++!182 U+01A1 ohorn ++!183 U+01AF Uhorn ++!184 U+01B0 uhorn ++!185 U+01E6 Gcaron ++!186 U+01E7 gcaron ++!187 U+01FA Aringacute ++!188 U+01FB aringacute ++!189 U+01FC AEacute ++!18a U+01FD aeacute ++!18b U+01FE Oslashacute ++!18c U+01FF oslashacute ++!18d U+0218 uni0218 ++!18e U+0219 uni0219 ++!18f U+02BC uni02BC ++!190 U+02BD uni02BD ++!191 U+02C6 uni02C6 ++!192 U+02C7 uni02C7 ++!193 U+02D8 uni02D8 ++!194 U+02D9 uni02D9 ++!195 U+02DA uni02DA ++!196 U+02DB uni02DB ++!197 U+02DC uni02DC ++!198 U+02DD uni02DD ++!199 U+0300 uni0300 ++!19a U+0301 uni0301 ++!19b U+0303 uni0303 ++!19c U+0309 uni0309 ++!19d U+0323 uni0323 ++!19e U+0391 uni0391 ++!19f U+0392 uni0392 ++!1a0 U+0393 uni0393 ++!1a1 U+0394 uni0394 ++!1a2 U+0395 uni0395 ++!1a3 U+0396 uni0396 ++!1a4 U+0397 uni0397 ++!1a5 U+0398 uni0398 ++!1a6 U+0399 uni0399 ++!1a7 U+039A uni039A ++!1a8 U+039B uni039B ++!1a9 U+039C uni039C ++!1aa U+039D uni039D ++!1ab U+039E uni039E ++!1ac U+039F uni039F ++!1ad U+03A0 uni03A0 ++!1ae U+03A1 uni03A1 ++!1af U+03A3 uni03A3 ++!1b0 U+03A4 uni03A4 ++!1b1 U+03A5 uni03A5 ++!1b2 U+03A6 uni03A6 ++!1b3 U+03A7 uni03A7 ++!1b4 U+03A8 uni03A8 ++!1b5 U+03A9 uni03A9 ++!1b6 U+03B1 uni03B1 ++!1b7 U+03B2 uni03B2 ++!1b8 U+03B3 uni03B3 ++!1b9 U+03B4 uni03B4 ++!1ba U+03B5 uni03B5 ++!1bb U+03B6 uni03B6 ++!1bc U+03B7 uni03B7 ++!1bd U+03B8 uni03B8 ++!1be U+03B9 uni03B9 ++!1bf U+03BA uni03BA ++!1c0 U+03BB uni03BB ++!1c1 U+03BC uni03BC ++!1c2 U+03BD uni03BD ++!1c3 U+03BE uni03BE ++!1c4 U+03BF uni03BF ++!1c5 U+03C0 uni03C0 ++!1c6 U+03C1 uni03C1 ++!1c7 U+03C2 uni03C2 ++!1c8 U+03C3 uni03C3 ++!1c9 U+03C4 uni03C4 ++!1ca U+03C5 uni03C5 ++!1cb U+03C6 uni03C6 ++!1cc U+03C7 uni03C7 ++!1cd U+03C8 uni03C8 ++!1ce U+03C9 uni03C9 ++!1cf U+03D0 uni03D0 ++!1d0 U+03D1 uni03D1 ++!1d1 U+03D5 uni03D5 ++!1d2 U+03D6 uni03D6 ++!1d3 U+0401 uni0401 ++!1d4 U+0402 uni0402 ++!1d5 U+0403 uni0403 ++!1d6 U+0404 uni0404 ++!1d7 U+0405 uni0405 ++!1d8 U+0406 uni0406 ++!1d9 U+0407 uni0407 ++!1da U+0408 uni0408 ++!1db U+0409 uni0409 ++!1dc U+040A uni040A ++!1dd U+040B uni040B ++!1de U+040C uni040C ++!1df U+040E uni040E ++!1e0 U+040F uni040F ++!1e1 U+0410 uni0410 ++!1e2 U+0411 uni0411 ++!1e3 U+0412 uni0412 ++!1e4 U+0413 uni0413 ++!1e5 U+0414 uni0414 ++!1e6 U+0415 uni0415 ++!1e7 U+0416 uni0416 ++!1e8 U+0417 uni0417 ++!1e9 U+0418 uni0418 ++!1ea U+0419 uni0419 ++!1eb U+041A uni041A ++!1ec U+041B uni041B ++!1ed U+041C uni041C ++!1ee U+041D uni041D ++!1ef U+041E uni041E ++!1f0 U+041F uni041F ++!1f1 U+0420 uni0420 ++!1f2 U+0421 uni0421 ++!1f3 U+0422 uni0422 ++!1f4 U+0423 uni0423 ++!1f5 U+0424 uni0424 ++!1f6 U+0425 uni0425 ++!1f7 U+0426 uni0426 ++!1f8 U+0427 uni0427 ++!1f9 U+0428 uni0428 ++!1fa U+0429 uni0429 ++!1fb U+042A uni042A ++!1fc U+042B uni042B ++!1fd U+042C uni042C ++!1fe U+042D uni042D ++!1ff U+042E uni042E ++!200 U+042F uni042F ++!201 U+0430 uni0430 ++!202 U+0431 uni0431 ++!203 U+0432 uni0432 ++!204 U+0433 uni0433 ++!205 U+0434 uni0434 ++!206 U+0435 uni0435 ++!207 U+0436 uni0436 ++!208 U+0437 uni0437 ++!209 U+0438 uni0438 ++!20a U+0439 uni0439 ++!20b U+043A uni043A ++!20c U+043B uni043B ++!20d U+043C uni043C ++!20e U+043D uni043D ++!20f U+043E uni043E ++!210 U+043F uni043F ++!211 U+0440 uni0440 ++!212 U+0441 uni0441 ++!213 U+0442 uni0442 ++!214 U+0443 uni0443 ++!215 U+0444 uni0444 ++!216 U+0445 uni0445 ++!217 U+0446 uni0446 ++!218 U+0447 uni0447 ++!219 U+0448 uni0448 ++!21a U+0449 uni0449 ++!21b U+044A uni044A ++!21c U+044B uni044B ++!21d U+044C uni044C ++!21e U+044D uni044D ++!21f U+044E uni044E ++!220 U+044F uni044F ++!221 U+0451 uni0451 ++!222 U+0452 uni0452 ++!223 U+0453 uni0453 ++!224 U+0454 uni0454 ++!225 U+0455 uni0455 ++!226 U+0456 uni0456 ++!227 U+0457 uni0457 ++!228 U+0458 uni0458 ++!229 U+0459 uni0459 ++!22a U+045A uni045A ++!22b U+045B uni045B ++!22c U+045C uni045C ++!22d U+045E uni045E ++!22e U+045F uni045F ++!22f U+0490 uni0490 ++!230 U+0491 uni0491 ++!231 U+05D0 uni05D0 ++!232 U+05D1 uni05D1 ++!233 U+05D2 uni05D2 ++!234 U+05D3 uni05D3 ++!235 U+05D4 uni05D4 ++!236 U+05D5 uni05D5 ++!237 U+05D6 uni05D6 ++!238 U+05D7 uni05D7 ++!239 U+05D8 uni05D8 ++!23a U+05D9 uni05D9 ++!23b U+05DA uni05DA ++!23c U+05DB uni05DB ++!23d U+05DC uni05DC ++!23e U+05DD uni05DD ++!23f U+05DE uni05DE ++!240 U+05DF uni05DF ++!241 U+05E0 uni05E0 ++!242 U+05E1 uni05E1 ++!243 U+05E2 uni05E2 ++!244 U+05E3 uni05E3 ++!245 U+05E4 uni05E4 ++!246 U+05E5 uni05E5 ++!247 U+05E6 uni05E6 ++!248 U+05E7 uni05E7 ++!249 U+05E8 uni05E8 ++!24a U+05E9 uni05E9 ++!24b U+05EA uni05EA ++!24c U+1E80 uni1E80 Extended latin ++!24d U+1E81 uni1E81 Extended latin ++!24e U+1E82 uni1E82 Extended latin ++!24f U+1E83 uni1E83 Extended latin ++!250 U+1E84 uni1E84 Extended latin ++!251 U+1E85 uni1E85 Extended latin ++!252 U+1EF2 uni1EF2 Extended latin ++!253 U+1EF3 uni1EF3 Extended latin ++!254 U+200C uni200C ++!255 U+200D uni200D ++!256 U+200E uni200E ++!257 U+200F uni200F ++!258 U+2012 uni2012 ++!259 U+2013 uni2013 ++!25a U+2014 uni2014 ++!25b U+2015 uni2015 ++!25c U+2017 uni2017 ++!25d U+2018 uni2018 ++!25e U+2019 uni2019 ++!25f U+201A uni201A ++!260 U+201B uni201B ++!261 U+201C uni201C ++!262 U+201D uni201D ++!263 U+201E uni201E ++!264 U+2020 uni2020 ++!265 U+2021 uni2021 ++!266 U+2022 uni2022 ++!267 U+2024 uni2024 ++!268 U+2025 uni2025 ++!269 U+2026 uni2026 ++!26a U+202C uni202C ++!26b U+202D uni202D ++!26c U+202E uni202E ++!26d U+2032 uni2032 ++!26e U+2033 uni2033 ++!26f U+2034 uni2034 ++!270 U+2035 uni2035 ++!271 U+2036 uni2036 ++!272 U+2037 uni2037 ++!273 U+2039 uni2039 ++!274 U+203A uni203A ++!275 U+203C uni203C ++!276 U+2044 uni2044 ++!277 U+20AC uni20AC ++!278 U+2107 uni2107 ++!279 U+210B uni210B ++!27a U+210E uni210E ++!27b U+210F uni210F ++!27c U+2111 uni2111 ++!27d U+2112 uni2112 ++!27e U+2113 uni2113 ++!27f U+2115 uni2115 ++!280 U+2116 uni2116 ++!281 U+2118 uni2118 ++!282 U+2119 uni2119 ++!283 U+211A uni211A ++!284 U+211B uni211B ++!285 U+211C uni211C ++!286 U+211D uni211D ++!287 U+2122 uni2122 ++!288 U+2124 uni2124 ++!289 U+2126 uni2126 ++!28a U+2127 uni2127 ++!28b U+2128 uni2128 ++!28c U+2129 uni2129 ++!28d U+212B uni212B ++!28e U+212C uni212C ++!28f U+212E uni212E ++!290 U+212F uni212F ++!291 U+2130 uni2130 ++!292 U+2131 uni2131 ++!293 U+2133 uni2133 ++!294 U+2134 uni2134 ++!295 U+2135 uni2135 ++!296 U+2136 uni2136 ++!297 U+2137 uni2137 ++!298 U+2138 uni2138 ++!299 U+2190 uni2190 ++!29a U+2191 uni2191 ++!29b U+2192 uni2192 ++!29c U+2193 uni2193 ++!29d U+2194 uni2194 ++!29e U+2195 uni2195 ++!2a1 U+21D0 uni21D0 ++!2a2 U+21D1 uni21D1 ++!2a3 U+21D2 uni21D2 ++!2a4 U+21D3 uni21D3 ++!2a5 U+21D4 uni21D4 ++!2a6 U+2200 uni2200 ++!2a7 U+2202 uni2202 ++!2a8 U+2203 uni2203 ++!2a9 U+2204 uni2204 ++!2aa U+2205 uni2205 ++!2ab U+2206 uni2206 ++!2ac U+2207 uni2207 ++!2ad U+2208 uni2208 ++!2ae U+2209 uni2209 ++!2af U+220A uni220A ++!2b0 U+220B uni220B ++!2b1 U+220C uni220C ++!2b2 U+220D uni220D ++!2b3 U+220E uni220E ++!2b4 U+220F uni220F ++!2b5 U+2210 uni2210 ++!2b6 U+2211 uni2211 ++!2b7 U+2212 uni2212 ++!2b8 U+2213 uni2213 ++!2b9 U+2214 uni2214 ++!2ba U+2215 uni2215 ++!2bb U+2216 uni2216 ++!2bc U+2217 uni2217 ++!2bd U+2218 uni2218 ++!2be U+2219 uni2219 ++!2bf U+221A uni221A ++!2c0 U+221B uni221B ++!2c1 U+221C uni221C ++!2c2 U+221D uni221D ++!2c3 U+221E uni221E ++!2c4 U+221F uni221F ++!2c5 U+2220 uni2220 ++!2c6 U+2221 uni2221 ++!2c7 U+2222 uni2222 ++!2c8 U+2223 uni2223 ++!2c9 U+2224 uni2224 ++!2ca U+2225 uni2225 ++!2cb U+2226 uni2226 ++!2cc U+2227 uni2227 ++!2cd U+2228 uni2228 ++!2ce U+2229 uni2229 ++!2cf U+222A uni222A ++!2d0 U+222B uni222B ++!2d1 U+222C uni222C ++!2d2 U+222D uni222D ++!2d3 U+222E uni222E ++!2d4 U+222F uni222F ++!2d5 U+2230 uni2230 ++!2d6 U+2231 uni2231 ++!2d7 U+2232 uni2232 ++!2d8 U+2233 uni2233 ++!2d9 U+2234 uni2234 ++!2da U+2235 uni2235 ++!2db U+2236 uni2236 ++!2dc U+2237 uni2237 ++!2dd U+2238 uni2238 ++!2de U+2239 uni2239 ++!2df U+223A uni223A ++!2e0 U+223B uni223B ++!2e1 U+223C uni223C ++!2e2 U+223D uni223D ++!2e3 U+223E uni223E ++!2e4 U+223F uni223F ++!2e5 U+2240 uni2240 ++!2e6 U+2241 uni2241 ++!2e7 U+2242 uni2242 ++!2e8 U+2243 uni2243 ++!2e9 U+2244 uni2244 ++!2ea U+2245 uni2245 ++!2eb U+2246 uni2246 ++!2ec U+2247 uni2247 ++!2ed U+2248 uni2248 ++!2ee U+2249 uni2249 ++!2ef U+224A uni224A ++!2f0 U+224B uni224B ++!2f1 U+224C uni224C ++!2f2 U+224D uni224D ++!2f3 U+224E uni224E ++!2f4 U+224F uni224F ++!2f5 U+225F uni225F ++!2f6 U+2260 uni2260 ++!2f7 U+2261 uni2261 ++!2f8 U+2262 uni2262 ++!2f9 U+2263 uni2263 ++!2fa U+2264 uni2264 ++!2fb U+2265 uni2265 ++!2fc U+2266 uni2266 ++!2fd U+2267 uni2267 ++!2fe U+2268 uni2268 ++!2ff U+2269 uni2269 ++!300 U+226A uni226A ++!301 U+226B uni226B ++!302 U+226C uni226C ++!303 U+226D uni226D ++!304 U+226E uni226E ++!305 U+226F uni226F ++!306 U+2270 uni2270 ++!307 U+2271 uni2271 ++!308 U+2272 uni2272 ++!309 U+2273 uni2273 ++!30a U+2274 uni2274 ++!30b U+2275 uni2275 ++!30c U+2276 uni2276 ++!30d U+2277 uni2277 ++!30e U+2278 uni2278 ++!30f U+2279 uni2279 ++!310 U+227A uni227A ++!311 U+227B uni227B ++!312 U+227C uni227C ++!313 U+227D uni227D ++!314 U+227E uni227E ++!315 U+227F uni227F ++!316 U+2280 uni2280 ++!317 U+2281 uni2281 ++!318 U+2282 uni2282 ++!319 U+2283 uni2283 ++!31a U+2284 uni2284 ++!31b U+2285 uni2285 ++!31c U+2286 uni2286 ++!31d U+2287 uni2287 ++!31e U+2288 uni2288 ++!31f U+2289 uni2289 ++!320 U+22C0 uni22C0 ++!321 U+22C1 uni22C1 ++!322 U+22C2 uni22C2 ++!323 U+22C3 uni22C3 ++!324 U+22C4 uni22C4 ++!325 U+22C5 uni22C5 ++!326 U+2302 uni2302 ++!327 U+2310 uni2310 ++!328 U+2320 uni2320 ++!329 U+2321 uni2321 ++!32a U+2322 uni2322 ++!32b U+2323 uni2323 ++!32c U+2329 uni2329 ++!32d U+232A uni232A ++!32e U+239B uni239B ++!32f U+239C uni239C ++!330 U+239D uni239D ++!331 U+239E uni239E ++!332 U+239F uni239F ++!333 U+23A0 uni23A0 ++!334 U+23A1 uni23A1 ++!335 U+23A2 uni2392 ++!336 U+23A3 uni23A3 ++!337 U+23A4 uni23A4 ++!338 U+23A5 uni23A5 ++!339 U+23A6 uni23A6 ++!33a U+23A7 uni23A7 ++!33b U+23A8 uni23A8 ++!33c U+23A9 uni23A9 ++!33d U+23AA uni23AA ++!33e U+23AB uni23AB ++!33f U+23AC uni23AC ++!340 U+23AD uni23AD ++!341 U+23AE uni23AE ++!342 U+23AF uni23AF ++!343 U+23B0 uni23B0 ++!344 U+23B1 uni23B1 ++!345 U+23B2 uni23B2 ++!346 U+23B3 uni23B3 ++!347 U+23B4 uni23B4 ++!348 U+23B5 uni23B5 ++!349 U+23B6 uni23B6 ++!34a U+23B7 uni23B7 ++!34b U+23B8 uni23B8 ++!34c U+23B9 uni23B9 ++!34d U+23BA uni23BA ++!34e U+23BB uni23BB ++!34f U+23BC uni23BC ++!350 U+23BD uni23BD ++!351 U+23BE uni23BE ++!352 U+23BF uni23BF ++!353 U+23DE uni23DE ++!354 U+23DF uni23DF ++!355 U+23E1 uni23E1 ++!356 U+25A0 uni25A0 ++!357 U+25A1 uni25A1 ++!358 U+25AA uni25AA ++!359 U+25AB uni25AB ++!35b U+25B2 uni25B2 ++!35c U+25B3 uni25B3 ++!35d U+25BC uni25BC ++!35e U+25BD uni25BD ++!35a U+25C6 uni25C6 ++!35f U+25CA uni25CA ++!360 U+25CB uni25CB ++!361 U+25CF uni25CF ++!364 U+25E6 uni25E6 ++!362 U+25FB uni25FB ++!363 U+25FC uni25FC ++!365 U+2609 uni2609 ++!366 U+2639 uni2639 ++!367 U+263C uni263C ++!368 U+263D uni263D ++!369 U+263E uni263E ++!36a U+263F uni263F ++!36b U+2640 uni2640 ++!36c U+2641 uni2641 ++!36d U+2642 uni2642 ++!36e U+2643 uni2643 ++!36f U+2644 uni2644 ++!370 U+2645 uni2645 ++!371 U+2646 uni2646 ++!372 U+2647 uni2647 ++!373 U+2648 uni2648 ++!374 U+2649 uni2649 ++!375 U+264A uni264A ++!376 U+264B uni264B ++!377 U+264C uni264C ++!378 U+264D uni264D ++!379 U+264E uni264E ++!37a U+264F uni264F ++!37b U+2650 uni2650 ++!37c U+2651 uni2651 ++!37d U+2652 uni2652 ++!37e U+2653 uni2653 ++!37f U+25C7 uni25C7 ++!380 U+2297 uni2297 ++!381 U+2299 uni2299 +Index: term/PostScript/unicode_maps.README +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ term/PostScript/unicode_maps.README 2010-03-04 10:44:07.000000000 +0100 +@@ -0,0 +1,75 @@ ++ unicode maps README ++ =================== ++ ++Each unicode_XXX.map file contains a list of unicode code points that might ++plausibly be used from inside gnuplot. These are only relevant to the ++PostScript terminal drivers, and only if you want to use UTF-8 encoding. ++ ++If you have a TTF unicode font containing the relevant characters, you can ++use the unicode map file to instruct the external program ttf2pt1 to prepare ++an Adobe Type 1 font. ++ ++For example: ++ ++ ttf2pt1 -p ft -e -L unicode_big.map arialuni.ttf ++ ++This will extract character glyphs for these particular code points ++from arialuni.ttf and create a new file arialuni.ps. You can use this new ++*.pfa font file from gnuplot by saying ++ ++ set encoding utf8 ++ set term post fontfile 'arialuni.ps' font 'ArialUnicodeMS' ++ ++Note that gnuplot can run ttf2pt1 for you on the fly if you ++first define the appropriate command in the environmental variable ++GNUPLOT_TTFTOPFA. For example: ++ ++ setenv GNUPLOT_TTFTOPFA "ttf2pt1 -e -p ft -L unimap.map %s -" ++ ++In this case you could say ++ ++ set encoding utf8 ++ set term post fontfile 'arialuni.ttf' font 'ArialUnicodeMS' ++ ++In either case, the converted glyphs will be embedded in your ++gnuplot output file. There are several caveats: ++ ++1) This can make the file quite large. ++ ++2) If a glyph isn't in the starting *.ttf font to begin with, nothing ++ you do here will fix that. ++ ++3) If gnuplot runs the conversion for you, it will be triggered each ++ time you plot. ++ ++Several unicode map files are provided. They differ in how many ++characters they request, and hence in the size of the resulting font file. ++ ++ unicode_small.map (462 characters) ++ =================================== ++ ++- the Latin1 character set ++- the basic Greek alphabet ++- basic math and physical symbols ++- 133 less obscure math symbols from Unicode pages 34 and 35 ++ ++ ++ unicode_big.map (863 characters) ++ ================================= ++ ++- the Latin1 character set ++- extended Latin character sets needed to support other European languages ++- the Cyrillic alphabet, with extensions for various slavic languages ++ (may not be complete - please report omissions) ++- the basic Greek and Hebrew alphabets ++- basic math symbols ++- 176 mathematical symbols, some obscure, from Unicode pages 34 and 35 ++- physical and astronomical symbols ++ ++The unicode_big map makes a total of about 860 glyphs available to use ++from gnuplot, but only if they exist in the original TTF font file. ++The maximum number that ttf2pt1 can process is 1024. ++This is only a tiny fraction of the total characters indexed by Unicode. ++But if you need more, probably you would do better to use a different ++gnuplot terminal that supports direct use of UTF-8 TTF fonts (pdf, png, svg). ++ +Index: term/PostScript/unicode_small.map +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ term/PostScript/unicode_small.map 2010-03-04 10:44:07.000000000 +0100 +@@ -0,0 +1,462 @@ ++=00 U+0000 ++=01 U+0001 ++=02 U+0002 ++=03 U+0003 ++=04 U+0004 ++=05 U+0005 ++=06 U+0006 ++=07 U+0007 ++=08 U+0008 ++=09 U+0009 ++=0A U+000A ++=0B U+000B ++=0C U+000C ++=0D U+000D ++=0E U+000E ++=0F U+000F ++=10 U+0010 ++=11 U+0011 ++=12 U+0012 ++=13 U+0013 ++=14 U+0014 ++=15 U+0015 ++=16 U+0016 ++=17 U+0017 ++=18 U+0018 ++=19 U+0019 ++=1A U+001A ++=1B U+001B ++=1C U+001C ++=1D U+001D ++=1E U+001E ++=1F U+001F ++!20 U+0020 space ++!21 U+0021 exclam ++!22 U+0022 quotedbl ++!23 U+0023 numbersign ++!24 U+0024 dollar ++!25 U+0025 percent ++!26 U+0026 ampersand ++!27 U+0027 quotesingle ++!28 U+0028 parenleft ++!29 U+0029 parenright ++!2A U+002A asterisk ++!2B U+002B plus ++!2C U+002C comma ++!2D U+002D hyphen ++!2E U+002E period ++!2F U+002F slash ++!30 U+0030 zero ++!31 U+0031 one ++!32 U+0032 two ++!33 U+0033 three ++!34 U+0034 four ++!35 U+0035 five ++!36 U+0036 six ++!37 U+0037 seven ++!38 U+0038 eight ++!39 U+0039 nine ++!3A U+003A colon ++!3B U+003B semicolon ++!3C U+003C less ++!3D U+003D equal ++!3E U+003E greater ++!3F U+003F question ++!40 U+0040 at ++!41 U+0041 A ++!42 U+0042 B ++!43 U+0043 C ++!44 U+0044 D ++!45 U+0045 E ++!46 U+0046 F ++!47 U+0047 G ++!48 U+0048 H ++!49 U+0049 I ++!4A U+004A J ++!4B U+004B K ++!4C U+004C L ++!4D U+004D M ++!4E U+004E N ++!4F U+004F O ++!50 U+0050 P ++!51 U+0051 Q ++!52 U+0052 R ++!53 U+0053 S ++!54 U+0054 T ++!55 U+0055 U ++!56 U+0056 V ++!57 U+0057 W ++!58 U+0058 X ++!59 U+0059 Y ++!5A U+005A Z ++!5B U+005B bracketleft ++!5C U+005C backslash ++!5D U+005D bracketright ++!5E U+005E asciicircum ++!5F U+005F underscore ++!60 U+0060 grave ++!61 U+0061 a ++!62 U+0062 b ++!63 U+0063 c ++!64 U+0064 d ++!65 U+0065 e ++!66 U+0066 f ++!67 U+0067 g ++!68 U+0068 h ++!69 U+0069 i ++!6A U+006A j ++!6B U+006B k ++!6C U+006C l ++!6D U+006D m ++!6E U+006E n ++!6F U+006F o ++!70 U+0070 p ++!71 U+0071 q ++!72 U+0072 r ++!73 U+0073 s ++!74 U+0074 t ++!75 U+0075 u ++!76 U+0076 v ++!77 U+0077 w ++!78 U+0078 x ++!79 U+0079 y ++!7A U+007A z ++!7B U+007B braceleft ++!7C U+007C bar ++!7D U+007D braceright ++!7E U+007E asciitilde ++=A0 U+00A0 ++!A1 U+00A1 exclamdown ++!A2 U+00A2 cent ++!A3 U+00A3 sterling ++!A4 U+00A4 currency ++!A5 U+00A5 yen ++!A6 U+00A6 brokenbar ++!A7 U+00A7 section ++!A8 U+00A8 dieresis ++!A9 U+00A9 copyright ++!AA U+00AA ordfeminine ++!AB U+00AB guillemotleft ++!AC U+00AC logicalnot ++=AD U+00AD ++!AE U+00AE registered ++!AF U+00AF macron ++!B0 U+00B0 degree ++!B1 U+00B1 plusminus ++=B2 U+00B2 ++=B3 U+00B3 ++!B4 U+00B4 acute ++=B5 U+00B5 ++!B6 U+00B6 paragraph ++!B7 U+00B7 periodcentered ++!B8 U+00B8 cedilla ++=B9 U+00B9 ++!BA U+00BA ordmasculine ++!BB U+00BB guillemotright ++!BC U+00BC onequarter ++!BD U+00BD onehalf ++!BE U+00BE threequarters ++!BF U+00BF questiondown ++!C0 U+00C0 Agrave ++!C1 U+00C1 Aacute ++!C2 U+00C2 Acircumflex ++!C3 U+00C3 Atilde ++!C4 U+00C4 Adieresis ++!C5 U+00C5 Aring ++!C6 U+00C6 AE ++!C7 U+00C7 Ccedilla ++!C8 U+00C8 Egrave ++!C9 U+00C9 Eacute ++!CA U+00CA Ecircumflex ++!CB U+00CB Edieresis ++!CC U+00CC Igrave ++!CD U+00CD Iacute ++!CE U+00CE Icircumflex ++!CF U+00CF Idieresis ++!D0 U+00D0 Eth ++!D1 U+00D1 Ntilde ++!D2 U+00D2 Ograve ++!D3 U+00D3 Oacute ++!D4 U+00D4 Ocircumflex ++!D5 U+00D5 Otilde ++!D6 U+00D6 Odieresis ++!D7 U+00D7 multiply ++!D8 U+00D8 Oslash ++!D9 U+00D9 Ugrave ++!DA U+00DA Uacute ++!DB U+00DB Ucircumflex ++!DC U+00DC Udieresis ++!DD U+00DD Yacute ++!DE U+00DE Thorn ++!DF U+00DF germandbls ++!E0 U+00E0 agrave ++!E1 U+00E1 aacute ++!E2 U+00E2 acircumflex ++!E3 U+00E3 atilde ++!E4 U+00E4 adieresis ++!E5 U+00E5 aring ++!E6 U+00E6 ae ++!E7 U+00E7 ccedilla ++!E8 U+00E8 egrave ++!E9 U+00E9 eacute ++!EA U+00EA ecircumflex ++!EB U+00EB edieresis ++!EC U+00EC igrave ++!ED U+00ED iacute ++!EE U+00EE icircumflex ++!EF U+00EF idieresis ++!F0 U+00F0 eth ++!F1 U+00F1 ntilde ++!F2 U+00F2 ograve ++!F3 U+00F3 oacute ++!F4 U+00F4 ocircumflex ++!F5 U+00F5 otilde ++!F6 U+00F6 odieresis ++!F7 U+00F7 divide ++!F8 U+00F8 oslash ++!F9 U+00F9 ugrave ++!FA U+00FA uacute ++!FB U+00FB ucircumflex ++!FC U+00FC udieresis ++!FD U+00FD yacute ++!FE U+00FE thorn ++!FF U+00FF ydieresis ++!19e U+0391 uni0391 ++!19f U+0392 uni0392 ++!1a0 U+0393 uni0393 ++!1a1 U+0394 uni0394 ++!1a2 U+0395 uni0395 ++!1a3 U+0396 uni0396 ++!1a4 U+0397 uni0397 ++!1a5 U+0398 uni0398 ++!1a6 U+0399 uni0399 ++!1a7 U+039A uni039A ++!1a8 U+039B uni039B ++!1a9 U+039C uni039C ++!1aa U+039D uni039D ++!1ab U+039E uni039E ++!1ac U+039F uni039F ++!1ad U+03A0 uni03A0 ++!1ae U+03A1 uni03A1 ++!1af U+03A3 uni03A3 ++!1b0 U+03A4 uni03A4 ++!1b1 U+03A5 uni03A5 ++!1b2 U+03A6 uni03A6 ++!1b3 U+03A7 uni03A7 ++!1b4 U+03A8 uni03A8 ++!1b5 U+03A9 uni03A9 ++!1b6 U+03B1 uni03B1 ++!1b7 U+03B2 uni03B2 ++!1b8 U+03B3 uni03B3 ++!1b9 U+03B4 uni03B4 ++!1ba U+03B5 uni03B5 ++!1bb U+03B6 uni03B6 ++!1bc U+03B7 uni03B7 ++!1bd U+03B8 uni03B8 ++!1be U+03B9 uni03B9 ++!1bf U+03BA uni03BA ++!1c0 U+03BB uni03BB ++!1c1 U+03BC uni03BC ++!1c2 U+03BD uni03BD ++!1c3 U+03BE uni03BE ++!1c4 U+03BF uni03BF ++!1c5 U+03C0 uni03C0 ++!1c6 U+03C1 uni03C1 ++!1c7 U+03C2 uni03C2 ++!1c8 U+03C3 uni03C3 ++!1c9 U+03C4 uni03C4 ++!1ca U+03C5 uni03C5 ++!1cb U+03C6 uni03C6 ++!1cc U+03C7 uni03C7 ++!1cd U+03C8 uni03C8 ++!1ce U+03C9 uni03C9 ++!1cf U+03D0 uni03D0 ++!1d0 U+03D1 uni03D1 ++!1d1 U+03D5 uni03D5 ++!1d2 U+03D6 uni03D6 ++!25b U+2016 uni2016 ++!26d U+2032 uni2032 ++!26e U+2033 uni2033 ++!26f U+2034 uni2034 ++!270 U+2035 uni2035 ++!271 U+2036 uni2036 ++!272 U+2037 uni2037 ++!273 U+2039 uni2039 ++!274 U+203A uni203A ++!275 U+203C uni203C ++!276 U+2044 uni2044 ++!277 U+20AC uni20AC ++!278 U+2107 uni2107 ++!279 U+210B uni210B ++!27a U+210E uni210E ++!27b U+210F uni210F ++!27e U+2113 uni2113 ++!284 U+211B uni211B ++!289 U+2126 uni2126 ++!28a U+2127 uni2127 ++!28d U+212B uni212B ++!295 U+2135 uni2135 ++!296 U+2136 uni2136 ++!297 U+2137 uni2137 ++!298 U+2138 uni2138 ++!299 U+2190 uni2190 ++!29a U+2191 uni2191 ++!29b U+2192 uni2192 ++!29c U+2193 uni2193 ++!29d U+2194 uni2194 ++!29e U+2195 uni2195 ++!2a1 U+21D0 uni21D0 ++!2a2 U+21D1 uni21D1 ++!2a3 U+21D2 uni21D2 ++!2a4 U+21D3 uni21D3 ++!2a5 U+21D4 uni21D4 ++!2a6 U+2200 uni2200 ++!2a7 U+2202 uni2202 ++!2a8 U+2203 uni2203 ++!2aa U+2205 uni2205 ++!2ab U+2206 uni2206 ++!2ac U+2207 uni2207 ++!2ad U+2208 uni2208 ++!2ae U+2209 uni2209 ++!2af U+220A uni220A ++!2b0 U+220B uni220B ++!2b1 U+220C uni220C ++!2b2 U+220D uni220D ++!2b4 U+220F uni220F ++!2b6 U+2211 uni2211 ++!2b7 U+2212 uni2212 ++!2b8 U+2213 uni2213 ++!2ba U+2215 uni2215 ++!2bb U+2216 uni2216 ++!2bc U+2217 uni2217 ++!2bd U+2218 uni2218 ++!2be U+2219 uni2219 ++!2bf U+221A uni221A ++!2c0 U+221B uni221B ++!2c1 U+221C uni221C ++!2c2 U+221D uni221D ++!2c3 U+221E uni221E ++!2c4 U+221F uni221F ++!2c8 U+2223 uni2223 ++!2ca U+2225 uni2225 ++!2cc U+2227 uni2227 ++!2cd U+2228 uni2228 ++!2ce U+2229 uni2229 ++!2cf U+222A uni222A ++!2d0 U+222B uni222B ++!2d1 U+222C uni222C ++!2d2 U+222D uni222D ++!2d3 U+222E uni222E ++!2d9 U+2234 uni2234 ++!2da U+2235 uni2235 ++!2db U+2236 uni2236 ++!2dc U+2237 uni2237 ++!2e1 U+223C uni223C ++!2e2 U+223D uni223D ++!2e3 U+223E uni223E ++!2e4 U+223F uni223F ++!2e6 U+2241 uni2241 ++!2e7 U+2242 uni2242 ++!2e8 U+2243 uni2243 ++!2e9 U+2244 uni2244 ++!2ea U+2245 uni2245 ++!2eb U+2246 uni2246 ++!2ec U+2247 uni2247 ++!2ed U+2248 uni2248 ++!2ee U+2249 uni2249 ++!2f4 U+224F uni224F ++!2f5 U+225F uni225F ++!2f6 U+2260 uni2260 ++!2f7 U+2261 uni2261 ++!2fa U+2264 uni2264 ++!2fb U+2265 uni2265 ++!2fc U+2266 uni2266 ++!2fd U+2267 uni2267 ++!300 U+226A uni226A ++!301 U+226B uni226B ++!302 U+226C uni226C ++!303 U+226D uni226D ++!304 U+226E uni226E ++!305 U+226F uni226F ++!306 U+2270 uni2270 ++!307 U+2271 uni2271 ++!308 U+2272 uni2272 ++!309 U+2273 uni2273 ++!30a U+2274 uni2274 ++!30b U+2275 uni2275 ++!310 U+227A uni227A ++!311 U+227B uni227B ++!312 U+227C uni227C ++!313 U+227D uni227D ++!314 U+227E uni227E ++!315 U+227F uni227F ++!316 U+2280 uni2280 ++!317 U+2281 uni2281 ++!318 U+2282 uni2282 ++!319 U+2283 uni2283 ++!31a U+2284 uni2284 ++!31b U+2285 uni2285 ++!31c U+2286 uni2286 ++!31d U+2287 uni2287 ++!31e U+2288 uni2288 ++!31f U+2289 uni2289 ++!389 U+2297 uni2297 ++!38b U+2299 uni2299 ++!320 U+22C0 uni22C0 ++!321 U+22C1 uni22C1 ++!322 U+22C2 uni22C2 ++!323 U+22C3 uni22C3 ++!327 U+2310 uni2310 ++!328 U+2320 uni2320 ++!329 U+2321 uni2321 ++!32a U+2322 uni2322 ++!32b U+2323 uni2323 ++!32c U+2329 uni2329 ++!32d U+232A uni232A ++!32e U+239B uni239B ++!32f U+239C uni239C ++!330 U+239D uni239D ++!331 U+239E uni239E ++!332 U+239F uni239F ++!333 U+23A0 uni23A0 ++!334 U+23A1 uni23A1 ++!335 U+23A2 uni2392 ++!336 U+23A3 uni23A3 ++!337 U+23A4 uni23A4 ++!338 U+23A5 uni23A5 ++!339 U+23A6 uni23A6 ++!33a U+23A7 uni23A7 ++!33b U+23A8 uni23A8 ++!33c U+23A9 uni23A9 ++!33d U+23AA uni23AA ++!33e U+23AB uni23AB ++!33f U+23AC uni23AC ++!340 U+23AD uni23AD ++!341 U+23AE uni23AE ++!342 U+23AF uni23AF ++!343 U+23B0 uni23B0 ++!344 U+23B1 uni23B1 ++!345 U+23B2 uni23B2 ++!346 U+23B3 uni23B3 ++!347 U+23B4 uni23B4 ++!348 U+23B5 uni23B5 ++!349 U+23B6 uni23B6 ++!34a U+23B7 uni23B7 ++!34b U+23B8 uni23B8 ++!34c U+23B9 uni23B9 ++!356 U+25A0 uni25A0 ++!357 U+25A1 uni25A1 ++!358 U+25AA uni25AA ++!359 U+25AB uni25AB ++!35b U+25B2 uni25B2 ++!35c U+25B3 uni25B3 ++!35d U+25BC uni25BC ++!35e U+25BD uni25BD ++!35a U+25C6 uni25C6 ++!35f U+25CA uni25CA ++!360 U+25CB uni25CB ++!361 U+25CF uni25CF ++!364 U+25E6 uni25E6 ++!362 U+25FB uni25FB ++!363 U+25FC uni25FC ++!365 U+2609 uni2609 +Index: term/PostScript/utf-8.ps +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ term/PostScript/utf-8.ps 2010-03-04 10:44:07.000000000 +0100 +@@ -0,0 +1,58 @@ ++% ++% Base ISO8859-1 character encoding plus support macros for UTF-8 encoding ++% via the glyphshow operator ++% ++/reencodeISO { ++dup dup findfont dup length dict begin ++{ 1 index /FID ne { def }{ pop pop } ifelse } forall ++currentdict /CharStrings known { ++ CharStrings /Idieresis known { ++ /Encoding ISOLatin1Encoding def } if ++} if ++currentdict end definefont ++} def ++/ISOLatin1Encoding [ ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright ++/parenleft/parenright/asterisk/plus/comma/minus/period/slash ++/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon ++/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N ++/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright ++/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m ++/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef ++/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve ++/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut ++/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar ++/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot ++/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior ++/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine ++/guillemotright/onequarter/onehalf/threequarters/questiondown ++/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla ++/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex ++/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis ++/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute ++/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis ++/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave ++/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex ++/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis ++/yacute/thorn/ydieresis ++] def ++ ++/Gshow { dup type /stringtype eq { show } { glyphshow } ifelse } def ++ ++/Gsall { {Gshow} forall } def ++/Gwidth { ++ dup currentpoint pop exch ++ gsave 6 array currentmatrix nulldevice setmatrix Gsall currentpoint pop grestore sub ++ } def ++/GLshow {currentpoint stroke M 0 vshift R ++ Blacktext {gsave 0 setgray Gsall grestore} {Gsall} ifelse} def ++/GRshow {currentpoint stroke M dup Gwidth vshift R ++ Blacktext {gsave 0 setgray Gsall grestore} {Gsall} ifelse} def ++/GCshow {currentpoint stroke M dup Gwidth 2 div vshift R ++ Blacktext {gsave 0 setgray Gsall grestore} {Gsall} ifelse} def diff --git a/gnuplot-4.4.0-wxt.dif b/gnuplot-4.2.5-wxt.dif similarity index 63% rename from gnuplot-4.4.0-wxt.dif rename to gnuplot-4.2.5-wxt.dif index 05272ad..12ba405 100644 --- a/gnuplot-4.4.0-wxt.dif +++ b/gnuplot-4.2.5-wxt.dif @@ -1,6 +1,6 @@ --- src/plot.c -+++ src/plot.c 2007-04-24 10:21:32.000000000 +0000 -@@ -573,6 +573,8 @@ main(int argc, char **argv) ++++ src/plot.c 2007-04-24 12:21:32.000000000 +0200 +@@ -610,6 +610,8 @@ main(int argc, char **argv) #endif /* GNUPLOT_HISTORY */ fprintf(stderr, "\nTerminal type set to '%s'\n", term->name); @@ -10,19 +10,18 @@ } else { /* come back here from int_error() */ --- src/term.c -+++ src/term.c 2010-04-06 16:12:36.696331404 +0000 -@@ -1646,6 +1646,9 @@ change_term(const char *origname, int le ++++ src/term.c 2007-04-24 12:21:51.000000000 +0200 +@@ -1561,6 +1561,8 @@ change_term(const char *origname, int le + } if (interactive) - fprintf(stderr, "Terminal type set to '%s'\n", term->name); - + fprintf(stderr, "Terminal type set to '%s'\n", term->name); + if (interactive && !strncmp("wxt", term->name, 3)) + fprintf(stderr, "Warning: terminal 'wxt' is experimental\n"); -+ + /* Invalidate any terminal-specific structures that may be active */ invalidate_palette(); - -@@ -1710,11 +1713,6 @@ init_terminal() - term_name = "sun"; +@@ -1626,11 +1628,6 @@ init_terminal() + term_name = "sun"; #endif /* SUN */ -#ifdef WXWIDGETS @@ -32,9 +31,9 @@ - #ifdef _Windows /* let the wxWidgets terminal be the default when available */ - if (term_name == (char *) NULL) -@@ -1750,6 +1748,11 @@ init_terminal() - term_name = "x11"; + if (term_name == (char *) NULL) +@@ -1666,6 +1663,11 @@ init_terminal() + term_name = "x11"; #endif /* x11 */ +#ifdef WXWIDGETS @@ -43,5 +42,5 @@ +#endif + #ifdef AMIGA - term_name = "amiga"; + term_name = "amiga"; #endif diff --git a/gnuplot-4.4.0-x11ovf.dif b/gnuplot-4.2.5-x11ovf.dif similarity index 55% rename from gnuplot-4.4.0-x11ovf.dif rename to gnuplot-4.2.5-x11ovf.dif index 6d0f653..577fcb0 100644 --- a/gnuplot-4.4.0-x11ovf.dif +++ b/gnuplot-4.2.5-x11ovf.dif @@ -1,6 +1,6 @@ --- src/gplt_x11.c -+++ src/gplt_x11.c 2010-04-06 15:49:17.446925544 +0000 -@@ -912,6 +912,8 @@ mainloop() ++++ src/gplt_x11.c 2009-06-15 13:17:19.021900688 +0200 +@@ -901,6 +901,8 @@ mainloop() nfds = cn + 1; while (1) { @@ -9,7 +9,7 @@ XFlush(dpy); /* see above */ FD_ZERO(&tset); -@@ -949,7 +951,11 @@ mainloop() +@@ -938,7 +940,11 @@ mainloop() process_event(&xe); } } @@ -22,14 +22,14 @@ unlink(X11_ipcpath); record(); fclose(X11_ipc); -@@ -1172,8 +1178,8 @@ static int read_input __PROTO((void)); +@@ -1176,8 +1182,8 @@ static int read_input __PROTO((void)); static int read_input() { -- static int rdbuf_size = 10 * X11_COMMAND_BUFFER_LENGTH; -- static char rdbuf[10 * X11_COMMAND_BUFFER_LENGTH]; -+ const int rdbuf_size = 10 * X11_COMMAND_BUFFER_LENGTH; -+ static char rdbuf[(10 * X11_COMMAND_BUFFER_LENGTH)+1]; +- static int rdbuf_size = 10 * Nbuf; +- static char rdbuf[10 * Nbuf]; ++ const int rdbuf_size = 10 * Nbuf; ++ static char rdbuf[rdbuf_size+1]; static int total_chars; static int rdbuf_offset; static int buf_offset; diff --git a/gnuplot-4.4.0.dif b/gnuplot-4.2.5.dif similarity index 68% rename from gnuplot-4.4.0.dif rename to gnuplot-4.2.5.dif index e2a8492..b777174 100644 --- a/gnuplot-4.4.0.dif +++ b/gnuplot-4.2.5.dif @@ -1,6 +1,10 @@ +--- .pkgextract ++++ .pkgextract 2009-05-09 13:32:24.000000000 +0200 +@@ -0,0 +1 @@ ++bzcat ../gnuplot-fr.doc.bz2 > docs/gnuplot-fr.doc --- configure.in -+++ configure.in 2009-05-09 11:32:24.000000000 +0000 -@@ -264,7 +264,7 @@ if test "$with_linux_vga" = yes; then ++++ configure.in 2009-05-09 13:32:24.000000000 +0200 +@@ -230,7 +230,7 @@ if test "$with_linux_vga" = yes; then [AC_DEFINE(LINUXVGA,1, [ Define if this is a Linux system with SuperVGA library. ]) LINUXSUID='chown root $(bindir)/gnuplot; chmod u+s $(bindir)/gnuplot' @@ -10,7 +14,7 @@ fi --- docs/Makefile.in -+++ docs/Makefile.in 2009-05-09 11:32:24.000000000 +0000 ++++ docs/Makefile.in 2009-05-09 13:32:24.000000000 +0200 @@ -37,7 +37,7 @@ # @@ -20,8 +24,8 @@ # this tells GNU make not to export variables into the environment # But other makes dont understand its significance, so it must -@@ -245,6 +245,8 @@ html: htmldocs/gnuplot.html - # +@@ -239,6 +239,8 @@ html: htmldocs/gnuplot.html + # emacs around to do lisp pre-processing htmldocs/gnuplot.html: $(srcdir)/gnuplot.tex mkdir -p htmldocs + ln -sf ../../VERSION htmldocs/ @@ -29,7 +33,7 @@ latex2html -dir htmldocs -local_icons gnuplot ### PDF documentation -@@ -337,12 +339,16 @@ doc2hlp: doc2hlp.o termdoc.o +@@ -321,12 +323,16 @@ doc2hlp: doc2hlp.o termdoc.o $(LINK) doc2hlp.o termdoc.o $(LIBS) ### gnuplot interactive help format @@ -47,7 +51,7 @@ doc2gih: doc2gih.o termdoc.o $(LINK) doc2gih.o termdoc.o $(LIBS) -@@ -431,6 +437,7 @@ install: install-gih install-info +@@ -415,6 +421,7 @@ install: install-gih install-info install-gih: gnuplot.gih $(top_srcdir)/mkinstalldirs $(DESTDIR)$(GIHDIR) $(INSTALL_DATA) gnuplot.gih $(DESTDIR)$(GIHDIR)/gnuplot.gih @@ -55,7 +59,7 @@ install-info: gnuplot.info $(top_srcdir)/mkinstalldirs $(DESTDIR)$(infodir) -@@ -450,6 +457,7 @@ uninstall: uninstall-gih uninstall-info +@@ -434,6 +441,7 @@ uninstall: uninstall-gih uninstall-info uninstall-gih: rm -f $(DESTDIR)$(GIHDIR)/gnuplot.gih @@ -64,7 +68,7 @@ uninstall-info: $(PRE_UNINSTALL) --- docs/gnuplot-fr.doc -+++ docs/gnuplot-fr.doc 2009-05-09 11:32:24.000000000 +0000 ++++ docs/gnuplot-fr.doc 2009-05-09 13:32:24.000000000 +0200 @@ -436,8 +436,8 @@ C #Home & same as \verb~^A~. \\ #Ctrl Home & same as \verb~^E~. \\ @@ -76,9 +80,52 @@ %c l . %Touche fléchée@Fonction %_ +--- src/command.c ++++ src/command.c 2009-05-09 13:32:24.000000000 +0200 +@@ -1177,14 +1177,24 @@ pause_command() + (void) fgets(buf, strlen(buf), stdin); + } + } else if (strcmp(term->name, "atari") == 0) { +- char *line = readline(""); ++ char *line; ++#if 0 ++ if (term->waitforinput) ++ term->waitforinput(); ++#endif ++ line = readline(""); + if (line) + free(line); + } else + (void) fgets(buf, strlen(buf), stdin); + #elif defined(ATARI) + if (strcmp(term->name, "atari") == 0) { +- char *line = readline(""); ++ char *line; ++#if 0 ++ if (term->waitforinput) ++ term->waitforinput(); ++#endif ++ line = readline(""); + if (line) + free(line); + } else +@@ -2696,6 +2706,13 @@ read_line(const char *prompt) + # endif /* no READLINE */ + + do { ++# if 0 ++# ifdef USE_MOUSE ++ /* wait for input from graphic device, mainly x11 */ ++ if (term->waitforinput) ++ term->waitforinput(); ++# endif ++# endif + /* grab some input */ + # if defined(READLINE) || defined(HAVE_LIBREADLINE) || defined(HAVE_LIBEDITLINE) + if (((interactive) --- src/gplt_x11.c -+++ src/gplt_x11.c 2009-05-09 11:32:24.000000000 +0000 -@@ -2256,8 +2256,11 @@ exec_cmd(plot_struct *plot, char *comman ++++ src/gplt_x11.c 2009-05-09 13:32:24.000000000 +0200 +@@ -2254,8 +2254,11 @@ exec_cmd(plot_struct *plot, char *comman } } /* X11_justify_text(mode) - set text justification mode */ @@ -92,9 +139,19 @@ else if (*buffer == 'A') sscanf(buffer + 1, "%lf", &plot->angle); +@@ -4724,7 +4727,9 @@ process_event(XEvent *event) + */ + #define On(v) ( !strncasecmp(v, "on", 2) || !strncasecmp(v, "true", 4) ) + ++#ifndef AppDefDir + #define AppDefDir "/usr/lib/X11/app-defaults" ++#endif + #ifndef MAXHOSTNAMELEN + #define MAXHOSTNAMELEN 64 + #endif --- src/plot.c -+++ src/plot.c 2009-05-09 11:32:24.000000000 +0000 -@@ -222,6 +222,7 @@ static int asked_privi = 0; ++++ src/plot.c 2009-05-09 13:32:24.000000000 +0200 +@@ -234,6 +234,7 @@ static int asked_privi = 0; void drop_privilege() { @@ -102,7 +159,7 @@ if (!asked_privi) { euid = geteuid(); egid = getegid(); -@@ -235,11 +236,13 @@ drop_privilege() +@@ -247,11 +248,13 @@ drop_privilege() if (seteuid(ruid) == -1) (void) fprintf(stderr, "seteuid(%d): %s\n", (int) ruid, strerror(errno)); @@ -116,7 +173,7 @@ if (!asked_privi) { euid = geteuid(); egid = getegid(); -@@ -253,6 +256,7 @@ take_privilege() +@@ -265,6 +268,7 @@ take_privilege() if (seteuid(euid) == -1) (void) fprintf(stderr, "seteuid(%d): %s\n", (int) euid, strerror(errno)); @@ -124,7 +181,7 @@ } #endif /* LINUXVGA */ -@@ -278,8 +282,8 @@ main(int argc, char **argv) +@@ -290,8 +294,8 @@ main(int argc, char **argv) int i; #ifdef LINUXVGA @@ -134,7 +191,7 @@ #endif /* make sure that we really have revoked root access, this might happen if gnuplot is compiled without vga support but is installed suid by mistake */ -@@ -345,6 +349,23 @@ main(int argc, char **argv) +@@ -357,6 +361,23 @@ main(int argc, char **argv) #if defined(HAVE_LIBEDITLINE) rl_getc_function = getc_wrapper; #endif @@ -159,8 +216,8 @@ using_history(); /* T.Walter 1999-06-24: 'rl_readline_name' must be this fix name. --- src/term.h -+++ src/term.h 2009-05-09 11:32:24.000000000 +0000 -@@ -309,9 +309,9 @@ ++++ src/term.h 2009-05-09 13:32:24.000000000 +0200 +@@ -321,9 +321,9 @@ #include "emf.trm" /* Roland DXY800A plotter */ @@ -172,7 +229,7 @@ /* fig graphics */ #include "fig.trm" -@@ -341,7 +341,7 @@ +@@ -353,7 +353,7 @@ #include "imagen.trm" /* Kyocera Prescribe printer */ @@ -181,7 +238,7 @@ /* Frame Maker MIF 3.00 format driver */ #include "mif.trm" -@@ -377,7 +377,7 @@ +@@ -389,7 +389,7 @@ #include "tkcanvas.trm" /* Vectrix 384 printer, also Tandy colour */ @@ -191,7 +248,7 @@ /* wire printers */ /* Epson LX-800, Star NL-10, NX-1000 and lots of others */ --- src/time.c -+++ src/time.c 2009-05-09 11:32:24.000000000 +0000 ++++ src/time.c 2009-05-09 13:32:24.000000000 +0200 @@ -291,11 +291,12 @@ gstrptime(char *s, char *fmt, struct tm case 's': #if 0 /* HBB 20040213: comment this out, but keep it around for now */ @@ -210,7 +267,7 @@ *tm = *tmwhen; break; --- term/linux.trm -+++ term/linux.trm 2009-05-09 11:32:24.000000000 +0000 ++++ term/linux.trm 2009-05-09 13:32:24.000000000 +0200 @@ -80,7 +80,7 @@ TERM_PUBLIC void LINUX_linetype __PROTO( TERM_PUBLIC void LINUX_move __PROTO((unsigned int x, unsigned int y)); TERM_PUBLIC void LINUX_vector __PROTO((unsigned int x, unsigned int y)); diff --git a/gnuplot-4.2.6.tar.bz2 b/gnuplot-4.2.6.tar.bz2 new file mode 100644 index 0000000..cf7d75f --- /dev/null +++ b/gnuplot-4.2.6.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43bce5066e0473f3de80215a8b93d0ca5f9efbe30cf5ffd9db3fca652b5b7026 +size 2409639 diff --git a/gnuplot-4.4.0.tar.bz2 b/gnuplot-4.4.0.tar.bz2 deleted file mode 100644 index ea5b078..0000000 --- a/gnuplot-4.4.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1b2e3e9b84cfe0d24f6de72b460dcb0117cf1e2d89014726be672a9ec3145ad8 -size 2736120 diff --git a/gnuplot.changes b/gnuplot.changes index 5857308..5f9910b 100644 --- a/gnuplot.changes +++ b/gnuplot.changes @@ -1,66 +1,3 @@ -------------------------------------------------------------------- -Wed Apr 7 10:50:19 CEST 2010 - werner@suse.de - -- Update to gnuplot 4.4.0 - * NEW linetype property 'pointinterval' - * NEW gnuplot.exe is a full-featured console mode gnuplot executable for Windows - * NEW plot style "with circles" - * NEW object types circle, ellipse, and polygon - * NEW options front and back to "set colorbox" - * NEW x11 can plot into a window opened and managed by an external application - * NEW gd terminal can use fonts through fontconfig (libgd version > 2.0.35) - * NEW optional 3 columns of data to generate histogram errorbars - * NEW 'volatile' data, including inline data, can be replotted without rereading - * NEW 'refresh' command replots without rereading data if possible - * NEW rgbimage style now works in 2D and 3D for all terminals that support RGB - * NEW plot style rgbalpha - * NEW transparent fill styles - * NEW iteration within a plot command; e.g. plot for [i=1:10] foo(i) - * NEW iteration within set/unset commands - * NEW operators '=' and ',' in expression syntax - * NEW terminal lua generates commands for interpretation by external lua script - * NEW terminal tikz uses a lua script to generate output for latex TikZ package - * NEW terminal canvas for HTML 5 canvas element - * NEW terminal pdfcairo based on cairo and pango - * NEW terminal pngcairo based on cairo and pango - * NEW terminal dpu414 - Seiko DPU-414 thermal printer - * NEW error status variables GPVAL_ERRNO and GPVAL_ERRMSG - * NEW variables GPVAL_LAST_PLOT, GPVAL_{S}PLOT, GPVAL_MULTIPLOT - * NEW variables GPVAL_VIEW_{MAP|ROT_X|ROT_Z|SCALE|ZSCALE}, GPVAL_TERMINALS - * NEW variables GPVAL_PWD - * NEW per-plot export of information needed for external mousing scripts - * NEW support for dashed linetypes in additional terminals - * NEW the 'bind' command accepts non-keyboard triggers, e.g. 'close' - * NEW commands 'show bind' and 'reset bind' - * NEW individual plots can be omitted from autoscaling of axis ranges - * NEW more smoothing options: new kernels (for dgrid3d) and 'smooth cumulative' - * NEW command 'evaluate' executes commands from a string variable - * NEW z-axis tic labels can be colored by Z value - * NEW command 'set view equal {xy|xyz}' forces axes in a 3D plot to the same scale - * NEW 'set pm3d interpolate m,n' supports also non-positive m,n as nbs of points - * FIX domain restrictions on ibeta() - * FIX color assignment of contour lines when "set increment user" is in effect - * FIX remove the limit of 64 characters read as string data from a data file - * FIX remainder of command line is not lost after a "load" command - * FIX more complete support for locale internationalization, UTF-8 encoding - * FIX various font-handling problems in postscript terminal driver - * FIX avoid infinite loop on resizing x11 plot window under ion, fluxbox - * FIX handle addition plot styles in mode 'set table' - * FIX purge tick labels read from a datafile at the end of each plot - * FIX 2nd colour in the colour box for negative palette in postscript - * FIX interpolatation for pm3d surfaces given by both z and colour coordinates - * FIX 'set datafile binary format=...' was documented, but not implemented - * FIX enhanced text mode treatment of UTF-8 characters - * FIX emf terminal enhanced text mode now accepted by Windows programs - * CHANGE A number that begins with a . must continue with a digit - * CHANGE syntax of 'set datafile binary' array= and record= options - * CHANGE 'reset' does not affect locale, encoding, decimalsign settings - * CHANGE 'set key textcolor rgb variable' will use plot colors for key entries - * CHANGE Remove obsolete IRIS4D terminal type - * CHANGE Remove obsolete atari terminal types (atariaes atarivdi multitos) - * CHANGE Use empty/solid fill for candlesticks rather than empty/striped - * CHANGE 'l' and 'L' hotkeys toggle colorbar logscale iff mouse is in colorbar - ------------------------------------------------------------------- Thu Mar 4 11:48:39 UTC 2010 - coolo@novell.com diff --git a/gnuplot.spec b/gnuplot.spec index 831791f..ddc5367 100644 --- a/gnuplot.spec +++ b/gnuplot.spec @@ -19,12 +19,7 @@ Name: gnuplot -BuildRequires: cairo-devel emacs-nox freetype2-devel gcc-c++ gd-devel gtk2-devel latex2html libjpeg-devel netpbm pango-devel readline-devel texlive-latex wxGTK-devel xorg-x11 xorg-x11-devel -%if 0%{?suse_version} > 1120 -BuildRequires: libpng14-devel lua-devel -%else -BuildRequires: libpng-devel -%endif +BuildRequires: cairo-devel emacs-nox freetype2-devel gcc-c++ gd-devel gtk2-devel latex2html libjpeg-devel libpng-devel netpbm pango-devel readline-devel texlive-latex wxGTK-devel xorg-x11 xorg-x11-devel %if 0%{?suse_version} > 1110 BuildRequires: plotutils-devel %else @@ -34,18 +29,21 @@ Url: http://www.gnuplot.info/ License: BSD3c(or similar) Group: Productivity/Graphics/Visualization/Graph AutoReqProv: on -Version: 4.4.0 -Release: 1 +PreReq: %install_info_prereq +Version: 4.2.6 +Release: 2 Summary: GNUplot a Function Plotting Utility Source0: gnuplot-%{version}.tar.bz2 Source2: gnuplot-fr.doc.bz2 Source3: README.whynot -Patch0: gnuplot-4.4.0.dif -Patch1: gnuplot-4.4.0-x11ovf.dif -Patch2: gnuplot-4.4.0-fonts.dif -Patch3: gnuplot-4.4.0-wxt.dif -Patch4: gnuplot-4.4.0-demo.dif +Patch0: gnuplot-4.2.5.dif +Patch1: gnuplot-4.2.5-x11ovf.dif +Patch2: gnuplot-4.2.5-fonts.dif +Patch3: gnuplot-4.2.5-wxt.dif +Patch4: gnuplot-4.2.5-demo.dif +Patch5: gnuplot-4.2.5-utf8.dif Patch6: gnuplot-4.2.5-fix-format-errors.dif +Patch7: gnuplot-4.2.5-gcc45.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %{expand: %%global _exec_prefix %(type -p pkg-config &>/dev/null && pkg-config --variable prefix x11 || echo /usr/X11R6)} %if "%_exec_prefix" == "/usr/X11R6" @@ -73,8 +71,7 @@ License: BSD3c(or similar) Summary: Documentation of GNUplot Group: Productivity/Graphics/Visualization/Graph Requires: %{name} -Requires(post): %install_info_prereq -Requires(postun): %install_info_prereq +PreReq: %install_info_prereq %description doc GNUplot documentation files including the man and info pages. GNUplot @@ -90,19 +87,21 @@ and can easily be extended to include new devices. bunzip2 -dc %{_sourcedir}/gnuplot-fr.doc.bz2 > docs/gnuplot-fr.doc test $? -eq 0 || exit 1 %patch -P 1 -p 0 -b .x11ovf -%patch -P 2 -p 0 -b .font -#%patch -P 3 -p 0 +%patch -P 2 -p 0 +%patch -P 3 -p 0 %patch -P 4 -p 0 +%patch -P 5 -p 0 %patch -P 6 -p 0 %patch -P 0 -p 0 +%patch -P 7 -p 1 %build SECSVGA="-DSVGA_IS_SECURE=1" export CPPFLAGS="-I%{_x11inc} -I%{_includedir}/gd -DAppDefDir=\\\"%{_appdef}\\\"" export CPPFLAGS="$CPPFLAGS -DGNUPLOT_LIB_DEFAULT=\\\"%{_docdir}/%{name}/demo\\\"" - export CFLAGS="${RPM_OPT_FLAGS} -pipe ${SECSVGA} -D_GNU_SOURCE" + export CFLAGS="${RPM_OPT_FLAGS} -pipe ${SECSVGA}" export CXXFLAGS="$CFLAGS -fno-strict-aliasing" - export LDFLAGS="-L%{_x11lib} -Wl,--as-needed" + export LDFLAGS="-L%{_x11lib}" export ARCHLIB=%_lib for f in docs/makefile*; do test -e $f || continue @@ -172,8 +171,8 @@ test $? -eq 0 || exit 1 install -m 0444 demo/* %{buildroot}/%{_docdir}/gnuplot/demo/ install -m 0444 README* %{buildroot}/%{_docdir}/gnuplot/ install -m 0444 Copyright %{buildroot}/%{_docdir}/gnuplot/ - install -m 0444 TODO VERSION %{buildroot}/%{_docdir}/gnuplot/ - install -m 0444 NEWS BUGS %{buildroot}/%{_docdir}/gnuplot/ + install -m 0444 FAQ TODO VERSION %{buildroot}/%{_docdir}/gnuplot/ + install -m 0444 NEWS VERSION BUGS %{buildroot}/%{_docdir}/gnuplot/ install -m 0444 %{SOURCE3} %{buildroot}/%{_docdir}/gnuplot/ rm -f %{buildroot}/%{_docdir}/gnuplot/demo/Makefile* rm -f %{buildroot}/%{_datadir}/emacs/site-lisp/info-look.*