+
+ if (x == SX_ROU) { /* ROUND can have 1 or 2 arguments */
+ if (n < 2 || n > 3) {
+ printf("?Too %s operands - \"%s\"\n",
+ (n > 3) ? "many" : "few", s);
+ sexprc++;
+ goto xdosexp;
+ }
+ }
+ if (x == SX_ROU) {
+ /* But they are not "cumulative" like other SEXP args */
+ /* So this case is handled specially */
+ char buf1[32], buf2[32];
+ float r;
+ char * s0, * s1;
+ char * q0, * q1;
+
+ s0 = p[2];
+ if (!s0) s0 = "";
+ if (!*s0) s0 = "0";
+ q0 = dosexp(s0);
+ ckstrncpy(buf1,q0,32);
+ q0 = buf1;
+
+ s1 = p[3];
+ if (!s1) s1 = "";
+ if (!*s1) s1 = "0";
+ q1 = dosexp(s1);
+ if (!q1) q1 = "";
+ if (!*q1) q1 = "0";
+ ckstrncpy(buf2,q1,32);
+ q1 = buf2;
+
+ r = ckround(atof(q0),(int)(atof(q1)),sxroundbuf,31);
+ s2 = sxroundbuf;
+ sexprc = 0;
+ goto xdosexp;
+ }