panel06/06
David A. Tristram
dat at ORVILLE.NAS.NASA.GOV
Fri Aug 19 07:21:23 AEST 1988
#!/bin/sh
# this is part 6 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file strip.c continued
#
CurArch=6
if test ! -r s2_seq_.tmp
then echo "Please unpack part 1 first!"
exit 1; fi
( read Scheck
if test "$Scheck" != $CurArch
then echo "Please unpack part $Scheck next!"
exit 1;
else exit 0; fi
) < s2_seq_.tmp || exit 1
sed 's/^X//' << 'SHAR_EOF' >> strip.c
X
X color(pnl_outline_color);
X x = xorg + radius * cos(theta);
X y = yorg + radius * sin(theta);
X linewidth(PNL_METER_LINEWIDTH);
X move2(xorg,yorg);
X draw2(x,y);
X linewidth(oldwidth);
X
X color(pnl_outline_color);
X arc(xorg, yorg, radius, 0, 1800);
X move2(xorg,yorg);
X rmv2(-radius,0.0);
X rdr2(2.0*radius,0.0);
X
X color(pnl_outline_color);
X rect(0.0, 0.0, a->w, a->h);
X
X popmatrix();
X if (a->label) drawlabel(a, p);
X}
X
Xvoid
X_drawstripchart(a,p)
XActuator *a;
XPanel *p;
X{
X Coord x, y;
X Actuator temp_act;
X char temp_label[20];
X float xfactor, yfactor, yoffset, labelwidth;
X Stripchart * dp = (Stripchart *)a->data;
X int i;
X long oldwidth = getlwidth();
X
X
X pushmatrix();
X labelwidth = strwidth(" ") * 8 / p->ppu;
X translate(a->x,a->y,0.0);
X
X color(pnl_normal_color);
X rectf(0.0, 0.0, a->w - labelwidth, a->h);
X
X color(pnl_outline_color);
X
X if (!dp->Bind_High || !dp->Bind_Low)
X _setrange(a);
X
X if (dp->firstpt != dp->lastpt) {
X xfactor = (a->w-labelwidth) / (PNL_STRIP_CHART_NPTS + 1);
X yfactor = a->h / (a->maxval - a->minval);
X yoffset = .03 * yfactor * ( a->maxval - a->minval);
X yfactor = .94 * yfactor;
X x = xfactor;
X y = yoffset +
X ((RANGE(dp->y[dp->firstpt],a->minval,a->maxval) - a->minval) * yfactor);
X linewidth(PNL_STRIP_LINEWIDTH);
X move2(x, y);
X i = dp->firstpt + 1;
X if (i >= PNL_STRIP_CHART_NPTS) i = 0;
X while (i != dp->lastpt) {
X x += xfactor;
X y = yoffset
X + ((RANGE(dp->y[i],a->minval,a->maxval) - a->minval) * yfactor);
X draw2(x,y);
X i++;
X if (i >= PNL_STRIP_CHART_NPTS) i = 0;
X }
X linewidth(oldwidth);
X }
X
X color(pnl_outline_color);
X rect(0.0, 0.0, a->w-labelwidth, a->h);
X
X popmatrix();
X if (a->label) drawlabel(a, p);
X
X temp_act.labeltype = PNL_LABEL_RIGHT;
X temp_act.label = temp_label;
X
X temp_act.x = a->x;
X temp_act.y = a->y;
X temp_act.lx = a->w -labelwidth + PNL_DIM_2;
X temp_act.ly = 0.0;
X sprintf(temp_label,"%.3g",a->minval);
X temp_act.lw = labelwidth;
X temp_act.lh = (float)getheight()/p->ppu;
X temp_act.ld = (float)getdescender()/p->ppu;
X drawlabel(&temp_act, p);
X temp_act.ly = a->h - temp_act.lh;
X sprintf(temp_label,"%.3g",a->maxval);
X drawlabel(&temp_act, p);
X}
X
Xvoid
Xpnl_analog_meter(a)
XActuator *a;
X{
X a->type=PNL_ANALOG_METER;
X
X a->w=PNL_METER_WIDTH;
X a->h=PNL_METER_HEIGHT;
X a->labeltype=PNL_LABEL_BOTTOM;
X a->selectable=FALSE; /* output actuator only */
X a->drawfunc=_drawanalogmeter;
X}
X
Xvoid
Xpnl_meter(a)
XActuator *a;
X{
X pnl_analog_meter(a);
X a->type=PNL_METER;
X}
X
Xvoid
Xpnl_analog_bar(a)
XActuator *a;
X{
X pnl_analog_meter(a);
X
X a->type=PNL_ANALOG_BAR;
X a->drawfunc=_drawanalogbar;
X}
X
Xvoid
Xpnl_strip_chart(a)
XActuator *a;
X{
X a->type=PNL_STRIP_CHART;
X
X a->w=PNL_STRIP_WIDTH;
X a->h=PNL_STRIP_HEIGHT;
X a->labeltype=PNL_LABEL_BOTTOM;
X a->selectable=FALSE; /* output actuator only */
X a->data = alloc(sizeof(Stripchart));
X a->datasize=sizeof(Stripchart);
X PNL_ACCESS(Stripchart, a, Bind_Low) = TRUE;
X PNL_ACCESS(Stripchart, a, Bind_High) = TRUE;
X a->addfunc=_addstripchart;
X a->fixfunc=_fixstripchart;
X a->newvalfunc=_newvalstripchart;
X a->dumpfunc=_dumpstripchart;
X a->drawfunc=_drawstripchart;
X}
X
Xvoid
Xpnl_scale_chart(a)
XActuator *a;
X{
X pnl_strip_chart(a);
X
X a->type=PNL_SCALE_CHART;
X PNL_ACCESS(Stripchart, a, Bind_Low) = FALSE;
X PNL_ACCESS(Stripchart, a, Bind_High) = FALSE;
X}
SHAR_EOF
chmod 0644 strip.c || echo "restore of strip.c fails"
sed 's/^X//' << 'SHAR_EOF' > typein.c &&
X/*
X * this software is in the public domain, it may not be resold
X * or relicensed. Do not remove this notice. Send modifications
X * and requests for most recent version to:
X *
X * Author: David A. Tristram
X * NASA Ames Research Center
X * MS 258-5
X * Moffett Field, CA 94035
X * 415-694-4404
X * dat at orville.nas.nasa.gov
X */
X#include <gl.h>
X#include "panel.h"
X
Xvoid _newvaltypein(a,p,sx,sy)
XActuator *a;
XPanel *p;
XScreencoord sx,sy;
X{
X if (!a->active) return;
X
X frontbuffer(TRUE); /* hack hack hack */
X (*a->drawfunc)(a,p);
X frontbuffer(FALSE);
X cmov2((Coord)(a->x+PNL_DIM_3),
X (Coord)(a->y+PNL_DIM_3)+(Coord)getdescender()/p->ppu);
X strcpy(PNL_ACCESS(Typein,a,str),
X g_getstring(pnl_white_color,
X pnl_highlight_color,
X pnl_normal_color,
X PNL_ACCESS(Typein,a,str),
X PNL_ACCESS(Typein,a,len)));
X#ifndef IRIS_4D
X pnl_justup=TRUE; /* hack hack hack */
X setinactive(pnl_ca,pnl_cp); /* hackus maximus */
X
X /* the 4d version of g_gets() seems to preserve mouse up events
X better than the 3000 does */
X#endif IRIS_4D
X}
X
Xvoid
X_addtypein(a, p)
XActuator *a;
XPanel *p;
X{
Xint len;
Xchar *str = alloc(PNL_TYPEIN_MAX_STRING);
X
X if (PNL_ACCESS(Typein, a, str)) strcpy(str,PNL_ACCESS(Typein, a, str));
X PNL_ACCESS(Typein, a, str)=str;
X
X len = (PNL_ACCESS(Typein, a, len)?
X PNL_ACCESS(Typein, a, len):
X PNL_TYPEIN_LENGTH);
X PNL_ACCESS(Typein, a, len)=len;
X a->w=(float)len*(float)strwidth("a")/p->ppu+2.0*PNL_DIM_3;
X a->h=2.0*PNL_DIM_3+(Coord)getheight()/p->ppu;
X a->datasize=sizeof(Typein)+PNL_TYPEIN_MAX_STRING;
X}
X
Xvoid _dumptypein(a, fd)
XActuator *a;
Xint fd;
X{
XTypein *ad=(Typein *)a->data;
Xstatic int msgtype=PNL_MT_STATE;
X
X write(fd, &msgtype, sizeof(msgtype));
X write(fd, &a->id, sizeof(a->id));
X write(fd, a, sizeof(Actuator));
X write(fd, &a->datasize, sizeof(int));
X write(fd, a->data, sizeof(Typein));
X write(fd, ad->str, PNL_TYPEIN_MAX_STRING);
X}
X
Xvoid _loadtypein(a, fd)
XActuator *a;
Xint fd;
X{
XTypein *ad=(Typein *)a->data;
X
X read(fd, a, sizeof(Actuator));
X read(fd, &a->datasize, sizeof(int));
X read(fd, a->data, sizeof(Typein));
X read(fd, ad->str, PNL_TYPEIN_MAX_STRING);
X}
X
Xvoid
X_drawtypein(a, p)
XActuator *a;
XPanel *p;
X{
X if (a->active) color(pnl_highlight_color);
X else color(pnl_normal_color);
X rectf(a->x,a->y,a->x+a->w,a->y+a->h);
X color(pnl_outline_color);
X rect(a->x,a->y,a->x+a->w,a->y+a->h);
X if (a->active) color(pnl_white_color);
X else color(pnl_outline_color);
X cmov2(a->x+PNL_DIM_3,a->y+PNL_DIM_3+(Coord)getdescender()/p->ppu);
X charstr(PNL_ACCESS(Typein,a,str));
X if (a->label) drawlabel(a, p);
X}
X
Xvoid
Xpnl_typein(a)
XActuator *a;
X{
X a->type=PNL_TYPEIN;
X
X a->labeltype=PNL_LABEL_BOTTOM;
X a->data = alloc(sizeof(Typein));
X a->datasize=sizeof(Typein);
X PNL_ACCESS(Typein, a, len) = 0;
X PNL_ACCESS(Typein, a, str) = "";
X a->addfunc=_addtypein;
X a->newvalfunc=_newvaltypein;
X a->dumpfunc=_dumptypein;
X a->drawfunc=_drawtypein;
X}
X
X/*
X * this _drawlabel() draws the label actuator, not to be confused with
X * drawlabel() that draws labels for every kind of actuator, (including,
X * of course, label actuators).
X *
X */
X
Xvoid
X_drawlabel(a, p)
XActuator *a;
XPanel *p;
X{
XScreencoord tx1,ty1,tx2,ty2;
X
X color(pnl_background_color);
X rectf(a->x,a->y,a->x+a->w,a->y+a->h);
X if (a->label) drawlabel(a, p);
X}
X
Xvoid
Xpnl_label(a)
XActuator *a;
X{
X a->type=PNL_LABEL;
X
X a->labeltype=PNL_LABEL_NORMAL;
X a->drawfunc=_drawlabel;
X}
X
SHAR_EOF
chmod 0644 typein.c || echo "restore of typein.c fails"
sed 's/^X//' << 'SHAR_EOF' > typeout.c &&
X/*
X * this software is in the public domain, it may not be resold
X * or relicensed. Do not remove this notice. Send modifications
X * and requests for most recent version to:
X *
X * Author: David A. Tristram
X * NASA Ames Research Center
X * MS 258-5
X * Moffett Field, CA 94035
X * 415-694-4404
X * dat at orville.nas.nasa.gov
X */
X#include <stdio.h>
X#include <math.h>
X#include <gl.h>
X#include "panel.h"
X
Xchar
X*_forwardline(a,p)
XActuator *a;
Xchar *p;
X{
XTypeout *ad=(Typeout *)a->data;
Xchar *q=p;
X
X p+=strcspn(p,"\n");
X if (p-q>ad->col) {
X p-=(p-q)%ad->col;
X }
X if (*p=='\n') p++;
X return p;
X}
X
Xchar
X*_backline(a,p)
XActuator *a;
Xchar *p;
X{
XTypeout *ad=(Typeout *)a->data;
Xchar *q=p;
Xchar *r;
Xint c;
X
X if (p==ad->buf) return p;
X
X if (*(p-1)=='\n'&&p!=ad->buf+1) p-=2;
X for (;;p--) {
X if (p<=ad->buf) break;
X if (*p=='\n') {
X p++;
X break;
X }
X if (q-p>ad->col) { /* wrapped line */
X/*
X count chars to previous newline or bob,
X take that count mod line length to find chars from left margin
X back up that amount, unless its 0, otherwise back up line length.
X*/
X for (r=p;r>ad->buf&&*r!='\n';r--);
X c=(p-r)%ad->col;
X if (c) p=q-c;
X else p=q-ad->col;
X break;
X }
X }
X return p;
X}
X
Xscrollup(a)
XActuator *a;
X{
XTypeout *ad=(Typeout *)a->data;
Xchar *s=ad->buf+ad->start;
Xint n;
X
X/* if (*(ad->buf+ad->start)>ad->len) return; */
X s=_forwardline(a, ad->buf+ad->start);
X ad->start=s-ad->buf;
X return;
X}
X
Xscrolldown(a)
XActuator *a;
X{
Xint n;
XTypeout *ad=(Typeout *)a->data;
Xchar *s=ad->buf+ad->start;
X
X if (s-ad->buf<2) return;
X n=2;
X while (s-n>ad->buf&&*(s-n)!='\n') n++;
X if (n==ad->start) n++; /* pointing to first char */
X if (n<ad->col+2) { /* regular line */
X ad->start-=n-1;
X } else { /* wrapped line */
X ad->start-=n-ad->col-1;
X }
X}
X
Xint
X_linelen(a,p)
XActuator *a;
Xchar *p;
X{
XTypeout *ad=(Typeout *)a->data;
Xint i;
Xchar *q=p;
X
X while (p<ad->buf+ad->len&&*p!='\n') p++;
X return p-q;
X}
X
Xint
X_postopnt(a,x,y)
XActuator *a;
Xint x,y;
X{
XTypeout *ad=(Typeout *)a->data;
Xint i;
Xchar *p,*q;
X
X p=q=ad->buf+ad->start;
X
X for (i=0;i<y;i++) p=_forwardline(a,p);
X p+=MIN(x,_linelen(a,p));
X return p-q;
X}
X
Xvoid
X_pnttopos(a,pnt,x,y)
XActuator *a;
Xint pnt;
Xint *x,*y;
X{
XTypeout *ad=(Typeout *)a->data;
Xint i;
Xchar *p,*q,*r;
X
X *x= *y=0;
X p=q=r=ad->buf+ad->start;
X
X while (p-q<=pnt) {
X if (r==(p=_forwardline(a,p))) break;
X /* in case p doesn't move */
X (*y)++;
X r=p;
X }
X p=_backline(a,p);
X *y=MAX(0,*y-1);
X *x=pnt-(p-q);
X}
X
Xvoid
Xtprint(a,s)
XActuator *a;
Xchar *s;
X{
XTypeout *ad=(Typeout *)a->data;
Xchar *p;
Xint c=0;
X
X if (a->type!=PNL_TYPEOUT) {
X fprintf(stderr, "tprint: actuator");
X if (a->label) fprintf(stderr, " %s", a->label);
X fprintf(stderr," not a typeout\n");
X return;
X }
X
X ad->dot=ad->len;
X for (p=ad->buf+ad->dot;p>ad->buf&&c<ad->lin;p--) {
X if (*p=='\n') c++;
X }
X ad->start=MAX(0,p-ad->buf);
X if (ad->start!=0) ad->start+=2;
X
X if (strlen(s)+1>ad->size) {
X tprint(a,"tprint: That message was too long!");
X return;
X }
X
X if (ad->dot+strlen(s)+1>ad->size) {
X ad->dot=0;
X }
X
X sprintf(ad->buf+ad->dot,"%s\n",s);
X ad->dot+=strlen(s)+1;
X *(ad->buf+ad->dot)='\0';
X
X fixact(a);
X}
X
Xvoid _newvaltypeout(a,p,sx,sy)
XActuator *a;
XPanel *p;
XScreencoord sx,sy;
X{
Xint n;
Xfloat f;
XTypeout *ad=(Typeout *)a->data;
XCoord xorg,yorg; /* origin of top left text position */
XCoord wx, wy;
Xint tx, ty; /* text position, increasing downwards */
X
X if (!a->active) return;
X
X xorg=a->x+PNL_DIM_3;
X yorg=a->y+PNL_DIM_3+ad->cd
X +(ad->lin-1)*ad->ch;
X
X mapw2(p->vobj,sx,sy,&wx,&wy);
X
X if (wx>a->x+a->w-PNL_SCROLL_WIDTH) { /* in scrollbar */
X if (wy<a->y+PNL_TYPEOUT_ARROW_HEIGHT) { /* lower arrow */
X/* if (!pnl_justdown) return; */
X scrollup(a);
X } else if (wy>a->y+a->h-PNL_TYPEOUT_ARROW_HEIGHT) { /* upper arrow */
X/* if (!pnl_justdown) return; */
X scrolldown(a);
X } else { /* elevator region */
X f=1.0-(wy-a->y-PNL_TYPEOUT_ARROW_HEIGHT)
X /(a->h-2.0*PNL_TYPEOUT_ARROW_HEIGHT);
X n=f*ad->len;
X while (n>0&&*(ad->buf+n-1)!='\n') n--;
X ad->start=n;
X }
X } else { /* in typeout region */
X tx=(wx-xorg)/ad->cw;
X ty=(yorg-wy)/ad->ch+1.0;
X tx=RANGE(tx,0,ad->col-1);
X ty=RANGE(ty,0,ad->lin-1);
X ad->dot=ad->start+_postopnt(a,tx,ty);
X/* printf("tx=%d, ty=%d, dot=%d\n",tx,ty,ad->dot); */
X }
X}
X
Xvoid
X_fixtypeout(a)
XActuator *a;
X{
XTypeout *ad=(Typeout *)a->data;
X
X ad->len=strlen(ad->buf);
X a->datasize=sizeof(Typeout)+ad->len;
X a->dirtycnt=2;
X}
X
Xvoid
X_addtypeout(a, p)
XActuator *a;
XPanel *p;
X{
XTypeout *ad=(Typeout *)a->data;
Xint col,lin;
X
X ad->size = (ad->size?ad->size:PNL_TYPEOUT_BUFSIZ);
X ad->buf=alloc(ad->size);
X
X col = (ad->col?ad->col:PNL_TYPEOUT_COLUMNS);
X ad->col=col;
X lin = (ad->lin?ad->lin:PNL_TYPEOUT_LINES);
X ad->lin=lin;
X
X ad->cw=(Coord)strwidth("M")/p->ppu;
X ad->ch=(Coord)getheight()/p->ppu;
X ad->cd=(Coord)getdescender()/p->ppu;
X a->w=(Coord)col*ad->cw+2.0*PNL_DIM_3+PNL_SCROLL_WIDTH;
X a->h=(Coord)lin*ad->ch+2.0*PNL_DIM_3;
X
X _fixtypeout(a);
X}
X
Xvoid _dumptypeout(a, fd)
XActuator *a;
Xint fd;
X{
XTypeout *ad=(Typeout *)a->data;
Xstatic int msgtype=PNL_MT_STATE;
X
X write(fd, &msgtype, sizeof(msgtype));
X write(fd, &a->id, sizeof(a->id));
X write(fd, a, sizeof(Actuator));
X write(fd, &a->datasize, sizeof(int));
X write(fd, a->data, sizeof(Typeout));
X write(fd, ad->buf, ad->len);
X}
X
Xvoid _loadtypeout(a, fd)
XActuator *a;
Xint fd;
X{
XTypeout *ad=(Typeout *)a->data;
X
X read(fd, a, sizeof(Actuator));
X read(fd, &a->datasize, sizeof(int));
X read(fd, a->data, sizeof(Typeout));
X read(fd, ad->buf, ad->len);
X}
X
Xvoid
X_drawscrollarrow()
X{
X pmv2(PNL_TYPEOUT_ARROW_HEIGHT, PNL_DIM_3);
X pdr2(PNL_DIM_3, PNL_TYPEOUT_ARROW_HEIGHT-PNL_DIM_3);
X pdr2(PNL_SCROLL_WIDTH-PNL_DIM_3, PNL_TYPEOUT_ARROW_HEIGHT-PNL_DIM_3);
X pclos();
X}
X
X_drawelevator(a, p, style)
XActuator *a;
XPanel *p;
Xint style;
X{
XTypeout *ad=(Typeout *)a->data;
XCoord y;
X
X pushmatrix();
X translate(a->x+a->w-PNL_SCROLL_WIDTH,
X a->y+PNL_TYPEOUT_ARROW_HEIGHT,
X 0.0);
X y=1.0-(float)ad->start/(float)ad->len;
X y*=a->h-2.0*PNL_TYPEOUT_ARROW_HEIGHT-PNL_DIM_2;
X if (style==PNL_FILLED)
X rectf(0.0,y,PNL_SCROLL_WIDTH,y+PNL_DIM_2);
X else
X rect(0.0,y,PNL_SCROLL_WIDTH,y+PNL_DIM_2);
X popmatrix();
X}
X
Xvoid
X_drawcursor(a, tx, ty)
XActuator *a;
Xint tx, ty;
X{
Xstatic char *s="M";
XTypeout *ad=(Typeout *)a->data;
X
X pushmatrix();
X translate(tx*ad->cw,-ty*ad->ch-ad->cd,0.0);
X color(pnl_highlight_color);
X rectf(0.0,0.0,ad->cw,ad->ch);
X color(pnl_white_color);
X cmov2(0.0,ad->cd);
X sprintf(s, "%c", *(ad->buf+ad->dot));
X charstr(s);
X popmatrix();
X}
X
Xvoid
X_drawtypeout(a, p)
XActuator *a;
XPanel *p;
X{
Xint n, l=0; /* upper left corner is col 0, lin 0. */
XCoord xorg, yorg; /* origin of first char position */
Xint tx,ty;
Xchar *s, t[PNL_TYPEOUT_MAX_COLUMNS], *end;
XTypeout *ad=(Typeout *)a->data;
X
X xorg=a->x+PNL_DIM_3;
X yorg=a->y+PNL_DIM_3+ad->cd
X +(ad->lin-1)*ad->ch;
X
X color(pnl_normal_color);
X rectf(a->x,a->y,a->x+a->w,a->y+a->h);
X color(pnl_outline_color);
X rect(a->x,a->y,a->x+a->w,a->y+a->h);
X rect(a->x+a->w-PNL_SCROLL_WIDTH, a->y, a->x+a->w, a->y+a->h);
X rect(a->x+a->w-PNL_SCROLL_WIDTH, a->y+PNL_TYPEOUT_ARROW_HEIGHT,
X a->x+a->w, a->y+a->h-PNL_TYPEOUT_ARROW_HEIGHT);
X
X color(pnl_highlight_color);
X _drawelevator(a, p, PNL_FILLED);
X color(pnl_outline_color);
X _drawelevator(a, p, PNL_OPEN);
X
X color(pnl_outline_color);
X pushmatrix();
X translate(a->x+a->w-PNL_SCROLL_WIDTH, a->y, 0.0);
X _drawscrollarrow();
X translate(0.0, a->h, 0.0);
X scale(1.0, -1.0, 1.0);
X _drawscrollarrow();
X popmatrix();
X
X s=ad->buf+ad->start;
X/* end=s+strlen(s); /* waste of time? */
X end=ad->buf+ad->len;
X
X do {
X if ((n=strcspn(s, "\n"))<ad->col) {
X strncpy(t, s, n);
X t[n]='\0';
X s+=strlen(t)+1;
X } else {
X strncpy(t, s, ad->col);
X t[ad->col]='\0';
X s+=ad->col;
X }
X cmov2(xorg,yorg-(Coord)l*ad->ch);
X charstr(t);
X l++;
X } while (s<end&&l<ad->lin);
X
X if (ad->dot>=ad->start) {
X _pnttopos(a,ad->dot-ad->start,&tx,&ty);
X if (ty<ad->lin) {
X pushmatrix();
X translate(xorg,yorg,0.0);
X _drawcursor(a,tx,ty);
X popmatrix();
X }
X }
X/* printf("dot=%d, tx=%d, ty=%d\n",ad->dot,tx,ty); */
X
X if (a->label) drawlabel(a, p);
X}
X
Xvoid
Xpnl_typeout(a)
XActuator *a;
X{
XTypeout *ad;
X
X a->type=PNL_TYPEOUT;
X
X a->labeltype=PNL_LABEL_BOTTOM;
X a->data = alloc(sizeof(Typeout));
X a->datasize=sizeof(Typeout);
X ad=(Typeout *)a->data;
X ad->buf = NULL;
X ad->lin = 0;
X ad->col = 0;
X ad->start = 0;
X ad->dot = 0;
X ad->len = 0;
X a->addfunc=_addtypeout;
X a->newvalfunc=_newvaltypeout;
X a->fixfunc=_fixtypeout;
X a->dumpfunc=_dumptypeout;
X a->drawfunc=_drawtypeout;
X}
X
SHAR_EOF
chmod 0644 typeout.c || echo "restore of typeout.c fails"
rm -f s2_seq_.tmp
echo "You have unpacked the last part"
exit 0
More information about the Comp.sys.sgi
mailing list