aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
Diffstat (limited to 'math')
-rw-r--r--math/Makefile1
-rw-r--r--math/gnuplot+/Makefile78
-rw-r--r--math/gnuplot+/distinfo4
-rw-r--r--math/gnuplot+/files/gnuplot.info.diff13
-rw-r--r--math/gnuplot+/files/patch-xb22
-rw-r--r--math/gnuplot+/files/patch-xc26
-rw-r--r--math/gnuplot+/files/patch-xd103
-rw-r--r--math/gnuplot+/files/patch-xe80
-rw-r--r--math/gnuplot+/files/patch-xf15
-rw-r--r--math/gnuplot+/files/patch-xg235
-rw-r--r--math/gnuplot+/files/patch-xh460
-rw-r--r--math/gnuplot+/files/patch-xi2118
-rw-r--r--math/gnuplot+/files/patch-xj13
-rw-r--r--math/gnuplot+/files/patch-xk283
-rw-r--r--math/gnuplot+/files/patch-xl64
-rw-r--r--math/gnuplot+/files/patch-za74
-rw-r--r--math/gnuplot+/pkg-descr12
-rw-r--r--math/gnuplot+/pkg-plist82
18 files changed, 0 insertions, 3683 deletions
diff --git a/math/Makefile b/math/Makefile
index d06ed902271e..026761f578a3 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -143,7 +143,6 @@
SUBDIR += gnubc
SUBDIR += gnumeric
SUBDIR += gnuplot
- SUBDIR += gnuplot+
SUBDIR += goblin
SUBDIR += gotoblas
SUBDIR += grace
diff --git a/math/gnuplot+/Makefile b/math/gnuplot+/Makefile
deleted file mode 100644
index b78ca876dbcb..000000000000
--- a/math/gnuplot+/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-# Created by: NAKAJI Hiroyuki
-# $FreeBSD$
-
-PORTNAME= gnuplot371+
-PORTVERSION= 1.2.0
-PORTREVISION= 8
-CATEGORIES= math japanese graphics
-MASTER_SITES= SF/gnuplot/gnuplot/3.7.1 \
- http://www.yama-ga.com/gnuplot/:patch \
- http://www.h2.dion.ne.jp/~yamaga/gnuplot/:patch
-
-DISTFILES= gnuplot-3.7.1.tar.gz \
- gnuplot3.7.1+${PORTVERSION}.patch.tar.gz:patch
-EXTRACT_ONLY= gnuplot-3.7.1.tar.gz
-
-MAINTAINER= nakaji@jp.freebsd.org
-COMMENT= A command-driven interactive function plotting program
-
-DEPRECATED= Upstream says: This package is obsolete. The author does not recommend to use it.
-EXPIRATION_DATE= 2013-02-06
-
-LIB_DEPENDS= png15:${PORTSDIR}/graphics/png \
- VFlib2.24:${PORTSDIR}/japanese/vflib
-
-USE_XORG= x11
-USE_FREETYPE= yes
-USE_GMAKE= yes
-USE_AUTOTOOLS= autoconf213
-GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --exec-prefix=${PREFIX} \
- --includedir=${LOCALBASE}/include/ \
- --libdir=${LOCALBASE}/lib \
- --with-x --without-linux-vga \
- --with-gd=${LOCALBASE}/lib \
- --with-readline=gnu --with-lasergnu --with-png \
- --with-vflib=${LOCALBASE}/lib
-
-MAN1= gnuplot.1 lasergnu.1
-INFO= gnuplot
-
-WRKSRC= ${WRKDIR}/gnuplot-3.7.1
-GP_DOCS= ${WRKSRC}/Copyright.plus \
- ${WRKSRC}/History.plus \
- ${WRKSRC}/INSTALL-J.unx.plus \
- ${WRKSRC}/INSTALL-J.win.plus \
- ${WRKSRC}/INSTALL.unx.plus \
- ${WRKSRC}/INSTALL.win.plus \
- ${WRKSRC}/README-J.plus \
- ${WRKSRC}/README.plus \
- ${WRKSRC}/gp+/plus.dvi \
- ${WRKSRC}/gp+/plus.pdf \
- ${WRKSRC}/gp+/plus.ps \
- ${WRKSRC}/gp+/plus.tex
-
-post-extract:
- ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/gnuplot3.7.1+${PORTVERSION}.patch.tar.gz ${EXTRACT_AFTER_ARGS} -C ${WRKSRC}
-
-pre-patch:
- ${PATCH} ${PATCH_ARGS} < ${WRKSRC}/gnuplot3.7+1.2.patch
-
-post-patch:
- cd ${WRKSRC}; ${TOUCH} aclocal.m4
- cd ${WRKSRC}; ${TOUCH} configure
-
-pre-build:
- ${FIND} ${WRKSRC} \( -name \*.orig -o -name \*~ \) -exec ${RM} -f \{} \;
-
-post-build:
- cd ${WRKSRC}/docs; ${GMAKE} info
-
-post-install:
- @test -d ${PREFIX}/share/doc/gnuplot+ || ${MKDIR} ${PREFIX}/share/doc/gnuplot+
- ${INSTALL_DATA} ${GP_DOCS} ${PREFIX}/share/doc/gnuplot+
- ${INSTALL_DATA} ${WRKSRC}/docs/gnuplot.info ${PREFIX}/info
- ${MKDIR} ${PREFIX}/share/examples/gnuplot+
- ${INSTALL_DATA} ${WRKSRC}/demo/* ${PREFIX}/share/examples/gnuplot+
-
-.include <bsd.port.mk>
diff --git a/math/gnuplot+/distinfo b/math/gnuplot+/distinfo
deleted file mode 100644
index e8b53358a2e5..000000000000
--- a/math/gnuplot+/distinfo
+++ /dev/null
@@ -1,4 +0,0 @@
-SHA256 (gnuplot-3.7.1.tar.gz) = c98716199bc4159958d2fe4150e23f88960b12e7fd843c574235114393e11dcf
-SIZE (gnuplot-3.7.1.tar.gz) = 1319233
-SHA256 (gnuplot3.7.1+1.2.0.patch.tar.gz) = d0558908cddd348ebb9c2e7a4f98566fad2deaca717876b0eef096ed9014e9d8
-SIZE (gnuplot3.7.1+1.2.0.patch.tar.gz) = 633946
diff --git a/math/gnuplot+/files/gnuplot.info.diff b/math/gnuplot+/files/gnuplot.info.diff
deleted file mode 100644
index eebc2282652a..000000000000
--- a/math/gnuplot+/files/gnuplot.info.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- /home/nakaji/tmp/gnuplot.info Mon May 24 14:47:28 1999
-+++ ./gnuplot.info Mon May 24 14:49:54 1999
-@@ -1,5 +1,10 @@
- This file is gnuplot.info created by doc2info from ./gnuplot.doc.
-
-+INFO-DIR-SECTION 2-D graph tools
-+START-INFO-DIR-ENTRY
-+* Gnuplot: (gnuplot). An Interactive Plotting Program.
-+END-INFO-DIR-ENTRY
-+
- 
- File: gnuplot.info, Node: Top, Prev: (dir), Next: gnuplot, Up: (dir)
-
diff --git a/math/gnuplot+/files/patch-xb b/math/gnuplot+/files/patch-xb
deleted file mode 100644
index 4b6b5e6fe5bc..000000000000
--- a/math/gnuplot+/files/patch-xb
+++ /dev/null
@@ -1,22 +0,0 @@
-# key-below-clipping
---- graphics.c.ORIG Wed Sep 15 16:30:29 1999
-+++ graphics.c Wed Nov 17 17:22:24 1999
-@@ -1763,7 +1763,9 @@
- #else
- int x = xl + key_text_right - (t->h_char) * strlen(s);
- #endif
-- if (key_hpos == TOUT || inrange(x, xleft, xright))
-+ if (key_hpos == TOUT ||
-+ key_vpos == TUNDER || /* HBB 990327 */
-+ inrange(x, xleft, xright))
- (*t->put_text) (x, yl, s);
- }
- }
-@@ -1820,6 +1822,7 @@
- int x = xl + key_text_right - (t->h_char) * strlen(this_plot->title);
- #endif
- if (key_hpos == TOUT ||
-+ key_vpos == TUNDER || /* HBB 990327 */
- i_inrange(x, xleft, xright))
- (*t->put_text) (x, yl, this_plot->title);
- }
diff --git a/math/gnuplot+/files/patch-xc b/math/gnuplot+/files/patch-xc
deleted file mode 100644
index 43b861cb924a..000000000000
--- a/math/gnuplot+/files/patch-xc
+++ /dev/null
@@ -1,26 +0,0 @@
-# hidden3d-endlessloop
---- hidden3d.c.ORIG Thu Aug 19 15:39:28 1999
-+++ hidden3d.c Wed Nov 17 17:42:00 1999
-@@ -2140,14 +2140,20 @@
- test->tested = is_moved_or_split;
- SPLIT_TEST_BY_P;
- } else {
-- if (loop && (p->tested == is_tested)) {
-- /* Ouch, seems like we're in trouble, really */
-+ if (loop && (p->tested == is_in_loop)) {
-+ /* Ouch, seems like we're in trouble, really: no way to
-+ * split one of them, and we're in a loop, so we can't
-+ * move p to the front of the list, without risking an
-+ * endless loop. Well, let's just output the darn thing,
-+ * then, no matter what. :-( */
-+#if DEBUG /* normally off */
- fprintf(stderr, "\
- #Failed: In loop, without intersections.\n\
- #Relations are %d, %d\n",
- p_rel_tplane, t_rel_pplane);
- print_polygon(test, "test");
- print_polygon(p, "p");
-+#endif
- continue; /* Keep quiet, maybe no-one will notice (;-) */
- } else {
- PUT_P_IN_FRONT_TEST(is_in_loop);
diff --git a/math/gnuplot+/files/patch-xd b/math/gnuplot+/files/patch-xd
deleted file mode 100644
index 66e3bd279783..000000000000
--- a/math/gnuplot+/files/patch-xd
+++ /dev/null
@@ -1,103 +0,0 @@
-# table-format.2
---- plot2d.c.ORIG Mon Oct 11 13:18:56 1999
-+++ plot2d.c Thu Nov 18 19:13:48 1999
-@@ -718,12 +718,22 @@
- int plot_num;
- {
- int i, curve;
-+ char *table_format = NULL;
-+
-+ /* The data format is determined by the format of the axis labels.
-+ * See 'set format'. Patch by Don Taber
-+ */
-+ table_format = gp_alloc(strlen(xformat)+strlen(yformat)+5, "table format");
-+ strcpy(table_format, xformat);
-+ strcat(table_format, " ");
-+ strcat(table_format, yformat);
-+ strcat(table_format, " %c\n");
-
- for (curve = 0; curve < plot_num;
- curve++, this_plot = this_plot->next_cp) {
- fprintf(gpoutfile, "#Curve %d, %d points\n#x y type\n", curve, this_plot->p_count);
- for (i = 0; i < this_plot->p_count; i++) {
-- fprintf(gpoutfile, "%g %g %c\n",
-+ fprintf(gpoutfile, table_format,
- this_plot->points[i].x,
- this_plot->points[i].y,
- this_plot->points[i].type == INRANGE ? 'i'
-@@ -732,9 +742,12 @@
- }
- fputc('\n', gpoutfile);
- }
--/* two blank lines between plots in table output */
-+
-+ /* two blank lines between plots in table output */
- fputc('\n', gpoutfile);
- fflush(gpoutfile);
-+
-+ free(table_format);
- }
-
- /*
---- plot3d.c.ORIG Thu Dec 10 18:30:52 1998
-+++ plot3d.c Thu Nov 18 19:12:01 1999
-@@ -694,6 +694,17 @@
- int i, curve, surface;
- struct iso_curve *icrvs;
- struct coordinate GPHUGE *points;
-+ char *table_format = NULL;
-+ char *pcat;
-+
-+ table_format = gp_alloc(strlen(xformat)+strlen(yformat)+strlen(zformat)+6,
-+ "table format");
-+ strcpy(table_format, xformat);
-+ strcat(table_format, " ");
-+ strcat(table_format, yformat);
-+ strcat(table_format, " ");
-+ strcat(table_format, zformat);
-+ pcat = &table_format[strlen(table_format)];
-
- for (surface = 0, this_plot = first_3dplot; surface < pcount;
- this_plot = this_plot->next_sp, surface++) {
-@@ -702,12 +713,13 @@
- curve = 0;
-
- if (draw_surface) {
-+ strcpy(pcat," %c\n");
- /* only the curves in one direction */
- while (icrvs && curve < this_plot->num_iso_read) {
- fprintf(gpoutfile, "\n#IsoCurve %d, %d points\n#x y z type\n",
- curve, icrvs->p_count);
- for (i = 0, points = icrvs->points; i < icrvs->p_count; i++) {
-- fprintf(gpoutfile, "%g %g %g %c\n",
-+ fprintf(gpoutfile, table_format,
- points[i].x,
- points[i].y,
- points[i].z,
-@@ -723,6 +735,7 @@
- if (draw_contour) {
- int number = 0;
- struct gnuplot_contours *c = this_plot->contours;
-+ strcpy(pcat,"\n");
- while (c) {
- int count = c->num_pts;
- struct coordinate GPHUGE *p = c->coords;
-@@ -732,7 +745,8 @@
- /* double blank line to allow plot ... index ... */
- fprintf(gpoutfile, "\n# Contour %d, label: %s\n", number++, c->label);
- for (; --count >= 0; ++p)
-- fprintf(gpoutfile, "%g %g %g\n", p->x, p->y, p->z);
-+ fprintf(gpoutfile, table_format, p->x, p->y, p->z);
-+
- /* blank line between segments of same contour */
- putc('\n', gpoutfile);
- c = c->next;
-@@ -740,6 +754,8 @@
- }
- }
- fflush(gpoutfile);
-+
-+ free(table_format);
- }
-
-
diff --git a/math/gnuplot+/files/patch-xe b/math/gnuplot+/files/patch-xe
deleted file mode 100644
index cc9cb87da290..000000000000
--- a/math/gnuplot+/files/patch-xe
+++ /dev/null
@@ -1,80 +0,0 @@
-# contour.c.fix.991130
---- contour.c.ORIG Thu Dec 3 22:23:46 1998
-+++ contour.c Wed Dec 1 21:07:24 1999
-@@ -536,8 +536,8 @@
- struct edge_struct **p_edges; /* list of edges output */
- {
- int i, j, grid_x_max = iso_lines->p_count;
-- struct edge_struct *p_edge1, *p_edge2, *edge0, *edge1, *edge2, *pe_tail,
-- *pe_tail1, *pe_tail2, *pe_temp;
-+ struct edge_struct *p_edge1, *p_edge2, *edge0, *edge1, *edge2,
-+ *pe_tail, *pe_tail2, *pe_temp;
- struct poly_struct *pp_tail, *lower_tri, *upper_tri;
- struct coordinate GPHUGE *p_vrtx1, GPHUGE * p_vrtx2; /* HBB 980308: need to tag *each* of them as GPHUGE! */
-
-@@ -545,14 +545,14 @@
- (*p_edges) = pe_tail = NULL;
-
- p_vrtx1 = iso_lines->points; /* first row of vertices */
-- p_edge1 = pe_tail1 = NULL; /* clear list of edges */
-+ p_edge1 = pe_tail = NULL; /* clear list of edges */
-
- /* Generate edges of first row */
-+ /* HBB 19991130: removed effectively unused variable 'pe_tail1' */
- for (j = 0; j < grid_x_max - 1; j++)
-- add_edge(p_vrtx1 + j, p_vrtx1 + j + 1, &p_edge1, &pe_tail1);
-+ add_edge(p_vrtx1 + j, p_vrtx1 + j + 1, &p_edge1, &pe_tail);
-
- (*p_edges) = p_edge1; /* update main list */
-- pe_tail = pe_tail1;
-
-
- /*
-@@ -562,10 +562,16 @@
- * (pe_tail points on last edge).
- *
- * Temporary pointers:
-- * 1. p_edge2: Top horizontal edge list: ----------------------- 2
-- * 2. pe_tail: middle edge list: |\ |\ |\ |\ |\ |\ |
-+ * 1. p_edge2: Top horizontal edge list: +-----------------------+ 2
-+ * 2. p_tail : end of middle edge list: |\ |\ |\ |\ |\ |\ |
- * | \| \| \| \| \| \|
-- * 3. p_edge1: Bottom horizontal edge list: ----------------------- 1
-+ * 3. p_edge1: Bottom horizontal edge list: +-----------------------+ 1
-+ *
-+ * pe_tail2 : end of list beginning at p_edge2
-+ * pe_temp : position inside list beginning at p_edge1
-+ * p_edges : head of the master edge list (part of our output)
-+ * p_vrtx1 : start of lower row of input vertices
-+ * p_vrtx2 : start of higher row of input vertices
- *
- * The routine generates two triangle Lower Upper 1
- * upper one and lower one: | \ ----
-@@ -633,14 +639,21 @@
- upper_tri = add_poly(edge0, edge1, edge2, p_polys, &pp_tail);
- }
-
-- if ((*p_edges)) { /* Chain new edges to main list. */
-- pe_tail->next = p_edge2;
-- pe_tail = pe_tail2;
-- } else {
-- (*p_edges) = p_edge2;
-- pe_tail = pe_tail2;
-+ if (p_edge2) {
-+ /* HBB 19991130 bugfix: if p_edge2 list is empty,
-+ * don't change p_edges list! Crashes by access
-+ * to NULL pointer pe_tail, the second time through,
-+ * otherwise */
-+ if ((*p_edges)) { /* Chain new edges to main list. */
-+ pe_tail->next = p_edge2;
-+ pe_tail = pe_tail2;
-+ } else {
-+ (*p_edges) = p_edge2;
-+ pe_tail = pe_tail2;
-+ }
- }
-
-+ /* this row finished, move list heads up one row: */
- p_edge1 = p_edge2;
- p_vrtx1 = p_vrtx2;
- }
diff --git a/math/gnuplot+/files/patch-xf b/math/gnuplot+/files/patch-xf
deleted file mode 100644
index 23d6991e880d..000000000000
--- a/math/gnuplot+/files/patch-xf
+++ /dev/null
@@ -1,15 +0,0 @@
-# contour-clipping.991202
---- contour.c.ORIG Thu Dec 2 15:15:03 1999
-+++ contour.c Thu Dec 2 15:13:53 1999
-@@ -727,7 +727,11 @@
- {
- struct edge_struct *pe_temp = NULL;
-
-+#if 1
-+ if (point0->type == INRANGE && point1->type == INRANGE) {
-+#else
- if (point0->type != UNDEFINED && point1->type != UNDEFINED) {
-+#endif
-
- pe_temp = (struct edge_struct *)
- gp_alloc((unsigned long) sizeof(struct edge_struct), "contour edge");
diff --git a/math/gnuplot+/files/patch-xg b/math/gnuplot+/files/patch-xg
deleted file mode 100644
index ac93b91b22d0..000000000000
--- a/math/gnuplot+/files/patch-xg
+++ /dev/null
@@ -1,235 +0,0 @@
---- graphics.c.orig Wed Nov 21 17:04:44 2001
-+++ graphics.c Wed Nov 21 17:05:59 2001
-@@ -1373,7 +1373,6 @@
-
- /* label first y axis tics */
- if (ytics) {
-- int axis = map_x(ZERO);
- /* set the globals ytick2d_callback() needs */
-
- if (rotate_ytics && (*t->text_angle) (1)) {
-@@ -1392,8 +1391,8 @@
- else
- tic_mirror = -1; /* no thank you */
-
-- if ((ytics & TICS_ON_AXIS) && !log_array[FIRST_X_AXIS] && inrange(axis, xleft, xright)) {
-- tic_start = axis;
-+ if ((ytics & TICS_ON_AXIS) && !log_array[FIRST_X_AXIS] && inrange(0.0, x_min, x_max)) {
-+ tic_start = map_x(0.0);
- tic_direction = -1;
- if (ytics & TICS_MIRROR)
- tic_mirror = tic_start;
-@@ -1413,7 +1412,6 @@
- }
- /* label first x axis tics */
- if (xtics) {
-- int axis = map_y(ZERO);
- /* set the globals xtick2d_callback() needs */
-
- if (rotate_xtics && (*t->text_angle) (1)) {
-@@ -1430,8 +1428,8 @@
- tic_mirror = ytop;
- else
- tic_mirror = -1; /* no thank you */
-- if ((xtics & TICS_ON_AXIS) && !log_array[FIRST_Y_AXIS] && inrange(axis, ybot, ytop)) {
-- tic_start = axis;
-+ if ((xtics & TICS_ON_AXIS) && !log_array[FIRST_Y_AXIS] && inrange(0.0, y_min, y_max)) {
-+ tic_start = map_y(0.0);
- tic_direction = -1;
- if (xtics & TICS_MIRROR)
- tic_mirror = tic_start;
-@@ -1458,7 +1456,6 @@
- /* label second y axis tics */
- if (y2tics) {
- /* set the globalss ytick2d_callback() needs */
-- int axis = map_x(ZERO);
-
- if (rotate_y2tics && (*t->text_angle) (1)) {
- tic_hjust = CENTRE;
-@@ -1474,8 +1471,8 @@
- tic_mirror = xleft;
- else
- tic_mirror = -1; /* no thank you */
-- if ((y2tics & TICS_ON_AXIS) && !log_array[FIRST_X_AXIS] && inrange(axis, xleft, xright)) {
-- tic_start = axis;
-+ if ((y2tics & TICS_ON_AXIS) && !log_array[FIRST_X_AXIS] && inrange(0.0, x_min, x_max)) {
-+ tic_start = map_x(0.0);
- tic_direction = 1;
- if (y2tics & TICS_MIRROR)
- tic_mirror = tic_start;
-@@ -1494,7 +1491,6 @@
- }
- /* label second x axis tics */
- if (x2tics) {
-- int axis = map_y(ZERO);
- /* set the globals xtick2d_callback() needs */
-
- if (rotate_x2tics && (*t->text_angle) (1)) {
-@@ -1511,8 +1507,8 @@
- tic_mirror = ybot;
- else
- tic_mirror = -1; /* no thank you */
-- if ((x2tics & TICS_ON_AXIS) && !log_array[SECOND_Y_AXIS] && inrange(axis, ybot, ytop)) {
-- tic_start = axis;
-+ if ((x2tics & TICS_ON_AXIS) && !log_array[SECOND_Y_AXIS] && inrange(0.0, y_min, y_max)) {
-+ tic_start = map_y(0.0);
- tic_direction = 1;
- if (x2tics & TICS_MIRROR)
- tic_mirror = tic_start;
-@@ -1564,45 +1560,58 @@
-
- x_axis = FIRST_X_AXIS;
- y_axis = FIRST_Y_AXIS; /* chose scaling */
-- axis_zero[FIRST_Y_AXIS] = map_y(0.0);
-- axis_zero[FIRST_X_AXIS] = map_x(0.0);
-
-- if (axis_zero[FIRST_Y_AXIS] < ybot || is_log_y)
-+ if (y_min >= 0.0 && y_max >= 0.0 || is_log_y)
- axis_zero[FIRST_Y_AXIS] = ybot; /* save for impulse plotting */
-- else if (axis_zero[FIRST_Y_AXIS] >= ytop)
-+ else if (y_min <= 0.0 && y_max <= 0.0)
- axis_zero[FIRST_Y_AXIS] = ytop;
-- else if (xzeroaxis.l_type > -3) {
-- term_apply_lp_properties(&xzeroaxis);
-- (*t->move) (xleft, axis_zero[FIRST_Y_AXIS]);
-- (*t->vector) (xright, axis_zero[FIRST_Y_AXIS]);
-- }
-- if ((yzeroaxis.l_type > -3) && !is_log_x
-- && axis_zero[FIRST_X_AXIS] >= xleft
-- && axis_zero[FIRST_X_AXIS] < xright) {
-- term_apply_lp_properties(&yzeroaxis);
-- (*t->move) (axis_zero[FIRST_X_AXIS], ybot);
-- (*t->vector) (axis_zero[FIRST_X_AXIS], ytop);
-+ else {
-+ axis_zero[FIRST_Y_AXIS] = map_y(0.0);
-+ if (xzeroaxis.l_type > -3) {
-+ term_apply_lp_properties(&xzeroaxis);
-+ (*t->move) (xleft, axis_zero[FIRST_Y_AXIS]);
-+ (*t->vector) (xright, axis_zero[FIRST_Y_AXIS]);
-+ }
-+ }
-+ if (x_min >= 0.0 && x_max >= 0.0)
-+ axis_zero[FIRST_X_AXIS] = xleft;
-+ else if (x_min <= 0.0 && x_max <= 0.0)
-+ axis_zero[FIRST_X_AXIS] = xright;
-+ else {
-+ axis_zero[FIRST_X_AXIS] = map_x(0.0);
-+ if ((yzeroaxis.l_type > -3) && !is_log_x) {
-+ term_apply_lp_properties(&yzeroaxis);
-+ (*t->move) (axis_zero[FIRST_X_AXIS], ybot);
-+ (*t->vector) (axis_zero[FIRST_X_AXIS], ytop);
-+ }
- }
-+
- x_axis = SECOND_X_AXIS;
- y_axis = SECOND_Y_AXIS; /* chose scaling */
-- axis_zero[SECOND_Y_AXIS] = map_y(0.0);
-- axis_zero[SECOND_X_AXIS] = map_x(0.0);
-
-- if (axis_zero[SECOND_Y_AXIS] < ybot || is_log_y2)
-+ if (is_log_y2 || y_min >= 0.0 && y_max >= 0.0)
- axis_zero[SECOND_Y_AXIS] = ybot; /* save for impulse plotting */
-- else if (axis_zero[SECOND_Y_AXIS] >= ytop)
-+ else if (y_min <= 0.0 && y_max <= 0.0)
- axis_zero[SECOND_Y_AXIS] = ytop;
-- else if (x2zeroaxis.l_type > -3) {
-- term_apply_lp_properties(&x2zeroaxis);
-- (*t->move) (xleft, axis_zero[SECOND_Y_AXIS]);
-- (*t->vector) (xright, axis_zero[SECOND_Y_AXIS]);
-- }
-- if ((y2zeroaxis.l_type > -3) && !is_log_x2 &&
-- axis_zero[SECOND_X_AXIS] >= xleft &&
-- axis_zero[SECOND_X_AXIS] < xright) {
-- term_apply_lp_properties(&y2zeroaxis);
-- (*t->move) (axis_zero[SECOND_X_AXIS], ybot);
-- (*t->vector) (axis_zero[SECOND_X_AXIS], ytop);
-+ else {
-+ axis_zero[SECOND_Y_AXIS] = map_y(0.0);
-+ if (x2zeroaxis.l_type > -3) {
-+ term_apply_lp_properties(&x2zeroaxis);
-+ (*t->move) (xleft, axis_zero[SECOND_Y_AXIS]);
-+ (*t->vector) (xright, axis_zero[SECOND_Y_AXIS]);
-+ }
-+ }
-+ if (y_min >= 0.0 && y_max >= 0.0)
-+ axis_zero[SECOND_X_AXIS] = xleft;
-+ else if (x_min <= 0.0 && x_max <= 0.0)
-+ axis_zero[SECOND_X_AXIS] = xright;
-+ else {
-+ axis_zero[SECOND_X_AXIS] = map_x(0.0);
-+ if ((y2zeroaxis.l_type > -3) && !is_log_x2) {
-+ term_apply_lp_properties(&y2zeroaxis);
-+ (*t->move) (axis_zero[SECOND_X_AXIS], ybot);
-+ (*t->vector) (axis_zero[SECOND_X_AXIS], ytop);
-+ }
- }
- /* DRAW PLOT BORDER */
- if (draw_border) {
-@@ -2754,14 +2763,61 @@
- int i;
- int x1, y1, x2, y2;
- struct termentry *t = term;
-+ TBOOLEAN head;
-+ struct coordinate GPHUGE points[2];
-+ double ex, ey;
-+ double lx[2], ly[2];
-
- for (i = 0; i < plot->p_count; i++) {
-- if (plot->points[i].type == INRANGE) {
-- x1 = map_x(plot->points[i].xlow);
-- y1 = map_y(plot->points[i].ylow);
-- x2 = map_x(plot->points[i].xhigh);
-- y2 = map_y(plot->points[i].yhigh);
-- (*t->arrow) (x1, y1, x2, y2, TRUE);
-+ points[0] = plot->points[i];
-+ points[1].x = plot->points[i].xhigh;
-+ points[1].y = plot->points[i].yhigh;
-+ if (inrange(points[1].x, x_min, x_max) &&
-+ inrange(points[1].y, y_min, y_max)) {
-+ /* to inrange */
-+ points[1].type = INRANGE;
-+ x2 = map_x(points[1].x);
-+ y2 = map_y(points[1].y);
-+ head = TRUE;
-+ if (points[0].type == INRANGE) {
-+ x1 = map_x(points[0].x);
-+ y1 = map_y(points[0].y);
-+ (*t->arrow) (x1, y1, x2, y2, head);
-+ } else if (points[0].type == OUTRANGE) {
-+ /* from outrange to inrange */
-+ if (clip_lines1) {
-+ edge_intersect(points, 1, &ex, &ey);
-+ x1 = map_x(ex);
-+ y1 = map_y(ey);
-+ (*t->arrow) (x1, y1, x2, y2, head);
-+ }
-+ }
-+ } else {
-+ /* to outrange */
-+ points[1].type = OUTRANGE;
-+ head = FALSE;
-+ if (points[0].type == INRANGE) {
-+ /* from inrange to outrange */
-+ if (clip_lines1) {
-+ x1 = map_x(points[0].x);
-+ y1 = map_y(points[0].y);
-+ edge_intersect(points, 1, &ex, &ey);
-+ x2 = map_x(ex);
-+ y2 = map_y(ey);
-+ (*t->arrow) (x1, y1, x2, y2, head);
-+ }
-+ } else if (points[0].type == OUTRANGE) {
-+ /* from outrange to outrange */
-+ if (clip_lines2) {
-+ if (two_edge_intersect(points, 1, lx, ly)) {
-+ x1 = map_x(lx[0]);
-+ y1 = map_y(ly[0]);
-+ x2 = map_x(lx[1]);
-+ y2 = map_y(ly[1]);
-+ (*t->arrow) (x1, y1, x2, y2, head);
-+ }
-+ }
-+ }
- }
- }
- }
diff --git a/math/gnuplot+/files/patch-xh b/math/gnuplot+/files/patch-xh
deleted file mode 100644
index 19bc589f116d..000000000000
--- a/math/gnuplot+/files/patch-xh
+++ /dev/null
@@ -1,460 +0,0 @@
-# png-web216.4
---- bitmap.c.ORIG Mon Oct 11 18:10:54 1999
-+++ bitmap.c Thu Dec 2 20:41:29 1999
-@@ -1,5 +1,5 @@
- #ifndef lint
--static char *RCSid = "$Id: bitmap.c,v 1.2.2.2 1999/10/11 17:10:54 lhecking Exp $";
-+static char *RCSid = "$Id: bitmap.c,v 1.2.2.3 1999/11/30 15:07:49 lhecking Exp $";
- #endif
-
- /* GNUPLOT - bitmap.c */
-@@ -846,8 +846,6 @@
- }
-
-
--/* Currently unused */
--#if 1 /* HBB 991008: used by PNG, now */
- /*
- * get pixel (x,y) value
- */
-@@ -857,7 +855,7 @@
- {
- register unsigned int row;
- register unsigned char mask;
-- register unsigned char value;
-+ register unsigned char value = 0;
- int i;
-
- if (b_rastermode) {
-@@ -876,10 +874,10 @@
- row -= b_psize;
- value <<= 1;
- }
-- return(value);
-- }
-- else
-- {
-+/* HBB 991123: the missing '>>1' was the 'every second color' problem
-+ * with PNG in 3.8a...*/
-+ return(value>>1);
-+ } else {
- #ifdef BITMAPDEBUG
- if (b_rastermode)
- fprintf(stderr, "Warning: getpixel(%d,%d) out of bounds\n",
-@@ -890,7 +888,6 @@
- return(0);
- }
- }
--#endif /* 0 */
-
-
- /*
---- bitmap.h.ORIG Wed Sep 29 14:48:16 1999
-+++ bitmap.h Thu Dec 2 20:41:29 1999
-@@ -1,4 +1,4 @@
--/* $Id: bitmap.h,v 1.1.1.2.2.1 1999/09/29 13:48:16 lhecking Exp $ */
-+/* $Id: bitmap.h,v 1.1.1.2.2.2 1999/11/30 15:07:49 lhecking Exp $ */
-
- /* GNUPLOT - bitmap.h */
-
-@@ -101,7 +101,7 @@
- void b_makebitmap __PROTO((unsigned int x, unsigned int y, unsigned int planes));
- void b_freebitmap __PROTO((void));
- void b_setpixel __PROTO((unsigned int x, unsigned int y, unsigned int value));
--/* unused unsigned int b_getpixel __PROTO((unsigned int x, unsigned int y)); */
-+unsigned int b_getpixel __PROTO((unsigned int x, unsigned int y));
- void b_line __PROTO((unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2));
- void b_setmaskpixel __PROTO((unsigned int x, unsigned int y, unsigned int value));
- /* void b_putc __PROTO((unsigned int x, unsigned int y, char c, unsigned int angle)); */
---- term/png.trm.ORIG Tue Oct 19 14:31:28 1999
-+++ term/png.trm Thu Dec 2 20:42:20 1999
-@@ -1,5 +1,5 @@
- /*
-- * $Id: png.trm,v 1.11.2.5 1999/10/19 13:31:28 lhecking Exp $
-+ * $Id: png.trm,v 1.11.2.8 1999/11/30 15:08:44 lhecking Exp $
- *
- */
-
-@@ -42,8 +42,11 @@
- * png
- *
- * AUTHORS
-- * Alexander Lehmann original code,
-- * derived from pbm.trm by Russell Lang.
-+ * Alexander Lehmann
-+ * derived from pbm.trm by Russell Lang
-+ *
-+ * Eric S. Raymond update for pnglib-1.0.3; transparency.
-+ * H.-B. Broeker fixes to Eric's changes
- *
- * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
- *
-@@ -100,56 +103,97 @@
-
- static int png_font = 1; /* small font */
- static int png_mode = 0; /* 0:monochrome 1:gray 2:color */
-+static int png_transparent = 0; /* generate transparent first color */
-
- /* 7=black, 0=white */
- static int png_gray[] = { 7, 1, 6, 5, 4, 3, 2, 1, 7 }; /* grays */
--/* bit3=!intensify, bit2=!red, bit1=!green, bit0=!blue */
--static int png_color_table[] ={ 15, 8, 3, 5, 6, 4, 2, 1, 11, 13, 14 }; /* colors */
--static png_color png_palette[16];
-+static png_color png_palette[WEB_N_COLORS];
-
- TERM_PUBLIC void
- PNG_options()
- {
-- png_font = 1; /* small */
-- png_mode = 0;
-+ unsigned short rgb_color[3];
-+ int n_colors = 0;
-+ char *string;
-+ int i;
-+
-+ rgb_color[0] = 0;
-+ rgb_color[1] = 0;
-+ rgb_color[2] = 0;
-+
-+ png_font = 1; /* small */
-+ png_mode = 2; /* color */
-+ png_transparent = 0; /* use opaque image background */
-
- term_options[0] = NUL;
-
- while (!END_OF_COMMAND) {
-- if (almost_equals(c_token, "s$mall"))
-- png_font = 1;
-- else if (almost_equals(c_token, "me$dium"))
-- png_font = 2;
-- else if (almost_equals(c_token, "l$arge"))
-- png_font = 3;
-- else if (almost_equals(c_token, "mo$nochrome"))
-- png_mode = 0;
-- else if (almost_equals(c_token, "g$ray"))
-- png_mode = 1;
-- else if (almost_equals(c_token, "c$olor")
-- || almost_equals(c_token, "c$olour"))
-- png_mode = 2;
-- else {
-- /* reset to default, since term is already set */
-- png_font = 1;
-- png_mode = 0;
-- int_error("expecting: {small, medium, large}, or {monochrome, gray, color}", c_token);
-- }
-- c_token++;
-+ if (almost_equals(c_token, "s$mall"))
-+ png_font = 1;
-+ else if (almost_equals(c_token, "me$dium"))
-+ png_font = 2;
-+ else if (almost_equals(c_token, "l$arge"))
-+ png_font = 3;
-+ else if (almost_equals(c_token, "mo$nochrome"))
-+ png_mode = 0;
-+ else if (almost_equals(c_token, "g$ray"))
-+ png_mode = 1;
-+ else if (almost_equals(c_token, "c$olor")
-+ || almost_equals(c_token, "c$olour"))
-+ png_mode = 2;
-+ else if (almost_equals(c_token, "t$ransparent"))
-+ png_transparent = 1;
-+ else if (almost_equals(c_token, "not$ransparent"))
-+ png_transparent = 0;
-+ else {
-+ /* set color */
-+ string = input_line + token[c_token].start_index;
-+
-+ if (string[0] == 'x') {
-+ /* HBB 991123: read in as *shorts*, not ints! */
-+ if (sscanf(string, "x%2hx%2hx%2hx", &rgb_color[0], &rgb_color[1], &rgb_color[2] ) != 3) {
-+ int_error("invalid color spec, must be xRRGGBB", c_token);
-+ }
-+ } else
-+ int_error("expecting: {small, medium, large},[no]transparent, or {monochrome, gray, color, [xRRGGBB] }", c_token);
-+
-+ if (n_colors >= WEB_N_COLORS) {
-+ int_warn("too many colors, ingoring", c_token);
-+ /* Magic number abuse guards against
-+ * "> WEB_N_COLORS warning" scroll fests. */
-+ if (!END_OF_COMMAND) {
-+ while (!END_OF_COMMAND)
-+ ++c_token; --c_token;
-+ }
-+ } else {
-+ web_color_rgbs[n_colors].r = rgb_color[0];
-+ web_color_rgbs[n_colors].g = rgb_color[1];
-+ web_color_rgbs[n_colors].b = rgb_color[2];
-+ n_colors++;
-+ }
-+ }
-+ c_token++;
- }
-
- /* setup options string */
-
-+ /* HBB 991008: moved this block to here, so 'transparent' gets
-+ * printed out first. Don't print 'notransparent', for now, to
-+ * protect older gnuplots. Scripts with 'transparent' in them
-+ * won't work as wanted, with older versions, so put it here. */
-+ if (png_transparent)
-+ strcat(term_options, "transparent");
-+
- switch (png_font) {
- case 3:
-- strcat(term_options, "large");
-+ strcat(term_options, " large");
- break;
- case 2:
-- strcat(term_options, "medium");
-+ strcat(term_options, " medium");
- break;
- case 1:
- default:
-- strcat(term_options, "small");
-+ strcat(term_options, " small");
- break;
- }
-
-@@ -166,6 +210,13 @@
- break;
- }
-
-+ for (i=0; i < n_colors ; i++ ) {
-+ sprintf(term_options,"%s x%02x%02x%02x",
-+ term_options,
-+ web_color_rgbs[i].r,
-+ web_color_rgbs[i].g,
-+ web_color_rgbs[i].b);
-+ }
- }
-
-
-@@ -222,7 +273,7 @@
-
- switch (png_mode) {
- case 2:
-- numplanes = 4;
-+ numplanes = 8;
- break;
- case 1:
- numplanes = 3;
-@@ -248,15 +299,15 @@
- TERM_PUBLIC void
- PNG_text()
- {
-- register int x, j, row;
- png_structp png_ptr;
- png_infop info_ptr;
-- register int i, value;
- png_bytep prow;
-- int mask, plane1, plane2, plane3, plane4;
-- int red, green, blue;
- png_text pngtext, *pngtext_copy;
-+ png_byte pal_trans[1];
- char text[100];
-+ register int x, i, j;
-+/* register int row, value; */
-+/* int mask, plane1, plane2, plane3, plane4; */
-
- png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
- if (!png_ptr) {
-@@ -275,6 +326,7 @@
- b_freebitmap();
- return;
- }
-+ memset(prow,0,sizeof(prow));
- if (setjmp(png_ptr->jmpbuf)) {
- png_destroy_write_struct(&png_ptr, &info_ptr);
- free(prow);
-@@ -283,7 +335,7 @@
- }
-
- #ifdef __OLD_PNGLIB__
-- /* deprecated and no longer necessary */
-+ /* deprecated and no longer necessary */
- png_info_init(info_ptr);
- png_write_init(png_ptr); */
- #endif /* __OLD_PNGLIB__ */
-@@ -293,43 +345,48 @@
- info_ptr->width = b_ysize;
- info_ptr->height = b_xsize;
-
-- info_ptr->bit_depth = png_mode == 0 ? 1 : 4;
-+ info_ptr->bit_depth = png_mode == 0 ? 1 : 8;
- info_ptr->color_type = png_mode == 2 ? PNG_COLOR_TYPE_PALETTE :
- PNG_COLOR_TYPE_GRAY;
- if (png_mode == 2) {
- info_ptr->valid |= PNG_INFO_PLTE;
- info_ptr->palette = png_palette;
-- info_ptr->num_palette = 16;
-+ info_ptr->num_palette = sizeof(png_palette)/sizeof(png_palette[0]);
- }
- if (png_mode != 0) {
- info_ptr->valid |= PNG_INFO_sBIT;
- if (png_mode == 1) {
- info_ptr->sig_bit.gray = 3;
- png_set_shift(png_ptr, &(info_ptr->sig_bit));
-- } else {
-- info_ptr->sig_bit.red = 2;
-- info_ptr->sig_bit.green = 2;
-- info_ptr->sig_bit.blue = 2;
-+ }
-+ else {
-+ /* HBB 991123: we're now using the full 8 bits per color
-+ * component... */
-+ info_ptr->sig_bit.red = 8;
-+ info_ptr->sig_bit.green = 8;
-+ info_ptr->sig_bit.blue = 8;
- }
- }
-+
- info_ptr->interlace_type = 0;
-+
- if (png_mode == 0)
- png_set_invert_mono(png_ptr);
-
-- if (png_mode == 2)
-- for (i = 0; i < 16; i++) {
-- red = (i & 4) ? 1 : 3;
-- green = (i & 2) ? 1 : 3;
-- blue = (i & 1) ? 1 : 3;
-- if (i & 8) {
-- red--;
-- green--;
-- blue--;
-- }
-- png_palette[i].red = red * 85;
-- png_palette[i].green = green * 85;
-- png_palette[i].blue = blue * 85;
-+ if (png_mode == 2) {
-+ if (png_transparent) {
-+ info_ptr->valid |= PNG_INFO_tRNS;
-+ info_ptr->num_trans = 1;
-+ pal_trans[0] = 0;
-+ info_ptr->trans=pal_trans;
- }
-+
-+ for (i = 0; i < WEB_N_COLORS; i++) {
-+ png_palette[i].red = web_color_rgbs[i].r;
-+ png_palette[i].green = web_color_rgbs[i].g;
-+ png_palette[i].blue = web_color_rgbs[i].b;
-+ }
-+ }
- sprintf(text, "gnuplot %sversion %s patchlevel %s",
- OS, version, patchlevel);
-
-@@ -339,6 +396,13 @@
- pngtext.text_length = strlen(text);
-
- pngtext_copy = malloc(sizeof(*pngtext_copy));
-+ if (!pngtext_copy) {
-+ png_destroy_write_struct(&png_ptr, &info_ptr);
-+ free(prow);
-+ b_freebitmap();
-+ return;
-+ }
-+ memset(pngtext_copy,0,sizeof(pngtext_copy));
- *pngtext_copy = pngtext;
- info_ptr->num_text = 1;
- info_ptr->text = pngtext_copy;
-@@ -353,6 +417,7 @@
-
- /* dump bitmap in raster mode */
- for (x = b_xsize - 1; x >= 0; x--) {
-+#if 0
- row = (b_ysize / 8) - 1;
- for (j = row; j >= 0; j--) {
- mask = 0x80;
-@@ -382,10 +447,14 @@
- if (png_mode == 1)
- value = 7 - value;
-
-- prow[(row - j) * 8 + i] = (png_byte) value;
-+ prow[(row - j) * 8 + i] = (png_byte) (value & 0xFF) ;
- mask >>= 1;
- }
- }
-+#else
-+ for (j=b_ysize - 1; j>= 0; j--)
-+ prow[j] = (png_byte)b_getpixel(j, x);
-+#endif
- png_write_rows(png_ptr, &prow, 1);
- }
-
-@@ -395,16 +464,42 @@
- b_freebitmap();
- }
-
--
-+/* _linetype(lt) Called to set the line type before text is displayed or
-+ * line(s) plotted. This procedure should select a pen color or line
-+ * style if the device has these capabilities.
-+ * lt is an integer from -2 to 0 or greater.
-+ * An lt of -2 is used for the border of the plot.
-+ * An lt of -1 is used for the X and Y axes.
-+ * lt 0 and upwards are used for plots 0 and upwards.
-+ * If _linetype() is called with lt greater than the available line types,
-+ * it should map it to one of the available line types.
-+ * Most drivers provide 9 different linetypes (lt is 0 to 8).
-+ */
- TERM_PUBLIC void
- PNG_linetype(linetype)
- int linetype;
- {
- switch (png_mode) {
-+ /* HBB 991008: this once made the grid lines and axes (-1) look the
-+ * same as the borders (-2). That's ugly, IMHO. GIF uses a
-+ * dashed line, for this, but libpng doesn't seem able to do
-+ * that. But a look into the palette turns up that color 2
-+ * is grey, and is currently unused... Let's see: */
- case 2:
-- if (linetype >= 9)
-- linetype %= 9;
-- b_setvalue(png_color_table[linetype + 2]);
-+
-+ if (linetype == -2)
-+ linetype = 1;
-+ else if (linetype == -1)
-+ linetype = 2;
-+
-+ else {
-+ /* HBB 991008: moved the += 3 down, so colors 0, 1, 2 are
-+ * _not_ used by the regular plots, as it should be */
-+ if (linetype >= (WEB_N_COLORS - 3))
-+ linetype %= (WEB_N_COLORS - 3);
-+ linetype += 3;
-+ }
-+ b_setvalue(linetype);
- break;
- case 1:
- if (linetype >= 7)
-@@ -462,13 +557,26 @@
- "?png",
- " The `png` terminal driver supports Portable Network Graphics. To compile it,",
- " you will need the third-party libraries \"libpng\" and \"zlib\"; both are",
--" available at ftp://ftp.uu.net/graphics/png. `png` has two options.",
-+" available at http://www.cdrom.com/pub/png/. `png` has four options.",
-+"",
-+" By default, the `png` terminal driver uses a shared Web-friendy palette.",
- "",
- " Syntax:",
- " set terminal png {small | medium | large}",
-+" {transparent | notransparent}",
- " {monochrome | gray | color}",
-+" {<color0> <color1> <color2> ...}",
-+"",
-+" `transparent` instructs the driver to generate transparent PNGs. The first",
-+" color will be the transparent one.",
-+"",
-+" The defaults are small (fontsize) and color. Default size of the output",
-+" is 640*480 pixel. ",
- "",
--" The defaults are small (fontsize) and monochrome. Default size of the output",
--" is 640*480 pixel."
-+" Each color must be of the form 'xrrggbb', where x is the literal character",
-+" 'x' and 'rrggbb' are the red, green and blue components in hex. For example,",
-+" 'x00ff00' is green. The background color is set first, then the border",
-+" colors, then the X & Y axis colors, then the plotting colors. The maximum",
-+" number of colors that can be set is currently 99."
- END_HELP(png)
- #endif /* TERM_HELP */
diff --git a/math/gnuplot+/files/patch-xi b/math/gnuplot+/files/patch-xi
deleted file mode 100644
index d968ad7a165d..000000000000
--- a/math/gnuplot+/files/patch-xi
+++ /dev/null
@@ -1,2118 +0,0 @@
-# hpgl.diff
---- term/hpgl.trm.ORIG Mon Dec 14 18:39:49 1998
-+++ term/hpgl.trm Fri Dec 3 18:32:34 1999
-@@ -35,7 +35,7 @@
- ]*/
-
- /*
-- * This file is included by ../term.c.
-+ * This file is included by ../term.h.
- *
- * This terminal driver supports:
- * hpgl, hp7550, hp7580b, HP Laserjet III
-@@ -57,6 +57,17 @@
- * Modified October 1995 Ian MacPhedran to simplify HPGL terminals
- * Modified January 96 by David Denholm and Emmanuel Bigler for cp850
- * and iso international character sets
-+ * Modified February 99 by Jeremy Brenes to give PCL5 terminal optional
-+ * multi-pen support (6 pen default), a default 34" plotting width for
-+ * use with large color plotters such as the HP Designjet 750C,
-+ * various alternative plot sizes, and variable fontsizes;
-+ * Also decreased the HPGL terminal's fixed fontsize to make it more
-+ * reasonable when plots get scaled to 34"
-+ * Modified July 99 by Jeremy Brenes to make extended plot area smaller;
-+ * added solid/dashed lines option, additional font types, mixed fonts
-+ * Modified November 99 by Jeremy Brenes to add a postscript pointtypes
-+ * option, special purpose negative pointtypes, and a pointsize function
-+ *
- */
- #define HPGL
- #define PCL
-@@ -96,13 +107,19 @@
- /* TERM_PUBLIC void HPGL2_reset __PROTO((void)); */
- TERM_PUBLIC void PCL_reset __PROTO((void));
- TERM_PUBLIC int HPGL2_justify_text __PROTO((enum JUSTIFY just));
-+TERM_PUBLIC int HPGL2_set_font __PROTO((char *font));
-+TERM_PUBLIC void HPGL2_point __PROTO((unsigned int x, unsigned int y, int number));
-+TERM_PUBLIC void HPGL2_neg_point __PROTO((unsigned int x, unsigned int y, int number));
-+TERM_PUBLIC void HPGL2_pointsize __PROTO((double size));
- #define GOT_HPGL_PROTO
- #endif /* TERM_PROTO */
-
- #ifndef TERM_PROTO_ONLY
- #ifdef TERM_BODY
- /*
-- * The maximum plot size, in plotter units:
-+ * The maximum plot size, in plotter units.
-+ * Note that the actual size of larger plots may be limited by
-+ * available printer memory.
- */
-
- #define HPGL_PUPI 1016 /* Plotter units per inch */
-@@ -110,14 +127,20 @@
- #define HPGL_XMAX_A 10000
- #define HPGL_YMAX_A 7500
-
--#define HPGL_XMAX_B 15200
--#define HPGL_YMAX_B 10000
-+#define HPGL_XMAX_B 13000
-+#define HPGL_YMAX_B 7500
-+
-+#define HPGL_XMAX_C 45333
-+#define HPGL_YMAX_C 34000
-+
-+#define HPGL_XMAX_D 52000
-+#define HPGL_YMAX_D 34000
-
- #define HPGL_XMAX HPGL_XMAX_A
- #define HPGL_YMAX HPGL_YMAX_A
-
--#define PCL_XMAX HPGL_XMAX_A
--#define PCL_YMAX (HPGL_YMAX_A-60)
-+#define PCL_XMAX HPGL_XMAX_C
-+#define PCL_YMAX (HPGL_YMAX_C-60)
-
- /*
- * Tic sizes
-@@ -126,27 +149,40 @@
- #define HPGL_VTIC (HPGL_YMAX/70)
- #define HPGL_HTIC (HPGL_YMAX/70)
-
--#define PCL_VTIC (PCL_YMAX/70)
--#define PCL_HTIC (PCL_YMAX/70)
-+#define PCL_VTIC ((HPGL_YMAX_C-60)/320)
-+#define PCL_HTIC ((HPGL_YMAX_C-60)/320)
-
- /*
- * Font size for HPGL
- */
-
--#define HPGL_VCHAR (HPGL_YMAX/100*32/10) /* 3.2% */
--#define HPGL_HCHAR (HPGL_XMAX/100*12/10) /* 1.2% */
-+#define HPGL_VCHAR (HPGL_YMAX/100*8/10) /* 0.8% */
-+#define HPGL_HCHAR (HPGL_XMAX/100*3/10) /* 0.3% */
-
- /*
- * Font size for HPGL/2
- */
-
--#define HPGL2_DEF_POINT 14 /* Height of font */
-+#define HPGL2_DEF_POINT 12 /* Height of font */
-
- #define HPGL2_DEF_PITCH (3 * 72 / (HPGL2_DEF_POINT * 2))
- #define HPGL2_VCHAR ((int) HPGL_PUPI * HPGL2_DEF_POINT / 72)
- #define HPGL2_HCHAR (HPGL2_VCHAR * 2 / 3)
-
- /*
-+ * Point size for HPGL/2
-+ */
-+
-+static double HPGL2_psize = 1.0; /* Default point size */
-+
-+/*
-+ * Number of available pointtypes for HPGL/2
-+ */
-+
-+#define HPGL2_NUM_NOPSPOINTS 6; /* for nopspoints option */
-+#define HPGL2_NUM_PSPOINTS 75; /* for pspoints option */
-+
-+/*
- * Control constants
- */
-
-@@ -196,15 +232,27 @@
-
- /*
- * The default font goes first. Although it is the ugliest, the
-- * stick font is probably supported by the most devices, so it
-- * becomes the default.
-+ * stick font is probably supported by the most devices.
- */
-
--static struct HPGL2_font_str GPFAR HPGL2_font_table[] =
--{
-+static struct HPGL2_font_str GPFAR HPGL2_font_table[] = {
- {"u$nivers", "univers", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4148},
- {"s$tick", "stick", 277, 0, HPGL2_DEF_PITCH, 0.0, 0, 0, 48},
-- {"c$g_times", "cg_times", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4101}
-+ {"cg_t$imes", "cg_times", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4101},
-+ {"z$apf_dingbats", "zapf_dingbats", 364, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4141},
-+ {"an$tique_olive", "antique_olive", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4168},
-+ {"ar$ial", "arial", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 16602},
-+ {"cou$rier", "courier", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4099},
-+ {"g$aramond_antigua", "garamond_antigua", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4197},
-+ {"l$etter_gothic", "letter_gothic", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4102},
-+ {"cg_o$mega", "cg_omega", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4113},
-+ {"al$bertus", "albertus", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 1, 4362},
-+ {"ti$mes_new_roman", "times_new_roman", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 16901},
-+ {"cl$arendon", "clarendon", 277, 1, 0.0, HPGL2_DEF_POINT, 4, 3, 4140},
-+ {"cor$onet", "coronet", 277, 1, 0.0, HPGL2_DEF_POINT, 1, 0, 4116},
-+ {"m$arigold", "marigold", 277, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 4297},
-+ {"tr$uetype_symbols", "truetype_symbols", 621, 1, 0.0, HPGL2_DEF_POINT, 0, 0, 16686},
-+ {"w$ingdings", "wingdings", 18540, 1, 0.0, HPGL2_DEF_POINT, 1, 0, 31402}
- };
-
- #define HPGL2_FONTS (sizeof(HPGL2_font_table) / sizeof (struct HPGL2_font_str))
-@@ -215,8 +263,7 @@
- * most compatable with other HPGL devices.
- */
-
--static struct PCL_mode_str GPFAR PCL_mode_table[] =
--{
-+static struct PCL_mode_str GPFAR PCL_mode_table[] = {
- {"l$andscape", "landscape", "\033&l1O", PCL_XMAX, PCL_YMAX},
- {"p$ortrait", "portrait", "\033&l0O", PCL_YMAX, PCL_XMAX}
- };
-@@ -225,19 +272,18 @@
- static struct PCL_mode_str *PCL_mode = &PCL_mode_table[0];
-
- /*
-- * Various line types and widths to distinguish data sets
-+ * Various line types and widths to distinguish data sets in monochrome
- */
-
--static char *HPGL2_lt[] = { "", "4,2", "5,2", "6,2", "7,2", "8,2" },
-- *HPGL2_pw[] = { ".15", ".12", ".08" };
-+static char *HPGL2_lt[] = { "", ",2", ",2", ",2", ",2", ",2", ",2", ",2" },
-+ *HPGL2_pw[] = { ".24", ".16", ".08"};
-
- #define HPGL2_LINETYPES (sizeof(HPGL2_lt) / sizeof(char *))
- #define HPGL2_PENWIDTHS (sizeof(HPGL2_pw) / sizeof(char *))
-
- /* encoding vector for cp850 , characters 128 (0200) -> 255 (0377) */
-
--static char hpgl_cp_850[128][4] =
--{
-+static char hpgl_cp_850[128][4] = {
-
- /* 0200 */ "\0164\017",
- /* 0201 */ "\016O\017",
-@@ -398,8 +444,7 @@
-
- /* encoding vector for iso-8859-1 , characters 128 (0200) -> 255 (0377) */
-
--static char hpgl_iso_8859_1[128][4] =
--{
-+static char hpgl_iso_8859_1[128][4] = {
-
- /* 0200 */ "",
- /* 0201 */ "",
-@@ -551,8 +596,8 @@
- * Static variables to keep track of where we are, etc.
- */
-
--static int HPGL_ang = 0, HPGL_x = UNKNOWN, HPGL_y = UNKNOWN, HPGL_penstate = UNKNOWN, HPGL_pentype
--= UNKNOWN, HPGL2_in_pe, HPGL2_lost;
-+static int HPGL_ang = 0, HPGL_x = UNKNOWN, HPGL_y = UNKNOWN, HPGL_penstate = UNKNOWN, HPGL_pentype, HPGL2_pentype
-+ = UNKNOWN, HPGL2_in_pe, HPGL2_lost;
-
- /*
- * The subroutines, grouped by function for different versions.
-@@ -560,7 +605,8 @@
-
- static int HPGL_numpen, HPGL_eject;
-
--TERM_PUBLIC void HPGL_options()
-+TERM_PUBLIC void
-+HPGL_options()
- {
- HPGL_numpen = 6; /* default to six pens */
- HPGL_eject = 0; /* default to no eject */
-@@ -581,67 +627,156 @@
- }
-
-
-- sprintf(term_options, "%d pens %s", HPGL_numpen,
-- HPGL_eject ? "eject" : "noeject");
-+ sprintf(term_options, "%d pens %s",
-+ HPGL_numpen, HPGL_eject ? "eject" : "noeject");
- }
-
--TERM_PUBLIC void HPGL2_options()
-+static int HPGL2_color = 1, HPGL2_numpen = 6; /* default to 6 pen color */
-+int HPGL2_dashed = 0; /* current dashed linetype */
-+int HPGL2_solid = 1; /* default to solid lines */
-+int HPGL2_font_num = 0; /* font from options */
-+int HPGL2_font_num_current = 0; /* current font */
-+int pspointset = 0; /* default to standard point types */
-+double HPGL2_point_size = HPGL2_DEF_POINT; /* pointsize from options */
-+double HPGL2_point_size_current = 0; /* current pointsize */
-+
-+TERM_PUBLIC void
-+HPGL2_options()
- {
- struct termentry *t = term;
- int i;
-- double point_size;
-- char tmp_options[MAX_ID_LEN];
-- if (!END_OF_COMMAND) {
-- for (i = 0; i < HPGL2_FONTS &&
-- !almost_equals(c_token, HPGL2_font_table[i].compare); i++);
-- if (i < HPGL2_FONTS) {
-- HPGL2_font = &HPGL2_font_table[i];
-+ char tmp_options[MAX_ID_LEN+1];
-+
-+ if (!END_OF_COMMAND && almost_equals(c_token, "mono$chrome")) {
-+ HPGL2_color = 0;
-+ c_token++;
-+ } else if (!END_OF_COMMAND && almost_equals(c_token, "col$or")) {
-+ HPGL2_color = 1;
-+ c_token++;
-+ if (!END_OF_COMMAND && isanumber(c_token)) {
-+ HPGL2_numpen = (int) real(&token[c_token].l_val);
-+ if (HPGL2_numpen <= 0) {
-+ HPGL2_numpen = 6;
-+ int_error("Number of pens must be a positive", c_token);
-+ }
-+ c_token++;
-+ }
-+ }
-+ if (!END_OF_COMMAND && almost_equals(c_token, "sol$id")) {
-+ HPGL2_solid = 1;
-+ c_token++;
-+ } else if (!END_OF_COMMAND && almost_equals(c_token, "das$hed")) {
-+ HPGL2_solid = 0;
-+ c_token++;
-+ }
-+ if (!END_OF_COMMAND && almost_equals(c_token, "f$ont")) {
-+ c_token++;
-+ if (!END_OF_COMMAND) {
-+ for (i = 0; i < HPGL2_FONTS && !almost_equals(c_token, HPGL2_font_table[i].compare); i++);
-+ if (i < HPGL2_FONTS) {
-+ HPGL2_font = &HPGL2_font_table[i];
-+ HPGL2_font_num = i;
-+ HPGL2_font_num_current = HPGL2_font_num;
-+ } else
-+ int_error
-+ ("expecting font: stick, cg_times, univers, zapf_dingbats, antique_olive,\narial, courier, garamond_antigua, letter_gothic, cg_omega, albertus,\ntimes_new_roman, clarendon, coronet, marigold, truetype_symbols, or wingdings",
-+ c_token);
-+ c_token++;
- } else
-- int_error("expecting font: stick, cg_times, or univers", c_token);
-+ int_error
-+ ("expecting font: stick, cg_times, univers, zapf_dingbats, antique_olive,\narial, courier, garamond_antigua, letter_gothic, cg_omega, albertus,\ntimes_new_roman, clarendon, coronet, marigold, truetype_symbols, or wingdings",
-+ c_token);
-+ }
-+ if (!END_OF_COMMAND && almost_equals(c_token, "s$ize")) {
- c_token++;
- if (!END_OF_COMMAND) {
-- if ((point_size = real(&token[c_token].l_val)) > 0.0) {
-- t->v_char = (int) HPGL_PUPI *point_size / 72;
-+ if ((HPGL2_point_size = real(&token[c_token].l_val)) > 0.0) {
-+ HPGL2_point_size_current = HPGL2_point_size;
-+ t->v_char = (int) HPGL_PUPI *HPGL2_point_size / 72;
- t->h_char = t->v_char * 2 / 3;
- if (HPGL2_font->spacing)
-- HPGL2_font->height = point_size;
-+ HPGL2_font->height = HPGL2_point_size;
- else
-- HPGL2_font->pitch = 72 * 3 / (point_size * 2);
-+ HPGL2_font->pitch = 72 * 3 / (HPGL2_point_size * 2);
- } else
-- int_error("expecting font point size: real number", c_token);
-+ int_error("expecting point size: real number", c_token);
- c_token++;
-- }
-+ } else
-+ int_error("expecting point size: real number", c_token);
- }
-- sprintf(tmp_options, " %s", HPGL2_font->name);
-+ if (!END_OF_COMMAND && almost_equals(c_token, "n$opspoints")) {
-+ c_token++;
-+ pspointset = 0;
-+ } else if (!END_OF_COMMAND && almost_equals(c_token, "p$spoints")) {
-+ c_token++;
-+ pspointset = 1;
-+ }
-+ sprintf(tmp_options, "\ndisplay: %s", HPGL2_color ? "color" : "monochrome");
-+ strcat(term_options, tmp_options);
-+ if (HPGL2_color == 1) {
-+ sprintf(tmp_options, "\npens: %d", HPGL2_numpen);
-+ strcat(term_options, tmp_options);
-+ }
-+ sprintf(tmp_options, "\nlines: %s", HPGL2_solid ? "solid" : "dashed");
-+ strcat(term_options, tmp_options);
-+ sprintf(tmp_options, "\nfont: %s", HPGL2_font->name);
- strcat(term_options, tmp_options);
- if (HPGL2_font->spacing) {
-- sprintf(tmp_options, " %f",
-- HPGL2_font->height);
-+ sprintf(tmp_options, "\nfont height: %f", HPGL2_font->height);
- strcat(term_options, tmp_options);
- } else {
-- sprintf(tmp_options, " %f",
-- HPGL2_font->pitch);
-+ sprintf(tmp_options, "\nfont pitch: %f\n", HPGL2_font->pitch);
- strcat(term_options, tmp_options);
- }
-+ sprintf(tmp_options, "\npoint types: %s", pspointset ? "pspoints" : "nopspoints");
-+ strcat(term_options, tmp_options);
- }
-
--TERM_PUBLIC void PCL_options()
-+char *PCL_dim = "noextended"; /* default plotting dimensions */
-+
-+TERM_PUBLIC void
-+PCL_options()
- {
- int i;
-- if (!END_OF_COMMAND) {
-- for (i = 0; i < PCL_MODES &&
-- !almost_equals(c_token, PCL_mode_table[i].compare); i++);
-- if (i < PCL_MODES)
-- PCL_mode = &PCL_mode_table[i];
-- else
-+ if (!END_OF_COMMAND && almost_equals(c_token, "m$ode")) {
-+ c_token++;
-+ if (!END_OF_COMMAND) {
-+ for (i = 0; i < PCL_MODES && !almost_equals(c_token, PCL_mode_table[i].compare); i++);
-+ if (i < PCL_MODES)
-+ PCL_mode = &PCL_mode_table[i];
-+ else
-+ int_error("expecting mode: portrait or landscape", c_token);
-+ c_token++;
-+ } else
- int_error("expecting mode: portrait or landscape", c_token);
-+ }
-+ if (!END_OF_COMMAND && almost_equals(c_token, "ext$ended")) {
-+ PCL_mode->xmax = (HPGL_XMAX_D);
-+ PCL_mode->ymax = (HPGL_YMAX_D - 60);
-+ PCL_dim = "extended";
-+ c_token++;
-+ } else if (!END_OF_COMMAND && almost_equals(c_token, "noext$ended")) {
-+ PCL_mode->xmax = (HPGL_XMAX_C);
-+ PCL_mode->ymax = (HPGL_YMAX_C - 60);
-+ PCL_dim = "noextended";
-+ c_token++;
-+ } else if (!END_OF_COMMAND && almost_equals(c_token, "leg$al")) {
-+ PCL_mode->xmax = (HPGL_XMAX_B);
-+ PCL_mode->ymax = (HPGL_YMAX_B - 60);
-+ PCL_dim = "legal";
-+ c_token++;
-+ } else if (!END_OF_COMMAND && almost_equals(c_token, "let$ter")) {
-+ PCL_mode->xmax = (HPGL_XMAX_A);
-+ PCL_mode->ymax = (HPGL_YMAX_A - 60);
-+ PCL_dim = "letter";
- c_token++;
- }
-- sprintf(term_options, " %s", PCL_mode->name);
-+ sprintf(term_options, "\nmode: %s\ndimensions: %s", PCL_mode->name, PCL_dim);
- HPGL2_options();
- }
-
--TERM_PUBLIC void HPGL_init()
-+TERM_PUBLIC void
-+HPGL_init()
- {
- }
-
-@@ -649,7 +784,8 @@
- {
- } */
-
--TERM_PUBLIC void PCL_init()
-+TERM_PUBLIC void
-+PCL_init()
- {
- struct termentry *t = term;
- /*
-@@ -659,9 +795,17 @@
- fprintf(gpoutfile, "\033E\033&l1X%s\n", PCL_mode->command);
- t->xmax = PCL_mode->xmax;
- t->ymax = PCL_mode->ymax;
-+/*
-+ * Enter HPGL/2 graphics mode
-+ * Necessary here to keep the first DI0,1DI1,0 orientation command from being
-+ * printed as literal text on the page for some devices. Hopefully this
-+ * workaround has no bad consequences elsewhere; omit this line if it does.
-+ */
-+ fputs("\033%0B", gpoutfile);
- }
-
--TERM_PUBLIC void HPGL_graphics()
-+TERM_PUBLIC void
-+HPGL_graphics()
- {
- fputs("\033.Y\n\033.I81;;17:\033.N;19:\033.M500:\n", gpoutfile);
- /* 1
-@@ -682,7 +826,8 @@
- HPGL_ang = 0;
- }
-
--TERM_PUBLIC void HPGL2_graphics()
-+TERM_PUBLIC void
-+HPGL2_graphics()
- {
- /*
- * IN - Initialize
-@@ -695,8 +840,22 @@
- fprintf(gpoutfile, "4,%f,", HPGL2_font->height);
- else
- fprintf(gpoutfile, "3,%f,", HPGL2_font->pitch);
-- fprintf(gpoutfile, "5,%d,6,%d,7,%d\n", HPGL2_font->posture,
-- HPGL2_font->stroke_weight, HPGL2_font->typeface);
-+ fprintf(gpoutfile, "5,%d,6,%d,7,%d;SS;\n",
-+ HPGL2_font->posture, HPGL2_font->stroke_weight, HPGL2_font->typeface);
-+/*
-+ * Add a set of user-defined dashed linetypes if the dashed option is
-+ * selected. Of course, the UL's below can be edited to user preference.
-+ */
-+ if (HPGL2_solid == 0) {
-+ fprintf(gpoutfile, "UL1,100;\n");
-+ fprintf(gpoutfile, "UL2,8,8,9,8,8,9,8,8,9,8,8,9;\n");
-+ fprintf(gpoutfile, "UL3,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7;\n");
-+ fprintf(gpoutfile, "UL4,5,5,5,10,5,5,5,10,5,5,5,10;\n");
-+ fprintf(gpoutfile, "UL5,5,5,5,5,5,8,5,5,5,5,5,8,5,5,5,5,5,9;\n");
-+ fprintf(gpoutfile, "UL6,8,8,0,9,8,8,0,9,8,8,0,9;\n");
-+ fprintf(gpoutfile, "UL7,4,4,4,4,0,4,4,4,4,4,0,4,4,4,4,4,0,4;\n");
-+ fprintf(gpoutfile, "UL8,6,6,6,6,6,6,0,6,6,6,6,6,6,6,0,6;\n");
-+ }
- /*
- * Control variables
- */
-@@ -706,7 +865,8 @@
- HPGL_penstate = UP; /* Pen is up */
- }
-
--TERM_PUBLIC void PCL_graphics()
-+TERM_PUBLIC void
-+PCL_graphics()
- {
- /*
- * Enter HPGL/2 graphics mode
-@@ -715,7 +875,8 @@
- HPGL2_graphics();
- }
-
--TERM_PUBLIC void HPGL_text()
-+TERM_PUBLIC void
-+HPGL_text()
- {
- if (HPGL_eject == 0) {
- fputs("PUSP0;\033.Z\n\0", gpoutfile);
-@@ -737,7 +898,8 @@
- }
-
- #if 0 /* not used */
--void HPGL2_text()
-+void
-+HPGL2_text()
- {
- /*
- * If in Polyline Encoded command, leave Polyline Encoded command
-@@ -750,10 +912,12 @@
- * Pen up, park pen
- */
- fputs("PUSP0;", gpoutfile);
-+ HPGL_penstate = UP;
- }
- #endif
-
--TERM_PUBLIC void PCL_text()
-+TERM_PUBLIC void
-+PCL_text()
- {
- if (HPGL2_in_pe) {
- fputs(";\n", gpoutfile);
-@@ -765,7 +929,8 @@
- fputs("\033%1A\033&l0H\n\0", gpoutfile);
- }
-
--TERM_PUBLIC void HPGL_linetype(linetype)
-+TERM_PUBLIC void
-+HPGL_linetype(linetype)
- int linetype;
- {
- /* allow for set number of pens */
-@@ -778,7 +943,8 @@
- }
- }
-
--TERM_PUBLIC void HPGL2_linetype(linetype)
-+TERM_PUBLIC void
-+HPGL2_linetype(linetype)
- int linetype;
- {
- /*
-@@ -788,31 +954,57 @@
- fputs(";\n", gpoutfile);
- HPGL2_in_pe = 0;
- }
--/*
-- * Allow for lots of linetypes
-- */
-- if (linetype >= 0)
-- linetype = linetype % (HPGL2_LINETYPES * HPGL2_PENWIDTHS);
-- if (linetype != HPGL_pentype) {
-+/* allow for set number of pens for color displays */
-+ if (HPGL2_color == 1) {
- if (linetype >= 0) {
-- fprintf(gpoutfile, "PW%sLT%s",
-- HPGL2_pw[linetype / HPGL2_LINETYPES],
-- HPGL2_lt[linetype % HPGL2_LINETYPES]);
-- } else if (linetype == -2)
--/*
-- * Borders and tics
-- */
-- fprintf(gpoutfile, "PW.2LT");
-- else if (linetype == -1)
--/*
-- * Axes and grids
-- */
-- fprintf(gpoutfile, "PW.1LT1,.25");
-- HPGL_pentype = linetype;
-+ if (HPGL2_solid == 0)
-+ HPGL2_dashed = linetype % HPGL2_LINETYPES + 1;
-+ linetype = (linetype + 2) % HPGL2_numpen + 1;
-+ }
-+/* only select pen if necessary */
-+ if (linetype != HPGL2_pentype) {
-+ if (linetype >= 0) {
-+ if (HPGL2_solid == 0) {
-+ fprintf(gpoutfile, "PU;\nSP%d;\nLT%d;", linetype, HPGL2_dashed);
-+ } else
-+ fprintf(gpoutfile, "PU;\nSP%d;\nLT;", linetype);
-+/* Borders and Tics */
-+ } else if (linetype == -2) {
-+ fprintf(gpoutfile, "PU;\nSP1;\nPW.2LT");
-+/* Axes and Grids */
-+ } else if (linetype == -1)
-+ fprintf(gpoutfile, "PU;\nSP1;\nPW.2LT1,.25");
-+ HPGL_penstate = UP;
-+ HPGL2_pentype = linetype;
-+ }
-+/* allow for lots of linetypes for monochrome displays */
-+ } else {
-+ if (linetype >= 0) {
-+ if (HPGL2_solid == 0)
-+ HPGL2_dashed = linetype % HPGL2_LINETYPES + 1;
-+ linetype = linetype % (HPGL2_LINETYPES * HPGL2_PENWIDTHS);
-+ }
-+/* only select pen if necessary */
-+ if (linetype != HPGL2_pentype) {
-+ if (linetype >= 0) {
-+ if (HPGL2_solid == 0) {
-+ fprintf(gpoutfile, "PW%sLT%d%s", HPGL2_pw[linetype / HPGL2_LINETYPES], HPGL2_dashed,
-+ HPGL2_lt[linetype % HPGL2_LINETYPES]);
-+ } else
-+ fprintf(gpoutfile, "PW%sLT", HPGL2_pw[linetype / HPGL2_LINETYPES]);
-+/* Borders and Tics */
-+ } else if (linetype == -2) {
-+ fprintf(gpoutfile, "PW.2LT");
-+/* Axes and Grids */
-+ } else if (linetype == -1)
-+ fprintf(gpoutfile, "PW.1LT1,.25");
-+ HPGL2_pentype = linetype;
-+ }
- }
- }
-
--TERM_PUBLIC void HPGL_put_text(x, y, str)
-+TERM_PUBLIC void
-+HPGL_put_text(x, y, str)
- unsigned int x, y;
- char *str;
- {
-@@ -842,7 +1034,8 @@
- fprintf(gpoutfile, "LB%s\003\n", str);
- }
-
--TERM_PUBLIC void HPGL2_put_text(x, y, str)
-+TERM_PUBLIC void
-+HPGL2_put_text(x, y, str)
- unsigned int x, y;
- char *str;
- {
-@@ -867,12 +1060,14 @@
- fprintf(gpoutfile, "LB%s\003\n", str);
- HPGL2_lost = 1;
- }
-+
- /*
- * Some early HPGL plotters (e.g. HP7220C) require the
- * Pen Up/Down and Pen (move) Absolute commands to be separate.
- */
-
--TERM_PUBLIC void HPGL_move(x, y)
-+TERM_PUBLIC void
-+HPGL_move(x, y)
- unsigned int x, y;
- {
- if (HPGL_x != x || HPGL_y != y) { /* only move if necessary */
-@@ -883,7 +1078,8 @@
- }
- }
-
--TERM_PUBLIC void HPGL_vector(x, y)
-+TERM_PUBLIC void
-+HPGL_vector(x, y)
- unsigned int x, y;
- {
- if (HPGL_penstate != DOWN) {
-@@ -895,7 +1091,8 @@
- HPGL_y = y;
- }
-
--TERM_PUBLIC void HPGL2_move(x, y)
-+TERM_PUBLIC void
-+HPGL2_move(x, y)
- unsigned int x, y;
- {
- register int dx, dy;
-@@ -931,7 +1128,8 @@
- HPGL_y = y;
- }
-
--TERM_PUBLIC void HPGL2_vector(x, y)
-+TERM_PUBLIC void
-+HPGL2_vector(x, y)
- unsigned int x, y;
- {
- register int dx, dy;
-@@ -977,7 +1175,8 @@
- * Routine to encode position in base 32 or base 64 characters
- */
-
--TERM_PUBLIC void HPGL2_encode(d)
-+TERM_PUBLIC void
-+HPGL2_encode(d)
- register int d;
- {
- register int c;
-@@ -993,7 +1192,8 @@
- } while (d > 0);
- }
-
--TERM_PUBLIC int HPGL_text_angle(ang)
-+TERM_PUBLIC int
-+HPGL_text_angle(ang)
- int ang;
- {
- HPGL_ang = ang;
-@@ -1010,7 +1210,8 @@
- return TRUE;
- }
-
--TERM_PUBLIC int HPGL2_text_angle(ang)
-+TERM_PUBLIC int
-+HPGL2_text_angle(ang)
- int ang;
- {
- /*
-@@ -1034,7 +1235,8 @@
- return TRUE;
- }
-
--TERM_PUBLIC void HPGL_reset()
-+TERM_PUBLIC void
-+HPGL_reset()
- {
- /*
- * do nothing
-@@ -1042,7 +1244,8 @@
- }
-
- #if 0
--void HPGL2_reset()
-+void
-+HPGL2_reset()
- {
- /*
- * Park the pen
-@@ -1054,7 +1257,8 @@
-
- #endif
-
--TERM_PUBLIC void PCL_reset()
-+TERM_PUBLIC void
-+PCL_reset()
- {
- /*
- * Return to PCL mode
-@@ -1063,7 +1267,8 @@
- fputs("\033%0A\033E\n", gpoutfile);
- }
-
--TERM_PUBLIC int HPGL2_justify_text(just)
-+TERM_PUBLIC int
-+HPGL2_justify_text(just)
- enum JUSTIFY just;
- {
- /*
-@@ -1089,6 +1294,1285 @@
- return 1;
- }
-
-+TERM_PUBLIC int
-+HPGL2_set_font(font)
-+char *font;
-+{
-+ struct termentry *t = term;
-+ char name[MAX_ID_LEN+1];
-+ int i, sep, int_size, sep2;
-+ double size;
-+/*
-+ * If in Polyline Encoded command, leave Polyline Encoded command
-+ */
-+ if (HPGL2_in_pe) {
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ }
-+/* determine font, use default from options if invalid */
-+ sep = strcspn(font, ",");
-+ strncpy(name, font, sep);
-+ name[sep] = NUL;
-+ for (i = 0; i < HPGL2_FONTS; i++) {
-+ sep2 = strcspn(HPGL2_font_table[i].compare, "$");
-+ if (strncmp(name, HPGL2_font_table[i].compare, sep2) == 0)
-+ break;
-+ }
-+ if (i >= HPGL2_FONTS)
-+ i = HPGL2_font_num;
-+/* determine font size, use default from options if invalid */
-+ sscanf(&(font[sep + 1]), "%d", &int_size);
-+ if (int_size > 0) {
-+ size = int_size;
-+ } else
-+ size = HPGL2_point_size;
-+/* apply font changes only if necessary */
-+ if (size == HPGL2_point_size_current && i == HPGL2_font_num_current)
-+ return FALSE;
-+ HPGL2_font = &HPGL2_font_table[i];
-+ HPGL2_font_num_current = i;
-+ HPGL2_point_size_current = size;
-+ t->v_char = (int) HPGL_PUPI *HPGL2_point_size_current / 72;
-+ t->h_char = t->v_char * 2 / 3;
-+ fprintf(gpoutfile, "SD1,%d,2,%d,",
-+ HPGL2_font->symbol_set, HPGL2_font->spacing);
-+ if (HPGL2_font->spacing) {
-+ HPGL2_font->height = HPGL2_point_size_current;
-+ fprintf(gpoutfile, "4,%f,", HPGL2_font->height);
-+ } else {
-+ HPGL2_font->pitch = 72 * 3 / (HPGL2_point_size_current * 2);
-+ fprintf(gpoutfile, "3,%f,", HPGL2_font->pitch);
-+ }
-+ fprintf(gpoutfile, "5,%d,6,%d,7,%d;SS;\n",
-+ HPGL2_font->posture,
-+ HPGL2_font->stroke_weight, HPGL2_font->typeface);
-+ return TRUE;
-+}
-+
-+TERM_PUBLIC void
-+HPGL2_point(x, y, number)
-+unsigned int x, y;
-+int number;
-+{
-+ int htic, vtic;
-+ if (pspointset) { /* postscript style points */
-+ if (number < 0) {
-+ HPGL2_neg_point(x, y, number);
-+ } else {
-+ htic = (int) (HPGL2_psize * PCL_HTIC / 2);
-+ vtic = (int) (HPGL2_psize * PCL_VTIC / 2);
-+ number %= HPGL2_NUM_PSPOINTS;
-+ switch (number) {
-+ case 0: /* plus */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x, y + vtic);
-+ break;
-+ case 1: /* X */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_move(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ break;
-+ case 2: /* star */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_move(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ break;
-+ case 3: /* hollow square 1 */
-+ HPGL2_move(x - (3 * htic / 4), y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y - (3 * vtic / 4));
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 4: /* solid square 1 */
-+ HPGL2_move(x - (3 * htic / 4), y - (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%.2f,%.2f;EP;\n", ((double) x + (3 * htic / 4)), ((double) y + (3 * vtic / 4)));
-+ break;
-+ case 5: /* hollow circle 1 */
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case 6: /* solid circle 1 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%.2f,0,360;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case 7: /* hollow triangle 1 */
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * sqrt(3) * htic / 8), y - (3 * vtic / 8));
-+ HPGL2_vector(x + (3 * sqrt(3) * htic / 8), y - (3 * vtic / 8));
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 8: /* solid triangle 1 */
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - (3 * sqrt(3) * htic / 8), y - (3 * vtic / 8));
-+ HPGL2_vector(x + (3 * sqrt(3) * htic / 8), y - (3 * vtic / 8));
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 9: /* hollow triangle 2 */
-+ HPGL2_move(x, y - (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * sqrt(3) * htic / 8), y + (3 * vtic / 8));
-+ HPGL2_vector(x + (3 * sqrt(3) * htic / 8), y + (3 * vtic / 8));
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 10: /* solid triangle 2 */
-+ HPGL2_move(x, y - (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - (3 * sqrt(3) * htic / 8), y + (3 * vtic / 8));
-+ HPGL2_vector(x + (3 * sqrt(3) * htic / 8), y + (3 * vtic / 8));
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 11: /* hollow diamond 1 */
-+ HPGL2_move(x - (3 * htic / 4), y);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y);
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 12: /* solid diamond 1 */
-+ HPGL2_move(x - (3 * htic / 4), y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y);
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 13: /* hollow pentagon 1 */
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x - (cos(.1 * acos(-1)) * 3 * htic / 4), y + (sin(.1 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x - (sin(.2 * acos(-1)) * 3 * htic / 4), y - (cos(.2 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x + (sin(.2 * acos(-1)) * 3 * htic / 4), y - (cos(.2 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x + (cos(.1 * acos(-1)) * 3 * htic / 4), y + (sin(.1 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 14: /* solid pentagon */
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - (cos(.1 * acos(-1)) * 3 * htic / 4), y + (sin(.1 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x - (sin(.2 * acos(-1)) * 3 * htic / 4), y - (cos(.2 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x + (sin(.2 * acos(-1)) * 3 * htic / 4), y - (cos(.2 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x + (cos(.1 * acos(-1)) * 3 * htic / 4), y + (sin(.1 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 15: /* hollow circle 2 */
-+ HPGL2_move(x, y + vtic);
-+ HPGL2_vector(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%d;\n", htic);
-+ break;
-+ case 16: /* semisolid circle 1 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,0,90;EP;EW%d,90,270;\n", htic, htic);
-+ break;
-+ case 17: /* semisolid circle 2 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,90,90;EP;EW%d,180,270;\n", htic, htic);
-+ break;
-+ case 18: /* semisolid circle 3 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,0,180;EP;EW%d,180,180;\n", htic, htic);
-+ break;
-+ case 19: /* semisolid circle 4 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,180,90;EP;EW%d,270,270;\n", htic, htic);
-+ break;
-+ case 20: /* semisolid circle 5 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,0,90;EP;EW%d,90,90;WG%d,180,90;EP;EW%d,270,90;\n", htic, htic, htic, htic);
-+ break;
-+ case 21: /* semisolid circle 6 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,90,180;EP;EW%d,270,180;\n", htic, htic);
-+ break;
-+ case 22: /* semisolid circle 7 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,0,270;EP;EW%d,270,90;\n", htic, htic);
-+ break;
-+ case 23: /* semisolid circle 8 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,270,90;EP;EW%d,0,270;\n", htic, htic);
-+ break;
-+ case 24: /* semisolid circle 9 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,270,180;EP;EW%d,90,180;\n", htic, htic);
-+ break;
-+ case 25: /* semisolid circle 10 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,90,90;EP;EW%d,180,90;WG%d,270,90;EP;EW%d,0,90;\n", htic, htic, htic, htic);
-+ break;
-+ case 26: /* semisolid circle 11 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,270,270;EP;EW%d,180,90;\n", htic, htic);
-+ break;
-+ case 27: /* semisolid circle 12 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,180,180;EP;EW%d,0,180;\n", htic, htic);
-+ break;
-+ case 28: /* semisolid circle 13 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,180,270;EP;EW%d,90,90;\n", htic, htic);
-+ break;
-+ case 29: /* semisolid circle 14 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,90,270;EP;EW%d,0,90;\n", htic, htic);
-+ break;
-+ case 30: /* solid circle 2 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%d,0,360;EP;\n", htic);
-+ break;
-+ case 31: /* hollow square 2 */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_move(x, y + vtic);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 32: /* semisolid square 1 */
-+ HPGL2_move(x, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y + vtic);
-+ break;
-+ case 33: /* semisolid square 2 */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x - htic, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x, y + vtic);
-+ break;
-+ case 34: /* semisolid square 3 */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x - htic, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y + vtic);
-+ break;
-+ case 35: /* semisolid square 4 */
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x, y);
-+ break;
-+ case 36: /* semisolid square 5 */
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x, y);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y + vtic);
-+ break;
-+ case 37: /* semisolid square 6 */
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x, y + vtic);
-+ break;
-+ case 38: /* semisolid square 7 */
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y + vtic);
-+ break;
-+ case 39: /* semisolid square 8 */
-+ HPGL2_move(x + htic, y);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y);
-+ break;
-+ case 40: /* semisolid square 9 */
-+ HPGL2_move(x, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y + vtic);
-+ break;
-+ case 41: /* semisolid square 10 */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_move(x + htic, y);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x - htic, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x, y + vtic);
-+ HPGL2_move(x, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y);
-+ break;
-+ case 42: /* semisolid square 11 */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y + vtic);
-+ HPGL2_move(x - htic, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x, y + vtic);
-+ break;
-+ case 43: /* semisolid square 12 */
-+ HPGL2_move(x + htic, y);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y);
-+ break;
-+ case 44: /* semisolid square 13 */
-+ HPGL2_move(x, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y + vtic);
-+ break;
-+ case 45: /* semisolid square 14 */
-+ HPGL2_move(x + htic, y);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y);
-+ HPGL2_move(x - htic, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x, y + vtic);
-+ break;
-+ case 46: /* solid square 2 */
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "RA%d,%d;EP;\n", x + htic, y + vtic);
-+ break;
-+ case 47: /* hollow diamond 2 */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_move(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y);
-+ break;
-+ case 48: /* semisolid diamond 1 */
-+ HPGL2_move(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 49: /* semisolid diamond 2 */
-+ HPGL2_move(x - (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 50: /* semisolid diamond 3 */
-+ HPGL2_move(x - (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 51: /* semisolid diamond 4 */
-+ HPGL2_move(x + (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 52: /* semisolid diamond 5 */
-+ HPGL2_move(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ HPGL2_move(x + (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 53: /* semisolid diamond 6 */
-+ HPGL2_move(x + (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 54: /* semisolid diamond 7 */
-+ HPGL2_move(x + (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 55: /* semisolid diamond 8 */
-+ HPGL2_move(x + (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 56: /* semisolid diamond 9 */
-+ HPGL2_move(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 57: /* semisolid diamond 10 */
-+ HPGL2_move(x + (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ HPGL2_move(x - (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 58: /* semisolid diamond 11 */
-+ HPGL2_move(x - (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 59: /* semisolid diamond 12 */
-+ HPGL2_move(x + (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 60: /* semisolid diamond 13 */
-+ HPGL2_move(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x - (htic / 2), y - (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 61: /* semisolid diamond 14 */
-+ HPGL2_move(x + (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y);
-+ HPGL2_vector(x - (htic / 2), y + (vtic / 2));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 62: /* solid diamond 2 */
-+ HPGL2_move(x - htic, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FP;EP;\n");
-+ break;
-+ case 63: /* hollow square 3 */
-+ HPGL2_move(x - (3 * htic / 4), y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y - (3 * vtic / 4));
-+ break;
-+ case 64: /* hollow circle 3 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case 65: /* hollow triangle 3 */
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * sqrt(3) * htic / 8), y - (3 * vtic / 8));
-+ HPGL2_vector(x + (3 * sqrt(3) * htic / 8), y - (3 * vtic / 8));
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ break;
-+ case 66: /* hollow triangle 4 */
-+ HPGL2_move(x, y - (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * sqrt(3) * htic / 8), y + (3 * vtic / 8));
-+ HPGL2_vector(x + (3 * sqrt(3) * htic / 8), y + (3 * vtic / 8));
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ break;
-+ case 67: /* hollow diamond 3 */
-+ HPGL2_move(x - (3 * htic / 4), y);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y);
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ break;
-+ case 68: /* hollow pentagon 2 */
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x - (cos(.1 * acos(-1)) * 3 * htic / 4), y + (sin(.1 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x - (sin(.2 * acos(-1)) * 3 * htic / 4), y - (cos(.2 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x + (sin(.2 * acos(-1)) * 3 * htic / 4), y - (cos(.2 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x + (cos(.1 * acos(-1)) * 3 * htic / 4), y + (sin(.1 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ break;
-+ case 69: /* opaque square */
-+ HPGL2_move(x - htic, y - vtic);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "FT10,30;RA%d,%d;EP;FT;\n", x + (3 * htic / 4), y + (3 * vtic / 4));
-+ break;
-+ case 70: /* opaque circle */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "FT10,30;WG%.2f,0,360;EP;FT;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case 71: /* opaque triangle 1 */
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - (3 * sqrt(3) * htic / 8), y - (3 * vtic / 8));
-+ HPGL2_vector(x + (3 * sqrt(3) * htic / 8), y - (3 * vtic / 8));
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FT10,30;FP;EP;FT;\n");
-+ break;
-+ case 72: /* opaque triangle 2 */
-+ HPGL2_move(x, y - (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - (3 * sqrt(3) * htic / 8), y + (3 * vtic / 8));
-+ HPGL2_vector(x + (3 * sqrt(3) * htic / 8), y + (3 * vtic / 8));
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FT10,30;FP;EP;FT;\n");
-+ break;
-+ case 73: /* opaque diamond */
-+ HPGL2_move(x - (3 * htic / 4), y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y);
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FT10,30;FP;EP;FT;\n");
-+ break;
-+ case 74: /* opaque pentagon */
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM0;\n");
-+ HPGL2_vector(x - (cos(.1 * acos(-1)) * 3 * htic / 4), y + (sin(.1 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x - (sin(.2 * acos(-1)) * 3 * htic / 4), y - (cos(.2 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x + (sin(.2 * acos(-1)) * 3 * htic / 4), y - (cos(.2 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x + (cos(.1 * acos(-1)) * 3 * htic / 4), y + (sin(.1 * acos(-1)) * 3 * vtic / 4));
-+ HPGL2_vector(x, y + (3 * vtic / 4));
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "PM2;FT10,30;FP;EP;FT;\n");
-+ break;
-+ }
-+ }
-+ } else { /* default style points */
-+ if (number < 0) {
-+ HPGL2_neg_point(x, y, number);
-+ } else {
-+ htic = (int) (HPGL2_psize * PCL_HTIC / 2);
-+ vtic = (int) (HPGL2_psize * PCL_VTIC / 2);
-+ number %= HPGL2_NUM_NOPSPOINTS;
-+ switch (number) {
-+ case 0: /* diamond */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 1: /* plus */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x, y + vtic);
-+ break;
-+ case 2: /* box */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 3: /* X */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_move(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ break;
-+ case 4: /* triangle */
-+ HPGL2_move(x, y + (4 * vtic / 3));
-+ HPGL2_vector(x - (4 * htic / 3), y - (2 * vtic / 3));
-+ HPGL2_vector(x + (4 * htic / 3), y - (2 * vtic / 3));
-+ HPGL2_vector(x, y + (4 * vtic / 3));
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ case 5: /* star */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - htic, y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - vtic);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_move(x - htic, y + vtic);
-+ HPGL2_vector(x - htic, y + vtic);
-+ HPGL2_vector(x + htic, y - vtic);
-+ break;
-+ }
-+ }
-+ }
-+}
-+
-+/*
-+ * This is for special purpose negative point types. If they are not needed,
-+ * they should be safely ignorable, but the special pointypes can be omitted
-+ * if necessary, leaving only the dot (which is -1).
-+ */
-+
-+TERM_PUBLIC void
-+HPGL2_neg_point(x, y, number)
-+unsigned int x, y;
-+int number;
-+{
-+ int htic, vtic;
-+ htic = (int) (HPGL2_psize * PCL_HTIC / 2);
-+ vtic = (int) (HPGL2_psize * PCL_VTIC / 2);
-+ switch (number) {
-+ case -20: /* well 18 */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x + htic, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -19: /* well 17 */
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (vtic / 2));
-+ HPGL2_move(x, y + (vtic / 2));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x - (htic / 4), y - (3 * vtic / 4));
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x + (htic / 4), y - (3 * vtic / 4));
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) (htic) / 2));
-+ break;
-+ case -18: /* well 16 */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -17: /* well 15 */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + htic, y + vtic);
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "EW%.2f,0,180;\n", ((double) 3 * (htic) / 4));
-+ fprintf(gpoutfile, "WG%.2f,180,180;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -16: /* well 14 */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + htic, y + vtic);
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%.2f,0,360;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -15: /* well 13 */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + htic, y + vtic);
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%.2f,0,360;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -14: /* well 12 */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + htic, y + vtic);
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -13: /* well 11 */
-+ HPGL2_move(x - htic, y - vtic);
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + htic, y + vtic);
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%.2f,0,360;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -12: /* well 10 */
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "EW%.2f,0,180;\n", ((double) 3 * (htic) / 4));
-+ fprintf(gpoutfile, "WG%.2f,180,180;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -11: /* well 9 */
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -10: /* well 8 */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "EW%.2f,0,180;\n", ((double) 3 * (htic) / 4));
-+ fprintf(gpoutfile, "WG%.2f,180,180;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -9: /* well 7 */
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "EW%.2f,0,180;\n", ((double) 3 * (htic) / 4));
-+ fprintf(gpoutfile, "WG%.2f,180,180;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -8: /* well 6 */
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%.2f,0,360;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -7: /* well 5 */
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%.2f,0,360;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -6: /* well 4 */
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y - (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y - (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x + (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x + (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - (sqrt(2) * htic / 2), y + (sqrt(2) * vtic / 2));
-+ HPGL2_vector(x - (3 * sqrt(2) * htic / 8), y + (3 * sqrt(2) * vtic / 8));
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -5: /* well 3 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "WG%.2f,0,360;EP;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -4: /* well 2 */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -3: /* well 1 */
-+ HPGL2_move(x, y);
-+ fputs(";\n", gpoutfile);
-+ HPGL2_in_pe = 0;
-+ fprintf(gpoutfile, "CI%.2f;\n", ((double) 3 * (htic) / 4));
-+ break;
-+ case -2: /* v box */
-+ HPGL2_move(x - htic, y);
-+ HPGL2_vector(x - (3 * htic / 4), y);
-+ HPGL2_move(x + (3 * htic / 4), y);
-+ HPGL2_vector(x + htic, y);
-+ HPGL2_move(x, y - vtic);
-+ HPGL2_vector(x, y - (3 * vtic / 4));
-+ HPGL2_move(x, y + (3 * vtic / 4));
-+ HPGL2_vector(x, y + vtic);
-+ HPGL2_move(x - (3 * htic / 4), y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y - (3 * vtic / 4));
-+ HPGL2_vector(x + (3 * htic / 4), y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y + (3 * vtic / 4));
-+ HPGL2_vector(x - (3 * htic / 4), y - (3 * vtic / 4));
-+ HPGL2_move(x - (htic / 2), y + (vtic / 2));
-+ HPGL2_vector(x, y - (vtic / 2));
-+ HPGL2_vector(x + (htic / 2), y + (vtic / 2));
-+ break;
-+ default: /* dot */
-+ HPGL2_move(x, y);
-+ HPGL2_vector(x, y);
-+ break;
-+ return;
-+ }
-+}
-+
-+TERM_PUBLIC void
-+HPGL2_pointsize(size)
-+double size;
-+{
-+ HPGL2_psize = (size >= 0 ? size : 1);
-+}
-+
- #endif /* TERM_BODY */
-
- #ifdef TERM_TABLE
-@@ -1100,25 +2584,21 @@
- HPGL_linetype, HPGL_put_text, HPGL_text_angle,
- null_justify_text, do_point, do_arrow, set_font_null
- TERM_TABLE_END(hpgl_driver)
--
- #undef LAST_TERM
- #define LAST_TERM hpgl_driver
--
- TERM_TABLE_START(pcl5_driver)
-- "pcl5", "HP LaserJet III [mode] [font] [point]",
-+ "pcl5", "HP Designjet 750C, HP Laserjet III/IV, etc. (many options)",
- PCL_XMAX, PCL_YMAX, HPGL2_VCHAR, HPGL2_HCHAR,
- PCL_VTIC, PCL_HTIC, PCL_options, PCL_init, PCL_reset,
- PCL_text, null_scale, PCL_graphics, HPGL2_move, HPGL2_vector,
- HPGL2_linetype, HPGL2_put_text, HPGL2_text_angle,
-- HPGL2_justify_text, do_point, do_arrow, set_font_null
-+ HPGL2_justify_text, HPGL2_point, do_arrow, HPGL2_set_font,
-+ HPGL2_pointsize
- TERM_TABLE_END(pcl5_driver)
--
- #undef LAST_TERM
- #define LAST_TERM pcl5_driver
- #endif /* TERM_TABLE */
--
- #endif /* TERM_PROTO_ONLY */
--
- #ifdef TERM_HELP
- START_HELP(hpgl)
- "1 hpgl",
-@@ -1135,9 +2615,9 @@
- "?term pcl5",
- "?pcl5",
- " The `hpgl` driver produces HPGL output for devices like the HP7475A plotter.",
--" There are two options which can be set---the number of pens and \"eject\", which",
--" tells the plotter to eject a page when done. The default is to use 6 pens",
--" and not to eject the page when done.",
-+" There are two options which can be set: the number of pens and `eject`,",
-+" which tells the plotter to eject a page when done. The default is to use 6",
-+" pens and not to eject the page when done.",
- "",
- " The international character sets ISO-8859-1 and CP850 are recognized via",
- " `set encoding iso_8859_1` or `set encoding cp850` (see `set encoding` for",
-@@ -1156,15 +2636,42 @@
- "",
- " is equivalent to the previous `hp7580b` terminal.",
- "",
--" The `pcl5` driver supports the Hewlett-Packard Laserjet III. It actually uses",
--" HPGL-2, but there is a name conflict among the terminal devices. It has",
--" several options",
-+" The `pcl5` driver supports plotters such as the Hewlett-Packard Designjet",
-+" 750C, the Hewlett-Packard Laserjet III, and the Hewlett-Packard Laserjet IV.",
-+" It actually uses HPGL-2, but there is a name conflict among the terminal",
-+" devices. It has several options which must be specified in the order",
-+" indicated below:",
- "",
- " Syntax:",
--" set terminal pcl5 {<mode>} {<font>} {<fontsize>}",
-+" set terminal pcl5 {mode <mode>} {<plotsize>}",
-+" {{color {<number_of_pens>}} | monochrome} {solid | dashed}",
-+" {font <font>} {size <fontsize>} {pspoints | nopspoints}",
-+"",
-+" <mode> is `landscape` or `portrait`. <plotsize> is the physical",
-+" plotting size of the plot, which is one of the following: `letter` for",
-+" standard (8 1/2\" X 11\") displays, `legal` for (8 1/2\" X 14\") displays,",
-+" `noextended` for (36\" X 48\") displays (a letter size ratio) or,",
-+" `extended` for (36\" X 55\") displays (almost a legal size ratio).",
-+" `color` is for multi-pen (i.e. color) plots, and <number_of_pens> is",
-+" the number of pens (i.e. colors) used in color plots. `monochrome` is for",
-+" one (e.g. black) pen plots. 'solid' draws all lines as solid lines, or",
-+" 'dashed' will draw lines with different dashed and dotted line patterns.",
-+" <font> is `stick`, `univers`, `cg_times`, `zapf_dingbats`, `antique_olive`,",
-+" `arial`, `courier`, `garamond_antigua`, `letter_gothic`, `cg_omega`,",
-+" `albertus`, `times_new_roman`, `clarendon`, `coronet`, `marigold`,",
-+" `truetype_symbols`, or `wingdings`. <fontsize> is the font size in points.",
-+" The point type selection can be the standard default set by specifying",
-+" nopspoints, or the same set of point types found in the postscript terminal",
-+" by specifying pspoints.",
-+"",
-+" Note that built-in support of some of these options is printer device",
-+" dependendent. For instance, all the fonts are supposedly supported by the HP",
-+" Laserjet IV, but only a few (e.g. univers, stick) may be supported by the HP",
-+" Laserjet III and the Designjet 750C. Also, color obviously won't work on the",
-+" the laserjets since they are monochrome devices.",
- "",
--" where <mode> is `landscape`, or `portrait`, <font> is `stick`, `univers`, or",
--" `cg_times`, and <fontsize> is the size in points.",
-+" Defaults: landscape, noextended, color (6 pens), solid, univers, 12 point,",
-+" and nopspoints.",
- "",
- " With `pcl5` international characters are handled by the printer; you just put",
- " the appropriate 8-bit character codes into the text strings. You don't need",
diff --git a/math/gnuplot+/files/patch-xj b/math/gnuplot+/files/patch-xj
deleted file mode 100644
index cfa430c4f339..000000000000
--- a/math/gnuplot+/files/patch-xj
+++ /dev/null
@@ -1,13 +0,0 @@
-# save-position
---- misc.c.ORIG Wed Sep 29 18:17:27 1999
-+++ misc.c Sun Dec 5 21:46:23 1999
-@@ -1006,8 +1006,7 @@
- FILE *fp;
- struct position *pos;
- {
-- static char *msg[] =
-- {"first_axes ", "second axes ", "graph ", "screen "};
-+ static char *msg[] = { "first ", "second ", "graph ", "screen " };
-
- assert(first_axes == 0 && second_axes == 1 && graph == 2 && screen == 3);
-
diff --git a/math/gnuplot+/files/patch-xk b/math/gnuplot+/files/patch-xk
deleted file mode 100644
index f17e69895bc3..000000000000
--- a/math/gnuplot+/files/patch-xk
+++ /dev/null
@@ -1,283 +0,0 @@
-# command-substitution
---- command.c.ORIG Thu Aug 19 15:42:21 1999
-+++ command.c Thu Dec 9 17:13:18 1999
-@@ -248,7 +248,7 @@
- (void) fputs("!\n", stderr); /* why do we need this ? */
- return (0);
- }
-- num_tokens = scanner(input_line);
-+ num_tokens = scanner(&input_line, &input_line_len);
- c_token = 0;
- while (c_token < num_tokens) {
- if (command())
-@@ -728,7 +728,7 @@
- plot_token = 0; /* whole line to be saved as replot line */
-
- screen_ok = FALSE;
-- num_tokens = scanner(input_line);
-+ num_tokens = scanner(&input_line, &input_line_len);
- c_token = 1; /* skip the 'plot' part */
- if (is_3d_plot)
- plot3drequest();
-@@ -1006,7 +1006,7 @@
- else
- (void) strcpy(prompt, "Help topic: ");
- read_line(prompt);
-- num_tokens = scanner(input_line);
-+ num_tokens = scanner(&input_line, &input_line_len);
- c_token = 0;
- more_help = !(END_OF_COMMAND);
- if (more_help)
---- docs/gnuplot.doc.ORIG Wed Oct 27 11:10:16 1999
-+++ docs/gnuplot.doc Thu Dec 9 17:13:25 1999
-@@ -1257,7 +1257,7 @@
- blanks.
-
- Command-line substitution can be used anywhere on the `gnuplot` command
-- line.
-+ line, except inside strings delimited by single quotes.
-
- Example:
-
-@@ -1267,6 +1267,11 @@
-
- or, in VMS
- f(x) = `run leastsq`
-+
-+ These will generate labels with the current time and userid:
-+ set label "generated on `date +%Y-%m-%d`by `whoami`" at 1,1
-+ set timestamp "generated on %Y-%m-%d by `whoami`"
-+
- 2 Syntax
- ?syntax
- ?specify
---- protos.h.ORIG Fri Oct 1 11:37:23 1999
-+++ protos.h Thu Dec 9 17:13:18 1999
-@@ -224,7 +224,7 @@
-
- /* Prototypes from file "scanner.c" */
-
--int scanner __PROTO((char expression[]));
-+int scanner __PROTO((char **expression, int *line_lengthp));
-
-
- /* Prototypes from "stdfn.c" */
---- scanner.c.ORIG Wed Nov 4 14:49:57 1998
-+++ scanner.c Thu Dec 9 17:13:18 1999
-@@ -37,7 +37,7 @@
- #include "plot.h"
-
- static int get_num __PROTO((char str[]));
--static void substitute __PROTO((char *str, int max));
-+static void substitute __PROTO((char **strp, int *str_lenp, int current));
-
- #ifdef AMIGA_AC_5
- #define O_RDONLY 0
-@@ -74,9 +74,10 @@
-
- /*
- * scanner() breaks expression[] into lexical units, storing them in token[].
-- * The total number of tokens found is returned as the function value.
-- * Scanning will stop when '\0' is found in expression[], or when token[]
-- * is full.
-+ * The total number of tokens found is returned as the function
-+ * value. Scanning will stop when '\0' is found in expression[], or
-+ * when token[] is full. extend_input_line() is called to extend
-+ * expression array if needed.
- *
- * Scanning is performed by following rules:
- *
-@@ -95,13 +96,19 @@
- * 5. !,<,> current char; also next if next is =
- * 6. ", ' all chars up until matching quote
- * 7. # this token cuts off scanning of the line (DFK).
-+ * 8. ` (command substitution: all characters through the
-+ * matching backtic are replaced by the output of
-+ * the contained command, then scanning is restarted.)
- *
- * white space between tokens is ignored
- */
--int scanner(expression)
--char expression[];
-+int
-+scanner(expressionp, expressionlenp)
-+char **expressionp;
-+int *expressionlenp;
- {
- register int current; /* index of current char in expression[] */
-+ char *expression = *expressionp;
- register int quote;
- char brace;
-
-@@ -118,7 +125,8 @@
- token[t_num].is_token = TRUE; /* to start with... */
-
- if (expression[current] == '`') {
-- substitute(&expression[current], MAX_LINE_LEN - current);
-+ substitute(expressionp, expressionlenp, current);
-+ expression = *expressionp; /* expression might have moved */
- goto again;
- }
- /* allow _ to be the first character of an identifier */
-@@ -165,6 +173,10 @@
- && expression[current + 1]) {
- current++;
- token[t_num].length += 2;
-+ } else if (quote == '\"' && expression[current] == '`') {
-+ substitute(expressionp, expressionlenp, current);
-+ expression = *expressionp; /* it might have moved */
-+ current--;
- } else
- token[t_num].length++;
- }
-@@ -267,10 +279,6 @@
-
- #if defined(VMS) || defined(PIPES) || (defined(ATARI) || defined(MTOS)) && defined(__PUREC__)
-
--/* this really ought to make use of the dynamic-growth of the
-- * input line in 3.6. And it definitely should not have
-- * static arrays !
-- */
- /* A macro to reduce clutter ... */
- # ifdef AMIGA_AC_5
- # define CLOSE_FILE_OR_PIPE ((void) close(fd))
-@@ -280,42 +288,58 @@
- # define CLOSE_FILE_OR_PIPE ((void) pclose(f))
- # endif
-
--static void substitute(str, max) /* substitute output from ` ` */
--char *str;
--int max;
-+/* substitute output from ` `
-+ * *strp points to the input string. (*strp)[current] is expected to
-+ * be the initial back tic. Characters through the following back tic
-+ * are replaced by the output of the command. extend_input_line()
-+* is called to extend *strp array if needed.
-+ */
-+static void substitute(strp, str_lenp, current)
-+char **strp;
-+int *str_lenp;
-+int current;
- {
- register char *last;
-- register int i, c;
-+ register int c;
- register FILE *f;
- # ifdef AMIGA_AC_5
- int fd;
- # elif (defined(ATARI) || defined(MTOS)) && defined(__PUREC__)
- char *atari_tmpfile;
-- char *atari_pgm[MAX_LINE_LEN+100];
- # endif /* !AMIGA_AC_5 */
-- static char pgm[MAX_LINE_LEN+1], output[MAX_LINE_LEN+1];
-+ char *str, *pgm, *rest = NULL;
-+ int pgm_len, rest_len;
-
- # ifdef VMS
- int chan, one = 1;
-- static $DESCRIPTOR(pgmdsc, pgm);
-+ struct dsc$descriptor_s pgmdsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
- static $DESCRIPTOR(lognamedsc, MAILBOX);
- # endif /* VMS */
-
- /* forgive missing closing backquote at end of line */
-- i = 0;
-+ str = *strp + current;
- last = str;
- while (*++last) {
-- if (*last == '`') {
-- ++last; /* move past it */
-+ if (*last == '`')
- break;
-+ }
-+ pgm_len = last - str;
-+ pgm = gp_alloc(pgm_len, "command string");
-+ safe_strncpy(pgm, str + 1, pgm_len); /* omit ` to leave room for NUL */
-+
-+ /* save rest of line, if any */
-+ if (*last) {
-+ last++; /* advance past ` */
-+ rest_len = strlen(last) + 1;
-+ if (rest_len > 1) {
-+ rest = gp_alloc(rest_len, "input line copy");
-+ strcpy(rest, last);
- }
-- pgm[i++] = *last;
- }
-- pgm[i] = NUL; /* end with null */
-- max -= strlen(last); /* max is now the max length of output sub. */
-
- # ifdef VMS
-- pgmdsc.dsc$w_length = i;
-+ pgmdsc.dsc$a_pointer = pgm;
-+ pgmdsc.dsc$w_length = pgm_len;
- if (!((vaxc$errno = sys$crembx(0, &chan, 0, 0, 0, 0, &lognamedsc)) & 1))
- os_error("sys$crembx failed", NO_CARET);
-
-@@ -327,13 +351,11 @@
- # elif (defined(ATARI) || defined(MTOS)) && defined(__PUREC__)
- if (system(NULL) == 0)
- os_error("no command shell", NO_CARET);
-- if ((strlen(atari_tmpfile) + strlen(pgm) + 5) > MAX_LINE_LEN + 100)
-- os_error("sorry, command to long", NO_CARET);
- atari_tmpfile = tmpnam(NULL);
-- strcpy(atari_pgm, pgm);
-- strcat(atari_pgm, " >> ");
-- strcat(atari_pgm, atari_tmpfile);
-- system(atari_pgm);
-+ gp_realloc(pgm, pgm_len + 5 + strlen(atari_tmpfile), "command string");
-+ strcat(pgm, " >> ");
-+ strcat(pgm, atari_tmpfile);
-+ system(pgm);
- if ((f = fopen(atari_tmpfile, "r")) == NULL)
- # elif defined(AMIGA_AC_5)
- if ((fd = open(pgm, "O_RDONLY")) == -1)
-@@ -342,23 +364,36 @@
- os_error("popen failed", NO_CARET);
- # endif /* !VMS */
-
-- i = 0;
-- while ((c = getc(f)) != EOF) {
-- output[i++] = ((c == '\n') ? ' ' : c); /* newlines become blanks */
-- if (i == max) {
-- CLOSE_FILE_OR_PIPE;
-- int_error("substitution overflow", t_num);
-- }
-+ free(pgm);
-+
-+ /* now replace ` ` with output */
-+ while (1) {
-+# if defined(AMIGA_AC_5)
-+ char ch;
-+ if (read(fd, &ch, 1) != 1)
-+ break;
-+ c = ch;
-+# else
-+ if ((c = getc(f)) == EOF)
-+ break;
-+# endif /* !AMIGA_AC_5 */
-+ /* newlines become blanks */
-+ (*strp)[current++] = ((c == '\n') ? ' ' : c);
-+ if (current == *str_lenp)
-+ extend_input_line();
- }
-+ (*strp)[current] = 0;
-
- CLOSE_FILE_OR_PIPE;
-
-- if (i + strlen(last) > max)
-- int_error("substitution overflowed rest of line", t_num);
- /* tack on rest of line to output */
-- safe_strncpy(output + i, last, MAX_LINE_LEN - i);
-- /* now replace ` ` with output */
-- safe_strncpy(str, output, max);
-+ if (rest) {
-+ while (current + rest_len > *str_lenp)
-+ extend_input_line();
-+ strcpy(*strp+current, rest);
-+ free(rest);
-+ }
-+
- screen_ok = FALSE;
- }
-
diff --git a/math/gnuplot+/files/patch-xl b/math/gnuplot+/files/patch-xl
deleted file mode 100644
index a7f247c6dc60..000000000000
--- a/math/gnuplot+/files/patch-xl
+++ /dev/null
@@ -1,64 +0,0 @@
-# dynamic-contour-levels
---- plot.h.ORIG Tue Oct 19 14:32:17 1999
-+++ plot.h Thu Dec 9 17:57:06 1999
-@@ -131,7 +131,6 @@
- #define LEVELS_AUTO 0 /* How contour levels are set */
- #define LEVELS_INCREMENTAL 1 /* user specified start & incremnet */
- #define LEVELS_DISCRETE 2 /* user specified discrete levels */
--#define MAX_DISCRETE_LEVELS 30
-
- #define ANGLES_RADIANS 0
- #define ANGLES_DEGREES 1
---- set.c.ORIG Thu Aug 19 15:36:35 1999
-+++ set.c Thu Dec 9 17:57:06 1999
-@@ -44,6 +44,7 @@
- #include "stdfn.h"
- #include "setshow.h"
- #include "national.h"
-+#include "alloc.h"
-
- #define DEF_FORMAT "%g" /* default format for tic mark labels */
- #define SIGNIF (0.01) /* less than one hundredth of a tic mark */
-@@ -198,7 +199,8 @@
- int contour_levels = 5;
- double zero = ZERO; /* zero threshold, not 0! */
- int levels_kind = LEVELS_AUTO;
--double levels_list[MAX_DISCRETE_LEVELS]; /* storage for z levels to draw contours at */
-+double *levels_list; /* storage for z levels to draw contours at */
-+int max_levels = 0; /* contour level capacity, before enlarging */
-
- int dgrid3d_row_fineness = 10;
- int dgrid3d_col_fineness = 10;
-@@ -611,6 +613,10 @@
- else if (almost_equals(c_token, MIN)) { AUTO |= 1; ++c_token; } \
- else if (almost_equals(c_token, MAX)) { AUTO |= 2; ++c_token; }
-
-+ if (max_levels == 0)
-+ levels_list = (double *)gp_alloc((max_levels = 5)*sizeof(double),
-+ "contour levels");
-+
- if (almost_equals(c_token, "ar$row")) {
- c_token++;
- set_arrow();
-@@ -813,6 +819,10 @@
- if (!equals(c_token, ","))
- int_error("expecting comma to separate discrete levels", c_token);
- c_token++;
-+ if (i == max_levels)
-+ levels_list = gp_realloc(levels_list,
-+ (max_levels += 10)*sizeof(double),
-+ "contour levels");
- levels_list[i++] = real(const_express(&a));
- }
- contour_levels = i;
---- setshow.h.ORIG Sat Oct 3 21:17:47 1998
-+++ setshow.h Thu Dec 9 17:57:06 1999
-@@ -169,7 +169,7 @@
- extern int contour_levels;
- extern double zero; /* zero threshold, not 0! */
- extern int levels_kind;
--extern double levels_list[MAX_DISCRETE_LEVELS];
-+extern double *levels_list;
-
- extern int dgrid3d_row_fineness;
- extern int dgrid3d_col_fineness;
diff --git a/math/gnuplot+/files/patch-za b/math/gnuplot+/files/patch-za
deleted file mode 100644
index c91f011ca6e7..000000000000
--- a/math/gnuplot+/files/patch-za
+++ /dev/null
@@ -1,74 +0,0 @@
---- gplt_x11.c.orig Wed May 7 14:21:25 2003
-+++ gplt_x11.c Wed May 7 14:55:22 2003
-@@ -169,6 +169,10 @@
- # define EINTR E_ILLFNC
- #endif
-
-+#if defined(__FreeBSD__) && defined(__i386__)
-+# include <floatingpoint.h>
-+#endif
-+
- /* information about one window/plot */
-
- typedef struct plot_struct {
-@@ -301,6 +305,10 @@
- int argc;
- char *argv[];
- {
-+#if defined(__FreeBSD__) && defined(__i386__)
-+ /* allow divide by zero -- Inf */
-+ fpsetmask(fpgetmask() & ~(FP_X_DZ | FP_X_INV));
-+#endif
-
- #ifndef X11ORG
- setlocale(LC_ALL, "");
-@@ -335,6 +343,12 @@
- }
- }
- XCloseDisplay(dpy);
-+
-+#if defined(__FreeBSD__) && defined(__i386__)
-+ fpresetsticky(FP_X_DZ | FP_X_INV);
-+ fpsetmask(fpgetmask() | (FP_X_DZ | FP_X_INV));
-+#endif
-+
-
- FPRINTF((stderr, "exiting\n"));
-
---- plot.c.orig Wed May 7 14:21:25 2003
-+++ plot.c Wed May 7 14:45:09 2003
-@@ -73,6 +73,10 @@
- # endif
- #endif /* _Windows */
-
-+#if defined(__FreeBSD__) && defined(__i386__)
-+# include <floatingpoint.h>
-+#endif
-+
- extern FILE *gpoutfile;
-
- TBOOLEAN interactive = TRUE; /* FALSE if stdin not a terminal */
-@@ -347,6 +351,11 @@
- _control87(MCW_EM, MCW_EM);
- #endif
-
-+#if defined(__FreeBSD__) && defined(__i386__)
-+ /* allow divide by zero -- Inf */
-+ fpsetmask(fpgetmask() & ~(FP_X_DZ | FP_X_INV));
-+#endif
-+
- #if defined(OS2)
- int rc;
- if (_osmode == OS2_MODE) {
-@@ -565,6 +574,11 @@
- #ifdef OS2
- if (_osmode == OS2_MODE)
- RexxDeregisterSubcom("GNUPLOT", NULL);
-+#endif
-+
-+#if defined(__FreeBSD__) && defined(__i386__)
-+ fpresetsticky(FP_X_DZ | FP_X_INV);
-+ fpsetmask(fpgetmask() | (FP_X_DZ | FP_X_INV));
- #endif
-
- #if defined(ATARI) || defined(MTOS)
diff --git a/math/gnuplot+/pkg-descr b/math/gnuplot+/pkg-descr
deleted file mode 100644
index 2a48b9e9f1a9..000000000000
--- a/math/gnuplot+/pkg-descr
+++ /dev/null
@@ -1,12 +0,0 @@
-gnuplot-3.7.1+1.2.0 is a patch package to add some enhanced functions to
-gnuplot(version 3.7) and enable it to treat Japanese text.
-
-On patched gnuplot, the following are added.
-
-1. LaTeX like text processing on PostScript terminal.
-2. Japanese text handling
-3. Saving histories of command-line-editing by GNU readline library.
-
-For more information, see /usr/local/share/doc/gnuplot+/README.plus
-
-WWW: http://www.yama-ga.com/gnuplot/
diff --git a/math/gnuplot+/pkg-plist b/math/gnuplot+/pkg-plist
deleted file mode 100644
index 686a1b42a903..000000000000
--- a/math/gnuplot+/pkg-plist
+++ /dev/null
@@ -1,82 +0,0 @@
-bin/lasergnu
-bin/gnuplot
-bin/gnuplot_x11
-share/gnuplot.gih
-share/doc/gnuplot+/Copyright.plus
-share/doc/gnuplot+/History.plus
-share/doc/gnuplot+/INSTALL-J.unx.plus
-share/doc/gnuplot+/INSTALL-J.win.plus
-share/doc/gnuplot+/INSTALL.unx.plus
-share/doc/gnuplot+/INSTALL.win.plus
-share/doc/gnuplot+/README-J.plus
-share/doc/gnuplot+/README.plus
-share/doc/gnuplot+/plus.dvi
-share/doc/gnuplot+/plus.pdf
-share/doc/gnuplot+/plus.ps
-share/doc/gnuplot+/plus.tex
-@dirrm share/doc/gnuplot+
-share/examples/gnuplot+/1.dat
-share/examples/gnuplot+/2.dat
-share/examples/gnuplot+/3.dat
-share/examples/gnuplot+/airfoil.dem
-share/examples/gnuplot+/all.dem
-share/examples/gnuplot+/animate.dem
-share/examples/gnuplot+/battery.dat
-share/examples/gnuplot+/big_peak.dat
-share/examples/gnuplot+/binary.dem
-share/examples/gnuplot+/bivariat.dem
-share/examples/gnuplot+/borders.dem
-share/examples/gnuplot+/contours.dem
-share/examples/gnuplot+/controls.dem
-share/examples/gnuplot+/density.fnc
-share/examples/gnuplot+/discrete.dem
-share/examples/gnuplot+/electron.dem
-share/examples/gnuplot+/fit.dem
-share/examples/gnuplot+/glass.dat
-share/examples/gnuplot+/gnuplot.rot
-share/examples/gnuplot+/hemisphr.dat
-share/examples/gnuplot+/hexa.fnc
-share/examples/gnuplot+/hidden.dem
-share/examples/gnuplot+/klein.dat
-share/examples/gnuplot+/lcdemo.dat
-share/examples/gnuplot+/line.fnc
-share/examples/gnuplot+/mgr.dem
-share/examples/gnuplot+/moli3.dat
-share/examples/gnuplot+/multimsh.dem
-share/examples/gnuplot+/multiplt.dem
-share/examples/gnuplot+/param.dem
-share/examples/gnuplot+/polar.dem
-share/examples/gnuplot+/poldat.dem
-share/examples/gnuplot+/prob.dem
-share/examples/gnuplot+/prob2.dem
-share/examples/gnuplot+/random.dem
-share/examples/gnuplot+/reflect.fnc
-share/examples/gnuplot+/reread.bor
-share/examples/gnuplot+/scatter.dem
-share/examples/gnuplot+/scatter2.dat
-share/examples/gnuplot+/silver.dat
-share/examples/gnuplot+/simple.dem
-share/examples/gnuplot+/singulr.dem
-share/examples/gnuplot+/sound.par
-share/examples/gnuplot+/sound2.par
-share/examples/gnuplot+/soundvel.dat
-share/examples/gnuplot+/spline.dem
-share/examples/gnuplot+/start.par
-share/examples/gnuplot+/stat.inc
-share/examples/gnuplot+/steps.dat
-share/examples/gnuplot+/steps.dem
-share/examples/gnuplot+/surface1.dem
-share/examples/gnuplot+/surface2.dem
-share/examples/gnuplot+/timedat.dat
-share/examples/gnuplot+/timedat.dem
-share/examples/gnuplot+/using.dat
-share/examples/gnuplot+/using.dem
-share/examples/gnuplot+/vector.dem
-share/examples/gnuplot+/whale.dat
-share/examples/gnuplot+/world.cor
-share/examples/gnuplot+/world.dat
-share/examples/gnuplot+/world.dem
-share/examples/gnuplot+/binary1
-share/examples/gnuplot+/binary2
-share/examples/gnuplot+/binary3
-@dirrm share/examples/gnuplot+