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

Comparing ray/src/util/eplus_idf.c (file contents):
Revision 2.8 by greg, Wed Feb 12 17:40:07 2014 UTC vs.
Revision 2.10 by greg, Thu Feb 13 17:39:39 2014 UTC

# Line 225 | Line 225 | idf_read_comment(char *buf, int len, FILE *fp)
225   {
226          int     incomm = 0;
227          char    *cp = buf;
228 <        char    dummyc;
228 >        char    dummys[2];
229          int     c;
230  
231          if ((buf == NULL) | (len <= 0)) {
232 <                buf = &dummyc;
233 <                len = 1;
232 >                buf = dummys;
233 >                len = sizeof(dummys);
234          }
235          while ((c = getc(fp)) != EOF &&
236                          (isspace(c) || (incomm += (c == '!')))) {
237                  if (c == '\n')
238                          incomm = 0;
239 <                if (cp-buf < len-1)
239 >                if (cp-buf < len-2)
240                          *cp++ = c;
241 +                else if (cp-buf == len-2)
242 +                        *cp++ = '\n';
243          }
244          *cp = '\0';
245          if (c != EOF)
# Line 248 | Line 250 | idf_read_comment(char *buf, int len, FILE *fp)
250   IDF_OBJECT *
251   idf_readobject(IDF_LOADED *idf, FILE *fp)
252   {
253 <        char            abuf[IDF_MAXARGL], cbuf[IDF_MAXLINE];
253 >        char            abuf[IDF_MAXARGL], cbuf[100*IDF_MAXLINE];
254          int             delim;
255          IDF_OBJECT      *pnew;
256          
257          if ((delim = idf_read_argument(abuf, fp, 1)) == EOF)
258                  return(NULL);
259 <        idf_read_comment(cbuf, IDF_MAXLINE, fp);
259 >        idf_read_comment(cbuf, sizeof(cbuf), fp);
260          pnew = idf_newobject(idf, abuf, cbuf, NULL);
261          while (delim == ',')
262                  if ((delim = idf_read_argument(abuf, fp, 1)) != EOF) {
263 <                        idf_read_comment(cbuf, IDF_MAXLINE, fp);
263 >                        idf_read_comment(cbuf, sizeof(cbuf), fp);
264                          idf_addfield(pnew, abuf, cbuf);
265                  }
266          if (delim != ';')

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines