[comp.sources.x] v03i071: xgraph -- graph points and functions, Part02/06

argv@island.uu.net (Dan Heller) (04/11/89)

Submitted-by: David Harrison <davidh@ic.berkeley.edu>
Posting-number: Volume 3, Issue 71
Archive-name: xgraph/part02

#!/bin/sh
# to extract, remove the header and type "sh filename"
if `test ! -d ./xgraph-11`
then
  mkdir ./xgraph-11
  echo "mkdir ./xgraph-11"
fi
if `test ! -s ./xgraph-11/xgraph.h`
then
echo "writing ./xgraph-11/xgraph.h"
cat > ./xgraph-11/xgraph.h << '\End\Of\Shar\'
/*
 * Globally accessible information from xgraph
 */

#define MAXKEYS		50
#define MAXATTR 	8
#define MAXSETS		64
#define MAXBUFSIZE 	120
#define MAXLS		11

#define STRDUP(xx)	(strcpy(malloc((unsigned) (strlen(xx)+1)), (xx)))

typedef struct attr_set {
    char lineStyle[MAXLS];
    int lineStyleLen;
    Pixel pixelValue;
    Pixmap markStyle;
} AttrSet;    

extern AttrSet AllAttrs[MAXATTR];

/* Globally accessible values */
extern Display *disp;			/* Open display            */
extern Visual *vis;			/* Standard visual         */
extern Colormap cmap;			/* Standard colormap       */
extern int screen;			/* Screen number           */
extern int depth;			/* Depth of screen         */
extern int install_flag;		/* Install colormaps       */
extern Pixel black_pixel;		/* Actual black pixel      */
extern Pixel white_pixel;		/* Actual white pixel      */
extern Pixel bgPixel;			/* Background color        */
extern int bdrSize;			/* Width of border         */
extern Pixel bdrPixel;			/* Border color            */
extern Pixel zeroPixel;			/* Zero grid color         */
extern int zeroWidth;			/* Width of zero line      */
extern char zeroLS[MAXLS];		/* Line style spec         */
extern int zeroLSLen;			/* Length of zero LS spec  */
extern Pixel normPixel;			/* Norm grid color         */
extern int axisWidth;			/* Width of axis line      */
extern char axisLS[MAXLS];		/* Axis line style spec    */
extern int axisLSLen;			/* Length of axis line style */
extern Pixel echoPix;			/* Echo pixel value        */
extern XFontStruct *axisFont;		/* Font for axis labels    */
extern XFontStruct *titleFont;		/* Font for title          */
extern char titleText[MAXBUFSIZE]; 	/* Plot title              */
extern char XUnits[MAXBUFSIZE];		/* X Unit string           */
extern char YUnits[MAXBUFSIZE];		/* Y Unit string	   */
extern int bwFlag;			/* Black and white flag    */
extern int tickFlag;			/* Don't draw full grid    */
extern int bbFlag;			/* Whether to draw bb      */
extern int noLines;			/* Don't draw lines        */
extern int markFlag;			/* Draw marks at points    */
extern int pixelMarks;			/* Draw pixel markers      */
extern int bigPixel;			/* Draw big pixels         */
extern int colorMark;			/* Normal markers track color */
extern int logXFlag;			/* Logarithmic X axis      */
extern int logYFlag;			/* Logarithmic Y axis      */
extern int barFlag;			/* Draw bar graph          */
extern double barBase, barWidth;	/* Base and width of bars  */
extern int lineWidth;			/* Width of data lines     */
extern char *geoSpec;			/* Geometry specification  */
extern int numFiles;			/* Number of input files   */
extern char *inFileNames[MAXSETS]; 	/* File names              */
extern char *Odevice;			/* Output device   	   */
extern char *Odisp; 			/* Output disposition      */
extern char *OfileDev;			/* Output file or device   */
extern double Odim;			/* Output dimension        */
extern char *Otfam;			/* Output title family     */
extern double Otsize;			/* Output title size       */
extern char *Oafam;			/* Output axis family      */
extern double Oasize;			/* Output axis size        */
extern int debugFlag;			/* Whether debugging is on */

extern unsigned int dot_w, dot_h;	/* Size of a dot marker    */
extern unsigned int mark_w, mark_h;	/* Size of a style marker  */
extern int mark_cx, mark_cy;	/* Center of style marker  */

