diff -urN gnuplot-3.7.1.orig/graphics.c gnuplot-3.7.1/graphics.c
--- gnuplot-3.7.1.orig/graphics.c	Wed Sep 15 16:30:29 1999
+++ gnuplot-3.7.1/graphics.c	Thu Feb 17 19:29:21 2000
@@ -103,6 +103,7 @@
 static void plot_dots __PROTO((struct curve_points * plot));
 static void plot_bars __PROTO((struct curve_points * plot));
 static void plot_boxes __PROTO((struct curve_points * plot, int xaxis_y));
+static void plot_box __PROTO((int llx, int lly, int urx, int ury, enum BOX_STYLE b));
 static void plot_vectors __PROTO((struct curve_points * plot));
 static void plot_f_bars __PROTO((struct curve_points * plot));
 static void plot_c_bars __PROTO((struct curve_points * plot));
@@ -1814,10 +1815,13 @@
 		}
 
 		/* draw sample depending on bits set in plot_style */
-		if ((this_plot->plot_style & 1) ||
-		    ((this_plot->plot_style & 4) && this_plot->plot_type == DATA)) {	/* errors for data plots only */
-		    (*t->move) (xl + key_sample_left, yl);
-		    (*t->vector) (xl + key_sample_right, yl);
+		if (this_plot->plot_style != BOXES) {
+		    
+		    if ((this_plot->plot_style & 1) ||
+			((this_plot->plot_style & 4) && this_plot->plot_type == DATA)) {	/* errors for data plots only */
+			(*t->move) (xl + key_sample_left, yl);
+			(*t->vector) (xl + key_sample_right, yl);
+		    }
 		}
 		/* oops - doing the point sample now breaks postscript
 		 * terminal for example, which changes current line style
@@ -1917,6 +1921,19 @@
 	    /*}}} */
 	    /*{{{  BOXES */
 	case BOXES:
+	    if ( localkey !=0 && this_plot->title) {
+		int bx, by;
+		unsigned int dbx, dby;
+		/*
+		  (*t->move)(xl+(t->h_char),yl);
+		  (*t->vector)(xl+4*(t->h_char),yl);
+		*/
+		bx = xl + (t->h_char);
+		by = yl - (t->v_char)/4;
+		dbx = 3 * (t->h_char);
+		dby = 1 * (t->v_char)/2;
+		plot_box(bx, by, bx + dbx, by + dby,this_plot->box_style);
+	    }
 	    plot_boxes(this_plot, axis_zero[y_axis]);
 	    break;
 	    /*}}} */
@@ -2588,6 +2605,195 @@
 /* plot_boxes:
  * Plot the curves in BOXES style
  */
+
+/**********************************************************************/
+
+ #define HATCH_THETA 3.14159/3.0
+ #define HATCH_DENSITY 50.0
+
+ int hatch_r ( int x, int y, int dx, int dy)
+ {
+     int cy, ty;
+     int yinc;
+     int ymx, tdx, x0, x1,y1;
+     double m;
+
+     register struct termentry *t = term;
+
+     /* For negative values, transpose x and y so
+	they are bottom left corner of box to be filled */
+     if (dy<0) {
+	 y = y+dy;
+	 dy=abs(dy);
+     }
+
+     if (dx<0) {
+	 x = x+dx;
+	 dx=abs(dx);
+     }
+
+
+     /* yinc is y step size */
+
+     yinc = (int) ((map_y(y_max) - map_y(y_min))/HATCH_DENSITY + .5);
+
+     /* ty is top o' the box */
+
+     ty = y + dy;
+
+     m = tan(HATCH_THETA);
+
+ /*
+    carefully fill in the corners
+ */
+     tdx = (int)(.5 + (yinc / m));
+     x0 = x + tdx;
+     x1 = x + dx;
+
+
+     while(x0 < x+dx){
+       (*t->move)(x0,y);
+       y1 = y + m * (x1 - x0);
+       ymx = x1 - x0;
+       if (y1 > ty){
+	 y1 = ty;
+	 ymx = (int)(ty - y) / m;
+       }
+       (*t->vector)(x0 + ymx, y1);
+       x0+=tdx;
+     }
+
+
+     cy = y;
+     while (cy < ty){
+       (*t->move)(x, cy);
+       ymx = cy + (int)(m * dx + .5);
+       if (ymx > ty){
+           tdx = (unsigned int)((ty - cy)/m + .5);
+           ymx = cy + (int)(m * tdx);
+           (*t->vector)(x+tdx, ymx);
+       }
+       else
+           (*t->vector)(x+dx, ymx);
+       cy+= yinc;
+     }
+
+     return 0;
+ }
+
+
+ int hatch_l ( int x, int y, int dx, int dy)
+ {
+     int cy, ty, by;
+     int yinc;
+     int ymx, tdx, x0, x1, y1;
+     double m;
+
+     register struct termentry *t = term;
+
+     /* For negative values, transpose x and y so
+	they are bottom left corner of box to be filled */
+     if (dy<0) {
+	 y = y+dy;
+	 dy=abs(dy);
+     }
+
+     if (dx<0) {
+	 x = x+dx;
+	 dx=abs(dx);
+     }
+
+     yinc = (int) ((map_y(y_max) - map_y(y_min))/HATCH_DENSITY + .5);
+     ty = y + dy;
+
+     m = tan(HATCH_THETA);
+
+     tdx = (int)(.5 + (yinc / m));
+     x0 = x + dx - tdx;
+     x1 = x;
+     while(x0 > x){            /* fill in the corners */
+       (*t->move)(x0,y);
+       y1 = y + m * (x0 - x1);
+       ymx = x0 - x1;
+ /*
+       if (x0 - tdx < x){
+           ymx = x0 - x;
+           y1 = y + (int)(m * ymx);
+       }
+ */
+       if (y1 > ty){
+           y1 = ty;
+           ymx = (int) (ty - y) / m;
+       }
+       (*t->vector)(x0 - ymx, y1);
+       x0-=tdx;
+     }
+
+     cy = y;
+     while (cy < ty){
+       (*t->move)(x+dx, cy);
+       ymx = cy + (int)(m * dx + .5);
+       if (ymx > ty){
+           tdx = (unsigned int)((ty - cy)/m + .5);
+           ymx = cy + (int)(m * tdx);
+           (*t->vector)(x + dx - tdx, ymx);
+       }
+       else
+           (*t->vector)(x, ymx);
+
+       cy+= yinc;
+     }
+     return 0;
+ }
+
+ void draw_outline(int x, int y, int dx, int dy){
+     struct termentry *t = term;
+     (*t->move)(x, y);
+     (*t->vector)(x, y + dy);
+     (*t->vector)(x + dx, y + dy);
+     (*t->vector)(x + dx, y);
+     (*t->vector)(x, y);
+     return;
+ }
+
+ void plot_box(int llx, int lly, int urx, int ury, enum BOX_STYLE b){
+
+     int dx,dy;
+     struct termentry *t = term;
+     dx = urx - llx;
+     dy = ury - lly;
+
+     switch(b){
+     case BOX_FILL:
+	if ((*t->box)(llx, lly, dx, dy))                /* NO_FILL returns 1 */
+           draw_outline(llx, lly, dx, dy);             /* try <something>   */
+       break;
+     case BOX_OUTLINE:
+       draw_outline(llx, lly, dx, dy);
+       break;
+     case BOX_HATCH_LEFT:
+       draw_outline(llx, lly, dx, dy);
+       hatch_l(llx, lly, dx, dy);
+       break;
+     case BOX_HATCH_RIGHT:
+       draw_outline(llx, lly, dx, dy);
+       hatch_r(llx, lly, dx, dy);
+       break;
+     case BOX_HATCH_BOTH:
+       draw_outline(llx, lly, dx, dy);
+       hatch_l(llx, lly, dx, dy);
+       hatch_r(llx, lly, dx, dy);
+       break;
+     default:
+       int_error("invalid hatch type: This can't happen",NO_CARET);
+       break;
+     }
+     return;
+ }
+
+
+/**********************************************************************/
+
 static void plot_boxes(plot, xaxis_y)
 struct curve_points *plot;
 int xaxis_y;
@@ -2598,7 +2804,6 @@
     struct termentry *t = term;
     enum coord_type prev = UNDEFINED;	/* type of previous point */
     TBOOLEAN boxxy = (plot->plot_style == BOXXYERROR);
-
     for (i = 0; i < plot->p_count; i++) {
 
 	switch (plot->points[i].type) {
@@ -2664,12 +2869,23 @@
 		xl = map_x(dxl);
 		xr = map_x(dxr);
 		yt = map_y(dyt);
-
+		/*
 		(*t->move) (xl, xaxis_y);
 		(*t->vector) (xl, yt);
 		(*t->vector) (xr, yt);
 		(*t->vector) (xr, xaxis_y);
 		(*t->vector) (xl, xaxis_y);
+		*/
+		/*
+		  even width boxes seem to work
+		  marginally better on some low
+		  resolution terminals.
+		  I suspect there is no way to
+		  guarantee exactly even width
+		  when drawing at this level
+		*/
+		if ((xr - xl) % 2) xr--;
+		plot_box(xl, xaxis_y, xr, yt, plot->box_style);
 		break;
 	    }			/* case OUTRANGE, INRANGE */
 
diff -urN gnuplot-3.7.1.orig/plot.h gnuplot-3.7.1/plot.h
--- gnuplot-3.7.1.orig/plot.h	Tue Oct 19 14:32:17 1999
+++ gnuplot-3.7.1/plot.h	Thu Feb 17 19:29:21 2000
@@ -100,7 +100,7 @@
    size of the input. The values describe the steps in which the sizes are
    extended. */
 
-#define MAX_LINE_LEN 1024	/* maximum number of chars allowed on line */
+#define MAX_LINE_LEN 1024*16	/* maximum number of chars allowed on line */
 #define MAX_TOKENS 400
 #define MAX_ID_LEN 50		/* max length of an identifier */
 
@@ -406,6 +406,11 @@
 
 };
 
+enum BOX_STYLE {
+       BOX_FILL, BOX_OUTLINE, BOX_HATCH_LEFT, BOX_HATCH_RIGHT, BOX_HATCH_BOTH
+};
+
+
 /* this order means we can use  x-(just*strlen(text)*t->h_char)/2 if
  * term cannot justify
  */
@@ -531,6 +536,7 @@
 	int token;    /* last token in re/plot line, for second pass */
 	enum PLOT_TYPE plot_type;
 	enum PLOT_STYLE plot_style;
+        enum BOX_STYLE box_style;
 	enum PLOT_SMOOTH plot_smooth;
 	char *title;
         struct lp_style_type lp_properties;
@@ -607,6 +613,7 @@
 	void (*vector) __PROTO((unsigned int, unsigned int));
 	void (*linetype) __PROTO((int));
 	void (*put_text) __PROTO((unsigned int, unsigned int,char*));
+        int (*box) __PROTO((int, int, int, int));
 /* the following are optional. set term ensures they are not NULL */
 	int (*text_angle) __PROTO((int));
 	int (*justify_text) __PROTO((enum JUSTIFY));
diff -urN gnuplot-3.7.1.orig/plot2d.c gnuplot-3.7.1/plot2d.c
--- gnuplot-3.7.1.orig/plot2d.c	Mon Oct 11 13:18:56 1999
+++ gnuplot-3.7.1/plot2d.c	Thu Feb 17 19:31:32 2000
@@ -956,22 +956,53 @@
 		    int_error("\"with\" allowed only after parametric function fully specified", c_token);
 		this_plot->plot_style = get_style();
 	    }
+
+	    this_plot->box_style = BOX_FILL;
+
+
 	    /* pick up line/point specs
 	     * - point spec allowed if style uses points, ie style&2 != 0
 	     * - keywords for lt and pt are optional
 	     */
-	    LP_PARSE(this_plot->lp_properties, 1, this_plot->plot_style & 2,
+	    /* LP_PARSE(this_plot->lp_properties, 1, this_plot->plot_style & 2,
+		     line_num, point_num);
+	     */
+
+	    LP_PARSE(this_plot->lp_properties, 1, 1,
 		     line_num, point_num);
 
 	    /* allow old-style syntax too - ignore case lt 3 4 for example */
+
 	    if (!equals(c_token, ",") && !END_OF_COMMAND) {
 		struct value t;
 		this_plot->lp_properties.l_type =
 		    this_plot->lp_properties.p_type = (int) real(const_express(&t)) - 1;
-
 		if (!equals(c_token, ",") && !END_OF_COMMAND)
 		    this_plot->lp_properties.p_type = (int) real(const_express(&t)) - 1;
 	    }
+
+
+	    if (almost_equals(c_token, "fi$ll")){
+	      this_plot->box_style = BOX_FILL;
+	      c_token++;
+	    }
+	    if (almost_equals(c_token, "out$line")){
+	      this_plot->box_style = BOX_OUTLINE;
+	      c_token++;
+	    }
+	    if (almost_equals(c_token, "le$ft")){
+	      this_plot->box_style = BOX_HATCH_LEFT;
+	      c_token++;
+	    }
+	    if (almost_equals(c_token, "ri$ght")){
+	      this_plot->box_style = BOX_HATCH_RIGHT;
+	      c_token++;
+	    }
+	    if (almost_equals(c_token, "bo$th")){
+	      this_plot->box_style = BOX_HATCH_BOTH;
+	      c_token++;
+	    }
+
 	    if (!xparam) {
 		if (this_plot->plot_style & 2)	/* style includes points */
 		    ++point_num;
@@ -1175,6 +1206,28 @@
 		    this_plot->p_count = i;	/* samples */
 		}
 		c_token = this_plot->token;	/* skip all modifers func / whole of data plots */
+
+		if (almost_equals(c_token, "fi$ll")){
+		  this_plot->box_style = BOX_FILL;
+		  c_token++;
+		}
+		if (almost_equals(c_token, "out$line")){
+		  this_plot->box_style = BOX_OUTLINE;
+		  c_token++;
+		}
+		if (almost_equals(c_token, "le$ft")){
+		  this_plot->box_style = BOX_HATCH_LEFT;
+		  c_token++;
+		}
+		if (almost_equals(c_token, "ri$ght")){
+		  this_plot->box_style = BOX_HATCH_RIGHT;
+		  c_token++;
+		}
+		if (almost_equals(c_token, "bo$th")){
+		  this_plot->box_style = BOX_HATCH_BOTH;
+		  c_token++;
+		}
+
 
 		tp_ptr = &(this_plot->next_cp);		/* used below */
 		this_plot = this_plot->next_cp;
diff -urN gnuplot-3.7.1.orig/term/aed.trm gnuplot-3.7.1/term/aed.trm
--- gnuplot-3.7.1.orig/term/aed.trm	Wed Nov 25 21:03:15 1998
+++ gnuplot-3.7.1/term/aed.trm	Thu Feb 17 19:29:21 2000
@@ -174,7 +174,7 @@
     AED5_XMAX, AED_YMAX, AED_VCHAR, AED_HCHAR,
     AED_VTIC, AED_HTIC, options_null, AED_init, AED_reset,
     AED_text, null_scale, AED_graphics, AED_move, AED_vector,
-    AED_linetype, AED_put_text, null_text_angle,
+    AED_linetype, AED_put_text, do_fill, null_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(aed512_driver)
 
@@ -186,7 +186,7 @@
     AED_XMAX, AED_YMAX, AED_VCHAR, AED_HCHAR,
     AED_VTIC, AED_HTIC, options_null, AED_init, AED_reset,
     AED_text, null_scale, AED_graphics, AED_move, AED_vector,
-    AED_linetype, AED_put_text, null_text_angle,
+    AED_linetype, AED_put_text, do_fill, null_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(aed767_driver)
 
diff -urN gnuplot-3.7.1.orig/term/ai.trm gnuplot-3.7.1/term/ai.trm
--- gnuplot-3.7.1.orig/term/ai.trm	Wed Jan 13 21:49:44 1999
+++ gnuplot-3.7.1/term/ai.trm	Thu Feb 17 19:29:21 2000
@@ -489,7 +489,7 @@
     AI_XMAX, AI_YMAX, AI_VCHAR, AI_HCHAR,
     AI_VTIC, AI_HTIC, AI_options, AI_init, AI_reset,
     AI_text, null_scale, AI_graphics, AI_move, AI_vector,
-    AI_linetype, AI_put_text, AI_text_angle,
+    AI_linetype, AI_put_text, do_fill, AI_text_angle,
     AI_justify_text, do_point, do_arrow, AI_set_font,
     NULL, 0, AI_suspend, AI_resume
 TERM_TABLE_END(aifm_driver)
diff -urN gnuplot-3.7.1.orig/term/amiga.trm gnuplot-3.7.1/term/amiga.trm
--- gnuplot-3.7.1.orig/term/amiga.trm	Thu Dec 17 22:07:52 1998
+++ gnuplot-3.7.1/term/amiga.trm	Thu Feb 17 19:29:21 2000
@@ -730,7 +730,7 @@
     AMIGA_XMAX, AMIGA_YMAX, AMIGA_VCHAR, AMIGA_HCHAR,
     AMIGA_VTIC, AMIGA_HTIC, AMIGA_options, AMIGA_init, AMIGA_reset,
     AMIGA_text, null_scale, AMIGA_graphics, AMIGA_move, AMIGA_vector,
-    AMIGA_linetype, AMIGA_put_text, null_text_angle,
+    AMIGA_linetype, AMIGA_put_text, do_fill, null_text_angle,
     AMIGA_justify_text, do_point, do_arrow, AMIGA_set_font,
     0,				/* pointsize */
     TERM_CAN_MULTIPLOT, AMIGA_suspend, AMIGA_resume
diff -urN gnuplot-3.7.1.orig/term/apollo.trm gnuplot-3.7.1/term/apollo.trm
--- gnuplot-3.7.1.orig/term/apollo.trm	Thu Jan 14 19:34:40 1999
+++ gnuplot-3.7.1/term/apollo.trm	Thu Feb 17 19:29:21 2000
@@ -571,7 +571,7 @@
     0, 0, 0, 0,	/* APOLLO_XMAX, APOLLO_YMAX, APOLLO_VCHAR, APOLLO_HCHAR, are filled in at run-time */
     APOLLO_VTIC, APOLLO_HTIC, options_null, APOLLO_init, APOLLO_reset,
     APOLLO_text, null_scale, APOLLO_graphics, APOLLO_move, APOLLO_vector,
-    APOLLO_linetype, APOLLO_put_text, APOLLO_text_angle,
+    APOLLO_linetype, APOLLO_put_text, do_fill, APOLLO_text_angle,
     APOLLO_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(apollo_driver)
 
diff -urN gnuplot-3.7.1.orig/term/atariaes.trm gnuplot-3.7.1/term/atariaes.trm
--- gnuplot-3.7.1.orig/term/atariaes.trm	Mon Dec 14 18:38:13 1998
+++ gnuplot-3.7.1/term/atariaes.trm	Thu Feb 17 19:29:21 2000
@@ -715,7 +715,7 @@
     ATARI_XMAX, ATARI_YMAX, ATARI_VCHAR, ATARI_HCHAR,
     ATARI_VTIC, ATARI_HTIC, ATARI_options, ATARI_init, ATARI_reset,
     ATARI_text, null_scale, ATARI_graphics, ATARI_move, ATARI_vector,
-    ATARI_linetype, ATARI_put_text, ATARI_text_angle,
+    ATARI_linetype, ATARI_put_text, do_fill, ATARI_text_angle,
     ATARI_justify_text, ATARI_point, do_arrow, set_font_null,
     0, TERM_CAN_MULTIPLOT, 0, 0
 TERM_TABLE_END(atari_driver)
diff -urN gnuplot-3.7.1.orig/term/atarivdi.trm gnuplot-3.7.1/term/atarivdi.trm
--- gnuplot-3.7.1.orig/term/atarivdi.trm	Mon Dec 14 18:38:17 1998
+++ gnuplot-3.7.1/term/atarivdi.trm	Thu Feb 17 19:29:21 2000
@@ -425,7 +425,7 @@
     VDI_XMAX, VDI_YMAX, VDI_VCHAR, VDI_HCHAR,
     VDI_VTIC, VDI_HTIC, VDI_options, VDI_init, VDI_reset,
     VDI_text, null_scale, VDI_graphics, VDI_move, VDI_vector,
-    VDI_linetype, VDI_put_text, VDI_text_angle,
+    VDI_linetype, VDI_put_text, do_fill, VDI_text_angle,
     VDI_justify_text, VDI_point, do_arrow, set_font_null,
     0, TERM_CAN_MULTIPLOT, 0, 0
 TERM_TABLE_END(vdi_driver)
diff -urN gnuplot-3.7.1.orig/term/be.trm gnuplot-3.7.1/term/be.trm
--- gnuplot-3.7.1.orig/term/be.trm	Fri Aug 20 13:09:46 1999
+++ gnuplot-3.7.1/term/be.trm	Thu Feb 17 19:29:21 2000
@@ -366,7 +366,7 @@
     BE_XMAX, BE_YMAX, BE_VCHAR, BE_HCHAR,
     BE_VTIC, BE_HTIC, BE_options, BE_init, BE_reset,
     BE_text, null_scale, BE_graphics, BE_move, BE_vector,
-    BE_linetype, BE_put_text, null_text_angle,
+    BE_linetype, BE_put_text, do_fill, null_text_angle,
     BE_justify_text, BE_point, do_arrow, set_font_null,
     BE_pointsize, TERM_CAN_MULTIPLOT,
     BE_text /* suspend can use same routine */ , 0 /* resume */ ,
diff -urN gnuplot-3.7.1.orig/term/cgi.trm gnuplot-3.7.1/term/cgi.trm
--- gnuplot-3.7.1.orig/term/cgi.trm	Wed Nov 25 21:03:25 1998
+++ gnuplot-3.7.1/term/cgi.trm	Thu Feb 17 19:29:21 2000
@@ -271,7 +271,7 @@
     CGI_XMAX, CGI_YMAX, 0, 0,
     CGI_VTIC, 0, options_null, CGI_init, CGI_reset,
     CGI_text, null_scale, CGI_graphics, CGI_move, CGI_vector,
-    CGI_linetype, CGI_put_text, CGI_text_angle,
+    CGI_linetype, CGI_put_text, do_fill, CGI_text_angle,
     CGI_justify_text, CGI_point, do_arrow, set_font_null
 TERM_TABLE_END(cgi_driver)
 
@@ -283,7 +283,7 @@
     CGI_XMAX, CGI_YMAX, 0, 0,
     CGI_VTIC, 0, options_null, HCGI_init, CGI_reset,
     CGI_text, null_scale, CGI_graphics, CGI_move, CGI_vector,
-    CGI_linetype, CGI_put_text, CGI_text_angle,
+    CGI_linetype, CGI_put_text, do_fill, CGI_text_angle,
     CGI_justify_text, CGI_point, do_arrow, set_font_null
 TERM_TABLE_END(hcgi_driver)
 
diff -urN gnuplot-3.7.1.orig/term/cgm.trm gnuplot-3.7.1/term/cgm.trm
--- gnuplot-3.7.1.orig/term/cgm.trm	Thu Aug 19 15:18:43 1999
+++ gnuplot-3.7.1/term/cgm.trm	Thu Feb 17 19:29:21 2000
@@ -1101,7 +1101,7 @@
     CGM_LARGE - CGM_MARGIN, CGM_SMALL - CGM_MARGIN, CGM_VCHAR, CGM_HCHAR,
     CGM_VTIC, CGM_HTIC, CGM_options, CGM_init, CGM_reset,
     CGM_text, null_scale, CGM_graphics, CGM_move, CGM_solid_vector,
-    CGM_linetype, CGM_put_text, CGM_text_angle,
+    CGM_linetype, CGM_put_text, do_fill, CGM_text_angle,
     CGM_justify_text, CGM_point, do_arrow, CGM_set_font,
     CGM_set_pointsize,
     TERM_BINARY,		/* various flags */
diff -urN gnuplot-3.7.1.orig/term/corel.trm gnuplot-3.7.1/term/corel.trm
--- gnuplot-3.7.1.orig/term/corel.trm	Mon Dec 14 18:38:27 1998
+++ gnuplot-3.7.1/term/corel.trm	Thu Feb 17 19:29:21 2000
@@ -393,7 +393,7 @@
     CORELD_XMAX, CORELD_YMAX, CORELD_VCHAR, CORELD_HCHAR,
     CORELD_VTIC, CORELD_HTIC, COREL_options, COREL_init, COREL_reset,
     COREL_text, null_scale, COREL_graphics, COREL_move, COREL_vector,
-    COREL_linetype, COREL_put_text, COREL_text_angle,
+    COREL_linetype, COREL_put_text, do_fill, COREL_text_angle,
     COREL_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(corel_driver)
 
diff -urN gnuplot-3.7.1.orig/term/debug.trm gnuplot-3.7.1/term/debug.trm
--- gnuplot-3.7.1.orig/term/debug.trm	Thu Nov 26 19:04:03 1998
+++ gnuplot-3.7.1/term/debug.trm	Thu Feb 17 19:29:21 2000
@@ -285,7 +285,7 @@
     DEBUG_XMAX, DEBUG_YMAX, DEBUG_VCHAR, DEBUG_HCHAR,
     DEBUG_VTIC, DEBUG_HTIC, options_null, DEBUG_init, DEBUG_reset,
     DEBUG_text, null_scale, DEBUG_graphics, DEBUG_move, DEBUG_vector,
-    DEBUG_linetype, DEBUG_put_text, DEBUG_text_angle,
+    DEBUG_linetype, DEBUG_put_text, NO_FILL, DEBUG_text_angle,
     DEBUG_justify_text, DEBUG_point, DEBUG_arrow, DEBUG_set_font,
     DEBUG_pointsize,
     TERM_CAN_MULTIPLOT,
diff -urN gnuplot-3.7.1.orig/term/djsvga.trm gnuplot-3.7.1/term/djsvga.trm
--- gnuplot-3.7.1.orig/term/djsvga.trm	Mon Dec 21 22:23:31 1998
+++ gnuplot-3.7.1/term/djsvga.trm	Thu Feb 17 19:29:21 2000
@@ -415,7 +415,7 @@
     DJSVGA_options,
     DJSVGA_init, DJSVGA_reset, DJSVGA_text,
     null_scale, DJSVGA_graphics, DJSVGA_move, DJSVGA_vector,
-    DJSVGA_linetype, DJSVGA_put_text,
+    DJSVGA_linetype, DJSVGA_put_text, do_fill,
     DJSVGA_angle, DJSVGA_justify_text,
     do_point, do_arrow, DJSVGA_set_font,
     0,				/* no pointsize() */
diff -urN gnuplot-3.7.1.orig/term/dumb.trm gnuplot-3.7.1/term/dumb.trm
--- gnuplot-3.7.1.orig/term/dumb.trm	Mon Dec 14 18:38:38 1998
+++ gnuplot-3.7.1/term/dumb.trm	Thu Feb 17 19:29:21 2000
@@ -350,7 +350,7 @@
     DUMB_XMAX, DUMB_YMAX, 1, 1,
     1, 1, DUMB_options, DUMB_init, DUMB_reset,
     DUMB_text, null_scale, DUMB_graphics, DUMB_move, DUMB_vector,
-    DUMB_linetype, DUMB_put_text, null_text_angle,
+    DUMB_linetype, DUMB_put_text, NO_FILL, null_text_angle,
     null_justify_text, DUMB_point, DUMB_arrow, set_font_null,
     0,				/* pointsize */
     TERM_CAN_MULTIPLOT
diff -urN gnuplot-3.7.1.orig/term/dxf.trm gnuplot-3.7.1/term/dxf.trm
--- gnuplot-3.7.1.orig/term/dxf.trm	Mon Dec 14 18:38:43 1998
+++ gnuplot-3.7.1/term/dxf.trm	Thu Feb 17 19:29:21 2000
@@ -376,7 +376,7 @@
     DXF_XMAX, DXF_YMAX, DXF_VCHAR, DXF_HCHAR,
     DXF_VTIC, DXF_HTIC, options_null, DXF_init, DXF_reset,
     DXF_text, null_scale, DXF_graphics, DXF_move, DXF_vector,
-    DXF_linetype, DXF_put_text, DXF_text_angle,
+    DXF_linetype, DXF_put_text, do_fill, DXF_text_angle,
     DXF_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(dxf_driver)
 
diff -urN gnuplot-3.7.1.orig/term/dxy.trm gnuplot-3.7.1/term/dxy.trm
--- gnuplot-3.7.1.orig/term/dxy.trm	Wed Nov 25 21:05:49 1998
+++ gnuplot-3.7.1/term/dxy.trm	Thu Feb 17 19:29:21 2000
@@ -176,7 +176,7 @@
     DXY_XMAX, DXY_YMAX, DXY_VCHAR, DXY_HCHAR,
     DXY_VTIC, DXY_HTIC, options_null, DXY_init, DXY_reset,
     DXY_text, null_scale, DXY_graphics, DXY_move, DXY_vector,
-    DXY_linetype, DXY_put_text, DXY_text_angle,
+    DXY_linetype, DXY_put_text, do_fill, DXY_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(dxy_driver)
 
diff -urN gnuplot-3.7.1.orig/term/eepic.trm gnuplot-3.7.1/term/eepic.trm
--- gnuplot-3.7.1.orig/term/eepic.trm	Mon Dec 14 18:38:47 1998
+++ gnuplot-3.7.1/term/eepic.trm	Thu Feb 17 19:29:21 2000
@@ -359,7 +359,7 @@
     EEPIC_XMAX, EEPIC_YMAX, EEPIC_VCHAR, EEPIC_HCHAR,
     EEPIC_VTIC, EEPIC_HTIC, options_null, EEPIC_init, EEPIC_reset,
     EEPIC_text, null_scale, EEPIC_graphics, EEPIC_move, EEPIC_vector,
-    EEPIC_linetype, EEPIC_put_text, EEPIC_text_angle,
+    EEPIC_linetype, EEPIC_put_text, do_fill, EEPIC_text_angle,
     EEPIC_justify_text, EEPIC_point, EEPIC_arrow, set_font_null
 TERM_TABLE_END(eepic_driver)
 
diff -urN gnuplot-3.7.1.orig/term/emxvga.trm gnuplot-3.7.1/term/emxvga.trm
--- gnuplot-3.7.1.orig/term/emxvga.trm	Mon Dec 14 18:38:51 1998
+++ gnuplot-3.7.1/term/emxvga.trm	Thu Feb 17 19:29:21 2000
@@ -424,7 +424,7 @@
     EMXVGA_XMAX, EMXVGA_YMAX, EMXVGA_VCHAR, EMXVGA_HCHAR,
     EMXVGA_VTIC, EMXVGA_HTIC, EMXVESA_options, EMXVESA_init, EMXVESA_reset,
     EMXVESA_text, null_scale, EMXVESA_graphics, EMXVGA_move, EMXVGA_vector,
-    EMXVGA_linetype, EMXVGA_put_text, EMXVGA_text_angle,
+    EMXVGA_linetype, EMXVGA_put_text, do_fill, EMXVGA_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(vesa_driver)
 
@@ -438,7 +438,7 @@
     EMXVGA_XMAX, EMXVGA_YMAX, EMXVGA_VCHAR, EMXVGA_HCHAR,
     EMXVGA_VTIC, EMXVGA_HTIC, options_null, EMXVGA_init, EMXVGA_reset,
     EMXVGA_text, null_scale, EMXVGA_graphics, EMXVGA_move,
-    EMXVGA_vector, EMXVGA_linetype, EMXVGA_put_text, EMXVGA_text_angle,
+    EMXVGA_vector, EMXVGA_linetype, EMXVGA_put_text, do_fill, EMXVGA_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null,
     0,				/* pointsize */
     TERM_CAN_MULTIPLOT, EMXVGA_suspend, EMXVGA_resume
diff -urN gnuplot-3.7.1.orig/term/epson.trm gnuplot-3.7.1/term/epson.trm
--- gnuplot-3.7.1.orig/term/epson.trm	Mon Dec 14 18:38:55 1998
+++ gnuplot-3.7.1/term/epson.trm	Thu Feb 17 19:29:21 2000
@@ -742,7 +742,7 @@
     EPS180XMAX, EPS180YMAX, EPSON180VCHAR, EPSON180HCHAR,
     EPSON180VTIC, EPSON180HTIC, options_null, EPSONinit, EPSONreset,
     EPS180text, null_scale, EPS180graphics, EPSONmove, EPSONvector,
-    EPSONlinetype, EPSONput_text, EPSON_text_angle,
+    EPSONlinetype, EPSONput_text, do_fill, EPSON_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(epson180_driver)
 
@@ -756,7 +756,7 @@
     EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
     EPSONVTIC, EPSONHTIC, options_null, EPSONinit, EPSONreset,
     EPS60text, null_scale, EPS60graphics, EPSONmove, EPSONvector,
-    EPSONlinetype, EPSONput_text, EPSON_text_angle,
+    EPSONlinetype, EPSONput_text, do_fill, EPSON_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(epson60_driver)
 
@@ -770,7 +770,7 @@
     EPSONXMAX, EPSONYMAX, EPSONVCHAR, EPSONHCHAR,
     EPSONVTIC, EPSONHTIC, options_null, EPSONinit, EPSONreset,
     EPSONtext, null_scale, EPSONgraphics, EPSONmove, EPSONvector,
-    EPSONlinetype, EPSONput_text, EPSON_text_angle,
+    EPSONlinetype, EPSONput_text, do_fill, EPSON_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(epsonlx_driver)
 
@@ -784,7 +784,7 @@
     NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
     NECVTIC, NECHTIC, NECoptions, NECinit, NECreset,
     NECtext, null_scale, NECgraphics, NECmove, NECvector,
-    NEClinetype, NECput_text, NEC_text_angle,
+    NEClinetype, NECput_text, do_fill, NEC_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(nec_driver)
 
@@ -798,7 +798,7 @@
     EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
     EPSONVTIC, EPSONHTIC, options_null, EPSONinit, EPSONreset,
     OKIDATAtext, null_scale, EPS60graphics, EPSONmove, EPSONvector,
-    EPSONlinetype, EPSONput_text, EPSON_text_angle,
+    EPSONlinetype, EPSONput_text, do_fill, EPSON_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(okidata_driver)
 
@@ -812,7 +812,7 @@
     STARCXMAX, STARCYMAX, STARCVCHAR, STARCHCHAR,
     STARCVTIC, STARCHTIC, options_null, STARCinit, STARCreset,
     STARCtext, null_scale, STARCgraphics, STARCmove, STARCvector,
-    STARClinetype, STARCput_text, STARC_text_angle,
+    STARClinetype, STARCput_text, do_fill, STARC_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(starc_driver)
 
@@ -826,7 +826,7 @@
     EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
     EPSONVTIC, EPSONHTIC, options_null, EPSONinit, EPSONreset,
     TANDY60text, null_scale, EPS60graphics, EPSONmove, EPSONvector,
-    EPSONlinetype, EPSONput_text, EPSON_text_angle,
+    EPSONlinetype, EPSONput_text, do_fill, EPSON_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(tandy60_driver)
 
diff -urN gnuplot-3.7.1.orig/term/excl.trm gnuplot-3.7.1/term/excl.trm
--- gnuplot-3.7.1.orig/term/excl.trm	Mon Dec 14 18:38:59 1998
+++ gnuplot-3.7.1/term/excl.trm	Thu Feb 17 19:29:21 2000
@@ -256,7 +256,7 @@
     EXCL_XMAX, EXCL_YMAX, EXCL_VCHAR, EXCL_HCHAR,
     EXCL_VTIC, EXCL_HTIC, options_null, EXCL_init, EXCL_reset,
     EXCL_text, null_scale, EXCL_graphics, EXCL_move, EXCL_vector,
-    EXCL_linetype, EXCL_put_text, null_text_angle,
+    EXCL_linetype, EXCL_put_text, do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(excl_driver)
 #undef LAST_TERM
diff -urN gnuplot-3.7.1.orig/term/fg.trm gnuplot-3.7.1/term/fg.trm
--- gnuplot-3.7.1.orig/term/fg.trm	Mon Dec 14 18:39:04 1998
+++ gnuplot-3.7.1/term/fg.trm	Thu Feb 17 19:29:21 2000
@@ -324,7 +324,7 @@
     HERC_XMAX, HERC_YMAX, HERC_VCHAR, HERC_HCHAR,
     HERC_VTIC, HERC_HTIC, options_null, VGA_init, VGA_reset,
     VGA_text, null_scale, HERC_graphics, VGA_move, VGA_vector,
-    VGA_linetype, VGA_put_text, VGA_text_angle,
+    VGA_linetype, VGA_put_text, do_fill, VGA_text_angle,
     VGA_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(hercules_driver)
 
@@ -336,7 +336,7 @@
     EGA_XMAX, EGA_YMAX, EGA_VCHAR, EGA_HCHAR,
     EGA_VTIC, EGA_HTIC, options_null, VGA_init, VGA_reset,
     VGA_text, null_scale, EGAMONO_graphics, VGA_move, VGA_vector,
-    VGA_linetype, VGA_put_text, VGA_text_angle,
+    VGA_linetype, VGA_put_text, do_fill, VGA_text_angle,
     VGA_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(egamono_driver)
 
@@ -348,7 +348,7 @@
     EGA_XMAX, EGA_YMAX, EGA_VCHAR, EGA_HCHAR,
     EGA_VTIC, EGA_HTIC, options_null, VGA_init, VGA_reset,
     VGA_text, null_scale, EGA_graphics, VGA_move, VGA_vector,
-    VGA_linetype, VGA_put_text, VGA_text_angle,
+    VGA_linetype, VGA_put_text, do_fill, VGA_text_angle,
     VGA_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(egalib_driver)
 
@@ -360,7 +360,7 @@
     VGA_XMAX, VGA_YMAX, VGA_VCHAR, VGA_HCHAR,
     VGA_VTIC, VGA_HTIC, options_null, VGA_init, VGA_reset,
     VGA_text, null_scale, VGA_graphics, VGA_move, VGA_vector,
-    VGA_linetype, VGA_put_text, VGA_text_angle,
+    VGA_linetype, VGA_put_text, do_fill, VGA_text_angle,
     VGA_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(vgalib_driver)
 
@@ -372,7 +372,7 @@
     VGA_XMAX, VGA_YMAX, VGA_VCHAR, VGA_HCHAR,
     VGA_VTIC, VGA_HTIC, options_null, VGA_init, VGA_reset,
     VGA_text, null_scale, VGAMONO_graphics, VGA_move, VGA_vector,
-    VGA_linetype, VGA_put_text, VGA_text_angle,
+    VGA_linetype, VGA_put_text, do_fill, VGA_text_angle,
     VGA_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(vgamono_driver)
 
@@ -384,7 +384,7 @@
     SVGA_XMAX, SVGA_YMAX, SVGA_VCHAR, SVGA_HCHAR,
     SVGA_VTIC, SVGA_HTIC, options_null, VGA_init, VGA_reset,
     VGA_text, null_scale, SVGA_graphics, VGA_move, VGA_vector,
-    VGA_linetype, VGA_put_text, VGA_text_angle,
+    VGA_linetype, VGA_put_text, do_fill, VGA_text_angle,
     VGA_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(svgalib_driver)
 
@@ -396,7 +396,7 @@
     SSVGA_XMAX, SSVGA_YMAX, SSVGA_VCHAR, SSVGA_HCHAR,
     SSVGA_VTIC, SSVGA_HTIC, options_null, VGA_init, VGA_reset,
     VGA_text, null_scale, SSVGA_graphics, VGA_move, VGA_vector,
-    VGA_linetype, VGA_put_text, VGA_text_angle,
+    VGA_linetype, VGA_put_text, do_fill, VGA_text_angle,
     VGA_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(ssvgalib_driver)
 
diff -urN gnuplot-3.7.1.orig/term/fig.trm gnuplot-3.7.1/term/fig.trm
--- gnuplot-3.7.1.orig/term/fig.trm	Sun Aug 22 19:52:28 1999
+++ gnuplot-3.7.1/term/fig.trm	Thu Feb 17 19:29:21 2000
@@ -767,7 +767,7 @@
     FIG_XMAX, FIG_YMAX, FIG_VCHAR, FIG_HCHAR,
     FIG_VTIC, FIG_HTIC, FIG_options, FIG_init, FIG_reset,
     FIG_text, null_scale, FIG_graphics, FIG_move, FIG_vector,
-    FIG_linetype, FIG_put_text, FIG_text_angle, FIG_justify_text,
+    FIG_linetype, FIG_put_text, do_fill, FIG_text_angle, FIG_justify_text,
     FIG_lpoint, FIG_arrow, set_font_null, FIG_pointsize,
     0 /*flags */ , 0 /*suspend */ , 0 /*resume */ , 0 /*fillbox */ ,
     FIG_linewidth
diff -urN gnuplot-3.7.1.orig/term/gif.trm gnuplot-3.7.1/term/gif.trm
--- gnuplot-3.7.1.orig/term/gif.trm	Wed Sep 29 14:53:53 1999
+++ gnuplot-3.7.1/term/gif.trm	Thu Feb 17 19:29:21 2000
@@ -107,6 +107,7 @@
 TERM_PUBLIC void GIF_put_text __PROTO((unsigned int x, unsigned int y, char str[]));
 TERM_PUBLIC int GIF_text_angle __PROTO((int ang));
 TERM_PUBLIC void GIF_reset __PROTO((void));
+TERM_PUBLIC int GIF_fill __PROTO((int x, int y, int dx, int dy)); 
 
 #include "gd.h"
 
@@ -313,6 +314,17 @@
 {
 }
 
+TERM_PUBLIC int GIF_fill __PROTO((int x, int y, int dx, int dy)) {
+
+  if (dy>=0) {
+    gdImageFilledRectangle(gif_state.image, x, gif_state.height - (y+dy), 
+			   x+dx, gif_state.height - y, gif_state.color);
+  } else {
+    gdImageFilledRectangle(gif_state.image, x, gif_state.height - y, 
+			   x+dx, gif_state.height - (y+dy), gif_state.color);
+  }
+}
+
 /*
  * _graphics()  Called just before a plot is going to be displayed.  This
  * procedure should set the device into graphics mode.  Devices which can't
@@ -497,7 +509,7 @@
     GREG_XMAX, GREG_YMAX, GIF_VCHAR, GIF_HCHAR,
     GIF_VTIC, GIF_HTIC, GIF_options, GIF_init, GIF_reset,
     GIF_text, null_scale, GIF_graphics, GIF_move, GIF_vector,
-    GIF_linetype, GIF_put_text, GIF_text_angle,
+    GIF_linetype, GIF_put_text, GIF_fill, GIF_text_angle,
     null_justify_text, do_point, do_arrow, GIF_set_font,
     0,				/* pointsize */
     TERM_CAN_MULTIPLOT | TERM_BINARY
diff -urN gnuplot-3.7.1.orig/term/gnugraph.trm gnuplot-3.7.1/term/gnugraph.trm
--- gnuplot-3.7.1.orig/term/gnugraph.trm	Thu Aug 19 15:17:45 1999
+++ gnuplot-3.7.1/term/gnugraph.trm	Thu Feb 17 19:29:21 2000
@@ -299,7 +299,7 @@
     UP_XMAX, UP_YMAX, UP_VCHAR, UP_HCHAR,
     UP_VTIC, UP_HTIC, UP_options, UP_init, UP_reset,
     UP_text, null_scale, UP_graphics, UP_move, UP_vector,
-    UP_linetype, UP_put_text, UP_text_angle,
+    UP_linetype, UP_put_text, do_fill, UP_text_angle,
     UP_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(unixplot_driver)
 
diff -urN gnuplot-3.7.1.orig/term/gpic.trm gnuplot-3.7.1/term/gpic.trm
--- gnuplot-3.7.1.orig/term/gpic.trm	Mon Dec 14 18:39:28 1998
+++ gnuplot-3.7.1/term/gpic.trm	Thu Feb 17 19:29:21 2000
@@ -273,7 +273,7 @@
     GPIC_XMAX, GPIC_YMAX, GPIC_VCHAR, GPIC_HCHAR,
     GPIC_VTIC, GPIC_HTIC, GPIC_options, GPIC_init, GPIC_reset,
     GPIC_text, null_scale, GPIC_graphics, GPIC_move, GPIC_vector,
-    GPIC_linetype, GPIC_put_text, GPIC_text_angle,
+    GPIC_linetype, GPIC_put_text, do_fill, GPIC_text_angle,
     GPIC_justify_text, line_and_point, GPIC_arrow, set_font_null
 TERM_TABLE_END(gpic_driver)
 #undef LAST_TERM
diff -urN gnuplot-3.7.1.orig/term/gpr.trm gnuplot-3.7.1/term/gpr.trm
--- gnuplot-3.7.1.orig/term/gpr.trm	Mon Dec 14 18:39:32 1998
+++ gnuplot-3.7.1/term/gpr.trm	Thu Feb 17 19:29:21 2000
@@ -446,7 +446,7 @@
     GPR_XMAX, GPR_YMAX, GPR_VCHAR, GPR_HCHAR,
     GPR_VTIC, GPR_HTIC, options_null, GPR_init, GPR_reset,
     GPR_text, null_scale, GPR_graphics, GPR_move, GPR_vector,
-    GPR_linetype, GPR_put_text, GPR_text_angle,
+    GPR_linetype, GPR_put_text, do_fill, GPR_text_angle,
     GPR_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(gpr_driver)
 
diff -urN gnuplot-3.7.1.orig/term/grass.trm gnuplot-3.7.1/term/grass.trm
--- gnuplot-3.7.1.orig/term/grass.trm	Wed Jan 13 21:50:07 1999
+++ gnuplot-3.7.1/term/grass.trm	Thu Feb 17 19:29:21 2000
@@ -603,7 +603,7 @@
     GRASS_XMAX, GRASS_YMAX, GRASS_VCHAR, GRASS_HCHAR,
     GRASS_VTIC, GRASS_HTIC, GRASS_options, GRASS_init, GRASS_reset,
     GRASS_text, null_scale, GRASS_graphics, GRASS_move, GRASS_vector,
-    GRASS_linetype, GRASS_put_text, GRASS_text_angle,
+    GRASS_linetype, GRASS_put_text, do_fill, GRASS_text_angle,
     GRASS_justify_text, GRASS_point, GRASS_arrow, GRASS_set_font
 TERM_TABLE_END(grass_driver)
 
diff -urN gnuplot-3.7.1.orig/term/hp26.trm gnuplot-3.7.1/term/hp26.trm
--- gnuplot-3.7.1.orig/term/hp26.trm	Mon Dec 14 18:39:41 1998
+++ gnuplot-3.7.1/term/hp26.trm	Thu Feb 17 19:29:21 2000
@@ -684,7 +684,7 @@
     HP26_XMAX, HP26_YMAX, HP26_VCHAR, HP26_HCHAR,
     HP26_VTIC, HP26_HTIC, options_null, HP26_init, HP26_reset,
     HP26_text, null_scale, HP26_graphics, HP26_move, HP26_vector,
-    HP26_linetype, HP26_put_text, HP26_text_angle,
+    HP26_linetype, HP26_put_text, do_fill, HP26_text_angle,
     null_justify_text, HP26_line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(hp2623a_driver)
 
diff -urN gnuplot-3.7.1.orig/term/hp2648.trm gnuplot-3.7.1/term/hp2648.trm
--- gnuplot-3.7.1.orig/term/hp2648.trm	Wed Nov 25 21:06:34 1998
+++ gnuplot-3.7.1/term/hp2648.trm	Thu Feb 17 19:29:21 2000
@@ -171,7 +171,7 @@
     HP2648XMAX, HP2648YMAX, HP2648VCHAR, HP2648HCHAR,
     HP2648VTIC, HP2648HTIC, options_null, HP2648init, HP2648reset,
     HP2648text, null_scale, HP2648graphics, HP2648move, HP2648vector,
-    HP2648linetype, HP2648put_text, HP2648_text_angle,
+    HP2648linetype, HP2648put_text, do_fill, HP2648_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(hp2648_driver)
 
diff -urN gnuplot-3.7.1.orig/term/hp500c.trm gnuplot-3.7.1/term/hp500c.trm
--- gnuplot-3.7.1.orig/term/hp500c.trm	Mon Dec 14 18:39:45 1998
+++ gnuplot-3.7.1/term/hp500c.trm	Thu Feb 17 19:29:21 2000
@@ -510,7 +510,7 @@
     HP500C_75PPI_HCHAR, HP500C_75PPI_VTIC, HP500C_75PPI_HTIC, HP500Coptions,
     HP500Cinit, HP500Creset, HP500Ctext, null_scale,
     HP500Cgraphics, HP500Cmove, HP500Cvector, HP500Clinetype,
-    HP500Cput_text, HP500Ctext_angle, null_justify_text, do_point,
+    HP500Cput_text,do_fill, HP500Ctext_angle, null_justify_text, do_point,
     do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(hp500c_driver)
 
diff -urN gnuplot-3.7.1.orig/term/hpgl.trm gnuplot-3.7.1/term/hpgl.trm
--- gnuplot-3.7.1.orig/term/hpgl.trm	Mon Dec 14 18:39:49 1998
+++ gnuplot-3.7.1/term/hpgl.trm	Thu Feb 17 19:29:21 2000
@@ -1097,7 +1097,7 @@
     HPGL_XMAX, HPGL_YMAX, HPGL_VCHAR, HPGL_HCHAR,
     HPGL_VTIC, HPGL_HTIC, HPGL_options, HPGL_init, HPGL_reset,
     HPGL_text, null_scale, HPGL_graphics, HPGL_move, HPGL_vector,
-    HPGL_linetype, HPGL_put_text, HPGL_text_angle,
+    HPGL_linetype, HPGL_put_text, do_fill, HPGL_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(hpgl_driver)
 
@@ -1109,7 +1109,7 @@
     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_linetype, HPGL2_put_text, do_fill, HPGL2_text_angle,
     HPGL2_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(pcl5_driver)
 
diff -urN gnuplot-3.7.1.orig/term/hpljii.trm gnuplot-3.7.1/term/hpljii.trm
--- gnuplot-3.7.1.orig/term/hpljii.trm	Tue Dec 15 20:22:41 1998
+++ gnuplot-3.7.1/term/hpljii.trm	Thu Feb 17 19:29:21 2000
@@ -376,7 +376,7 @@
     HPLJII_75PPI_HCHAR, HPLJII_75PPI_VTIC, HPLJII_75PPI_HTIC, HPLJIIoptions,
     HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
     HPLJIIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
-    HPLJIIput_text, HPLJIItext_angle, null_justify_text, line_and_point,
+    HPLJIIput_text,do_fill, HPLJIItext_angle, null_justify_text, line_and_point,
     do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(hpljii_driver)
 
@@ -389,7 +389,7 @@
     HPLJII_75PPI_HCHAR, HPLJII_75PPI_VTIC, HPLJII_75PPI_HTIC, HPLJIIoptions,
     HPLJIIinit, HPLJIIreset, HPDJtext, null_scale,
     HPDJgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
-    HPDJput_text, HPDJtext_angle, null_justify_text, line_and_point,
+    HPDJput_text,do_fill, HPDJtext_angle, null_justify_text, line_and_point,
     do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(hpdj_driver)
 
diff -urN gnuplot-3.7.1.orig/term/hppj.trm gnuplot-3.7.1/term/hppj.trm
--- gnuplot-3.7.1.orig/term/hppj.trm	Wed Nov 25 21:06:44 1998
+++ gnuplot-3.7.1/term/hppj.trm	Thu Feb 17 19:29:21 2000
@@ -259,7 +259,7 @@
     HPPJ_XMAX, HPPJ_YMAX,
     HPPJ_9x17_VCHAR, HPPJ_9x17_HCHAR, HPPJ_9x17_VTIC, HPPJ_9x17_HTIC,
     HPPJoptions, HPPJinit, HPPJreset, HPPJtext, null_scale, HPPJgraphics,
-    HPPJmove, HPPJvector, HPPJlinetype, HPPJput_text, HPPJtext_angle,
+    HPPJmove, HPPJvector, HPPJlinetype, HPPJput_text,do_fill, HPPJtext_angle,
     null_justify_text, do_point, do_arrow, set_font_null, 0, TERM_BINARY
 TERM_TABLE_END(hppj_driver)
 
diff -urN gnuplot-3.7.1.orig/term/imagen.trm gnuplot-3.7.1/term/imagen.trm
--- gnuplot-3.7.1.orig/term/imagen.trm	Mon Dec 14 18:40:00 1998
+++ gnuplot-3.7.1/term/imagen.trm	Thu Feb 17 19:29:21 2000
@@ -858,7 +858,7 @@
     IMAGEN_XMAX, IMAGEN_YMAX, IMAGEN_VCHAR, IMAGEN_HCHAR,
     IMAGEN_VTIC, IMAGEN_HTIC, IMAGEN_options, IMAGEN_init, IMAGEN_reset,
     IMAGEN_text, null_scale, IMAGEN_graphics, IMAGEN_move,
-    IMAGEN_vector, IMAGEN_linetype, IMAGEN_put_text, IMAGEN_text_angle,
+    IMAGEN_vector, IMAGEN_linetype, IMAGEN_put_text, do_fill, IMAGEN_text_angle,
     IMAGEN_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(imagen_driver)
 
diff -urN gnuplot-3.7.1.orig/term/iris4d.trm gnuplot-3.7.1/term/iris4d.trm
--- gnuplot-3.7.1.orig/term/iris4d.trm	Mon Dec 14 18:40:12 1998
+++ gnuplot-3.7.1/term/iris4d.trm	Thu Feb 17 19:29:21 2000
@@ -279,7 +279,7 @@
     IRIS4D_XMAX, IRIS4D_YMAX, IRIS4D_VCHAR, IRIS4D_HCHAR,
     IRIS4D_VTIC, IRIS4D_HTIC, IRIS4D_options, IRIS4D_init, IRIS4D_reset,
     IRIS4D_text, null_scale, IRIS4D_graphics, IRIS4D_move, IRIS4D_vector,
-    IRIS4D_linetype, IRIS4D_put_text, null_text_angle,
+    IRIS4D_linetype, IRIS4D_put_text,do_fill, null_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(iris4d_driver)
 
diff -urN gnuplot-3.7.1.orig/term/kyo.trm gnuplot-3.7.1/term/kyo.trm
--- gnuplot-3.7.1.orig/term/kyo.trm	Wed Nov 25 21:06:54 1998
+++ gnuplot-3.7.1/term/kyo.trm	Thu Feb 17 19:29:21 2000
@@ -176,7 +176,7 @@
     PRE_XMAX, PRE_YMAX, PRE_VCHAR, PRE_HCHAR,
     PRE_VTIC, PRE_HTIC, options_null, PRE_init, PRE_reset,
     PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector,
-    PRE_linetype, PRE_put_text, null_text_angle,
+    PRE_linetype, PRE_put_text,do_fill, null_text_angle,
     PRE_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(prescribe_driver)
 
@@ -188,7 +188,7 @@
     PRE_XMAX, PRE_YMAX, KYO_VCHAR, KYO_HCHAR,
     PRE_VTIC, PRE_HTIC, options_null, KYO_init, PRE_reset,
     PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector,
-    PRE_linetype, PRE_put_text, null_text_angle,
+    PRE_linetype, PRE_put_text,do_fill, null_text_angle,
     PRE_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(kyo_driver)
 
diff -urN gnuplot-3.7.1.orig/term/latex.trm gnuplot-3.7.1/term/latex.trm
--- gnuplot-3.7.1.orig/term/latex.trm	Thu Aug 19 15:17:37 1999
+++ gnuplot-3.7.1/term/latex.trm	Thu Feb 17 19:29:21 2000
@@ -796,7 +796,7 @@
     LATEX_XMAX, LATEX_YMAX, LATEX_VCHAR, LATEX_HCHAR,
     LATEX_VTIC, LATEX_HTIC, LATEX_options, LATEX_init, LATEX_reset,
     LATEX_text, null_scale, LATEX_graphics, LATEX_move, LATEX_vector,
-    LATEX_linetype, LATEX_put_text, LATEX_text_angle,
+    LATEX_linetype, LATEX_put_text,do_fill, LATEX_text_angle,
     LATEX_justify_text, LATEX_point, LATEX_arrow, set_font_null
 TERM_TABLE_END(latex_driver)
 
@@ -810,7 +810,7 @@
     LATEX_XMAX, LATEX_YMAX, LATEX_VCHAR, LATEX_HCHAR,
     LATEX_VTIC, LATEX_HTIC, LATEX_options, EMTEX_init, EMTEX_reset,
     EMTEX_text, null_scale, LATEX_graphics, LATEX_move, LATEX_vector,
-    LATEX_linetype, LATEX_put_text, LATEX_text_angle,
+    LATEX_linetype, LATEX_put_text,do_fill, LATEX_text_angle,
     LATEX_justify_text, LATEX_point, LATEX_arrow, set_font_null
 TERM_TABLE_END(emtex_driver)
 
diff -urN gnuplot-3.7.1.orig/term/linux.trm gnuplot-3.7.1/term/linux.trm
--- gnuplot-3.7.1.orig/term/linux.trm	Thu Aug 19 15:17:16 1999
+++ gnuplot-3.7.1/term/linux.trm	Thu Feb 17 19:29:21 2000
@@ -310,7 +310,7 @@
     LINUX_XMAX, LINUX_YMAX, LINUX_VCHAR, LINUX_HCHAR,
     LINUX_VTIC, LINUX_HTIC, LINUX_options, LINUX_init, LINUX_reset,
     LINUX_text, null_scale, LINUX_graphics, LINUX_move, LINUX_vector,
-    LINUX_linetype, LINUX_put_text, LINUX_text_angle,
+    LINUX_linetype, LINUX_put_text, do_fill, LINUX_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null,
     0,				/* pointsize */
     TERM_CAN_MULTIPLOT, LINUX_suspend, LINUX_resume
diff -urN gnuplot-3.7.1.orig/term/mac.trm gnuplot-3.7.1/term/mac.trm
--- gnuplot-3.7.1.orig/term/mac.trm	Tue Oct 19 20:51:03 1999
+++ gnuplot-3.7.1/term/mac.trm	Thu Feb 17 19:29:21 2000
@@ -159,7 +159,7 @@
     MAC_XMAX, MAC_YMAX, MAC_VCHAR+1, MAC_HCHAR, 
     MAC_VTIC, MAC_HTIC, MAC_options,MAC_init, MAC_reset, 
     MAC_text, null_scale, MAC_graphics, MAC_move, MAC_vector,
-    MAC_linetype, MAC_put_text, MAC_text_angle, 
+    MAC_linetype, MAC_put_text, do_fill, MAC_text_angle, 
     MAC_justify_text, do_point, do_arrow,
     MAC_setfont, NULL, TERM_CAN_MULTIPLOT+TERM_BINARY,
     MAC_suspend, MAC_resume} 
