[comp.text] GnuTeX patch 4

dfk@romeo.cs.duke.edu (David F. Kotz) (02/13/89)

Here are the promised patches to GnuTeX. There are 5 patches posted:
patch4, patch5[a-d]. Apply them in order.

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	patch4
# This archive created: Sun Feb 12 13:17:26 1989
export PATH; PATH=/bin:$PATH
if test -f 'patch4'
then
	echo shar: will not over-write existing file "'patch4'"
else
sed 's/^X//' << \SHAR_EOF > 'patch4'
Xdiff -cr ../gnutex.old/Makefile ./Makefile
X*** ../gnutex.old/Makefile	Mon Dec 12 14:40:21 1988
X--- ./Makefile	Wed Jan 11 15:06:10 1989
X***************
X*** 28,33 ****
X--- 28,35 ----
X  # -DTEK        Tektronix 4010, and probably others
X  # -DHALFTEK    Tektronix 4010 (top/bottom half of screen)
X  # -DUNIXPLOT   unixplot
X+ # -DPC         IBM PC EGA/CGA graphics
X+ # -DPC -DCORONA IBM PC Corona graphics
X  # -DLATEX	  	LaTeX output
X  
X  #TERMFLAGS = -DQMS -DTEK -DHALFTEK -DUNIXPLOT -DLATEX
Xdiff -cr ../gnutex.old/PATCHLEVEL ./PATCHLEVEL
X*** ../gnutex.old/PATCHLEVEL	Mon Dec  5 13:25:42 1988
X--- ./PATCHLEVEL	Wed Jan 11 15:07:04 1989
X***************
X*** 1 ****
X! 3
X--- 1 ----
X! 4
XOnly in ../gnutex.old: Patch3-rm
Xdiff -cr ../gnutex.old/README.PC ./README.PC
X*** ../gnutex.old/README.PC	Tue Jan 17 09:49:53 1989
X--- ./README.PC	Mon Jan 16 18:13:05 1989
X***************
X*** 0 ****
X--- 1,41 ----
X+ Here are some comments from someone using gnutex on an IBM-PC:
X+ 
X+ 1) WARNING: the file doc/manual/gnutex.aux may have long lines. Don't
X+ worry. Remove it if corrupted and regenerate by latexing gnutex.tex
X+ many times. 
X+ 
X+ 2) The files help/*/.general may need to be renamed to be allowed on
X+ MS-DOS. 
X+ 
X+ 3) Use the large memory model.
X+ 
X+ 4) Some values may be too big for an int; a long should be used for
X+ the variables. In case the variables have not all been fixed to be
X+ long, adjust the following line in term.c:
X+ from
X+     #define LATEX_UNIT (.01)		/* points */
X+ to
X+     #define LATEX_UNIT (.05)		/* points */
X+ This will give a rougher graph, but will keep the numbers smaller.
X+ 
X+ 5) Compiled with Microsoft C 5.1, for LaTeX, EGA, and CGA. The command
X+ for compilation is 
X+ 
X+ cl /c /AL -DPC -DEGA -DLATEX -DCGA *.c
X+ 
X+ And, for linking,
X+ 
X+ link plot+internal+version+command+eval+graphics+misc+
X+ parse+scanner+standard+term+util,gn,gn,graphics.lib
X+ 
X+ This last should be typed all on one line!!!! (i.e. misc+parse ...
X+ should be on one line with no spaces).
X+ 
X+ Then say
X+ 
X+ exepack gn.exe gnutex.exe
X+ del gn.exe
X+ 
X+ to get a smaller executable file.
X+ 
X+ Thanks to "J.D. McDonald " <mcdonald@uxe.cso.uiuc.edu>
Xdiff -cr ../gnutex.old/command.c ./command.c
X*** ../gnutex.old/command.c	Mon Dec 12 12:15:27 1988
X--- ./command.c	Mon Jan 16 22:23:59 1989
X***************
X*** 26,31 ****
X--- 26,33 ----
X  #define STDOUT 1
X  #endif
X  
X+ extern char *malloc();
X+ 
X  /*
X   * global variables to hold status of 'set' options
X   *
X***************
X*** 921,927 ****
X  		  int_error("expecting spacing (in points) for style", c_token);
X  	   }
X  	   convert(&a, c_token);
X! 	   stp->st_spacing = (int)magnitude(&a);
X  	   if (stp->st_spacing < 0.1) {
X  		  next_value--;
X  		  int_error("unreasonable spacing value", c_token);
X--- 923,929 ----
X  		  int_error("expecting spacing (in points) for style", c_token);
X  	   }
X  	   convert(&a, c_token);
X! 	   stp->st_spacing = magnitude(&a);
X  	   if (stp->st_spacing < 0.1) {
X  		  next_value--;
X  		  int_error("unreasonable spacing value", c_token);
X***************
X*** 1324,1329 ****
X--- 1326,1332 ----
X  					   plot[plot_num].points[i].undefined = TRUE;
X  					   continue;
X  				    }
X+ 
X  				    if (autoscale_ly) {
X  					   if (temp < ymin) ymin = temp;
X  					   if (temp > ymax) ymax = temp;
X***************
X*** 1331,1337 ****
X  					   plot[plot_num].points[i].undefined = TRUE;
X  					   continue;
X  				    }
X! 				    
X  				    plot[plot_num].points[i].y = 
X  					 log_y ? log10(temp) : temp;
X  				}
X--- 1334,1341 ----
X  					   plot[plot_num].points[i].undefined = TRUE;
X  					   continue;
X  				    }
X! 
X! 				    plot[plot_num].points[i].x = x;
X  				    plot[plot_num].points[i].y = 
X  					 log_y ? log10(temp) : temp;
X  				}
XCommon subdirectories: ../gnutex.old/doc and ./doc
XOnly in .: gnutex
Xdiff -cr ../gnutex.old/graphics.c ./graphics.c
X*** ../gnutex.old/graphics.c	Thu Dec  8 18:08:16 1988
X--- ./graphics.c	Mon Jan 16 22:22:57 1989
X***************
X*** 49,54 ****
X--- 49,57 ----
X  extern BOOLEAN xtics;
X  extern BOOLEAN ytics;
X  
X+ extern BOOLEAN autoscale_lx;
X+ extern BOOLEAN autoscale_ly;
X+ 
X  #ifndef max		/* Lattice C has max() in math.h, but shouldn't! */
X  #define max(a,b) ((a > b) ? a : b)
X  #endif
X***************
X*** 157,163 ****
X  {
X  register int curve, i, x, xaxis_y, yaxis_x,dp_count;
X  register BOOLEAN prev_undef;
X- register enum PLOT_TYPES p_type;
X  register double xscale, yscale;
X  register double ytic, xtic, least, most, ticplace;
X  register struct termentry *t = &term_tbl[term];
X--- 160,165 ----
X***************
X*** 176,188 ****
X  	xtic = make_tics(xmin,xmax,log_x);
X  	dp_count = 0;
X  	
X! 	if (ymin < ymax ) {
X! 		ymin = ytic * floor(ymin/ytic);	
X! 		ymax = ytic * ceil(ymax/ytic);
X  	}
X! 	else {
X! 		ymin = ytic * ceil(ymin/ytic);
X! 		ymax = ytic * floor(ymax/ytic);
X  	}
X  
X  	if (xmin == xmax)
X--- 178,203 ----
X  	xtic = make_tics(xmin,xmax,log_x);
X  	dp_count = 0;
X  	
X!      if (autoscale_ly) {
X! 	    if (ymin < ymax ) {
X! 		   ymin = ytic * floor(ymin/ytic);	
X! 		   ymax = ytic * ceil(ymax/ytic);
X! 	    }
X! 	    else {
X! 		   ymin = ytic * ceil(ymin/ytic);
X! 		   ymax = ytic * floor(ymax/ytic);
X! 	    }
X  	}
X! 
X!      if (autoscale_lx) {
X! 	    if (xmin < xmax ) {
X! 		   xmin = xtic * floor(xmin/xtic);	
X! 		   xmax = xtic * ceil(xmax/xtic);
X! 	    }
X! 	    else {
X! 		   xmin = xtic * ceil(xmin/xtic);
X! 		   xmax = xtic * floor(xmax/xtic);
X! 	    }
X  	}
X  
X  	if (xmin == xmax)
X***************
X*** 222,231 ****
X  	(*t->vector)(0,0);
X  
X       if (ytics) {
X! 	    least = (ymin < ymax) ? ymin : ymax;
X! 	    most = (ymin < ymax) ? ymax : ymin;
X  
X- 	    (*t->ytick_text)(map_y(least), CheckZero(least,ytic), yformat);
X  	    for (ticplace = ytic + least; ticplace < most ; ticplace += ytic) { 
X  		   (*t->move)(0,map_y(ticplace));
X  		   (*t->vector)(t->h_tic,map_y(ticplace));
X--- 237,258 ----
X  	(*t->vector)(0,0);
X  
X       if (ytics) {
X! 	    if (ymin < ymax) {
X! 		   least = ytic * floor(ymin/ytic);	
X! 		   most = ytic * ceil(ymax/ytic);
X! 		   if (least >= ymin)
X! 			(*t->ytick_text)(map_y(least), CheckZero(least,ytic), yformat);
X! 		   if (most <= ymax)
X! 			(*t->ytick_text)(map_y(most), CheckZero(most,ytic), yformat);
X! 	    } else {
X! 		   least = ytic * floor(ymax/ytic);
X! 		   most = ytic * ceil(ymin/ytic);
X! 		   if (least >= ymax)
X! 			(*t->ytick_text)(map_y(least), CheckZero(least,ytic), yformat);
X! 		   if (most <= ymin)
X! 			(*t->ytick_text)(map_y(most), CheckZero(most,ytic), yformat);
X! 	    }
X  
X  	    for (ticplace = ytic + least; ticplace < most ; ticplace += ytic) { 
X  		   (*t->move)(0,map_y(ticplace));
X  		   (*t->vector)(t->h_tic,map_y(ticplace));
X***************
X*** 233,259 ****
X  		   (*t->vector)(t->xmax-1-t->h_tic,map_y(ticplace));
X  		   (*t->ytick_text)(map_y(ticplace), CheckZero(ticplace,ytic), yformat);
X  	    }
X- 	    (*t->ytick_text)(map_y(most), CheckZero(most,ytic), yformat);
X  	}
X  
X       if (xtics) {
X! 	    if (xmin < xmax ) {
X  		   least = xtic * floor(xmin/xtic);	
X  		   most = xtic * ceil(xmax/xtic);
X! 		   if (least >= xmin) 
X  			(*t->xtick_text)(map_x(least), CheckZero(least,xtic), xformat);
X  		   if (most <= xmax)
X  			(*t->xtick_text)(map_x(most), CheckZero(most,xtic), xformat);
X! 	    }
X! 	    else {
X! 		   least = xtic * ceil(xmin/xtic);
X! 		   most = xtic * floor(xmax/xtic);
X! 		   if (least <= xmin) 
X  			(*t->xtick_text)(map_x(least), CheckZero(least,xtic), xformat);
X! 		   if (most >= xmax)
X  			(*t->xtick_text)(map_x(most), CheckZero(most,xtic), xformat);
X  	    }
X! 	    
X  	    for (ticplace = xtic + least; ticplace < most ; ticplace += xtic) { 
X  		   (*t->move)(map_x(ticplace),0);
X  		   (*t->vector)(map_x(ticplace),t->v_tic);
X--- 260,284 ----
X  		   (*t->vector)(t->xmax-1-t->h_tic,map_y(ticplace));
X  		   (*t->ytick_text)(map_y(ticplace), CheckZero(ticplace,ytic), yformat);
X  	    }
X  	}
X  
X       if (xtics) {
X! 	    if (xmin < xmax) {
X  		   least = xtic * floor(xmin/xtic);	
X  		   most = xtic * ceil(xmax/xtic);
X! 		   if (least >= xmin)
X  			(*t->xtick_text)(map_x(least), CheckZero(least,xtic), xformat);
X  		   if (most <= xmax)
X  			(*t->xtick_text)(map_x(most), CheckZero(most,xtic), xformat);
X! 	    } else {
X! 		   least = xtic * floor(xmax/xtic);
X! 		   most = xtic * ceil(xmin/xtic);
X! 		   if (least >= xmax)
X  			(*t->xtick_text)(map_x(least), CheckZero(least,xtic), xformat);
X! 		   if (most <= xmin)
X  			(*t->xtick_text)(map_x(most), CheckZero(most,xtic), xformat);
X  	    }
X! 
X  	    for (ticplace = xtic + least; ticplace < most ; ticplace += xtic) { 
X  		   (*t->move)(map_x(ticplace),0);
X  		   (*t->vector)(map_x(ticplace),t->v_tic);
X***************
X*** 329,344 ****
X  		lines = TRUE;
X  		special = NULL;
X  
X- 		p_type = plots[curve].plot_type;
X  		switch(plots[curve].plot_style) {
X  			case IMPULSES:
X  		    	 	(*t->linetype)(-1);	/* get straight lines */
X  				for (i = 0; i < plots[curve].count; i++) {
X  					if (!plots[curve].points[i].undefined) {
X! 						if (p_type == DATA)
X! 							x = map_x(plots[curve].points[i].x);
X! 						else
X! 							x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X  						(*t->move)(x,xaxis_y);
X  						(*t->vector)(x,map_y(plots[curve].points[i].y));
X  					}
X--- 354,365 ----
X  		lines = TRUE;
X  		special = NULL;
X  
X  		switch(plots[curve].plot_style) {
X  			case IMPULSES:
X  		    	 	(*t->linetype)(-1);	/* get straight lines */
X  				for (i = 0; i < plots[curve].count; i++) {
X  					if (!plots[curve].points[i].undefined) {
X! 					    x = map_x(plots[curve].points[i].x);
X  						(*t->move)(x,xaxis_y);
X  						(*t->vector)(x,map_y(plots[curve].points[i].y));
X  					}
X***************
X*** 348,362 ****
X  				prev_undef = TRUE;
X  				for (i = 0; i < plots[curve].count; i++) {
X  					if (!plots[curve].points[i].undefined) {
X! 						if (p_type == DATA)
X! 							x = map_x(plots[curve].points[i].x);
X! 						else
X! 							x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X! 						if (prev_undef)
X! 							(*t->move)(x,
X! 							map_y(plots[curve].points[i].y));
X! 						(*t->vector)(x,
X! 							map_y(plots[curve].points[i].y));
X  					}
X  					prev_undef = plots[curve].points[i].undefined;
X  				}
X--- 369,380 ----
X  				prev_undef = TRUE;
X  				for (i = 0; i < plots[curve].count; i++) {
X  					if (!plots[curve].points[i].undefined) {
X! 					    if (prev_undef)
X! 						 (*t->move)(map_x(plots[curve].points[i].x),
X! 								  map_y(plots[curve].points[i].y));
X! 					    else
X! 						 (*t->vector)(map_x(plots[curve].points[i].x),
X! 								    map_y(plots[curve].points[i].y));
X  					}
X  					prev_undef = plots[curve].points[i].undefined;
X  				}
X***************
X*** 364,374 ****
X  			case POINTS:
X  				for (i = 0; i < plots[curve].count; i++) {
X  					if (!plots[curve].points[i].undefined) {
X! 						if (p_type == DATA)
X! 							x = map_x(plots[curve].points[i].x);
X! 						else
X! 							x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X! 						(*t->point)(x,map_y(plots[curve].points[i].y),dp_count, NULL);
X  					}
X  				}
X  				dp_count++;
X--- 382,390 ----
X  			case POINTS:
X  				for (i = 0; i < plots[curve].count; i++) {
X  					if (!plots[curve].points[i].undefined) {
X! 					    (*t->point)(map_x(plots[curve].points[i].x),
X! 								 map_y(plots[curve].points[i].y),
X! 								 dp_count, NULL);
X  					}
X  				}
X  				dp_count++;
X***************
X*** 376,386 ****
X  			case DOTS:
X  				for (i = 0; i < plots[curve].count; i++) {
X  					if (!plots[curve].points[i].undefined) {
X! 						if (p_type == DATA)
X! 							x = map_x(plots[curve].points[i].x);
X! 						else
X! 							x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X! 						(*t->point)(x,map_y(plots[curve].points[i].y),-1, NULL);
X  					}
X  				}
X  				break;
X--- 392,400 ----
X  			case DOTS:
X  				for (i = 0; i < plots[curve].count; i++) {
X  					if (!plots[curve].points[i].undefined) {
X! 					    (*t->point)(map_x(plots[curve].points[i].x),
X! 								 map_y(plots[curve].points[i].y),
X! 								 -1, NULL);
X  					}
X  				}
X  				break;
X***************
X*** 390,422 ****
X  				lines = stp->st_length > 0;
X  				special = stp->st_point;
X  				/* FALL THROUGH */
X! 			case LINESPOINTS:		/* DFK 6/26/87 */
X  				prev_undef = TRUE;
X  				for (i = 0; i < plots[curve].count; i++) {
X! 					if (!plots[curve].points[i].undefined) {
X! 						if (p_type == DATA)
X! 							x = map_x(plots[curve].points[i].x);
X  						else
X! 							x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X! 						if (prev_undef)
X! 							(*t->move)(x,
X! 							map_y(plots[curve].points[i].y));
X! 						if (lines)
X! 						  (*t->vector)(x, 
X! 									map_y(plots[curve].points[i].y));
X! 						if (special != NULL)
X! 						  if (*special != '\0')
X! 						    /* plot user-specified point */
X! 						    (*t->point)(x,
X! 									 map_y(plots[curve].points[i].y),
X! 									 0, special);
X! 						  else
X! 						    ; /* plot no point at all */
X! 						else	/* plot the normal type of point */
X! 						  (*t->point)(x,map_y(plots[curve].points[i].y),
X! 								    dp_count, NULL);
X! 					}
X! 					prev_undef = plots[curve].points[i].undefined;
X  				}
X  				if (special == NULL)
X  				  dp_count++;
X--- 404,434 ----
X  				lines = stp->st_length > 0;
X  				special = stp->st_point;
X  				/* FALL THROUGH */
X! 			case LINESPOINTS:
X  				prev_undef = TRUE;
X  				for (i = 0; i < plots[curve].count; i++) {
X! 				    if (!plots[curve].points[i].undefined) {
X! 					   x = map_x(plots[curve].points[i].x);
X! 					   
X! 					   if (prev_undef)
X! 						(*t->move)(x,
X! 								 map_y(plots[curve].points[i].y));
X! 					   if (lines)
X! 						(*t->vector)(x, 
X! 								   map_y(plots[curve].points[i].y));
X! 					   if (special != NULL)
X! 						if (*special != '\0')
X! 						  /* plot user-specified point */
X! 						  (*t->point)(x,
X! 								    map_y(plots[curve].points[i].y),
X! 								    0, special);
X  						else
X! 						  ; /* plot no point at all */
X! 					   else	/* plot the normal type of point */
X! 						(*t->point)(x,map_y(plots[curve].points[i].y),
X! 								  dp_count, NULL);
X! 				    }
X! 				    prev_undef = plots[curve].points[i].undefined;
X  				}
X  				if (special == NULL)
X  				  dp_count++;
XCommon subdirectories: ../gnutex.old/help and ./help
Xdiff -cr ../gnutex.old/ideas ./ideas
X*** ../gnutex.old/ideas	Fri Dec 16 11:07:05 1988
X--- ./ideas	Mon Jan 16 22:48:43 1989
X***************
X*** 11,16 ****
X--- 11,20 ----
X  allow input data (and labels) to be an enumeration type (eg. {Male,Female})
X  
X  ----
X+ do proper clipping of functions plotted without autoscaling on, when
X+ values are finite but out-of-range
X+ 
X+ ----
X  provide a FIG output mode
X  
X  ----
X***************
X*** 18,23 ****
X--- 22,32 ----
X  
X  ------
X  can I get a frame around the key?
X+ 
X+ -----
X+ convert ints to longs where necessary throughout the program, as I
X+ have in the LATEX unit, so 16-bit machines like the IBM PC can
X+ properly use the large integers required for the latex terminal type.
X  
X  -----
X  
Xdiff -cr ../gnutex.old/internal.c ./internal.c
X*** ../gnutex.old/internal.c	Mon Dec  5 13:25:56 1988
X--- ./internal.c	Mon Jan 16 17:36:06 1989
X***************
X*** 30,36 ****
X  
X  int s_p = -1;   /* stack pointer */
X  
X! 
X  /*
X   * System V and MSC 4.0 call this when they wants to print an error message.
X   * Don't!
X--- 30,36 ----
X  
X  int s_p = -1;   /* stack pointer */
X  
X! #ifndef MSDOS /* suggested by "J.D. McDonald " <mcdonald@uxe.cso.uiuc.edu> */
X  /*
X   * System V and MSC 4.0 call this when they wants to print an error message.
X   * Don't!
X***************
X*** 39,45 ****
X  {
X  	return (undefined = TRUE);		/* don't print error message */
X  }
X! 
X  
X  reset_stack()
X  {
X--- 39,45 ----
X  {
X  	return (undefined = TRUE);		/* don't print error message */
X  }
X! #endif MSDOS
X  
X  reset_stack()
X  {
Xdiff -cr ../gnutex.old/misc.c ./misc.c
X*** ../gnutex.old/misc.c	Mon Dec  5 13:25:57 1988
X--- ./misc.c	Mon Jan 16 17:19:34 1989
X***************
X*** 25,31 ****
X  extern struct ft_entry ft[];
X  extern struct vt_entry vt[];
X  
X! char *malloc();
X  
X  
X  pointmem(samples)
X--- 25,31 ----
X  extern struct ft_entry ft[];
X  extern struct vt_entry vt[];
X  
X! extern char *malloc();
X  
X  
X  pointmem(samples)
Xdiff -cr ../gnutex.old/plot.c ./plot.c
X*** ../gnutex.old/plot.c	Mon Dec  5 13:25:57 1988
X--- ./plot.c	Mon Jan 16 17:37:10 1989
X***************
X*** 120,128 ****
X  
X  #define print_debug(a)	if (debug) fprintf(stderr, a)
X  
X! interrupt()
X  {
X! 	(void) signal(SIGINT, interrupt);
X  	(void) signal(SIGFPE, SIG_DFL);	/* turn off FPE trapping */
X  	if (term)
X  		(*term_tbl[term].text)();	/* hopefully reset text mode */
X--- 120,128 ----
X  
X  #define print_debug(a)	if (debug) fprintf(stderr, a)
X  
X! catch()					/* interrupts */
X  {
X! 	(void) signal(SIGINT, catch);
X  	(void) signal(SIGFPE, SIG_DFL);	/* turn off FPE trapping */
X  	if (term)
X  		(*term_tbl[term].text)();	/* hopefully reset text mode */
X***************
X*** 180,186 ****
X  	pointmem(SAMPLES);		/* malloc memory to keep plot points in */
X  
X  	if (!setjmp(env)) {		/* come back here from printerror() */
X! 		(void) signal(SIGINT, interrupt);	/* go there on interrupt char */
X  		if (!(plotrc = (fopen(PLOTRC,"r")))) {
X  #ifdef vms
X  			(void) strcpy(home,HOME);
X--- 180,186 ----
X  	pointmem(SAMPLES);		/* malloc memory to keep plot points in */
X  
X  	if (!setjmp(env)) {		/* come back here from printerror() */
X! 		(void) signal(SIGINT, catch);	/* go there on interrupt char */
X  		if (!(plotrc = (fopen(PLOTRC,"r")))) {
X  #ifdef vms
X  			(void) strcpy(home,HOME);
Xdiff -cr ../gnutex.old/plot.h ./plot.h
X*** ../gnutex.old/plot.h	Mon Dec  5 13:25:58 1988
X--- ./plot.h	Mon Jan 16 17:35:10 1989
X***************
X*** 40,46 ****
X  #define MAX_ID_LEN 200		/* max length of an identifier (long for files)*/
X  
X  #ifdef PC
X! #define MAX_UDFS 30			/* max number of user-defined functions */
X  #else /* PC */
X  #define MAX_UDFS 100
X  #endif /* PC */
X--- 40,46 ----
X  #define MAX_ID_LEN 200		/* max length of an identifier (long for files)*/
X  
X  #ifdef PC
X! #define MAX_UDFS 20			/* max number of user-defined functions */
X  #else /* PC */
X  #define MAX_UDFS 100
X  #endif /* PC */
Xdiff -cr ../gnutex.old/term.c ./term.c
X*** ../gnutex.old/term.c	Mon Dec  5 13:25:58 1988
X--- ./term.c	Mon Jan 16 18:26:59 1989
X***************
X*** 17,22 ****
X--- 17,24 ----
X   * Department of Computer Science, Duke University, Durham, NC 27706.
X   * Mail to dfk@cs.duke.edu.
X   */
X+ /*  modified 1/14/89 for Microsoft C5.1 by JDM (mcdonald@uxe.cso.uiuc.edu)
X+  */
X  
X  #include <stdio.h>
X  #include "plot.h"
X***************
X*** 24,29 ****
X--- 26,37 ----
X  #define NICE_LINE		0
X  #define POINT_TYPES		6
X  
X+ #ifdef MSDOS
X+ int PC_color = 7;
X+ #include <dos.h>
X+ #include <graph.h>
X+ #endif
X+ 
X  extern FILE *outfile;
X  extern BOOLEAN term_init;
X  extern int term;
X***************
X*** 276,287 ****
X  
X  #ifdef PC
X  
X  PC_lrput_text(row,str)
X  int row;
X  char str[];
X  {
X! 	PC_curloc(24-row,78-strlen(str));
X! 	PC_puts(str);
X  }
X  
X  PC_ulput_text(row,str)
X--- 284,306 ----
X  
X  #ifdef PC
X  
X+ void PC_curloc(row,col)
X+ int row, col;
X+ {
X+ union REGS rg;
X+         rg.h.ah = 2;
X+         rg.h.bh = 0;
X+         rg.h.dh = row;
X+         rg.h.dl = col;
X+         int86(16,&rg,&rg);
X+ }
X+ 
X  PC_lrput_text(row,str)
X  int row;
X  char str[];
X  {
X! 	PC_curloc(23-row,78-strlen(str));
X! 	/*PC_*/puts(str);
X  }
X  
X  PC_ulput_text(row,str)
X***************
X*** 289,295 ****
X  char str[];
X  {
X  	PC_curloc(row+1,2);
X! 	PC_puts(str);
X  }
X  
X  #ifdef CORONA
X--- 308,314 ----
X  char str[];
X  {
X  	PC_curloc(row+1,2);
X! 	/*PC_*/puts(str);
X  }
X  
X  #ifdef CORONA
X***************
X*** 300,306 ****
X  COR_graphics()
X  {
X  	graphics_on = TRUE;
X! 	Vmode(3);
X  	grinit(screen);
X  	grandtx();
X  }
X--- 319,325 ----
X  COR_graphics()
X  {
X  	graphics_on = TRUE;
X! 	setmod(3);
X  	grinit(screen);
X  	grandtx();
X  }
X***************
X*** 314,320 ****
X  	}
X  	grreset();
X  	txonly();
X! 	Vmode(3);
X  }
X  
X  COR_linetype(linetype)
X--- 333,339 ----
X  	}
X  	grreset();
X  	txonly();
X! 	setmod(3);
X  }
X  
X  COR_linetype(linetype)
X***************
X*** 368,380 ****
X  
X  CGA_init()
X  {
X! 	PC_color(1);		/* monochrome */
X  }
X  
X  CGA_graphics()
X  {
X  	graphics_on = TRUE;
X! 	Vmode(6);
X  }
X  
X  CGA_text()
X--- 387,399 ----
X  
X  CGA_init()
X  {
X! 	PC_color = 1;		/* monochrome */
X  }
X  
X  CGA_graphics()
X  {
X  	graphics_on = TRUE;
X! 	_setvideomode(_HRESBW);
X  }
X  
X  CGA_text()
X***************
X*** 381,389 ****
X  {
X  	if (graphics_on) {
X  		graphics_on = FALSE;
X! 		while (!kbhit())
X! 			;
X! 		Vmode(3);
X  	}
X  }
X  
X--- 400,407 ----
X  {
X  	if (graphics_on) {
X  		graphics_on = FALSE;
X! 		while (!kbhit());
X!     	        _setvideomode(_DEFAULTMODE);
X  	}
X  }
X  
X***************
X*** 391,397 ****
X  {
X  	if (linetype > 2)
X  		linetype %= 3;
X! 	PC_mask(pattern[linetype+2]);
X  }
X  
X  CGA_move(x,y)
X--- 409,415 ----
X  {
X  	if (linetype > 2)
X  		linetype %= 3;
X!         _setlinestyle(pattern[linetype+2]);
X  }
X  
X  CGA_move(x,y)
X***************
X*** 403,409 ****
X  
X  CGA_vector(x,y)
X  {
X! 	PC_line(startx,CGA_YLAST-starty,x,CGA_YLAST-y);
X  	startx = x;
X  	starty = y;
X  }
X--- 421,428 ----
X  
X  CGA_vector(x,y)
X  {
X!         (void)_moveto(startx,CGA_YLAST-starty);
X!         (void)_lineto(x,CGA_YLAST-y);
X  	startx = x;
X  	starty = y;
X  }
X***************
X*** 419,431 ****
X  
X  EGA_init()
X  {
X- 	PC_mask(0xffff);
X  }
X  
X  EGA_graphics()
X  {
X  	graphics_on = TRUE;
X! 	Vmode(16);
X  }
X  
X  EGA_text()
X--- 438,449 ----
X  
X  EGA_init()
X  {
X  }
X  
X  EGA_graphics()
X  {
X  	graphics_on = TRUE;
X! 	_setvideomode(_ERESCOLOR);
X  }
X  
X  EGA_text()
X***************
X*** 441,447 ****
X  EGA_linetype(linetype)
X  {
X  	static int c[] = {9, 8, 10, 11, 12, 13, 14, 15, 7, 5, 4, 3, 2, 6};
X! 	PC_color(c[linetype+2]);
X  }
X  
X  EGA_move(x,y)
X--- 459,465 ----
X  EGA_linetype(linetype)
X  {
X  	static int c[] = {9, 8, 10, 11, 12, 13, 14, 15, 7, 5, 4, 3, 2, 6};
X! 	PC_color = c[linetype+2];
X  }
X  
X  EGA_move(x,y)
X***************
X*** 453,459 ****
X  
X  EGA_vector(x,y)
X  {
X! 	PC_line(startx,EGA_YLAST-starty,x,EGA_YLAST-y);
X  	startx = x;
X  	starty = y;
X  }
X--- 471,479 ----
X  
X  EGA_vector(x,y)
X  {
X!         (void)_setcolor(PC_color);
X!         (void)_moveto(startx,EGA_YLAST-starty);
X!         (void)_lineto(x,EGA_YLAST-y);
X  	startx = x;
X  	starty = y;
X  }
X***************
X*** 464,470 ****
X  
X  EGA_reset()
X  {
X! 	Vmode(3);
X  }
X  #endif /* PC */
X  
X--- 484,490 ----
X  
X  EGA_reset()
X  {
X! 	_setvideomode(_DEFAULTMODE);
X  }
X  #endif /* PC */
X  
X***************
X*** 1083,1093 ****
X  
X  #define LATEX_TICSIZ 101		/* no more than 100 chars in a tic label */
X  
X! static int LATEX_posx;
X! static int LATEX_posy;
X! static int LATEX_inplot;
X! static int LATEX_xmax;
X! static int LATEX_ymax;
X  static char *LATEX_xlabel = NULL;
X  
X  static LATEX_endplot();
X--- 1103,1113 ----
X  
X  #define LATEX_TICSIZ 101		/* no more than 100 chars in a tic label */
X  
X! static long LATEX_posx;
X! static long LATEX_posy;
X! static BOOLEAN LATEX_inplot;
X! static long LATEX_xmax;
X! static long LATEX_ymax;
X  static char *LATEX_xlabel = NULL;
X  
X  static LATEX_endplot();
X***************
X*** 1132,1145 ****
X  	char *title;			/* plot title */
X  {
X      /* computed margin of plot */
X!     int bot_margin, left_margin, top_margin, right_margin;
X  
X      if (LATEX_inplot) 
X  	 LATEX_endplot();
X  
X      /* Convert inches to points to coordinates */
X!     LATEX_xmax = (int) (xmax * LATEX_PTS_PER_INCH / LATEX_UNIT + 0.5);
X!     LATEX_ymax = (int) (ymax * LATEX_PTS_PER_INCH / LATEX_UNIT + 0.5);
X  
X      /* store these away for the use of plotting routines */
X      t->xmax = LATEX_xmax;
X--- 1152,1165 ----
X  	char *title;			/* plot title */
X  {
X      /* computed margin of plot */
X!     long bot_margin, left_margin, top_margin, right_margin;
X  
X      if (LATEX_inplot) 
X  	 LATEX_endplot();
X  
X      /* Convert inches to points to coordinates */
X!     LATEX_xmax = (long) (xmax * LATEX_PTS_PER_INCH / LATEX_UNIT + 0.5);
X!     LATEX_ymax = (long) (ymax * LATEX_PTS_PER_INCH / LATEX_UNIT + 0.5);
X  
X      /* store these away for the use of plotting routines */
X      t->xmax = LATEX_xmax;
X***************
X*** 1162,1171 ****
X  	   fprintf(outfile, "\\end{tabular} \\hspace*{%dem}}\n", yskip);
X      }
X      /* Define the plot, computing the total size and the lower-left corner*/
X!     fprintf(outfile, " & \\begin{picture}(%d,%d)(%d,%d)\n", 
X! 		  (int)(LATEX_xmax + left_margin + right_margin),
X! 		  (int)(LATEX_ymax + bot_margin + top_margin),
X! 		  (int)(-left_margin), (int)(-bot_margin));
X      LATEX_inplot = TRUE;
X  
X      LATEX_posx = LATEX_posy = 0;
X--- 1182,1191 ----
X  	   fprintf(outfile, "\\end{tabular} \\hspace*{%dem}}\n", yskip);
X      }
X      /* Define the plot, computing the total size and the lower-left corner*/
X!     fprintf(outfile, " & \\begin{picture}(%ld,%ld)(%ld,%ld)\n", 
X! 		  (long)(LATEX_xmax + left_margin + right_margin),
X! 		  (long)(LATEX_ymax + bot_margin + top_margin),
X! 		  (long)(-left_margin), (long)(-bot_margin));
X      LATEX_inplot = TRUE;
X  
X      LATEX_posx = LATEX_posy = 0;
X***************
X*** 1255,1277 ****
X      /* These are vertical and horizontal lines only. */
X      if (LATEX_type < 0) {
X  	   if (x == LATEX_posx) {		/* vertical */
X! 		  fprintf(outfile, "\\put(%d,%d){\\line(0,%d){%d}}\n",
X! 				(int)(LATEX_posx), (int)(LATEX_posy), 
X! 				sign(y - LATEX_posy), abs(y - LATEX_posy));
X  	   } else if (y == LATEX_posy) {		/* horizontal */
X! 		  fprintf(outfile, "\\put(%d,%d){\\line(%d,0){%d}}\n",
X  				LATEX_posx, LATEX_posy, 
X! 				sign(x - LATEX_posx), abs(x - LATEX_posx));
X  	   }
X      } else {				/* drawing real curves */
X! 	   int deltax = x - LATEX_posx;
X! 	   int deltay = y - LATEX_posy;
X! 	   int n = max(abs(deltax), abs(deltay)) 
X  		/ (LATEX_style ? LATEX_style->st_spacing/LATEX_UNIT : LATEX_DOT_SPACING) + 1;
X  	   float dx = (float)deltax / n;
X  	   float dy = (float)deltay / n;
X  	   float curx = LATEX_posx, cury = LATEX_posy;
X! 	   int first = TRUE;
X  
X  	   while (curx != x || cury != y) {
X  		  if (LATEX_style)
X--- 1275,1297 ----
X      /* These are vertical and horizontal lines only. */
X      if (LATEX_type < 0) {
X  	   if (x == LATEX_posx) {		/* vertical */
X! 		  fprintf(outfile, "\\put(%ld,%ld){\\line(0,%ld){%ld}}\n",
X! 				LATEX_posx, LATEX_posy, 
X! 				sign((long)y - LATEX_posy), abs((long)y - LATEX_posy));
X  	   } else if (y == LATEX_posy) {		/* horizontal */
X! 		  fprintf(outfile, "\\put(%ld,%ld){\\line(%ld,0){%ld}}\n",
X  				LATEX_posx, LATEX_posy, 
X! 				sign((long)x - LATEX_posx), abs((long)x - LATEX_posx));
X  	   }
X      } else {				/* drawing real curves */
X! 	   long deltax = x - LATEX_posx;
X! 	   long deltay = y - LATEX_posy;
X! 	   long n = max(abs(deltax), abs(deltay)) 
X  		/ (LATEX_style ? LATEX_style->st_spacing/LATEX_UNIT : LATEX_DOT_SPACING) + 1;
X  	   float dx = (float)deltax / n;
X  	   float dy = (float)deltay / n;
X  	   float curx = LATEX_posx, cury = LATEX_posy;
X! 	   BOOLEAN first = TRUE;
X  
X  	   while (curx != x || cury != y) {
X  		  if (LATEX_style)
X***************
X*** 1280,1287 ****
X  		    else
X  			 first = FALSE;
X  
X! 		  fprintf(outfile, "\\put(%d,%d){%s}\n", 
X! 				(int)(curx + .5), (int)(cury + .5), 
X  				LATEX_style ? LATEX_style->st_seq[LATEX_seq_pos]
X  				            : LATEX_DOT);
X  
X--- 1300,1307 ----
X  		    else
X  			 first = FALSE;
X  
X! 		  fprintf(outfile, "\\put(%ld,%ld){%s}\n", 
X! 				(long)(curx + .5), (long)(cury + .5), 
X  				LATEX_style ? LATEX_style->st_seq[LATEX_seq_pos]
X  				            : LATEX_DOT);
X  
X***************
X*** 1305,1313 ****
X  unsigned int row;
X  char str[];
X  {
X! 	fprintf(outfile, "\\put(%d,%d){$%s$}\n",
X! 		   (int)(LATEX_xmax - 2*LATEX_HTIC - LATEX_HCHAR*(strlen(str)+1)),
X! 		   (int)(LATEX_VTIC + 3 + LATEX_VCHAR*row),
X  		   str);
X  }
X  
X--- 1325,1333 ----
X  unsigned int row;
X  char str[];
X  {
X! 	fprintf(outfile, "\\put(%ld,%ld){$%s$}\n",
X! 		   (long)(LATEX_xmax - 2*LATEX_HTIC - LATEX_HCHAR*(strlen(str)+1)),
X! 		   (long)(LATEX_VTIC + 3 + LATEX_VCHAR*row),
X  		   str);
X  }
X  
X***************
X*** 1316,1327 ****
X  unsigned int row;
X  char str[];
X  {
X! 	fprintf(outfile, "\\put(%d,%d){%s}\n",
X! 		   (int)(LATEX_HTIC+3),
X! 		   (int)(LATEX_ymax - LATEX_VTIC - LATEX_VCHAR*(row+1)),
X  		   str);
X  }
X  
X  LATEX_xyput_text(x, y, str, pos, length, dx, dy)
X  unsigned int x,y;			/* reference point of string */
X  char str[];				/* the text */
X--- 1336,1351 ----
X  unsigned int row;
X  char str[];
X  {
X! 	fprintf(outfile, "\\put(%ld,%ld){%s}\n",
X! 		   (long)(LATEX_HTIC+3),
X! 		   (long)(LATEX_ymax - LATEX_VTIC - LATEX_VCHAR*(row+1)),
X  		   str);
X  }
X  
X+ #ifdef MSDOS
X+ # define index(s,c) strchr(s,c)
X+ #endif MSDOS
X+ 
X  LATEX_xyput_text(x, y, str, pos, length, dx, dy)
X  unsigned int x,y;			/* reference point of string */
X  char str[];				/* the text */
X***************
X*** 1343,1352 ****
X      /* optional arrow */
X      if (length != 0 && pos != NULL && *pos != NULL) {
X  	   if (dx == 0 && dy == 0) { /* determine slope from pos */
X! 		  if (index(pos, 'l')) dx = -1;
X! 		  if (index(pos, 'r')) dx = 1;
X! 		  if (index(pos, 't')) dy = 1;
X! 		  if (index(pos, 'b')) dy = -1;
X  	   }
X  	   fprintf(outfile, "\\vector(%d,%d){%u}\n", dx, dy, length);
X      }
X--- 1367,1376 ----
X      /* optional arrow */
X      if (length != 0 && pos != NULL && *pos != NULL) {
X  	   if (dx == 0 && dy == 0) { /* determine slope from pos */
X!  		  if (index(pos, 'l') != NULL) dx = -1;
X!  		  if (index(pos, 'r') != NULL) dx = 1;
X!  		  if (index(pos, 't') != NULL) dy = 1;
X!  		  if (index(pos, 'b') != NULL) dy = -1;
X  	   }
X  	   fprintf(outfile, "\\vector(%d,%d){%u}\n", dx, dy, length);
X      }
X***************
X*** 1363,1369 ****
X      int pcount = 0;			/* counter of point-like styles */
X      char *point;			/* string representing type */
X      static char *LATEX_key_point();
X!     int first = 1;			/* (TRUE) */
X  
X      /* Plot all of the entries in a shortstack */
X      /* Each entry has two boxes, the left right-justified,  */
X--- 1387,1393 ----
X      int pcount = 0;			/* counter of point-like styles */
X      char *point;			/* string representing type */
X      static char *LATEX_key_point();
X!     BOOLEAN first = TRUE;
X  
X      /* Plot all of the entries in a shortstack */
X      /* Each entry has two boxes, the left right-justified,  */
X***************
X*** 1460,1467 ****
X      char mark[LATEX_TICSIZ];
X  
X      sprintf(mark, format, number);
X!     fprintf(outfile, "\\put(%d,%d){\\makebox(0,0)[t]{%s}}\n",
X! 		  x, (int)(-LATEX_HTIC), mark);
X  }
X  
X  LATEX_ytick_text(y, number, format)
X--- 1484,1491 ----
X      char mark[LATEX_TICSIZ];
X  
X      sprintf(mark, format, number);
X!     fprintf(outfile, "\\put(%ld,%ld){\\makebox(0,0)[t]{%s}}\n",
X! 		  (long)x, (long)(-LATEX_HTIC), mark);
X  }
X  
X  LATEX_ytick_text(y, number, format)
X***************
X*** 1472,1479 ****
X      char mark[LATEX_TICSIZ];
X  
X      sprintf(mark, format, number);
X!     fprintf(outfile, "\\put(%d,%d){\\makebox(0,0)[r]{%s}}\n",
X! 		  (int)(-LATEX_VTIC), y, mark);
X  }
X  
X  
X--- 1496,1503 ----
X      char mark[LATEX_TICSIZ];
X  
X      sprintf(mark, format, number);
X!     fprintf(outfile, "\\put(%ld,%ld){\\makebox(0,0)[r]{%s}}\n",
X! 		  (long)(-LATEX_VTIC), (long)y, mark);
X  }
X  
X  
XCommon subdirectories: ../gnutex.old/doc/example and ./doc/example
XCommon subdirectories: ../gnutex.old/doc/manual and ./doc/manual
Xdiff -cr ../gnutex.old/doc/manual/eg1.tex ./doc/manual/eg1.tex
X*** ../gnutex.old/doc/manual/eg1.tex	Mon Dec 12 14:29:20 1988
X--- ./doc/manual/eg1.tex	Mon Jan 16 18:09:15 1989
X***************
X*** 6,11 ****
X--- 6,12 ----
X  \put(28907,21680){\line(-1,0){28907}}
X  \put(0,21680){\line(0,-1){21680}}
X  \put(-500,0){\makebox(0,0)[r]{$-1$}}
X+ \put(-500,21679){\makebox(0,0)[r]{$1$}}
X  \put(0,2167){\line(1,0){500}}
X  \put(28907,2167){\line(-1,0){500}}
X  \put(-500,2167){\makebox(0,0)[r]{$-.8$}}
X***************
X*** 33,39 ****
X  \put(0,19511){\line(1,0){500}}
X  \put(28907,19511){\line(-1,0){500}}
X  \put(-500,19511){\makebox(0,0)[r]{$.8$}}
X- \put(-500,21679){\makebox(0,0)[r]{$1$}}
X  \put(644,0){\line(0,1){500}}
X  \put(644,21680){\line(0,-1){500}}
X  \put(644,-500){\makebox(0,0)[t]{$-3$}}
X--- 34,39 ----
Xdiff -cr ../gnutex.old/doc/manual/eg2.tex ./doc/manual/eg2.tex
X*** ../gnutex.old/doc/manual/eg2.tex	Mon Dec 12 14:29:22 1988
X--- ./doc/manual/eg2.tex	Mon Jan 16 18:09:16 1989
X***************
X*** 10,15 ****
X--- 10,16 ----
X  \put(36134,28907){\line(-1,0){36134}}
X  \put(0,28907){\line(0,-1){28907}}
X  \put(-500,0){\makebox(0,0)[r]{$0$}}
X+ \put(-500,28906){\makebox(0,0)[r]{$1$}}
X  \put(0,5781){\line(1,0){500}}
X  \put(36134,5781){\line(-1,0){500}}
X  \put(-500,5781){\makebox(0,0)[r]{$.2$}}
X***************
X*** 22,28 ****
X  \put(0,23124){\line(1,0){500}}
X  \put(36134,23124){\line(-1,0){500}}
X  \put(-500,23124){\makebox(0,0)[r]{$.8$}}
X- \put(-500,28906){\makebox(0,0)[r]{$1$}}
X  \put(0,-500){\makebox(0,0)[t]{$0$}}
X  \put(5753,0){\line(0,1){500}}
X  \put(5753,28907){\line(0,-1){500}}
X--- 23,28 ----
Xdiff -cr ../gnutex.old/doc/manual/eg3.tex ./doc/manual/eg3.tex
X*** ../gnutex.old/doc/manual/eg3.tex	Mon Dec 12 14:29:43 1988
X--- ./doc/manual/eg3.tex	Mon Jan 16 18:09:17 1989
X***************
X*** 10,15 ****
X--- 10,16 ----
X  \put(28907,21680){\line(-1,0){28907}}
X  \put(0,21680){\line(0,-1){21680}}
X  \put(-500,0){\makebox(0,0)[r]{$-20$}}
X+ \put(-500,21679){\makebox(0,0)[r]{$20$}}
X  \put(0,2709){\line(1,0){500}}
X  \put(28907,2709){\line(-1,0){500}}
X  \put(-500,2709){\makebox(0,0)[r]{$-15$}}
X***************
X*** 31,61 ****
X  \put(0,18969){\line(1,0){500}}
X  \put(28907,18969){\line(-1,0){500}}
X  \put(-500,18969){\makebox(0,0)[r]{$15$}}
X- \put(-500,21679){\makebox(0,0)[r]{$20$}}
X  \put(0,-500){\makebox(0,0)[t]{$-20$}}
X! \put(3705,0){\line(0,1){500}}
X! \put(3705,21680){\line(0,-1){500}}
X! \put(3705,-500){\makebox(0,0)[t]{$-15$}}
X! \put(7411,0){\line(0,1){500}}
X! \put(7411,21680){\line(0,-1){500}}
X! \put(7411,-500){\makebox(0,0)[t]{$-10$}}
X! \put(11117,0){\line(0,1){500}}
X! \put(11117,21680){\line(0,-1){500}}
X! \put(11117,-500){\makebox(0,0)[t]{$-5$}}
X! \put(14823,0){\line(0,1){500}}
X! \put(14823,21680){\line(0,-1){500}}
X! \put(14823,-500){\makebox(0,0)[t]{$0$}}
X! \put(18529,0){\line(0,1){500}}
X! \put(18529,21680){\line(0,-1){500}}
X! \put(18529,-500){\makebox(0,0)[t]{$5$}}
X! \put(22235,0){\line(0,1){500}}
X! \put(22235,21680){\line(0,-1){500}}
X! \put(22235,-500){\makebox(0,0)[t]{$10$}}
X! \put(25941,0){\line(0,1){500}}
X! \put(25941,21680){\line(0,-1){500}}
X! \put(25941,-500){\makebox(0,0)[t]{$15$}}
X  \put(0,10839){\line(1,0){28907}}
X! \put(14823,0){\line(0,1){21680}}
X  \put(0,0){\circle*{1}}
X  \put(180,132){\circle*{1}}
X  \put(361,264){\circle*{1}}
X--- 32,62 ----
X  \put(0,18969){\line(1,0){500}}
X  \put(28907,18969){\line(-1,0){500}}
X  \put(-500,18969){\makebox(0,0)[r]{$15$}}
X  \put(0,-500){\makebox(0,0)[t]{$-20$}}
X! \put(28906,-500){\makebox(0,0)[t]{$20$}}
X! \put(3613,0){\line(0,1){500}}
X! \put(3613,21680){\line(0,-1){500}}
X! \put(3613,-500){\makebox(0,0)[t]{$-15$}}
X! \put(7226,0){\line(0,1){500}}
X! \put(7226,21680){\line(0,-1){500}}
X! \put(7226,-500){\makebox(0,0)[t]{$-10$}}
X! \put(10839,0){\line(0,1){500}}
X! \put(10839,21680){\line(0,-1){500}}
X! \put(10839,-500){\makebox(0,0)[t]{$-5$}}
X! \put(14453,0){\line(0,1){500}}
X! \put(14453,21680){\line(0,-1){500}}
X! \put(14453,-500){\makebox(0,0)[t]{$0$}}
X! \put(18066,0){\line(0,1){500}}
X! \put(18066,21680){\line(0,-1){500}}
X! \put(18066,-500){\makebox(0,0)[t]{$5$}}
X! \put(21679,0){\line(0,1){500}}
X! \put(21679,21680){\line(0,-1){500}}
X! \put(21679,-500){\makebox(0,0)[t]{$10$}}
X! \put(25292,0){\line(0,1){500}}
X! \put(25292,21680){\line(0,-1){500}}
X! \put(25292,-500){\makebox(0,0)[t]{$15$}}
X  \put(0,10839){\line(1,0){28907}}
X! \put(14453,0){\line(0,1){21680}}
X  \put(0,0){\circle*{1}}
X  \put(180,132){\circle*{1}}
X  \put(361,264){\circle*{1}}
X***************
X*** 217,438 ****
X  \put(28545,20872){\circle*{1}}
X  \put(28726,21004){\circle*{1}}
X  \put(0,5893){\circle*{1}}
X! \put(185,5895){\circle*{1}}
X! \put(371,5898){\circle*{1}}
X! \put(556,5900){\circle*{1}}
X! \put(741,5902){\makebox(0,0){$\Diamond$}}
X! \put(741,5902){\circle*{1}}
X! \put(926,5904){\circle*{1}}
X! \put(1112,5907){\circle*{1}}
X! \put(1297,5909){\circle*{1}}
X! \put(1482,5911){\makebox(0,0){$\Diamond$}}
X! \put(1482,5911){\circle*{1}}
X! \put(1667,5914){\circle*{1}}
X! \put(1853,5917){\circle*{1}}
X! \put(2038,5919){\circle*{1}}
X! \put(2223,5922){\makebox(0,0){$\Diamond$}}
X! \put(2223,5922){\circle*{1}}
X! \put(2408,5925){\circle*{1}}
X! \put(2594,5928){\circle*{1}}
X! \put(2779,5931){\circle*{1}}
X! \put(2964,5934){\makebox(0,0){$\Diamond$}}
X! \put(2964,5934){\circle*{1}}
X! \put(3149,5937){\circle*{1}}
X! \put(3335,5941){\circle*{1}}
X! \put(3520,5944){\circle*{1}}
X! \put(3705,5947){\makebox(0,0){$\Diamond$}}
X! \put(3705,5947){\circle*{1}}
X! \put(3891,5951){\circle*{1}}
X! \put(4076,5955){\circle*{1}}
X! \put(4262,5959){\circle*{1}}
X! \put(4447,5963){\makebox(0,0){$\Diamond$}}
X! \put(4447,5963){\circle*{1}}
X! \put(4632,5968){\circle*{1}}
X! \put(4818,5972){\circle*{1}}
X! \put(5003,5977){\circle*{1}}
X! \put(5188,5981){\makebox(0,0){$\Diamond$}}
X! \put(5188,5981){\circle*{1}}
X! \put(5373,5986){\circle*{1}}
X! \put(5559,5991){\circle*{1}}
X! \put(5744,5996){\circle*{1}}
X! \put(5929,6001){\makebox(0,0){$\Diamond$}}
X! \put(5929,6001){\circle*{1}}
X! \put(6114,6007){\circle*{1}}
X! \put(6300,6014){\circle*{1}}
X! \put(6485,6020){\circle*{1}}
X! \put(6670,6026){\makebox(0,0){$\Diamond$}}
X! \put(6670,6026){\circle*{1}}
X! \put(6855,6033){\circle*{1}}
X! \put(7041,6041){\circle*{1}}
X! \put(7226,6048){\circle*{1}}
X! \put(7411,6055){\makebox(0,0){$\Diamond$}}
X! \put(7411,6055){\circle*{1}}
X! \put(7596,6064){\circle*{1}}
X! \put(7782,6073){\circle*{1}}
X! \put(7967,6082){\circle*{1}}
X! \put(8152,6091){\makebox(0,0){$\Diamond$}}
X! \put(8152,6091){\circle*{1}}
X! \put(8338,6102){\circle*{1}}
X! \put(8523,6113){\circle*{1}}
X! \put(8709,6124){\circle*{1}}
X! \put(8894,6135){\makebox(0,0){$\Diamond$}}
X! \put(8894,6135){\circle*{1}}
X! \put(9079,6149){\circle*{1}}
X! \put(9265,6164){\circle*{1}}
X! \put(9450,6178){\circle*{1}}
X! \put(9635,6192){\makebox(0,0){$\Diamond$}}
X! \put(9635,6192){\circle*{1}}
X! \put(9820,6211){\circle*{1}}
X! \put(10006,6230){\circle*{1}}
X! \put(10191,6249){\circle*{1}}
X! \put(10376,6268){\makebox(0,0){$\Diamond$}}
X! \put(10376,6268){\circle*{1}}
X! \put(10561,6294){\circle*{1}}
X! \put(10747,6321){\circle*{1}}
X! \put(10932,6347){\circle*{1}}
X! \put(11117,6373){\makebox(0,0){$\Diamond$}}
X! \put(11117,6373){\circle*{1}}
X! \put(11302,6412){\circle*{1}}
X! \put(11488,6451){\circle*{1}}
X! \put(11673,6489){\circle*{1}}
X! \put(11858,6528){\makebox(0,0){$\Diamond$}}
X! \put(11858,6528){\circle*{1}}
X! \put(12044,6590){\circle*{1}}
X! \put(12229,6653){\circle*{1}}
X! \put(12415,6715){\circle*{1}}
X! \put(12600,6777){\makebox(0,0){$\Diamond$}}
X! \put(12600,6777){\circle*{1}}
X! \put(12785,6893){\circle*{1}}
X! \put(12971,7008){\circle*{1}}
X! \put(13156,7124){\circle*{1}}
X! \put(13341,7239){\makebox(0,0){$\Diamond$}}
X! \put(13341,7239){\circle*{1}}
X! \put(13465,7413){\circle*{1}}
X! \put(13588,7588){\circle*{1}}
X! \put(13712,7762){\circle*{1}}
X! \put(13835,7936){\circle*{1}}
X! \put(13959,8111){\circle*{1}}
X! \put(14082,8285){\makebox(0,0){$\Diamond$}}
X! \put(14082,8285){\circle*{1}}
X! \put(14139,8481){\circle*{1}}
X! \put(14196,8678){\circle*{1}}
X! \put(14253,8874){\circle*{1}}
X! \put(14310,9071){\circle*{1}}
X! \put(14367,9267){\circle*{1}}
X! \put(14424,9464){\circle*{1}}
X! \put(14481,9660){\circle*{1}}
X! \put(14538,9857){\circle*{1}}
X! \put(14595,10053){\circle*{1}}
X! \put(14652,10250){\circle*{1}}
X! \put(14709,10446){\circle*{1}}
X! \put(14766,10643){\circle*{1}}
X! \put(14823,10839){\makebox(0,0){$\Diamond$}}
X! \put(14823,10839){\circle*{1}}
X! \put(14880,11035){\circle*{1}}
X! \put(14937,11232){\circle*{1}}
X! \put(14994,11428){\circle*{1}}
X! \put(15051,11625){\circle*{1}}
X! \put(15108,11821){\circle*{1}}
X! \put(15165,12018){\circle*{1}}
X! \put(15222,12214){\circle*{1}}
X! \put(15279,12411){\circle*{1}}
X! \put(15336,12607){\circle*{1}}
X! \put(15393,12804){\circle*{1}}
X! \put(15450,13000){\circle*{1}}
X! \put(15507,13197){\circle*{1}}
X! \put(15564,13393){\makebox(0,0){$\Diamond$}}
X! \put(15564,13393){\circle*{1}}
X! \put(15688,13567){\circle*{1}}
X! \put(15811,13742){\circle*{1}}
X! \put(15935,13916){\circle*{1}}
X! \put(16058,14090){\circle*{1}}
X! \put(16182,14265){\circle*{1}}
X! \put(16305,14439){\circle*{1}}
X! \put(16305,14439){\makebox(0,0){$\Diamond$}}
X! \put(16305,14439){\circle*{1}}
X! \put(16491,14555){\circle*{1}}
X! \put(16676,14670){\circle*{1}}
X! \put(16862,14786){\circle*{1}}
X! \put(17047,14901){\makebox(0,0){$\Diamond$}}
X! \put(17047,14901){\circle*{1}}
X! \put(17232,14963){\circle*{1}}
X! \put(17418,15026){\circle*{1}}
X! \put(17603,15088){\circle*{1}}
X! \put(17788,15150){\makebox(0,0){$\Diamond$}}
X! \put(17788,15150){\circle*{1}}
X! \put(17973,15189){\circle*{1}}
X! \put(18159,15228){\circle*{1}}
X! \put(18344,15266){\circle*{1}}
X! \put(18529,15305){\makebox(0,0){$\Diamond$}}
X! \put(18529,15305){\circle*{1}}
X! \put(18714,15331){\circle*{1}}
X! \put(18900,15358){\circle*{1}}
X! \put(19085,15384){\circle*{1}}
X! \put(19270,15410){\makebox(0,0){$\Diamond$}}
X! \put(19270,15410){\circle*{1}}
X! \put(19455,15429){\circle*{1}}
X! \put(19641,15448){\circle*{1}}
X! \put(19826,15467){\circle*{1}}
X! \put(20011,15486){\makebox(0,0){$\Diamond$}}
X! \put(20011,15486){\circle*{1}}
X! \put(20197,15500){\circle*{1}}
X! \put(20382,15515){\circle*{1}}
X! \put(20568,15529){\circle*{1}}
X! \put(20753,15543){\makebox(0,0){$\Diamond$}}
X! \put(20753,15543){\circle*{1}}
X! \put(20938,15554){\circle*{1}}
X! \put(21124,15565){\circle*{1}}
X! \put(21309,15576){\circle*{1}}
X! \put(21494,15587){\makebox(0,0){$\Diamond$}}
X! \put(21494,15587){\circle*{1}}
X! \put(21679,15596){\circle*{1}}
X! \put(21865,15605){\circle*{1}}
X! \put(22050,15614){\circle*{1}}
X! \put(22235,15623){\makebox(0,0){$\Diamond$}}
X! \put(22235,15623){\circle*{1}}
X! \put(22420,15630){\circle*{1}}
X! \put(22606,15638){\circle*{1}}
X! \put(22791,15645){\circle*{1}}
X! \put(22976,15652){\makebox(0,0){$\Diamond$}}
X! \put(22976,15652){\circle*{1}}
X! \put(23161,15658){\circle*{1}}
X! \put(23347,15665){\circle*{1}}
X! \put(23532,15671){\circle*{1}}
X! \put(23717,15677){\makebox(0,0){$\Diamond$}}
X! \put(23717,15677){\circle*{1}}
X! \put(23902,15682){\circle*{1}}
X! \put(24088,15687){\circle*{1}}
X! \put(24273,15692){\circle*{1}}
X! \put(24458,15697){\makebox(0,0){$\Diamond$}}
X! \put(24458,15697){\circle*{1}}
X! \put(24644,15702){\circle*{1}}
X! \put(24829,15706){\circle*{1}}
X! \put(25015,15711){\circle*{1}}
X! \put(25200,15715){\makebox(0,0){$\Diamond$}}
X! \put(25200,15715){\circle*{1}}
X! \put(25385,15719){\circle*{1}}
X! \put(25571,15723){\circle*{1}}
X! \put(25756,15727){\circle*{1}}
X! \put(25941,15731){\makebox(0,0){$\Diamond$}}
X! \put(25941,15731){\circle*{1}}
X! \put(26126,15734){\circle*{1}}
X! \put(26312,15738){\circle*{1}}
X! \put(26497,15741){\circle*{1}}
X! \put(26682,15744){\makebox(0,0){$\Diamond$}}
X! \put(26682,15744){\circle*{1}}
X! \put(26867,15747){\circle*{1}}
X! \put(27053,15750){\circle*{1}}
X! \put(27238,15753){\circle*{1}}
X! \put(27423,15756){\makebox(0,0){$\Diamond$}}
X! \put(27423,15756){\circle*{1}}
X! \put(27608,15759){\circle*{1}}
X! \put(27794,15762){\circle*{1}}
X! \put(27979,15764){\circle*{1}}
X! \put(28164,15767){\makebox(0,0){$\Diamond$}}
X! \put(28164,15767){\circle*{1}}
X! \put(28350,15769){\circle*{1}}
X! \put(28535,15772){\circle*{1}}
X! \put(28721,15774){\circle*{1}}
X  \end{picture}
X  \\
X   & \shortstack{$x$ axis}
X--- 218,442 ----
X  \put(28545,20872){\circle*{1}}
X  \put(28726,21004){\circle*{1}}
X  \put(0,5893){\circle*{1}}
X! \put(181,5895){\circle*{1}}
X! \put(361,5898){\circle*{1}}
X! \put(542,5900){\circle*{1}}
X! \put(722,5902){\makebox(0,0){$\Diamond$}}
X! \put(722,5902){\circle*{1}}
X! \put(903,5904){\circle*{1}}
X! \put(1084,5907){\circle*{1}}
X! \put(1264,5909){\circle*{1}}
X! \put(1445,5911){\makebox(0,0){$\Diamond$}}
X! \put(1445,5911){\circle*{1}}
X! \put(1626,5914){\circle*{1}}
X! \put(1806,5917){\circle*{1}}
X! \put(1987,5919){\circle*{1}}
X! \put(2167,5922){\makebox(0,0){$\Diamond$}}
X! \put(2167,5922){\circle*{1}}
X! \put(2348,5925){\circle*{1}}
X! \put(2529,5928){\circle*{1}}
X! \put(2709,5931){\circle*{1}}
X! \put(2890,5934){\makebox(0,0){$\Diamond$}}
X! \put(2890,5934){\circle*{1}}
X! \put(3071,5937){\circle*{1}}
X! \put(3252,5941){\circle*{1}}
X! \put(3432,5944){\circle*{1}}
X! \put(3613,5947){\makebox(0,0){$\Diamond$}}
X! \put(3613,5947){\circle*{1}}
X! \put(3794,5951){\circle*{1}}
X! \put(3974,5955){\circle*{1}}
X! \put(4155,5959){\circle*{1}}
X! \put(4335,5963){\makebox(0,0){$\Diamond$}}
X! \put(4335,5963){\circle*{1}}
X! \put(4516,5968){\circle*{1}}
X! \put(4697,5972){\circle*{1}}
X! \put(4877,5977){\circle*{1}}
X! \put(5058,5981){\makebox(0,0){$\Diamond$}}
X! \put(5058,5981){\circle*{1}}
X! \put(5239,5986){\circle*{1}}
X! \put(5420,5991){\circle*{1}}
X! \put(5600,5996){\circle*{1}}
X! \put(5781,6001){\makebox(0,0){$\Diamond$}}
X! \put(5781,6001){\circle*{1}}
X! \put(5962,6007){\circle*{1}}
X! \put(6142,6014){\circle*{1}}
X! \put(6323,6020){\circle*{1}}
X! \put(6503,6026){\makebox(0,0){$\Diamond$}}
X! \put(6503,6026){\circle*{1}}
X! \put(6684,6033){\circle*{1}}
X! \put(6865,6041){\circle*{1}}
X! \put(7045,6048){\circle*{1}}
X! \put(7226,6055){\makebox(0,0){$\Diamond$}}
X! \put(7226,6055){\circle*{1}}
X! \put(7407,6064){\circle*{1}}
X! \put(7588,6073){\circle*{1}}
X! \put(7768,6082){\circle*{1}}
X! \put(7949,6091){\makebox(0,0){$\Diamond$}}
X! \put(7949,6091){\circle*{1}}
X! \put(8130,6102){\circle*{1}}
X! \put(8310,6113){\circle*{1}}
X! \put(8491,6124){\circle*{1}}
X! \put(8671,6135){\makebox(0,0){$\Diamond$}}
X! \put(8671,6135){\circle*{1}}
X! \put(8852,6149){\circle*{1}}
X! \put(9033,6164){\circle*{1}}
X! \put(9213,6178){\circle*{1}}
X! \put(9394,6192){\makebox(0,0){$\Diamond$}}
X! \put(9394,6192){\circle*{1}}
X! \put(9575,6211){\circle*{1}}
X! \put(9756,6230){\circle*{1}}
X! \put(9936,6249){\circle*{1}}
X! \put(10117,6268){\makebox(0,0){$\Diamond$}}
X! \put(10117,6268){\circle*{1}}
X! \put(10298,6294){\circle*{1}}
X! \put(10478,6321){\circle*{1}}
X! \put(10659,6347){\circle*{1}}
X! \put(10839,6373){\makebox(0,0){$\Diamond$}}
X! \put(10839,6373){\circle*{1}}
X! \put(11020,6412){\circle*{1}}
X! \put(11201,6451){\circle*{1}}
X! \put(11381,6489){\circle*{1}}
X! \put(11562,6528){\makebox(0,0){$\Diamond$}}
X! \put(11562,6528){\circle*{1}}
X! \put(11743,6590){\circle*{1}}
X! \put(11924,6653){\circle*{1}}
X! \put(12104,6715){\circle*{1}}
X! \put(12285,6777){\makebox(0,0){$\Diamond$}}
X! \put(12285,6777){\circle*{1}}
X! \put(12466,6893){\circle*{1}}
X! \put(12646,7008){\circle*{1}}
X! \put(12827,7124){\circle*{1}}
X! \put(13007,7239){\makebox(0,0){$\Diamond$}}
X! \put(13007,7239){\circle*{1}}
X! \put(13128,7413){\circle*{1}}
X! \put(13248,7588){\circle*{1}}
X! \put(13369,7762){\circle*{1}}
X! \put(13489,7936){\circle*{1}}
X! \put(13610,8111){\circle*{1}}
X! \put(13730,8285){\makebox(0,0){$\Diamond$}}
X! \put(13730,8285){\circle*{1}}
X! \put(13786,8481){\circle*{1}}
X! \put(13841,8678){\circle*{1}}
X! \put(13897,8874){\circle*{1}}
X! \put(13952,9071){\circle*{1}}
X! \put(14008,9267){\circle*{1}}
X! \put(14064,9464){\circle*{1}}
X! \put(14119,9660){\circle*{1}}
X! \put(14175,9857){\circle*{1}}
X! \put(14231,10053){\circle*{1}}
X! \put(14286,10250){\circle*{1}}
X! \put(14342,10446){\circle*{1}}
X! \put(14397,10643){\circle*{1}}
X! \put(14453,10839){\circle*{1}}
X! \put(14453,10839){\makebox(0,0){$\Diamond$}}
X! \put(14453,10839){\circle*{1}}
X! \put(14509,11035){\circle*{1}}
X! \put(14564,11232){\circle*{1}}
X! \put(14620,11428){\circle*{1}}
X! \put(14675,11625){\circle*{1}}
X! \put(14731,11821){\circle*{1}}
X! \put(14786,12018){\circle*{1}}
X! \put(14842,12214){\circle*{1}}
X! \put(14897,12411){\circle*{1}}
X! \put(14953,12607){\circle*{1}}
X! \put(15008,12804){\circle*{1}}
X! \put(15064,13000){\circle*{1}}
X! \put(15119,13197){\circle*{1}}
X! \put(15175,13393){\circle*{1}}
X! \put(15175,13393){\makebox(0,0){$\Diamond$}}
X! \put(15175,13393){\circle*{1}}
X! \put(15296,13567){\circle*{1}}
X! \put(15416,13742){\circle*{1}}
X! \put(15537,13916){\circle*{1}}
X! \put(15657,14090){\circle*{1}}
X! \put(15778,14265){\circle*{1}}
X! \put(15898,14439){\circle*{1}}
X! \put(15898,14439){\makebox(0,0){$\Diamond$}}
X! \put(15898,14439){\circle*{1}}
X! \put(16079,14555){\circle*{1}}
X! \put(16259,14670){\circle*{1}}
X! \put(16440,14786){\circle*{1}}
X! \put(16620,14901){\makebox(0,0){$\Diamond$}}
X! \put(16620,14901){\circle*{1}}
X! \put(16801,14963){\circle*{1}}
X! \put(16982,15026){\circle*{1}}
X! \put(17162,15088){\circle*{1}}
X! \put(17343,15150){\makebox(0,0){$\Diamond$}}
X! \put(17343,15150){\circle*{1}}
X! \put(17524,15189){\circle*{1}}
X! \put(17705,15228){\circle*{1}}
X! \put(17885,15266){\circle*{1}}
X! \put(18066,15305){\makebox(0,0){$\Diamond$}}
X! \put(18066,15305){\circle*{1}}
X! \put(18247,15331){\circle*{1}}
X! \put(18427,15358){\circle*{1}}
X! \put(18608,15384){\circle*{1}}
X! \put(18788,15410){\makebox(0,0){$\Diamond$}}
X! \put(18788,15410){\circle*{1}}
X! \put(18969,15429){\circle*{1}}
X! \put(19150,15448){\circle*{1}}
X! \put(19330,15467){\circle*{1}}
X! \put(19511,15486){\makebox(0,0){$\Diamond$}}
X! \put(19511,15486){\circle*{1}}
X! \put(19692,15500){\circle*{1}}
X! \put(19873,15515){\circle*{1}}
X! \put(20053,15529){\circle*{1}}
X! \put(20234,15543){\makebox(0,0){$\Diamond$}}
X! \put(20234,15543){\circle*{1}}
X! \put(20415,15554){\circle*{1}}
X! \put(20595,15565){\circle*{1}}
X! \put(20776,15576){\circle*{1}}
X! \put(20956,15587){\makebox(0,0){$\Diamond$}}
X! \put(20956,15587){\circle*{1}}
X! \put(21137,15596){\circle*{1}}
X! \put(21318,15605){\circle*{1}}
X! \put(21498,15614){\circle*{1}}
X! \put(21679,15623){\makebox(0,0){$\Diamond$}}
X! \put(21679,15623){\circle*{1}}
X! \put(21860,15630){\circle*{1}}
X! \put(22041,15638){\circle*{1}}
X! \put(22221,15645){\circle*{1}}
X! \put(22402,15652){\makebox(0,0){$\Diamond$}}
X! \put(22402,15652){\circle*{1}}
X! \put(22583,15658){\circle*{1}}
X! \put(22763,15665){\circle*{1}}
X! \put(22944,15671){\circle*{1}}
X! \put(23124,15677){\makebox(0,0){$\Diamond$}}
X! \put(23124,15677){\circle*{1}}
X! \put(23305,15682){\circle*{1}}
X! \put(23486,15687){\circle*{1}}
X! \put(23666,15692){\circle*{1}}
X! \put(23847,15697){\makebox(0,0){$\Diamond$}}
X! \put(23847,15697){\circle*{1}}
X! \put(24028,15702){\circle*{1}}
X! \put(24209,15706){\circle*{1}}
X! \put(24389,15711){\circle*{1}}
X! \put(24570,15715){\makebox(0,0){$\Diamond$}}
X! \put(24570,15715){\circle*{1}}
X! \put(24751,15719){\circle*{1}}
X! \put(24931,15723){\circle*{1}}
X! \put(25112,15727){\circle*{1}}
X! \put(25292,15731){\makebox(0,0){$\Diamond$}}
X! \put(25292,15731){\circle*{1}}
X! \put(25473,15734){\circle*{1}}
X! \put(25654,15738){\circle*{1}}
X! \put(25834,15741){\circle*{1}}
X! \put(26015,15744){\makebox(0,0){$\Diamond$}}
X! \put(26015,15744){\circle*{1}}
X! \put(26196,15747){\circle*{1}}
X! \put(26377,15750){\circle*{1}}
X! \put(26557,15753){\circle*{1}}
X! \put(26738,15756){\makebox(0,0){$\Diamond$}}
X! \put(26738,15756){\circle*{1}}
X! \put(26919,15759){\circle*{1}}
X! \put(27099,15762){\circle*{1}}
X! \put(27280,15764){\circle*{1}}
X! \put(27460,15767){\makebox(0,0){$\Diamond$}}
X! \put(27460,15767){\circle*{1}}
X! \put(27641,15769){\circle*{1}}
X! \put(27822,15772){\circle*{1}}
X! \put(28002,15774){\circle*{1}}
X! \put(28183,15776){\makebox(0,0){$\Diamond$}}
X  \end{picture}
X  \\
X   & \shortstack{$x$ axis}
Xdiff -cr ../gnutex.old/doc/manual/eg4.tex ./doc/manual/eg4.tex
X*** ../gnutex.old/doc/manual/eg4.tex	Mon Dec 12 14:29:24 1988
X--- ./doc/manual/eg4.tex	Mon Jan 16 18:09:18 1989
X***************
X*** 10,15 ****
X--- 10,16 ----
X  \put(25294,21680){\line(-1,0){25294}}
X  \put(0,21680){\line(0,-1){21680}}
X  \put(-500,0){\makebox(0,0)[r]{$-10$}}
X+ \put(-500,21679){\makebox(0,0)[r]{$10$}}
X  \put(0,5419){\line(1,0){500}}
X  \put(25294,5419){\line(-1,0){500}}
X  \put(-500,5419){\makebox(0,0)[r]{$-5$}}
X***************
X*** 19,25 ****
X  \put(0,16259){\line(1,0){500}}
X  \put(25294,16259){\line(-1,0){500}}
X  \put(-500,16259){\makebox(0,0)[r]{$5$}}
X- \put(-500,21679){\makebox(0,0)[r]{$10$}}
X  \put(0,-500){\makebox(0,0)[t]{$-10.0\mu$}}
X  \put(25293,-500){\makebox(0,0)[t]{$ 10.0\mu$}}
X  \put(6323,0){\line(0,1){500}}
X--- 20,25 ----
XOnly in ./doc/manual: gnutex.dvi
XOnly in ./doc/manual: gnutex.log
Xdiff -cr ../gnutex.old/doc/manual/gnutex.tex ./doc/manual/gnutex.tex
X*** ../gnutex.old/doc/manual/gnutex.tex	Tue Jan 10 10:31:11 1989
X--- ./doc/manual/gnutex.tex	Mon Jan 16 16:17:20 1989
X***************
X*** 3,9 ****
X  % David Kotz (dfk@cs.duke.edu)
X  % Duke University Computer Science Department
X  % November 1988
X! % Version DRAFT
X  
X  % some header info
X  \input{header}
X--- 3,9 ----
X  % David Kotz (dfk@cs.duke.edu)
X  % Duke University Computer Science Department
X  % November 1988
X! % Version 1.0
X  
X  % some header info
X  \input{header}
X***************
X*** 11,17 ****
X  \begin{document}
X  
X  \title{The Gnu\TeX\ Plotting 
X! Program\thanks{This document describes Gnu\TeX\ version 1.3, based on
X  gnuplot version 1.0.3. All plots in this document were made with that
X  version of Gnu\TeX.} }
X  \author{David Kotz \\ \verb+dfk@cs.duke.edu+}
X--- 11,17 ----
X  \begin{document}
X  
X  \title{The Gnu\TeX\ Plotting 
X! Program\thanks{This document describes Gnu\TeX\ version 1.4, based on
X  gnuplot version 1.0.3. All plots in this document were made with that
X  version of Gnu\TeX.} }
X  \author{David Kotz \\ \verb+dfk@cs.duke.edu+}
X***************
X*** 25,31 ****
X  \newpage
X  
X  \pagestyle{myheadings}
X! \markright{Gnu\TeX\ Manual DRAFT version 0.5}
X  
X  \currentspace % defined in header.tex
X  
X--- 25,31 ----
X  \newpage
X  
X  \pagestyle{myheadings}
X! \markright{Gnu\TeX\ Manual Version 1.0}
X  
X  \currentspace % defined in header.tex
X  
XCommon subdirectories: ../gnutex.old/help/expressions and ./help/expressions
XCommon subdirectories: ../gnutex.old/help/plot and ./help/plot
XCommon subdirectories: ../gnutex.old/help/set-show and ./help/set-show
XCommon subdirectories: ../gnutex.old/help/expressions/functions and ./help/expressions/functions
XCommon subdirectories: ../gnutex.old/help/expressions/operators and ./help/expressions/operators
SHAR_EOF
fi # end of overwriting check
#	End of shell archive
exit 0
Department of Computer Science, Duke University, Durham, NC 27706
ARPA:	dfk@cs.duke.edu
CSNET:	dfk@duke        
UUCP:	decvax!duke!dfk