/* **TXTentryParse(name,filenam,&X,&Y,&Repeat,TXT,TRUE) */ Bool TXTentryParse(char *name,char *filenam,Int16 *x,Int16 *y,Bool *repeat, struct TXTFILE *TXT, Bool XY) { Int16 c=0,val=0; Bool comment; Int16 xx=INVALIDINT,yy=INVALIDINT; if(TXTreadIdent(TXT,name)!=TRUE) return FALSE; /* skip the equal*/ if(TXTgetc(TXT,&c,&val)!=TRUE) return FALSE; if(c!='=') TXTungetc(TXT); /* read integer*/ if(XY==TRUE) { xx=TXTreadOptionalShort(TXT); yy=TXTreadOptionalShort(TXT); } Normalise(filenam,name); TXTreadOptionalName(TXT,filenam); if(XY==TRUE) { if(xx==INVALIDINT) xx=TXTreadOptionalShort(TXT); if(yy==INVALIDINT) yy=TXTreadOptionalShort(TXT); } *repeat= TXTreadOptionalRepeat(TXT); *x=xx; *y=yy; for(comment=FALSE;;) { if(TXTgetc(TXT,&c,&val)!=TRUE)break; if(val & NEWLINE) break; if(val & COMMENT) /*eat commentaries*/ { comment=TRUE; continue;} if(val & SPACE) /*eat space*/ { continue;} if(comment==FALSE) ProgError("TR87", "%s(%ld): bad entry format", fname (TXT->pathname), (long) TXT->Lines); } return TRUE; }
bool TXTentryParse(char *name, char *filenam, int16_t * x, int16_t * y, bool * repeat, struct TXTFILE * TXT, bool XY) { int16_t c = 0, val = 0; bool comment; int16_t xx = INVALIDINT, yy = INVALIDINT; if (!TXTreadIdent(TXT, name)) return false; /* skip the equal */ if (!TXTgetc(TXT, &c, &val)) return false; if (c != '=') TXTungetc(TXT); /* read integer */ if (XY) { xx = TXTreadOptionalShort(TXT); yy = TXTreadOptionalShort(TXT); } Normalise(filenam, name); TXTreadOptionalName(TXT, filenam); if (XY) { if (xx == INVALIDINT) xx = TXTreadOptionalShort(TXT); if (yy == INVALIDINT) yy = TXTreadOptionalShort(TXT); } *repeat = TXTreadOptionalRepeat(TXT); *x = xx; *y = yy; for (comment = false;;) { if (!TXTgetc(TXT, &c, &val)) break; if (val & NEWLINE) break; if (val & COMMENT) { /*eat commentaries */ comment = true; continue; } if (val & SPACE) { /*eat space */ continue; } if (!comment) ProgError("TR87", "%s(%ld): bad entry format", fname(TXT->pathname), (long) TXT->Lines); } return true; }