extern Pixmap dotMap;		/* Large dot bitmap        */

extern void do_hardcopy();	/* Carries out hardcopy    */
extern void ho_dialog();	/* Hardcopy dialog         */
extern void set_X();		/* Initializes X device    */

/* To make lint happy */
extern char *malloc();
extern char *realloc();
extern char *sprintf();
extern char *strcpy();
extern char *strcat();
extern char *rindex();
extern void exit();
extern void free();
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/xgraph.h"
fi
if `test ! -s ./xgraph-11/xgtest.c`
then
echo "writing ./xgraph-11/xgtest.c"
cat > ./xgraph-11/xgtest.c << '\End\Of\Shar\'
/*
 * generates a family of curves for testing purposes.
 */

#include "copyright.h"
#include <math.h>
#include <stdio.h>

static char *setnames[] = {
    "Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta",
    "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Pi",
    "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega"
};

#define MAXNAMES	(sizeof(setnames)/sizeof(char *))

double func(x, i)
double x;
int i;
/* Yeilds a y value given an X value for curve i */
{
     return (x - ((double) i)) * x - ((double) i);
}

main(argc, argv)
int argc;
char *argv[];
{
    int num, index;
    double start, end, step, xval;

    if (argc != 5) {
	printf("format: %s curves start finish step\n", argv[0]);
	exit(1);
    }
    num = atoi(argv[1]);
    start = atof(argv[2]);
    end = atof(argv[3]);
    step = atof(argv[4]);
    for (index = 1;  index <= num;  index++) {
	if (index-1 < MAXNAMES) {
	    printf("\"%s\n", setnames[index-1]);
	}
	for (xval = start;  xval <= end;  xval += step) {
	    printf("%G %G\n", xval, func(xval, index));
	}
	printf("\n");
    }
}
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/xgtest.c"
fi
if `test ! -d ./xgraph-11/ux11`
then
  mkdir ./xgraph-11/ux11
  echo "mkdir ./xgraph-11/ux11"
fi
if `test ! -s ./xgraph-11/ux11/Makefile`
then
echo "writing ./xgraph-11/ux11/Makefile"
cat > ./xgraph-11/ux11/Makefile << '\End\Of\Shar\'
#
# Makefile for X11 Utility Library
#

CLEVEL	= -g
CFLAGS	= $(CLEVEL)
CC	= cc

TARGET	= libux11.a

SOURCES = \
	ux11f_watter.c		ux11_open.c \
	ux11f_gcvals.c		ux11g_value.c		ux11s_vismap.c \
	ux11f_hints.c		ux11n_font.c		\
	ux11n_visual.c		ux11f_xa.c		ux11_err.c

OBJECTS = \
	ux11f_watter.o		ux11_open.o \
	ux11f_gcvals.o		ux11g_value.o		ux11s_vismap.o \
	ux11f_hints.o		ux11n_font.o		\
	ux11n_visual.o		ux11f_xa.o		ux11_err.o

TAGFILE	= TAGS

#---------------

.c.o:
		$(CC) $(CFLAGS) -c $*.c
		ar r $(TARGET) $*.o

$(TARGET):	$(OBJECTS)
		ranlib $(TARGET)

tags:		$(TAGFILE)

$(TAGFILE):	$(SOURCES)
		ctags -eut $(SOURCES)
	
clean:
		rm -rf $(TARGET) $(OBJECTS)
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/ux11/Makefile"
fi
if `test ! -s ./xgraph-11/ux11/TAGS`
then
echo "writing ./xgraph-11/ux11/TAGS"
cat > ./xgraph-11/ux11/TAGS << '\End\Of\Shar\'

