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

Comparing ray/src/rt/devmain.c (file contents):
Revision 1.12 by greg, Thu Mar 22 20:58:09 1990 UTC vs.
Revision 2.6 by greg, Thu Feb 9 21:54:11 2023 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1989 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   *  devmain.c - main for independent drivers.
6   *
7   *      Redefine your initialization routine to dinit.
11 *
12 *      10/25/89
8   */
9  
10 < #include <stdio.h>
10 > #include "copyright.h"
11  
12 + #include "standard.h"
13 +
14   #include "color.h"
15  
16   #include "driver.h"
17  
21 int     (*wrnvec)(), (*errvec)(), (*cmdvec)();  /* error vectors, unused */
22
18   struct driver   *dev = NULL;                    /* output device */
19  
20   FILE    *devin, *devout;                        /* communications channels */
# Line 44 | Line 39 | char   *argv[];
39                                                  /* set up I/O */
40          progname = argv[0];
41          if (argc < 3) {
42 <                stderr_v("arg count\n");
42 >                eputs("arg count\n");
43                  quit(1);
44          }
45          devin = fdopen(atoi(argv[1]), "r");
46          devout = fdopen(atoi(argv[2]), "w");
47          if (devin == NULL || devout == NULL || getw(devin) != COM_SENDM) {
48 <                stderr_v("connection failure\n");
48 >                eputs("connection failure\n");
49                  quit(1);
50          }
51                                                  /* open device */
# Line 62 | Line 57 | char   *argv[];
57                                                  /* loop on requests */
58          while ((com = getc(devin)) != EOF) {
59                  if (com >= NREQUESTS || dev_func[com] == NULL) {
60 <                        stderr_v("invalid request\n");
60 >                        eputs("invalid request\n");
61                          quit(1);
62                  }
63                  (*dev_func[com])();             /* process request */
# Line 71 | Line 66 | char   *argv[];
66   }
67  
68  
69 + void
70   quit(code)                              /* close device and exit */
71   int     code;
72   {
# Line 95 | Line 91 | r_paintr()                             /* paint a rectangle */
91          COLOR   col;
92          int     xmin, ymin, xmax, ymax;
93  
94 <        fread((char *)col, sizeof(COLOR), 1, devin);
94 >        getbinary((char *)col, sizeof(COLOR), 1, devin);
95          xmin = getw(devin); ymin = getw(devin);
96          xmax = getw(devin); ymax = getw(devin);
97          (*dev->paintr)(col, xmin, ymin, xmax, ymax);
# Line 131 | Line 127 | r_getcur()                             /* get and return cursor position */
127   }
128  
129  
130 + void
131 + mygets(char *s, FILE *fp)                       /* get string from file (with nul) */
132 + {
133 +        int     c;
134 +
135 +        while ((c = getc(fp)) != EOF)
136 +                if ((*s++ = c) == '\0')
137 +                        return;
138 +        *s = '\0';
139 + }
140 +
141 +
142 + void
143 + myputs(const char *s, FILE *fp)                 /* put string to file (with nul) */
144 + {
145 +        do
146 +                putc(*s, fp);
147 +        while (*s++);
148 + }
149 +
150 +
151   r_comout()                              /* print string to command line */
152   {
153          char    str[256];
# Line 159 | Line 176 | r_comin()                              /* read string from command line */
176   }
177  
178  
179 < mygets(s, fp)                           /* get string from file (with nul) */
180 < register char   *s;
164 < register FILE   *fp;
179 > void
180 > eputs(const char *s)                            /* put string to stderr */
181   {
166        register int    c;
167
168        while ((c = getc(fp)) != EOF)
169                if ((*s++ = c) == '\0')
170                        return;
171        *s = '\0';
172 }
173
174
175 myputs(s, fp)                           /* put string to file (with nul) */
176 register char   *s;
177 register FILE   *fp;
178 {
179        do
180                putc(*s, fp);
181        while (*s++);
182 }
183
184
185 stderr_v(s)                             /* put string to stderr */
186 register char  *s;
187 {
182          static int  midline = 0;
183  
184 +        if (!*s)
185 +                return;
186          if (!midline++) {
187                  fputs(progname, stderr);
188                  fputs(": ", stderr);
189          }
190          fputs(s, stderr);
191 <        if (*s && s[strlen(s)-1] == '\n') {
191 >        if (s[strlen(s)-1] == '\n') {
192                  fflush(stderr);
193                  midline = 0;
194          }
# Line 201 | Line 197 | register char  *s;
197  
198   sendstate()                             /* send driver state variables */
199   {
200 <        fwrite((char *)&dev->pixaspect, sizeof(dev->pixaspect), 1, devout);
200 >        putbinary(&dev->pixaspect, sizeof(dev->pixaspect), 1, devout);
201          putw(dev->xsiz, devout);
202          putw(dev->ysiz, devout);
203          putw(dev->inpready, devout);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines