Exemple #1
0
/*
 * Write included lines in a form suitable for re-inclusion.
 * The number of characters written is returned.
 */
int
inclWrite(FILE *file, SrcLineList sll)
{
	int      cc = 0;
	FileName slfile, curfile  = 0; /* Guarantee first line is #line ... */
	Length   slline, curline = 0;

	for ( ; sll; sll = cdr(sll)) {
		SrcLine sl = car(sll);

		if (sl->isSysCmd && sl->sysCmdHandled) continue;

		slfile = sposFile(sl->spos);
		slline = sposLine(sl->spos);
		if (curline != slline - 1 
		||  (curfile && !fnameEqual(curfile,slfile))) 
		{
			if ((curfile && fnameEqual(curfile, slfile)))
				cc += fprintf(file, "%cline %d\n",
					      DIRECTIVE_CHAR,
					      (int) slline);
			else {
				cc += fprintf(file, "%cline %d \"%s\"\n",
					      DIRECTIVE_CHAR,
					      (int) slline,
					      fnameUnparseStatic(slfile));
				curfile = slfile;
			}
		}
		curline = slline;
			
		cc += fprintf(file, "%*s%s", sl->indentation, "", sl->text);
	}
	return cc;
}
Exemple #2
0
Bool
arEqual(Archive ar1, Archive ar2)
{
	return fnameEqual(ar1->name, ar2->name);
}