diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2013-02-06 07:46:43 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2013-02-06 07:46:43 +0000 |
commit | acdfba3fc5c7ed4b379ce5abee65fbbde3209321 (patch) | |
tree | ec5b65db69f3510e845825d5f048b59e6344810c /math | |
parent | 651f05826b19dd465a3317a793cb57a60915e583 (diff) | |
download | ports-acdfba3fc5c7ed4b379ce5abee65fbbde3209321.tar.gz ports-acdfba3fc5c7ed4b379ce5abee65fbbde3209321.zip |
Notes
Diffstat (limited to 'math')
-rw-r--r-- | math/Makefile | 1 | ||||
-rw-r--r-- | math/gnuplot+/Makefile | 78 | ||||
-rw-r--r-- | math/gnuplot+/distinfo | 4 | ||||
-rw-r--r-- | math/gnuplot+/files/gnuplot.info.diff | 13 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xb | 22 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xc | 26 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xd | 103 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xe | 80 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xf | 15 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xg | 235 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xh | 460 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xi | 2118 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xj | 13 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xk | 283 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-xl | 64 | ||||
-rw-r--r-- | math/gnuplot+/files/patch-za | 74 | ||||
-rw-r--r-- | math/gnuplot+/pkg-descr | 12 | ||||
-rw-r--r-- | math/gnuplot+/pkg-plist | 82 |
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+ |