ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/x11.c
(Generate patch)

Comparing ray/src/rt/x11.c (file contents):
Revision 2.14 by greg, Mon Nov 22 11:33:02 1993 UTC vs.
Revision 2.16 by greg, Mon Sep 12 14:41:54 1994 UTC

# Line 261 | Line 261 | int  xmin, ymin, xmax, ymax;
261   static
262   x11_flush()                     /* flush output */
263   {
264 +        int     n;
265 +        char    *buf;
266 +                                                /* check for input */
267          XNoOp(ourdisplay);
268 <        while (XPending(ourdisplay) > 0)
268 >        n = XPending(ourdisplay);                       /* from X server */
269 >        while (n-- > 0)
270                  getevent();
271 +        if (ioctl(0, FIONREAD, &n) == 0 && n > 0) {     /* from stdin */
272 +                buf = getcombuf(&x11_driver);
273 +                n = read(0, buf, n);
274 +                if (n > 0)
275 +                        buf[n] = '\0';
276 +        }
277   }
278  
279  
# Line 271 | Line 281 | static
281   x11_comin(inp, prompt)          /* read in a command line */
282   char  *inp, *prompt;
283   {
284 <        if (prompt != NULL)
284 >        if (prompt != NULL) {
285 >                x11_flush();            /* make sure we get everything */
286                  if (fromcombuf(inp, &x11_driver))
287                          return;
288 <                else
289 <                        xt_puts(prompt, comline);
288 >                xt_puts(prompt, comline);
289 >        }
290          xt_cursor(comline, TBLKCURS);
291          editline(inp, x11_getc, x11_comout);
292          xt_cursor(comline, TNOCURS);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines