static int isformat( /* is line a format line? */ char *s ) { return(formatval(NULL, s)); }
static int get_dminfo(char *s, void *p) { RMATRIX *ip = (RMATRIX *)p; char fmt[64]; int i; if (headidval(fmt, s)) return(0); if (!strncmp(s, "NCOMP=", 6)) { ip->ncomp = atoi(s+6); return(0); } if (!strncmp(s, "NROWS=", 6)) { ip->nrows = atoi(s+6); return(0); } if (!strncmp(s, "NCOLS=", 6)) { ip->ncols = atoi(s+6); return(0); } if (!formatval(fmt, s)) { rmx_addinfo(ip, s); return(0); } for (i = 1; i < DTend; i++) if (!strcmp(fmt, cm_fmt_id[i])) { ip->dtype = i; return(0); } return(-1); }
static int checkhead( /* deal with line from header */ char *line, void *p ) { char fmt[32]; double d; COLOR ctmp; if (formatval(fmt, line)) { if (!strcmp(fmt, CIEFMT)) mybright = &xyz_bright; else if (!strcmp(fmt, COLRFMT)) mybright = &rgb_bright; else wrongformat++; } else if (original && isexpos(line)) { d = 1.0/exposval(line); scalecolor(exposure, d); doexposure++; } else if (original && iscolcor(line)) { colcorval(ctmp, line); setcolor(exposure, colval(exposure,RED)/colval(ctmp,RED), colval(exposure,GRN)/colval(ctmp,GRN), colval(exposure,BLU)/colval(ctmp,BLU)); doexposure++; } else if (header) fputs(line, stdout); return(0); }
static int get_cminfo(char *s, void *p) { CMINFO *ip = (CMINFO *)p; char fmt[MAXFMTLEN]; int i; if (!strncmp(s, "NCOMP=", 6) && atoi(s+6) != 3) { ip->err = "unexpected # components (must be 3)"; return(-1); } if (!strncmp(s, "NROWS=", 6)) { ip->nrows = atoi(s+6); return(0); } if (!strncmp(s, "NCOLS=", 6)) { ip->ncols = atoi(s+6); return(0); } if (!formatval(fmt, s)) return(0); for (i = 1; i < DTend; i++) if (!strcmp(fmt, cm_fmt_id[i])) ip->dtype = i; return(0); }
/* Check header line for critical information */ static int headline(char *s, void *p) { char fmt[32]; if (!strncmp(s, "SYMMETRY=", 9)) { inp_coverage = atoi(s+9); single_plane_incident = !inp_coverage; return(0); } if (!strncmp(s, "IO_SIDES=", 9)) { sscanf(s+9, "%d %d", &input_orient, &output_orient); return(0); } if (!strncmp(s, "GRIDRES=", 8)) { sscanf(s+8, "%d", &grid_res); return(0); } if (!strncmp(s, "BSDFMIN=", 8)) { sscanf(s+8, "%lf", &bsdf_min); return(0); } if (formatval(fmt, s) && strcmp(fmt, BSDFREP_FMT)) return(-1); return(0); }
static int holheadline( /* check holodeck header line */ register char *s, void *vhf ) { char fmt[32]; int *hf = vhf; if (formatval(fmt, s)) { if (strcmp(fmt, HOLOFMT)) *hf |= H_BADF; else *hf &= ~H_BADF; return(0); } if (!strncmp(s, "OBSTRUCTIONS=", 13)) { s += 13; while (*s == ' ') s++; if ((*s == 't') | (*s == 'T')) *hf |= H_OBST; else if ((*s == 'f') | (*s == 'F')) *hf |= H_OBSF; else error(WARNING, "bad OBSTRUCTIONS value in holodeck"); return(0); } return(0); }
static int addhline( /* add a line to our info. header */ char *s, void *p ) { char fmt[MAXFMTLEN]; int n; if (formatval(fmt, s)) fmterr += !globmatch(PICFMT, fmt); else if (!strncmp(s, "FRAME=", 6)) frameno = atoi(s+6); n = strlen(s); if (headlen) headlines = (char *)realloc((void *)headlines, headlen+n+1); else headlines = (char *)malloc(n+1); if (headlines == NULL) { perror(progname); exit(1); } strcpy(headlines+headlen, s); headlen += n; return(0); }
static int picheadline( /* process picture header line */ char *s, void *vph ) { char fmt[32]; struct phead *ph = vph; if (formatval(fmt, s)) { ph->badfmt = strcmp(fmt, COLRFMT); return(0); } if (isprims(s)) { ph->altprims++; /* don't want to deal with this */ return(0); } if (isexpos(s)) { ph->expos *= exposval(s); return(0); } if (isview(s)) { ph->gotview += sscanview(&ph->vw, s); return(0); } return(0); }
static int headline( /* process header line */ char *s, void *p ) { static RGBPRIMS inprimS; char fmt[32]; if (formatval(fmt, s)) { /* check if format string */ if (!strcmp(fmt,COLRFMT)) lumf = rgblum; else if (!strcmp(fmt,CIEFMT)) lumf = cielum; else lumf = NULL; return(0); /* don't echo */ } if (isprims(s)) { /* get input primaries */ primsval(inprimS, s); inprims= inprimS; return(0); /* don't echo */ } if (isexpos(s)) { /* picture exposure */ inpexp *= exposval(s); return(0); /* don't echo */ } if (isaspect(s)) /* pixel aspect ratio */ pixaspect *= aspectval(s); if (isview(s)) /* image view */ gotview += sscanview(&ourview, s); return(fputs(s, stdout)); }
static int mycheck( /* check a header line for format info. */ char *s, void *cp ) { if (!formatval(((struct check*)cp)->fs, s) && ((struct check*)cp)->fp != NULL) { fputs(s, ((struct check*)cp)->fp); } return(0); }
static int headline( /* check header line */ char *s, void *p ) { char fmt[32]; if (isformat(s)) { formatval(fmt, s); wrongformat = strcmp(fmt, COLRFMT); } else if (isaspect(s)) pixaspect *= aspectval(s); return(0); }
static int headline( /* process line from header */ char *s, void *pp ) { register char *cp; for (cp = s; *cp; cp++) if (*cp & 0x80) return(-1); /* non-ascii in header */ if (isaspect(s)) ((PICTURE *)pp)->pa *= aspectval(s); else formatval(((PICTURE *)pp)->fmt, s); return(0); }
static int headline( /* print line preceded by a tab */ char *s, void *p ) { char fmt[32]; if (isheadid(s)) return(0); if (formatval(fmt, s)) { if (globmatch(ourfmt, fmt)) { wrongformat = 0; strcpy(ourfmt, fmt); } else wrongformat = 1; } else if (echoheader) { putc('\t', stdout); fputs(s, stdout); } return(0); }
static int headline( /* check header line & echo if requested */ char *s, void *p ) { char fmt[32]; double d; COLOR ctmp; if (isheadid(s)) /* header id */ return(0); /* don't echo */ if (formatval(fmt, s)) { /* check format */ if (globmatch(ourfmt, fmt)) { wrongformat = 0; strcpy(ourfmt, fmt); } else wrongformat = globmatch(PICFMT, fmt) ? 1 : -1; return(0); /* don't echo */ } if (isexpos(s)) { /* exposure */ d = exposval(s); scalecolor(input[nfiles].expos, d); } else if (iscolcor(s)) { /* color correction */ colcorval(ctmp, s); multcolor(input[nfiles].expos, ctmp); } else if (isaspect(s)) input[nfiles].pa *= aspectval(s); else if (isview(s) && sscanview(&input[nfiles].vw, s) > 0) gotview++; if (echoheader) { /* echo line */ putchar('\t'); return(fputs(s, stdout)); } return(0); }