Beispiel #1
0
Datei: lib.c Projekt: kahrs/cda
int
wrd(void)
{
	static int nlines;
	char *l, *src[13];
	int n;

	l = Brdline(wr, '\n');
	if(l == 0)
		return -1;
	++nlines;
	l[BLINELEN(wr)-1] = 0;
	n = strparse(l, src, 13, " ");
	if(n != 12 || src[0][0] == 0 || src[0][1] != 0){
		fprint(2, "wrap file format error, line %d\n", nlines);
		exits("format");
	}
	wbuf.stype = src[0][0];
	wbuf.mark = strtol(src[1], 0, 10);
	strncpy(wbuf.sname, src[2], sizeof wbuf.sname);
	wbuf.slen = strtol(src[3], 0, 10);
	coord(&wbuf.pent[0], &src[4]);
	coord(&wbuf.pent[1], &src[8]);
	return 0;
}
Beispiel #2
0
int
getc(void){
	if(peekc>=0){
		lastc=peekc;
		peekc=-1;
		return lastc;
	}
	if(lbuf==0){
		File *f;
		if(file->next==0)
			return lastc=-1;
		free(file->name);
		Bterm(file->b);
		free(file->b);
		close(file->fd);
		f=file->next;
		free((char *)file);
		file=f;
		line=file->line;
		lbuf=file->lbuf;
		if(lbuf==0)
			lbuf=(unsigned char *)"";
		--nfile;
	}
	if(*lbuf==0){
		file->line++;
		line=file->line;
		if(file->lbuf){
			free((char *)file->lbuf);
			file->lbuf=0;
		}
		lbuf=(unsigned char *)Brdline(file->b, '\n');
		if(lbuf)
			lbuf[BLINELEN(file->b)-1] = 0;
		return lastc='\n';
	}
	return lastc=*lbuf++;
}