- char str [MAXTOK+1];
- int n;
- double f;
-
- switch (lx) {
- case S_CRT:
- if (pol_word("no", 2) == TRUE)
- ez.d_usecrt = FALSE;
- else {
- ez.d_usecrt = TRUE;
- }
- break;
- case S_EPSON:
- if (pol_word("no", 2) == TRUE)
- ez.d_useprt = FALSE;
- else
- ez.d_useprt = TRUE;
- break;
- case S_TEXTSIZE:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE)
- {
- if (f >= 0.0 && f <= 1.0) {
- ez.v_textsize = f;
- ez.s_textsize = TRUE;
- } else
- ez.s_textsize = FALSE;
- }
- break;
- case S_PRTMODE:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE)
- {
- if (n >= 0 && n <= 6)
- ez.d_prtmode = n;
- else
- ez.d_prtmode = PRTMODE_DEF;
- }
- break;
- case S_XBUF:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE)
- {
- if (n > 2 && n <= 960)
- ez.d_xprtbuf = n;
- else
- ez.d_xprtbuf = XBUF_DEF;
- }
- break;
- case S_YBUF:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE)
- {
- if (n > 2 && n <= 960)
- ez.d_yprtbuf = n;
- else
- ez.d_yprtbuf = YBUF_DEF;
- }
- break;
- case S_REPLOT:
- ez.i_plotimmediate = TRUE;
- ezplot (static_cast<double*>(NULL), static_cast<double*>(NULL), 0);
-#if 0
- if (modeinteract == TRUE)
- WAITKEY();
-#endif
- ez.i_plotimmediate = FALSE;
- break;
- case S_CLEAR:
- ezclear ();
- break;
- case S_TITLE:
- gettext (ez.c_title, MAXTITLE);
- break;
- case S_LEGEND:
- gettext (ez.c_legend, MAXLEGEND);
- if (modeinteract == TRUE && curveinteract >= 0)
- strncpy (ez.curve[curveinteract].legend, ez.c_legend, MAXLEGEND);
- break;
- case S_XLABEL:
- gettext (ez.c_xlabel, MAXLABEL);
- break;
- case S_YLABEL:
- gettext (ez.c_ylabel, MAXLABEL);
- break;
- case S_XCROSS:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE) {
- ez.v_xcross = f;
- ez.s_xcross = TRUE;
- } else
- ez.s_xcross = FALSE;
- break;
- case S_YCROSS:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE) {
- ez.v_ycross = f;
- ez.s_ycross = TRUE;
- } else
- ez.s_ycross = FALSE;
- break;
- case S_NOXAXIS:
- ez.o_xaxis = NOAXIS;
- break;
- case S_NOYAXIS:
- ez.o_yaxis = NOAXIS;
- break;
- case S_XLIN:
- ez.o_xaxis = LINEAR;
- break;
- case S_YLIN:
- ez.o_yaxis = LINEAR;
- break;
- case S_XLOG:
- ez.o_xaxis = LOG;
- break;
- case S_YLOG:
- ez.o_yaxis = LOG;
- break;
- case S_XAUTOSCALE:
- ez.s_xmin = FALSE;
- ez.s_xmax = FALSE;
- break;
- case S_YAUTOSCALE:
- ez.s_ymin = FALSE;
- ez.s_ymax = FALSE;
- break;
- case S_XMIN:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE) {
- ez.v_xmin = f;
- ez.s_xmin = TRUE;
- }
- break;
- case S_XMAX:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE) {
- ez.v_xmax = f;
- ez.s_xmax = TRUE;
- }
- break;
- case S_YMIN:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE) {
- ez.v_ymin = f;
- ez.s_ymin = TRUE;
- }
- break;
- case S_YMAX:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE) {
- ez.v_ymax = f;
- ez.s_ymax = TRUE;
- }
- break;
- case S_SOLID:
- ez.o_linestyle = LS_SOLID;
- if (modeinteract == TRUE && curveinteract >= 0)
- ez.curve[curveinteract].linestyle = LS_SOLID;
- break;
- case S_DASH:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE) {
- if (n == 1)
- ez.o_linestyle = LS_DASH1;
- else if (n == 2)
- ez.o_linestyle = LS_DASH2;
- else if (n == 3)
- ez.o_linestyle = LS_DASH3;
- else if (n == 4)
- ez.o_linestyle = LS_DASH4;
- else
- ez.o_linestyle = LS_DASH1;
- } else
- ez.o_linestyle = LS_DASH1;
- if (modeinteract == TRUE && curveinteract >= 0)
- ez.curve[curveinteract].linestyle = ez.o_linestyle;
- break;
- case S_NOLINE:
- ez.o_linestyle = LS_NOLINE;
- if (modeinteract == TRUE && curveinteract >= 0)
- ez.curve[curveinteract].linestyle = LS_NOLINE;
- break;
- case S_PEN:
- case S_COLOR:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE)
- {
- if (n >= 0 && n <= MAXCOLOR)
- ez.o_color = n;
- else
- bad_option("The color you picked");
- }
- if (modeinteract == TRUE && curveinteract >= 0)
- ez.curve[curveinteract].color = ez.o_color;
- break;
- case S_BOX:
- ez.o_box = TRUE;
- break;
- case S_NOBOX:
- ez.o_box = FALSE;
- break;
- case S_GRID:
- ez.o_grid = TRUE;
- break;
- case S_NOGRID:
- ez.o_grid = FALSE;
- break;
- case S_XLENGTH:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE)
- if (f > 0.0 && f <= 1.0)
- ez.o_xlength = f;
- break;
- case S_YLENGTH:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE)
- if (f > 0.0 && f <= 1.0)
- ez.o_ylength = f;
- break;
- case S_XPORIGIN:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE)
- if (f >= 0.0 && f < 1.0)
- ez.o_xporigin = f;
- break;
- case S_YPORIGIN:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE)
- if (f >= 0.0 && f < 1.0)
- ez.o_yporigin = f;
- break;
- case S_TAG:
- if (pol_word("no", 2) == TRUE)
- ez.o_tag = FALSE;
- else if (pol_word("off", 2) == TRUE)
- ez.o_tag = FALSE;
- else
- ez.o_tag = TRUE;
- break;
- case S_LEGENDBOX:
- if (pol_word("inside", 2) == TRUE)
- ez.o_legendbox = INSIDE;
- else if (pol_word("outside", 3) == TRUE)
- ez.o_legendbox = OUTSIDE;
- else if (pol_word("none",2) == TRUE)
- ez.o_legendbox = NOLEGEND;
- else {
- gettext (str, MAXTOK);
- bad_option(str);
- }
- break;
- case S_XLEGEND:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE)
- {
- if (f >= 0.0 && f < 1.0) {
- ez.v_xlegend = f;
- ez.s_xlegend = TRUE;
- }
- else
- ez.s_xlegend = FALSE;
- }
- break;
- case S_YLEGEND:
- if (pol_float (&f, TT_REAL, FALSE, 0.0, 0.0) == TRUE)
- {
- if (f >= 0.0 && f < 1.0) {
- ez.v_ylegend = f;
- ez.s_ylegend = TRUE;
- }
- else
- ez.s_ylegend = FALSE;
- }
- break;
- case S_CURVES:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE) {
- if (n < 1)
- n = 1;
- else if (n > MAXCURVES)
- n = MAXCURVES;
- if (modeinteract == TRUE) {
- curveinteract = n - 1;
- if (ez.o_unknowncurves == FALSE && ez.o_reqcurves < n)
- ez.o_reqcurves = n;
- } else {
- ezfree ();
- ez.o_reqcurves = n;
- }
- } else {
- if (pol_word ("unknown", 7) == TRUE)
- ez.o_unknowncurves = TRUE;
- else if (pol_word ("end", 3) == TRUE) {
- ez.o_unknowncurves = FALSE;
- ez.o_reqcurves = ez.i_numcurves;
- ez.i_plotimmediate = TRUE;
- ezplot (static_cast<double*>(NULL), static_cast<double*>(NULL), 0);
- ez.i_plotimmediate = FALSE;
- }
- }
- break;
- case S_SYMBOL:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE) {
- if (n > 0 && n <= MAXSYMBOL)
- ez.o_symbol = n;
- else
- ez.o_symbol = 1;
- if (modeinteract == TRUE && curveinteract >= 0)
- ez.curve[curveinteract].symbol = ez.o_symbol;
- } else {
- if (pol_word("every",5) == TRUE) {
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE) {
- if (n > 0)
- ez.o_symfreq = n;
- else
- ez.o_symfreq = 1;
- if (modeinteract == TRUE && curveinteract >= 0)
- ez.curve[curveinteract].symfreq = ez.o_symfreq;
- }
- } else if (pol_word ("none",4) == TRUE) {
- ez.o_symbol = -1;
- if (modeinteract == TRUE && curveinteract >= 0)
- ez.curve[curveinteract].symbol = ez.o_symbol;
- }
- }
- break;
- case S_XTICKS:
- if (pol_usertok(str,&lx) == FALSE)
- break;
- if (lx == S_ABOVE)
- ez.o_xticks = ABOVE;
- else if (lx == S_BELOW)
- ez.o_xticks = BELOW;
- else if (lx == S_NOLABEL)
- ez.o_xtlabel = FALSE;
- else if (lx == S_LABEL)
- ez.o_xtlabel = TRUE;
- else if (lx == S_MAJOR) {
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE)
- if (n > 1 && n < 100)
- ez.o_xmajortick = n;
- } else if (lx == S_MINOR)
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE)
- if (n >= 0 && n < 100)
- ez.o_xminortick = n;
- break;
- case S_YTICKS:
- if (pol_usertok(str,&lx) == FALSE)
- break;
- if (lx == S_RIGHT)
- ez.o_yticks = RIGHT;
- else if (lx == S_LEFT)
- ez.o_yticks = LEFT;
- else if (lx == S_NOLABEL)
- ez.o_ytlabel = FALSE;
- else if (lx == S_LABEL)
- ez.o_ytlabel = TRUE;
- else if (lx == S_MAJOR) {
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE)
- if (n > 1 && n < 100)
- ez.o_ymajortick = n;
- } else if (lx == S_MINOR)
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE)
- if (n >= 0 && n < 100)
- ez.o_yminortick = n;
- break;
- case S_LXFRAC:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE) {
- if (n >= 0) {
- ez.v_lxfrac = n;
- ez.s_lxfrac = TRUE;
- }
- } else
- ez.s_lxfrac = FALSE;
- break;
- case S_LYFRAC:
- if (pol_integer (&n, TT_REAL, FALSE, 0, 0) == TRUE) {
- if (n >= 0) {
- ez.v_lyfrac = n;
- ez.s_lyfrac = TRUE;
- }
- } else
- ez.s_lyfrac = FALSE;
- break;
- case S_USTART:
- if (pol_word("no", 2) == TRUE)
- ez.o_ustart = FALSE;
- else
- ez.o_ustart = TRUE;
- break;
- case S_UFINISH:
- if (pol_word("no", 2) == TRUE)
- ez.o_ufinish = FALSE;
- else
- ez.o_ufinish = TRUE;
- break;
- default:
- fprintf (stderr, "Unimplemented EZPLOT command\n");
- break;
- }
-
- pol_reader ();
- return (TRUE);