diff -urN gnuplot-3.7.1.orig/term/metafont.trm gnuplot-3.7.1/term/metafont.trm
--- gnuplot-3.7.1.orig/term/metafont.trm	Tue Dec 15 20:21:41 1998
+++ gnuplot-3.7.1/term/metafont.trm	Thu Feb 17 19:29:21 2000
@@ -509,7 +509,7 @@
     MF_XMAX, MF_YMAX, MF_VCHAR, MF_HCHAR,
     MF_VTIC, MF_HTIC, options_null, MF_init, MF_reset,
     MF_text, null_scale, MF_graphics, MF_move, MF_vector,
-    MF_linetype, MF_put_text, MF_text_angle,
+    MF_linetype, MF_put_text,do_fill, MF_text_angle,
     MF_justify_text, line_and_point, MF_arrow, set_font_null
 TERM_TABLE_END(mf_driver)
 
diff -urN gnuplot-3.7.1.orig/term/metapost.trm gnuplot-3.7.1/term/metapost.trm
--- gnuplot-3.7.1.orig/term/metapost.trm	Thu Sep 16 17:05:21 1999
+++ gnuplot-3.7.1/term/metapost.trm	Thu Feb 17 19:29:21 2000
@@ -642,7 +642,7 @@
     MP_XMAX, MP_YMAX, MP_VCHAR, MP_HCHAR,
     MP_VTIC, MP_HTIC, MP_options, MP_init, MP_reset,
     MP_text, null_scale, MP_graphics, MP_move, MP_vector,