ux11f_watter.c,14
VARARGS(9,98

ux11_open.c,33
Display *ux11_open_display(9,98

ux11f_gcvals.c,14
VARARGS(9,98

ux11g_value.c,27
char *ux11_get_value(5,33

ux11s_vismap.c,56
int ux11_color_vis(79,2418
int ux11_std_vismap(11,124

ux11f_hints.c,14
VARARGS(9,98

ux11n_font.c,112
#define ABS(72,2005
int ux11_find_font(13,166
static long ux11_size_eval(74,2054
int ux11_size_font(99,2950

ux11n_visual.c,74
static XVisualInfo *get_all_visuals(44,1089
int ux11_find_visual(11,139
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/ux11/TAGS"
fi
if `test ! -s ./xgraph-11/ux11/sources`
then
echo "writing ./xgraph-11/ux11/sources"
cat > ./xgraph-11/ux11/sources << '\End\Of\Shar\'
ux11_fill_image.c	ux11f_watter.c		ux11open.c
ux11f_gcvals.c		ux11g_value.c		ux11s_vismap.c
ux11f_hints.c		ux11n_font.c		ux11w_props.c
ux11f_size.c		ux11n_visual.c
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/ux11/sources"
fi
if `test ! -s ./xgraph-11/ux11/stdarg.h`
then
echo "writing ./xgraph-11/ux11/stdarg.h"
cat > ./xgraph-11/ux11/stdarg.h << '\End\Of\Shar\'
#ifndef _STDARG_H
#define _STDARG_H

typedef char *va_list;

/* Amount of space required in an argument list for an arg of type TYPE.
   TYPE may alternatively be an expression whose type is used.  */

#define __va_rounded_size(TYPE)  \
  (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))

#define va_start(AP, LASTARG) 						\
 (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))

void va_end (va_list);		/* Defined in gnulib */
#define va_end(AP)

#define va_arg(AP, TYPE)						\
 (AP += __va_rounded_size (TYPE),					\
  *((TYPE *) (AP - __va_rounded_size (TYPE))))

#endif /* _STDARG_H */
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/ux11/stdarg.h"
fi
if `test ! -s ./xgraph-11/ux11/ux11.doc`
then
echo "writing ./xgraph-11/ux11/ux11.doc"
cat > ./xgraph-11/ux11/ux11.doc << '\End\Of\Shar\'
X version 11 Utility Routines

David Harrison
University of California,  Berkeley
1988

Display *ux11_open_display(argc, argv)
int argc;
char *argv[];

	Searches a command line argument list for the -display option.
	If found,  the named display is opened and returned.  If no
	display option is found,  the default display is opened.  The
	routine causes the program to exit if no display can be
	opened.

char *ux11_get_value(argc, argv, value, def)
int argc;
char *argv[];
char *value;
char *def;

	Reads through all arguments looking for `value' (which is
	usually a name preceeded by a - sign) and returns the
	value found.  If no value is found,  def is returned.

int ux11_std_vismap(disp, rtn_vis, rtn_cmap, rtn_scrn, rtn_depth)
Display *disp;			/* Display to examine */
Visual **rtn_vis;		/* Returned visual    */
Colormap *rtn_cmap;		/* Returned colormap  */
int *rtn_scrn;			/* Returned screen    */
int *rtn_depth;			/* Returned depth     */

	This routine tries to find a visual/colormap pair that
	supports color for `disp'.  The following steps are
	used to determine this pair:
	 1.  The default depth of the default screen is examined.
	     If it is more than four,  the default visual and
	     colormap for the display is returned.
	 2.  ux11_find_visual is used to see if there is a good
	     alternate visual available (better than the default).
	     If so,  a new colormap is made for the visual
	     and it is returned.  If no good alternative is
	     found,  the routine returns the default visual/colormap.
	The routine returns zero if unsuccessful.  It returns UX11_DEFAULT
	if the default is returned,  and UX11_ALTERNATE if a non-defualt
	visual/colormap is returned.  The visual rating function used
	is ux11_color_vis.

int ux11_color_vis(vis)
XVisualInfo *vis;		/* Visual to examine */

	Returns a desirability index for the passed visual.
	This functions preference list is:
	  PsuedoColor
	  DirectColor
	  StaticColor
	  TrueColor
	  GrayScale
	  StaticGray
	

int ux11_find_visual(disp, good_func, rtn_vis)
Display *disp;			/* What display to examine */
int (*good_func)();		/* Desirability function   */
XVisualInfo *rtn_vis;		/* VisualInfo to fill in   */

	Locates an appropriate color visual.
	Uses `cost_func' to evaluate all visuals.  The function
	has the following form:
	  int good_func(vis)
	  XVisualInfo *vis;
	Should return the desirability of the visual (larger values
	mean better visuals).  Returns a non-zero status if successful.

unsigned long ux11_fill_gcvals(gcvals, name, value, ... , UX11_END)
XGCValues *gcvals;

	Sets the values of an XGCValues structure using variable
	argument lists..  The returned value is the value_mask
	indicating what field is set.  The field names are are those
	described for the value mask (e.g. GCFunction, etc).

unsigned long ux11_fill_wattr(wattr, name, value, ... , UX11_END)
XSetWindowAttributes *wattr;

	Sets items in a fresh window attribute structure using
	variable argument lists.  The settable fields are given by the
	value mask (e.g. CWBackPixmap, etc).  The return value is the
	valuemask of those fields set in the structure.



\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/ux11/ux11.doc"
fi
if `test ! -s ./xgraph-11/ux11/ux11.h`
then
echo "writing ./xgraph-11/ux11/ux11.h"
cat > ./xgraph-11/ux11/ux11.h << '\End\Of\Shar\'
/*
 * X11 utility functions
 *
 * <stdio.h> must be included before this
 */

#ifndef X11_UTIL_HEADER
#define X11_UTIL_HEADER

#include "../copyright.h"

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Intrinsic.h>

#ifdef __STDC__
#define DECLARE(func, rtn, args)	extern rtn func args
#else
#define DECLARE(func, rtn, args)	extern rtn func ()
#endif

#define UX11_END	0L

DECLARE(ux11_open_display, Display *, (int argc, char *argv[]));

DECLARE(ux11_fill_wattr, unsigned long, (XSetWindowAttributes *wattr, ...));

DECLARE(ux11_fill_gcvals, unsigned long, (XGCValues *, ...));

DECLARE(ux11_fill_hints, unsigned long, (XWMHints *, ...));

DECLARE(ux11_fill_xa, int, (Arg *arg_list, int *size, ...));

DECLARE(ux11_find_visual, int, (Display *disp, int (*good_func)(),
				XVisualInfo *rtn_vis));

DECLARE(ux11_color_vis, int, (XVisualInfo *vis));

#define UX11_DEFAULT	1
#define UX11_ALTERNATE	2

DECLARE(ux11_std_vismap, int, (Display *disp, Visual **rtn_vis,
			       Colormap *rtn_cmap, int *rtn_scrn,
			       int *rtn_depth));

DECLARE(ux11_get_value, char *, (int argc, char *argv[], char *value, char *def));

DECLARE(ux11_find_font, int, (Display *disp, int scrn_num, char *pat,
			      long (*good_func)(), void *data,
			      XFontStruct **rtn_font, char **rtn_name));

DECLARE(ux11_size_font, int, (Display *disp, int scrn_num, long size,
			      XFontStruct **rtn_font, char **rtn_name));

DECLARE(ux11_error, char *, (XErrorEvent *evt));

#endif
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/ux11/ux11.h"
fi
if `test ! -s ./xgraph-11/ux11/ux11_err.c`
then
echo "writing ./xgraph-11/ux11/ux11_err.c"
cat > ./xgraph-11/ux11/ux11_err.c << '\End\Of\Shar\'
/*
 * X11 Error Message Formatter
 */

#include "ux11.h"
#include "ux11_internal.h"
#include <X11/Xproto.h>

#define MAX_ERR_LEN	1024
static char err_buf[MAX_ERR_LEN];

char *req_str(req_code)
char req_code;
/*
 * Returns a simple text representation for a request code
 */
{
    switch (req_code) {
    case X_CreateWindow:
	return "X_CreateWindow";
    case X_ChangeWindowAttributes:
	return "X_ChangeWindowAttributes";
    case X_GetWindowAttributes:
	return "X_GetWindowAttributes";
    case X_DestroyWindow:
	return "X_DestroyWindow";
    case X_DestroySubwindows:
	return "X_DestroySubwindows";
    case X_ChangeSaveSet:
	return "X_ChangeSaveSet";
    case X_ReparentWindow:
	return "X_ReparentWindow";
    case X_MapWindow:
	return "X_MapWindow";
    case X_MapSubwindows:
	return "X_MapSubwindows";
    case X_UnmapWindow:
	return "X_UnmapWindow";
    case X_UnmapSubwindows:
	return "X_UnmapSubwindows";
    case X_ConfigureWindow:
	return "X_ConfigureWindow";
    case X_CirculateWindow:
	return "X_CirculateWindow";
    case X_GetGeometry:
	return "X_GetGeometry";
    case X_QueryTree:
	return "X_QueryTree";
    case X_InternAtom:
	return "X_InternAtom";
    case X_GetAtomName:
	return "X_GetAtomName";
    case X_ChangeProperty:
	return "X_ChangeProperty";
    case X_DeleteProperty:
	return "X_DeleteProperty";
    case X_GetProperty:
	return "X_GetProperty";
    case X_ListProperties:
	return "X_ListProperties";
    case X_SetSelectionOwner:
	return "X_SetSelectionOwner";
    case X_GetSelectionOwner:
	return "X_GetSelectionOwner";
    case X_ConvertSelection:
	return "X_ConvertSelection";
    case X_SendEvent:
	return "X_SendEvent";
    case X_GrabPointer:
	return "X_GrabPointer";
    case X_UngrabPointer:
	return "X_UngrabPointer";
    case X_GrabButton:
	return "X_GrabButton";
    case X_UngrabButton:
	return "X_UngrabButton";
    case X_ChangeActivePointerGrab:
	return "X_ChangeActivePointerGrab";
    case X_GrabKeyboard:
	return "X_GrabKeyboard";
    case X_UngrabKeyboard:
	return "X_UngrabKeyboard";
    case X_GrabKey:
	return "X_GrabKey";
    case X_UngrabKey:
	return "X_UngrabKey";
    case X_AllowEvents:
	return "X_AllowEvents";
    case X_GrabServer:
	return "X_GrabServer";
    case X_UngrabServer:
	return "X_UngrabServer";
    case X_QueryPointer:
	return "X_QueryPointer";
    case X_GetMotionEvents:
	return "X_GetMotionEvents";
    case X_TranslateCoords:
	return "X_TranslateCoords";
    case X_WarpPointer:
	return "X_WarpPointer";
    case X_SetInputFocus:
	return "X_SetInputFocus";
    case X_GetInputFocus:
	return "X_GetInputFocus";
    case X_QueryKeymap:
	return "X_QueryKeymap";
    case X_OpenFont:
	return "X_OpenFont";
    case X_CloseFont:
	return "X_CloseFont";
    case X_QueryFont:
	return "X_QueryFont";
    case X_QueryTextExtents:
	return "X_QueryTextExtents";
    case X_ListFonts:
	return "X_ListFonts";
    case X_ListFontsWithInfo:
	return "X_ListFontsWithInfo";
    case X_SetFontPath:
	return "X_SetFontPath";
    case X_GetFontPath:
	return "X_GetFontPath";
    case X_CreatePixmap:
	return "X_CreatePixmap";
    case X_FreePixmap:
	return "X_FreePixmap";
    case X_CreateGC:
	return "X_CreateGC";
    case X_ChangeGC:
	return "X_ChangeGC";
    case X_CopyGC:
	return "X_CopyGC";
    case X_SetDashes:
	return "X_SetDashes";
    case X_SetClipRectangles:
	return "X_SetClipRectangles";
    case X_FreeGC:
	return "X_FreeGC";
    case X_ClearArea:
	return "X_ClearArea";
    case X_CopyArea:
	return "X_CopyArea";
    case X_CopyPlane:
	return "X_CopyPlane";
    case X_PolyPoint:
	return "X_PolyPoint";
    case X_PolyLine:
	return "X_PolyLine";
    case X_PolySegment:
	return "X_PolySegment";
    case X_PolyRectangle:
	return "X_PolyRectangle";
    case X_PolyArc:
	return "X_PolyArc";
    case X_FillPoly:
	return "X_FillPoly";
    case X_PolyFillRectangle:
	return "X_PolyFillRectangle";
    case X_PolyFillArc:
	return "X_PolyFillArc";
    case X_PutImage:
	return "X_PutImage";
    case X_GetImage:
	return "X_GetImage";
    case X_PolyText8:
	return "X_PolyText8";
    case X_PolyText16:
	return "X_PolyText16";
    case X_ImageText8:
	return "X_ImageText8";
    case X_ImageText16:
	return "X_ImageText16";
    case X_CreateColormap:
	return "X_CreateColormap";
    case X_FreeColormap:
	return "X_FreeColormap";
    case X_CopyColormapAndFree:
	return "X_CopyColormapAndFree";
    case X_InstallColormap:
	return "X_InstallColormap";
    case X_UninstallColormap:
	return "X_UninstallColormap";
    case X_ListInstalledColormaps:
	return "X_ListInstalledColormaps";
    case X_AllocColor:
	return "X_AllocColor";
    case X_AllocNamedColor:
	return "X_AllocNamedColor";
    case X_AllocColorCells:
	return "X_AllocColorCells";
    case X_AllocColorPlanes:
	return "X_AllocColorPlanes";
    case X_FreeColors:
	return "X_FreeColors";
    case X_StoreColors:
	return "X_StoreColors";
    case X_StoreNamedColor:
	return "X_StoreNamedColor";
    case X_QueryColors:
	return "X_QueryColors";
    case X_LookupColor:
	return "X_LookupColor";
    case X_CreateCursor:
	return "X_CreateCursor";
    case X_CreateGlyphCursor:
	return "X_CreateGlyphCursor";
    case X_FreeCursor:
	return "X_FreeCursor";
    case X_RecolorCursor:
	return "X_RecolorCursor";
    case X_QueryBestSize:
	return "X_QueryBestSize";
    case X_QueryExtension:
	return "X_QueryExtension";
    case X_ListExtensions:
	return "X_ListExtensions";
    case X_ChangeKeyboardMapping:
	return "X_ChangeKeyboardMapping";
    case X_GetKeyboardMapping:
	return "X_GetKeyboardMapping";
    case X_ChangeKeyboardControl:
	return "X_ChangeKeyboardControl";
    case X_GetKeyboardControl:
	return "X_GetKeyboardControl";
    case X_Bell:
	return "X_Bell";
    case X_ChangePointerControl:
	return "X_ChangePointerControl";
    case X_GetPointerControl:
	return "X_GetPointerControl";
    case X_SetScreenSaver:
	return "X_SetScreenSaver";
    case X_GetScreenSaver:
	return "X_GetScreenSaver";
    case X_ChangeHosts:
	return "X_ChangeHosts";
    case X_ListHosts:
	return "X_ListHosts";
    case X_SetAccessControl:
	return "X_SetAccessControl";
    case X_SetCloseDownMode:
	return "X_SetCloseDownMode";
    case X_KillClient:
	return "X_KillClient";
    case X_RotateProperties:
      return "X_RotateProperties";
    case X_ForceScreenSaver:
	return "X_ForceScreenSaver";
    case X_SetPointerMapping:
	return "X_SetPointerMapping";
    case X_GetPointerMapping:
	return "X_GetPointerMapping";
    case X_SetModifierMapping:
      return "X_SetModifierMapping";
    case X_GetModifierMapping:
	return "X_GetModifierMapping";
    case X_NoOperation:
	return "X_NoOperation";
    default:
	return "Unknown Request";
    }
}

char *ux11_error(evt)
XErrorEvent *evt;
/*
 * Returns a nicely formatted error message for the error `evt'.  The
 * message is returned in a static buffer that should not be modified.
 */
{
    char local_buf[256];

    XGetErrorText(evt->display, evt->error_code, local_buf, 256);
    (void) sprintf(err_buf, "%s: %s\n   (minor_code=%d, resourceid=0x%x)\n",
		   req_str(evt->request_code), local_buf,
		   (int) evt->minor_code,
		   (int) evt->resourceid);
    return (char *) err_buf;
}
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/ux11/ux11_err.c"
fi
if `test ! -s ./xgraph-11/ux11/ux11_internal.h`
then
echo "writing ./xgraph-11/ux11/ux11_internal.h"
cat > ./xgraph-11/ux11/ux11_internal.h << '\End\Of\Shar\'
/*
 * Internal definitions for ux11 library
 * Requires inclusion of ux11.h.
 */

#ifndef UX11_INTERNAL
#define UX11_INTERNAL

#ifdef __STDC__
#include "stdarg.h"
#define VARARGS(func, rtn, args)	rtn func args
#define VOID_P	void *
#else
#include <varargs.h>
#define VARARGS(func, rtn, args)	/*VARARGS*/ rtn func(va_alist) va_dcl
#define VOID_P	char *
#endif

/*
 * Some standards not defined in header files
 */

DECLARE(fprintf, int, (FILE *fp, char *format, ...));
DECLARE(abort, void, ());
DECLARE(malloc, char *, (unsigned long));
DECLARE(realloc, char *, (char *ptr, unsigned size));
DECLARE(sprintf, char *, (char *buf, char *fmt, ...));
#endif
\End\Of\Shar\
else
  echo "will not over write ./xgraph-11/ux11/ux11_internal.h"
fi
echo "Finished archive 2 of 6"