-    MP_linetype, MP_put_text, MP_text_angle,
+    MP_linetype, MP_put_text, do_fill, MP_text_angle,
     MP_justify_text, MP_point, MP_arrow, MP_set_font, MP_pointsize,
     0, 0, 0, MP_boxfill, MP_linewidth
     TERM_TABLE_END(mp_driver)
diff -urN gnuplot-3.7.1.orig/term/mgr.trm gnuplot-3.7.1/term/mgr.trm
--- gnuplot-3.7.1.orig/term/mgr.trm	Wed Nov 25 21:07:20 1998
+++ gnuplot-3.7.1/term/mgr.trm	Thu Feb 17 19:29:21 2000
@@ -217,7 +217,7 @@
     MGR_XMAX, MGR_YMAX, MGR_VCHAR, MGR_HCHAR,
     MGR_VTIC, MGR_HTIC, options_null, MGR_init, MGR_reset,
     MGR_text, null_scale, MGR_graphics, MGR_move, MGR_vector,
-    MGR_linetype, MGR_put_text, null_text_angle,
+    MGR_linetype, MGR_put_text,do_fill, null_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(mgr_driver)
 
diff -urN gnuplot-3.7.1.orig/term/mif.trm gnuplot-3.7.1/term/mif.trm
--- gnuplot-3.7.1.orig/term/mif.trm	Tue Jan 12 14:04:11 1999
+++ gnuplot-3.7.1/term/mif.trm	Thu Feb 17 19:29:21 2000
@@ -845,7 +845,7 @@
     MIF_XMAX, MIF_YMAX, MIF_VCHAR, MIF_HCHAR,
     MIF_VTIC, MIF_HTIC, MIF_options, MIF_init, MIF_reset,
     MIF_text, null_scale, MIF_graphics, MIF_move, MIF_vector,
-    MIF_linetype, MIF_put_text, MIF_text_angle,
+    MIF_linetype, MIF_put_text,do_fill, MIF_text_angle,
     MIF_justify_text, MIF_point, do_arrow, set_font_null
 TERM_TABLE_END(mif_driver)
 
diff -urN gnuplot-3.7.1.orig/term/multitos.trm gnuplot-3.7.1/term/multitos.trm
--- gnuplot-3.7.1.orig/term/multitos.trm	Mon Dec 14 18:40:36 1998
+++ gnuplot-3.7.1/term/multitos.trm	Thu Feb 17 19:29:21 2000
@@ -372,7 +372,7 @@
     MTOS_XMAX, MTOS_YMAX, MTOS_VCHAR, MTOS_HCHAR,
     MTOS_VTIC, MTOS_HTIC, MTOS_options, MTOS_init, MTOS_reset,
     MTOS_text, null_scale, MTOS_graphics, MTOS_move, MTOS_vector,
-    MTOS_linetype, MTOS_put_text, MTOS_text_angle,
+    MTOS_linetype, MTOS_put_text,do_fill, MTOS_text_angle,
     MTOS_justify_text, MTOS_point, do_arrow, set_font_null,
     0, TERM_CAN_MULTIPLOT, 0, 0
 TERM_TABLE_END(mtos_driver)
diff -urN gnuplot-3.7.1.orig/term/next.trm gnuplot-3.7.1/term/next.trm
--- gnuplot-3.7.1.orig/term/next.trm	Thu Aug 19 15:17:02 1999
+++ gnuplot-3.7.1/term/next.trm	Thu Feb 17 19:29:21 2000
@@ -1425,7 +1425,7 @@
     NEXT_XMAX, NEXT_YMAX, NEXT_VCHAR, NEXT_HCHAR,
     NEXT_VTIC, NEXT_HTIC, NEXT_options, NEXT_init, NEXT_reset,
     NEXT_text, null_scale, NEXT_graphics, NEXT_move, NEXT_vector,
-    NEXT_linetype, NEXT_put_text, NEXT_text_angle,
+    NEXT_linetype, NEXT_put_text,do_fill, NEXT_text_angle,
     NEXT_justify_text, NEXT_point, do_arrow, NEXT_set_font,
     NEXT_set_pointsize
 TERM_TABLE_END(next_driver)
diff -urN gnuplot-3.7.1.orig/term/openstep.trm gnuplot-3.7.1/term/openstep.trm
--- gnuplot-3.7.1.orig/term/openstep.trm	Fri Aug 20 13:09:47 1999
+++ gnuplot-3.7.1/term/openstep.trm	Thu Feb 17 19:29:21 2000
@@ -1312,7 +1312,7 @@
     NEXT_XMAX, NEXT_YMAX, NEXT_VCHAR, NEXT_HCHAR,
     NEXT_VTIC, NEXT_HTIC, NEXT_options, NEXT_init, NEXT_reset,
     NEXT_text, null_scale, NEXT_graphics, NEXT_move, NEXT_vector,
-    NEXT_linetype, NEXT_put_text, NEXT_text_angle,
+    NEXT_linetype, NEXT_put_text, do_fill, NEXT_text_angle,
     NEXT_justify_text, NEXT_point, do_arrow, NEXT_set_font,
     NEXT_set_pointsize
 TERM_TABLE_END(next_driver)
diff -urN gnuplot-3.7.1.orig/term/pbm.trm gnuplot-3.7.1/term/pbm.trm
--- gnuplot-3.7.1.orig/term/pbm.trm	Tue Dec 15 20:21:52 1998
+++ gnuplot-3.7.1/term/pbm.trm	Thu Feb 17 19:29:21 2000
@@ -389,7 +389,7 @@
     PBM_HCHAR, PBM_VTIC, PBM_HTIC, PBMoptions,
     PBMinit, PBMreset, PBMtext, null_scale,
     PBMgraphics, PBMmove, PBMvector, PBMlinetype,
-    PBMput_text, PBMtext_angle, null_justify_text, PBMpoint,
+    PBMput_text,do_fill, PBMtext_angle, null_justify_text, PBMpoint,
     do_arrow, set_font_null,
     0,				/* pointsize */
     TERM_CAN_MULTIPLOT | TERM_BINARY
diff -urN gnuplot-3.7.1.orig/term/pc.trm gnuplot-3.7.1/term/pc.trm
--- gnuplot-3.7.1.orig/term/pc.trm	Mon Dec 14 18:40:51 1998
+++ gnuplot-3.7.1/term/pc.trm	Thu Feb 17 19:29:21 2000
@@ -523,7 +523,7 @@
     PC_XMAX, PC_YMAX, PC_VCHAR, PC_HCHAR,
     PC_VTIC, PC_HTIC, options_null, PC_init, PC_reset,
     PC_text, null_scale, PC_graphics, PC_move, PC_vector,
-    PC_linetype, PC_put_text, PC_text_angle,
+    PC_linetype, PC_put_text,do_fill, PC_text_angle,
     PC_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(pc_driver)
 
diff -urN gnuplot-3.7.1.orig/term/pm.trm gnuplot-3.7.1/term/pm.trm
--- gnuplot-3.7.1.orig/term/pm.trm	Wed Dec 23 21:53:26 1998
+++ gnuplot-3.7.1/term/pm.trm	Thu Feb 17 19:29:21 2000
@@ -576,7 +576,7 @@
     PM_XMAX, PM_YMAX, PM_VCHAR, PM_HCHAR,
     PM_VTIC, PM_HTIC, PM_options, PM_init, PM_reset,
     PM_text, null_scale, PM_graphics, PM_move, PM_vector,
-    PM_linetype, PM_put_text, PM_text_angle,
+    PM_linetype, PM_put_text,do_fill, PM_text_angle,
     PM_justify_text, PM_point, do_arrow, PM_set_font,
     0 /*pointsize */ , TERM_CAN_MULTIPLOT, PM_suspend, PM_resume,
     0 /*fillbox */ , PM_linewidth
diff -urN gnuplot-3.7.1.orig/term/png.trm gnuplot-3.7.1/term/png.trm
--- gnuplot-3.7.1.orig/term/png.trm	Tue Oct 19 14:31:28 1999
+++ gnuplot-3.7.1/term/png.trm	Thu Feb 17 19:29:21 2000
@@ -440,7 +440,7 @@
     PNG_HCHAR, PNG_VTIC, PNG_HTIC, PNG_options,
     PNG_init, PNG_reset, PNG_text, null_scale,
     PNG_graphics, b_move, b_vector, PNG_linetype,
-    b_put_text, b_text_angle, null_justify_text, PNG_point,
+    b_put_text, do_fill, b_text_angle, null_justify_text, PNG_point,
     do_arrow, set_font_null,
     0,				/* pointsize */
     TERM_CAN_MULTIPLOT | TERM_BINARY
diff -urN gnuplot-3.7.1.orig/term/post.trm gnuplot-3.7.1/term/post.trm
--- gnuplot-3.7.1.orig/term/post.trm	Thu Aug 19 15:16:33 1999
+++ gnuplot-3.7.1/term/post.trm	Thu Feb 17 19:29:22 2000
@@ -75,6 +75,7 @@
 TERM_PUBLIC void PS_vector __PROTO((unsigned int x, unsigned int y));
 TERM_PUBLIC void PS_put_text __PROTO((unsigned int x, unsigned int y, char *str));
 TERM_PUBLIC void ENHPS_put_text __PROTO((unsigned int x, unsigned int y, char *str));
+TERM_PUBLIC int PS_fill __PROTO(( int x, int y, int dx, int dy));
 TERM_PUBLIC int PS_text_angle __PROTO((int ang));
 TERM_PUBLIC int PS_justify_text __PROTO((enum JUSTIFY mode));
 TERM_PUBLIC void PS_point __PROTO((unsigned int x, unsigned int y, int number));
@@ -127,6 +128,7 @@
 
 static TBOOLEAN ps_portrait = FALSE;				 /* vertical page */
 static TBOOLEAN ps_color = FALSE;
+static TBOOLEAN ps_gray = FALSE;
 static TBOOLEAN ps_solid = FALSE;   		/*  use solid lines */
 static TBOOLEAN ps_eps = FALSE;	/* Is this for an eps file? */
 			/* Added by Robert Davis <davis@ecn.purdue.edu> */
@@ -140,6 +142,7 @@
 static TBOOLEAN ps_duplex_option = FALSE;
 
 static char GPFAR * GPFAR PS_header[] = {
+"/TFBox {gsave newpath moveto scale 0 1 rlineto 1 0 rlineto 0 -1 rlineto -1 0 rlineto fill grestore} bind def\n",
 "/M {moveto} bind def\n",
 "/L {lineto} bind def\n",
 "/R {rmoveto} bind def\n",
@@ -159,8 +162,17 @@
 "/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def\n",
 "  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def\n",
 /* Dash or Color Line */
-"/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }\n",
-" {pop pop pop Solid {pop []} if 0 setdash} ifelse } def\n",
+/*MJC
+ "/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }\n",
+ " {pop pop pop Solid {pop []} if 0 setdash} ifelse } def\n",
+MJC*/
+"/DL { Color ",
+"             {pop setrgbcolor Solid {pop []} if 0 setdash}",
+"             { Gray",
+"                     {setgray pop pop pop Solid {pop []} if 0 setdash}",
+"                     {pop pop pop pop Solid {pop []} if 0 setdash}",
+"             ifelse }",
+"    ifelse } def",
 /* Border Lines */
 "/BL { stroke userlinewidth 2 mul setlinewidth } def\n",
 /* Axes Lines */
@@ -171,17 +183,18 @@
 /* Plot Lines */
 "/PL { stroke userlinewidth setlinewidth } def\n",
 /* Line Types */
-"/LTb { BL [] 0 0 0 DL } def\n", /* border */
+/* "/LTb { BL [] 0 0 0 DL } def\n", */
+"/LTb { BL [] 0 0 0 0 DL } def\n" /* border */
 "/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def\n", /* axes */
-"/LT0 { PL [] 1 0 0 DL } def\n",
-"/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def\n",
-"/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def\n",
-"/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def\n",
-"/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def\n",
-"/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def\n",
-"/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def\n",
-"/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def\n",
-"/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def\n",
+"/LT0 { PL [] 0 1 0 .1 DL } def\n",
+"/LT1 { PL [4 dl 2 dl] 0 0 1 .2 DL } def\n",
+"/LT2 { PL [2 dl 3 dl] 1 0 0 .3 DL } def\n",
+"/LT3 { PL [1 dl 1.5 dl] 1 0 1 .4 DL } def\n",
+"/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 .5 DL } def\n",
+"/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 .6 DL } def\n",
+"/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 .7 DL } def\n",
+"/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 .8 DL } def\n",
+"/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 .9 DL } def\n",
 /* Point (Round) */	/* Matt Heffron make it round */
 "/Pnt { stroke [] 0 setdash\n",
 "   gsave 1 setlinecap M 0 0 V stroke grestore } def\n",
@@ -553,6 +566,7 @@
 			ps_portrait=FALSE;
  			ps_eps=FALSE;
 			ps_color=FALSE;
+			ps_gray=FALSE;
 			ps_solid=FALSE;
 			ps_duplex_option=FALSE;
 			strcpy(ps_font,"Helvetica");
@@ -577,13 +591,21 @@
 	if (!END_OF_COMMAND) {
 		if (almost_equals(c_token,"m$onochrome")) {
 			ps_color=FALSE;
+			ps_gray=FALSE;
 			c_token++;
 		}
 		else if (almost_equals(c_token,"c$olor")
 			 || almost_equals(c_token,"c$olour")) {
 			ps_color=TRUE;
+			ps_gray=FALSE;
 			c_token++;
 		}
+                else if (almost_equals(c_token,"g$rey") || almost_equals(c_token,"g$ray")) {
+                       ps_color=FALSE;
+                       ps_gray=TRUE;
+                       c_token++;
+               }
+
 	}
 
 	if (!END_OF_COMMAND) {
@@ -632,8 +654,8 @@
 	/* Entry font added by DJL */
 	sprintf(term_options,"%s %senhanced %s %s %s \"%s\" %d",
 		ps_eps ? "eps" : (ps_portrait ? "portrait" : "landscape"),
-      term->put_text == ENHPS_put_text ? "" : "no",
-		ps_color ? "color" : "monochrome",
+                (term->put_text == ENHPS_put_text) ? "" : "no",
+                ps_gray ? "gray" : ( ps_color ? "color" : "monochrome" ),
 		ps_solid ? "solid" : "dashed",
 		ps_duplex_option ? (ps_duplex_state ? "duplex" : "simplex")
                                     : "defaultplex",
@@ -662,6 +684,7 @@
 %%%%DocumentFonts: %s\n";
 static char GPFAR psi2[] = "%%%%EndComments\n\
 /gnudict 256 dict def\ngnudict begin\n\
+/Gray %s def\n\
 /Color %s def\n\
 /Solid %s def\n\
 /gnulinewidth %.3f def\n\
@@ -841,6 +864,7 @@
 	if (!encap)
 		fprintf(gpoutfile,"%%%%Pages: (atend)\n");
 	fprintf(gpoutfile, psi2,
+		ps_gray ? "true" : "false",
 		ps_color ? "true" : "false",
 		ps_solid ? "true" : "false",
 		PS_LW,			/* line width */
@@ -952,6 +976,11 @@
 	PS_linetype_last = -1;
 }
 
+int PS_fill ( int x, int y, int dx, int dy)
+{
+     fprintf(gpoutfile, "%d %d %d %d TFBox\n", dx, dy, x, y);
+     return 0;
+}
 
 TERM_PUBLIC void PS_text()
 {
@@ -1648,7 +1677,7 @@
 	   PS_XMAX, PS_YMAX, PS_VCHAR, PS_HCHAR, 
 	   PS_VTIC, PS_HTIC, PS_options, PS_init, PS_reset, 
 	   PS_text, null_scale, PS_graphics, PS_move, PS_vector, 
-	   PS_linetype, PS_put_text, PS_text_angle, 
+	   PS_linetype, PS_put_text,do_fill, PS_text_angle, 
 	   PS_justify_text, PS_point, do_arrow, PS_set_font, PS_pointsize,
 	   0 /*flags*/, 0 /*suspend*/, 0 /*resume*/, PS_fillbox, PS_linewidth
 
diff -urN gnuplot-3.7.1.orig/term/pslatex.trm gnuplot-3.7.1/term/pslatex.trm
--- gnuplot-3.7.1.orig/term/pslatex.trm	Fri Oct  1 19:22:37 1999
+++ gnuplot-3.7.1/term/pslatex.trm	Thu Feb 17 19:29:22 2000
@@ -564,7 +564,7 @@
     PSLATEX_XMAX, PSLATEX_YMAX, PSLATEX_VCHAR, PSLATEX_HCHAR,
     PS_VTIC, PS_HTIC, PSLATEX_options, PSLATEX_init, PSLATEX_reset,
     PSLATEX_text, null_scale, PSLATEX_graphics, PSLATEX_move,
-    PSLATEX_vector, PSLATEX_linetype, PSLATEX_put_text, PSLATEX_text_angle,
+    PSLATEX_vector, PSLATEX_linetype, PSLATEX_put_text, PS_fill, PSLATEX_text_angle,
     PSLATEX_justify_text, PSLATEX_point, do_arrow, set_font_null,
     PSLATEX_pointsize, 0 /*flags */ , 0 /*suspend */
     , 0 /*resume */ , 0 /*fillbox */ ,
@@ -578,7 +578,7 @@
     PSLATEX_XMAX, PSLATEX_YMAX, PSLATEX_VCHAR, PSLATEX_HCHAR,
     PS_VTIC, PS_HTIC, PSLATEX_options, PSLATEX_init, PSLATEX_reset,
     PSLATEX_text, null_scale, PSLATEX_graphics, PSLATEX_move,
-    PSLATEX_vector, PSLATEX_linetype, PSLATEX_put_text, PSLATEX_text_angle,
+    PSLATEX_vector, PSLATEX_linetype, PSLATEX_put_text, PS_fill, PSLATEX_text_angle,
     PSLATEX_justify_text, PSLATEX_point, do_arrow, set_font_null,
     PSLATEX_pointsize, 0 /*flags */ , 0 /*suspend */
     , 0 /*resume */ , 0 /*fillbox */ ,
diff -urN gnuplot-3.7.1.orig/term/pstricks.trm gnuplot-3.7.1/term/pstricks.trm
--- gnuplot-3.7.1.orig/term/pstricks.trm	Thu Aug 19 15:15:55 1999
+++ gnuplot-3.7.1/term/pstricks.trm	Thu Feb 17 19:29:22 2000
@@ -549,7 +549,7 @@
     PSTRICKS_XMAX, PSTRICKS_YMAX, PSTRICKS_VCHAR, PSTRICKS_HCHAR,
     PSTRICKS_VTIC, PSTRICKS_HTIC, PSTRICKS_options, PSTRICKS_init, PSTRICKS_reset,
     PSTRICKS_text, null_scale, PSTRICKS_graphics, PSTRICKS_move, PSTRICKS_vector,
-    PSTRICKS_linetype, PSTRICKS_put_text, PSTRICKS_text_angle,
+    PSTRICKS_linetype, PSTRICKS_put_text,PS_fill, PSTRICKS_text_angle,
     PSTRICKS_justify_text, PSTRICKS_point, PSTRICKS_arrow, set_font_null
 TERM_TABLE_END(pstricks_driver)
 
diff -urN gnuplot-3.7.1.orig/term/qms.trm gnuplot-3.7.1/term/qms.trm
--- gnuplot-3.7.1.orig/term/qms.trm	Wed Nov 25 21:07:51 1998
+++ gnuplot-3.7.1/term/qms.trm	Thu Feb 17 19:29:22 2000
@@ -210,7 +210,7 @@
     QMS_XMAX, QMS_YMAX, QMS_VCHAR, QMS_HCHAR,
     QMS_VTIC, QMS_HTIC, options_null, QMS_init, QMS_reset,
     QMS_text, null_scale, QMS_graphics, QMS_move, QMS_vector,
-    QMS_linetype, QMS_put_text, null_text_angle,
+    QMS_linetype, QMS_put_text,do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(qms_driver)
 
diff -urN gnuplot-3.7.1.orig/term/regis.trm gnuplot-3.7.1/term/regis.trm
--- gnuplot-3.7.1.orig/term/regis.trm	Wed Nov 25 21:07:58 1998
+++ gnuplot-3.7.1/term/regis.trm	Thu Feb 17 19:29:22 2000
@@ -240,7 +240,7 @@
     REGISXMAX, REGISYMAX, REGISVCHAR, REGISHCHAR,
     REGISVTIC, REGISHTIC, REGISoptions, REGISinit, REGISreset,
     REGIStext, null_scale, REGISgraphics, REGISmove, REGISvector,
-    REGISlinetype, REGISput_text, REGIStext_angle,
+    REGISlinetype, REGISput_text,do_fill, REGIStext_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(regis_driver)
 
diff -urN gnuplot-3.7.1.orig/term/rgip.trm gnuplot-3.7.1/term/rgip.trm
--- gnuplot-3.7.1.orig/term/rgip.trm	Mon Dec 14 18:41:12 1998
+++ gnuplot-3.7.1/term/rgip.trm	Thu Feb 17 19:29:22 2000
@@ -563,7 +563,7 @@
     RGIP_XMAX, RGIP_YMAX, RGIP_VCHAR, RGIP_HCHAR,
     RGIP_VTIC, RGIP_HTIC, RGIP_options, RGIP_init, RGIP_reset,
     RGIP_text, null_scale, RGIP_graphics, RGIP_move,
-    RGIP_vector, RGIP_linetype, RGIP_put_text, RGIP_text_angle,
+    RGIP_vector, RGIP_linetype, RGIP_put_text,do_fill, RGIP_text_angle,
     RGIP_justify_text, RGIP_do_point, do_arrow, set_font_null
 TERM_TABLE_END(rgip_driver)
 
@@ -575,7 +575,7 @@
     RGIP_XMAX, RGIP_YMAX, RGIP_VCHAR, RGIP_HCHAR,
     RGIP_VTIC, RGIP_HTIC, RGIP_options, RGIP_init, RGIP_reset,
     RGIP_text, null_scale, RGIP_graphics, RGIP_move,
-    RGIP_vector, RGIP_linetype, RGIP_put_text, RGIP_text_angle,
+    RGIP_vector, RGIP_linetype, RGIP_put_text,do_fill, RGIP_text_angle,
     RGIP_justify_text, RGIP_do_point, do_arrow, set_font_null
 TERM_TABLE_END(uniplex_driver)
 
diff -urN gnuplot-3.7.1.orig/term/sun.trm gnuplot-3.7.1/term/sun.trm
--- gnuplot-3.7.1.orig/term/sun.trm	Mon Dec 14 18:41:16 1998
+++ gnuplot-3.7.1/term/sun.trm	Thu Feb 17 19:29:22 2000
@@ -344,7 +344,7 @@
     SUN_XMAX, SUN_YMAX, SUN_VCHAR, SUN_HCHAR,
     SUN_VTIC, SUN_HTIC, options_null, SUN_init, SUN_reset,
     SUN_text, null_scale, SUN_graphics, SUN_move, SUN_vector,
-    SUN_linetype, SUN_put_text, null_text_angle,
+    SUN_linetype, SUN_put_text,do_fill, null_text_angle,
     SUN_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(sun_driver)
 
diff -urN gnuplot-3.7.1.orig/term/t410x.trm gnuplot-3.7.1/term/t410x.trm
--- gnuplot-3.7.1.orig/term/t410x.trm	Thu Nov 26 19:02:59 1998
+++ gnuplot-3.7.1/term/t410x.trm	Thu Feb 17 19:29:22 2000
@@ -298,7 +298,7 @@
     T410XXMAX, T410XYMAX, T410XVCHAR, T410XHCHAR,
     T410XVTIC, T410XHTIC, options_null, T410X_init, T410X_reset,
     T410X_text, null_scale, T410X_graphics, T410X_move, T410X_vector,
-    T410X_linetype, T410X_put_text, T410X_text_angle,
+    T410X_linetype, T410X_put_text,do_fill, T410X_text_angle,
     null_justify_text, T410X_point, do_arrow, set_font_null
 TERM_TABLE_END(tek410x_driver)
 
diff -urN gnuplot-3.7.1.orig/term/tek.trm gnuplot-3.7.1/term/tek.trm
--- gnuplot-3.7.1.orig/term/tek.trm	Mon Dec 14 18:41:23 1998
+++ gnuplot-3.7.1/term/tek.trm	Thu Feb 17 19:29:22 2000
@@ -618,14 +618,14 @@
     TEK40XMAX, TEK40YMAX, TEK40VCHAR, TEK40HCHAR,
     TEK40VTIC, TEK40HTIC, options_null, TEK40init, TEK40reset,
     TEK40text, null_scale, TEK40graphics, TEK40move, TEK40vector,
-    TEK40linetype, TEK40put_text, null_text_angle,
+    TEK40linetype, TEK40put_text,do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 #else
     "tek40xx", "Tektronix 4010 and others; most TEK emulators",
     TEK40XMAX, TEK40YMAX, TEK40VCHAR, TEK40HCHAR,
     TEK40VTIC, TEK40HTIC, options_null, TEK40init, TEK40reset,
     TEK40text, null_scale, TEK40graphics, CTEK_move, CTEK_vector,
-    CTEK_linetype, TEK40put_text, null_text_angle,
+    CTEK_linetype, TEK40put_text,do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 #endif /* CTEK */
 TERM_TABLE_END(tek40_driver)
@@ -639,7 +639,7 @@
     TEK40XMAX, TEK40YMAX, TEK40VCHAR, TEK40HCHAR,
     TEK40VTIC, TEK40HTIC, options_null, VTTEK40init, VTTEK40reset,
     TEK40text, null_scale, TEK40graphics, TEK40move, TEK40vector,
-    VTTEK40linetype, VTTEK40put_text, null_text_angle,
+    VTTEK40linetype, VTTEK40put_text,do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(vttek_driver)
 
@@ -654,7 +654,7 @@
     TEK40XMAX, TEK40YMAX, TEK40VCHAR, KTEK40HCHAR,
     TEK40VTIC, TEK40HTIC, options_null, TEK40init, KTEK40reset,
     KTEK40Ctext, null_scale, KTEK40graphics, TEK40move, TEK40vector,
-    KTEK40Clinetype, TEK40put_text, null_text_angle,
+    KTEK40Clinetype, TEK40put_text,do_fill, null_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(kc_tek40_driver)
 
@@ -666,7 +666,7 @@
     TEK40XMAX, TEK40YMAX, TEK40VCHAR, KTEK40HCHAR,
     TEK40VTIC, TEK40HTIC, options_null, TEK40init, KTEK40reset,
     TEK40text, null_scale, KTEK40graphics, TEK40move, TEK40vector,
-    KTEK40Mlinetype, TEK40put_text, null_text_angle,
+    KTEK40Mlinetype, TEK40put_text,do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(km_tek40_driver)
 
@@ -681,7 +681,7 @@
     TEK40XMAX, TEK40YMAX, TEK40VCHAR, TEK40HCHAR,
     TEK40VTIC, TEK40HTIC, options_null, SEL_init, SEL_reset,
     SEL_text, null_scale, SEL_graphics, TEK40move, TEK40vector,
-    TEK40linetype, TEK40put_text, null_text_angle,
+    TEK40linetype, TEK40put_text,do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(selanar_driver)
 
@@ -696,7 +696,7 @@
     BG_XMAX, BG_YMAX, BG_VCHAR, BG_HCHAR,
     BG_VTIC, BG_HTIC, options_null, BG_init, BG_reset,
     BG_text, null_scale, BG_graphics, BG_move, BG_vector,
-    BG_linetype, BG_put_text, null_text_angle,
+    BG_linetype, BG_put_text,do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(bitgraph_driver)
 
diff -urN gnuplot-3.7.1.orig/term/texdraw.trm gnuplot-3.7.1/term/texdraw.trm
--- gnuplot-3.7.1.orig/term/texdraw.trm	Mon Dec 14 18:41:27 1998
+++ gnuplot-3.7.1/term/texdraw.trm	Thu Feb 17 19:29:22 2000
@@ -349,7 +349,7 @@
     TEXDRAW_XMAX, TEXDRAW_YMAX, TEXDRAW_VCHAR, TEXDRAW_HCHAR,
     TEXDRAW_VTIC, TEXDRAW_HTIC, options_null, TEXDRAW_init, TEXDRAW_reset,
     TEXDRAW_text, null_scale, TEXDRAW_graphics, TEXDRAW_move, TEXDRAW_vector,
-    TEXDRAW_linetype, TEXDRAW_put_text, TEXDRAW_text_angle,
+    TEXDRAW_linetype, TEXDRAW_put_text,do_fill, TEXDRAW_text_angle,
     TEXDRAW_justify_text, TEXDRAW_point, TEXDRAW_arrow, set_font_null
 TERM_TABLE_END(texdraw_driver)
 
diff -urN gnuplot-3.7.1.orig/term/tgif.trm gnuplot-3.7.1/term/tgif.trm
--- gnuplot-3.7.1.orig/term/tgif.trm	Wed Dec 16 19:48:20 1998
+++ gnuplot-3.7.1/term/tgif.trm	Thu Feb 17 19:29:22 2000
@@ -1421,7 +1421,7 @@
 TGIF_XMAX, TGIF_YMAX, TGIF_VCHAR, TGIF_HCHAR,
 TGIF_VTIC, TGIF_HTIC, TGIF_options, TGIF_init, TGIF_reset,
 TGIF_text, null_scale, TGIF_graphics, TGIF_move, TGIF_vector,
-TGIF_linetype, TGIF_put_text, TGIF_text_angle,
+TGIF_linetype, TGIF_put_text,do_fill, TGIF_text_angle,
 TGIF_justify_text, TGIF_point, TGIF_arrow, TGIF_set_font,
 TGIF_set_pointsize, TERM_CAN_MULTIPLOT
 
diff -urN gnuplot-3.7.1.orig/term/tkcanvas.trm gnuplot-3.7.1/term/tkcanvas.trm
--- gnuplot-3.7.1.orig/term/tkcanvas.trm	Tue Oct 19 17:00:51 1999
+++ gnuplot-3.7.1/term/tkcanvas.trm	Thu Feb 17 19:29:22 2000
@@ -571,7 +571,7 @@
     TK_XMAX, TK_YMAX, TK_VCHAR, TK_HCHAR,
     TK_VTIC, TK_HTIC, TK_options, TK_init, TK_reset,
     TK_text, null_scale, TK_graphics, TK_move, TK_vector,
-    TK_linetype, TK_put_text, null_text_angle,
+    TK_linetype, TK_put_text, do_fill, null_text_angle,
     TK_justify_text, do_point, do_arrow, TK_set_font,
     NULL, 0, NULL, NULL, NULL, TK_linewidth
 TERM_TABLE_END(tkcanvas)
diff -urN gnuplot-3.7.1.orig/term/tpic.trm gnuplot-3.7.1/term/tpic.trm
--- gnuplot-3.7.1.orig/term/tpic.trm	Tue Jan 12 19:17:13 1999
+++ gnuplot-3.7.1/term/tpic.trm	Thu Feb 17 19:29:22 2000
@@ -915,7 +915,7 @@
     TPIC_XMAX, TPIC_YMAX, TPIC_VCHAR, TPIC_HCHAR,
     TPIC_VTIC, TPIC_HTIC, TPIC_options, TPIC_init, TPIC_reset,
     TPIC_text, null_scale, TPIC_graphics, TPIC_move, TPIC_vector,
-    TPIC_linetype, TPIC_put_text, TPIC_text_angle,
+    TPIC_linetype, TPIC_put_text,do_fill, TPIC_text_angle,
     TPIC_justify_text, TPIC_point, TPIC_arrow, set_font_null
 TERM_TABLE_END(tpic_driver)
 
diff -urN gnuplot-3.7.1.orig/term/unixpc.trm gnuplot-3.7.1/term/unixpc.trm
--- gnuplot-3.7.1.orig/term/unixpc.trm	Mon Dec 14 18:41:43 1998
+++ gnuplot-3.7.1/term/unixpc.trm	Thu Feb 17 19:29:22 2000
@@ -599,7 +599,7 @@
     uPC_XMAX, uPC_YMAX, uPC_VCHAR, uPC_HCHAR,
     uPC_VTIC, uPC_HTIC, options_null, uPC_init, uPC_reset,
     uPC_text, null_scale, uPC_graphics, uPC_move, uPC_vector,
-    uPC_linetype, uPC_put_text, uPC_text_angle,
+    uPC_linetype, uPC_put_text,do_fill, uPC_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(unixpc_driver)
 
diff -urN gnuplot-3.7.1.orig/term/unixplot.trm gnuplot-3.7.1/term/unixplot.trm
--- gnuplot-3.7.1.orig/term/unixplot.trm	Wed Nov 25 21:08:47 1998
+++ gnuplot-3.7.1/term/unixplot.trm	Thu Feb 17 19:29:22 2000
@@ -156,7 +156,7 @@
     UP_XMAX, UP_YMAX, UP_VCHAR, UP_HCHAR,
     UP_VTIC, UP_HTIC, options_null, UP_init, UP_reset,
     UP_text, null_scale, UP_graphics, UP_move, UP_vector,
-    UP_linetype, UP_put_text, null_text_angle,
+    UP_linetype, UP_put_text,do_fill, null_text_angle,
     null_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(unixplot_driver)
 
diff -urN gnuplot-3.7.1.orig/term/v384.trm gnuplot-3.7.1/term/v384.trm
--- gnuplot-3.7.1.orig/term/v384.trm	Wed Nov 25 21:09:00 1998
+++ gnuplot-3.7.1/term/v384.trm	Thu Feb 17 19:29:22 2000
@@ -179,7 +179,7 @@
     V384_XMAX, V384_YMAX, V384_VCHAR, V384_HCHAR,
     V384_VTIC, V384_HTIC, options_null, V384_init, V384_reset,
     V384_text, null_scale, V384_graphics, V384_move, V384_vector,
-    V384_linetype, V384_put_text, null_text_angle,
+    V384_linetype, V384_put_text,do_fill, null_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(vx384_driver)
 
diff -urN gnuplot-3.7.1.orig/term/vws.trm gnuplot-3.7.1/term/vws.trm
--- gnuplot-3.7.1.orig/term/vws.trm	Mon Dec 14 18:41:49 1998
+++ gnuplot-3.7.1/term/vws.trm	Thu Feb 17 19:29:22 2000
@@ -470,7 +470,7 @@
     VWS_XMAX, VWS_YMAX, VWS_VCHAR, VWS_HCHAR,
     VWS_VTIC, VWS_HTIC, options_null, VWS_init, VWS_reset,
     VWS_text, null_scale, VWS_graphics, VWS_move, VWS_vector,
-    VWS_linetype, VWS_put_text, VWS_text_angle,
+    VWS_linetype, VWS_put_text,do_fill, VWS_text_angle,
     VWS_justify_text, do_point, do_arrow, set_font_null
 TERM_TABLE_END(vws_driver)
 
diff -urN gnuplot-3.7.1.orig/term/win.trm gnuplot-3.7.1/term/win.trm
--- gnuplot-3.7.1.orig/term/win.trm	Mon Dec 14 18:41:54 1998
+++ gnuplot-3.7.1/term/win.trm	Thu Feb 17 19:29:22 2000
@@ -298,7 +298,7 @@
     WIN_XMAX, WIN_YMAX, WIN_VCHAR, WIN_HCHAR,
     WIN_VTIC, WIN_HTIC, WIN_options, WIN_init, WIN_reset,
     WIN_text, null_scale, WIN_graphics, WIN_move, WIN_vector,
-    WIN_linetype, WIN_put_text, WIN_text_angle,
+    WIN_linetype, WIN_put_text,do_fill, WIN_text_angle,
     WIN_justify_text, WIN_point, do_arrow, set_font_null,
     WIN_set_pointsize, TERM_CAN_MULTIPLOT,
     WIN_text /* suspend */ , WIN_resume, 0		/*boxfill */
diff -urN gnuplot-3.7.1.orig/term/x11.trm gnuplot-3.7.1/term/x11.trm
--- gnuplot-3.7.1.orig/term/x11.trm	Wed Aug 25 17:16:40 1999
+++ gnuplot-3.7.1/term/x11.trm	Thu Feb 17 19:29:22 2000
@@ -637,7 +637,7 @@
     X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR,
     X11_VTIC, X11_HTIC, X11_options, X11_init, X11_reset,
     X11_text, null_scale, X11_graphics, X11_move, X11_vector,
-    X11_linetype, X11_put_text, null_text_angle,
+    X11_linetype, X11_put_text, do_fill, null_text_angle,
     X11_justify_text, X11_point, do_arrow, set_font_null,
     X11_pointsize, TERM_CAN_MULTIPLOT,
     X11_text /* suspend can use same routine */ , 0 /* resume */ ,
@@ -652,7 +652,7 @@
     X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR,
     X11_VTIC, X11_HTIC, X11_options, X11_init, X11_reset,
     X11_text, null_scale, X11_graphics, X11_move, X11_vector,
-    X11_linetype, X11_put_text, null_text_angle,
+    X11_linetype, X11_put_text, do_fill, null_text_angle,
     X11_justify_text, X11_point, do_arrow, set_font_null,
     X11_pointsize, TERM_CAN_MULTIPLOT,
     X11_text /* suspend can use same routine */ , 0 /* resume */ ,
diff -urN gnuplot-3.7.1.orig/term/xlib.trm gnuplot-3.7.1/term/xlib.trm
--- gnuplot-3.7.1.orig/term/xlib.trm	Wed Nov 25 21:09:11 1998
+++ gnuplot-3.7.1/term/xlib.trm	Thu Feb 17 19:29:22 2000
@@ -142,7 +142,7 @@
     Xlib_XMAX, Xlib_YMAX, Xlib_VCHAR, Xlib_HCHAR,
     Xlib_VTIC, Xlib_HTIC, options_null, Xlib_init, Xlib_reset,
     Xlib_text, null_scale, Xlib_graphics, Xlib_move, Xlib_vector,
-    Xlib_linetype, Xlib_put_text, null_text_angle,
+    Xlib_linetype, Xlib_put_text, do_fill, null_text_angle,
     Xlib_justify_text, line_and_point, do_arrow, set_font_null
 TERM_TABLE_END(xlib_driver)
 
diff -urN gnuplot-3.7.1.orig/term.c gnuplot-3.7.1/term.c
--- gnuplot-3.7.1.orig/term.c	Fri Oct  1 11:37:23 1999
+++ gnuplot-3.7.1/term.c	Thu Feb 17 19:29:22 2000
@@ -154,6 +154,47 @@
 #define NICE_LINE		0
 #define POINT_TYPES		6
 
+ #define NO_FILL null_fill
+ #define R0 reserve_nyi
+ #define R1 reserve_nyi
+ #define R2 reserve_nyi
+ #define R3 reserve_nyi
+ #define R4 reserve_nyi
+ #define R5 reserve_nyi
+ #define R6 reserve_nyi
+ #define R7 reserve_nyi
+ #define R8 reserve_nyi
+ #define R9 reserve_nyi
+
+ int reserve_nyi(){
+     return 1;
+ }
+
+
+ int null_fill(x,y,dx,dy)
+ int x,y;
+ int dx,dy;
+ {
+     return 1;
+ }
+
+ int do_fill(x,y,dx,dy)
+ int x,y;
+ int dx,dy;
+ {
+
+     register struct termentry *t = term;
+     register int ty;
+     int i;
+     ty = y + dy;
+     dx--;
+     for (i = 1; i < dx; i++){       /* x and x+dx allready drawn in outline */
+       (*t->move)(++x, y);
+       (*t->vector)(x,ty);
+     }
+     return 0;
+ }
+
 #ifndef DEFAULTTERM
 # define DEFAULTTERM NULL
 #endif
@@ -806,13 +847,13 @@
      100, 100, 1, 1,
      1, 1, options_null, UNKNOWN_null, UNKNOWN_null,
      UNKNOWN_null, null_scale, UNKNOWN_null, MOVE_null, MOVE_null,
-     LINETYPE_null, PUTTEXT_null}
+     LINETYPE_null, PUTTEXT_null, NO_FILL}
     ,
     {"table", "Dump ASCII table of X Y [Z] values to output",
      100, 100, 1, 1,
      1, 1, options_null, UNKNOWN_null, UNKNOWN_null,
      UNKNOWN_null, null_scale, UNKNOWN_null, MOVE_null, MOVE_null,
-     LINETYPE_null, PUTTEXT_null}
+     LINETYPE_null, PUTTEXT_null, NO_FILL}
 #include "term.h"
 
 };
