Ejemplo n.º 1
0
static void function (FIND * find, flag_t flags)

{
	if (! match (find->filename, find->wildcard))
	{
		return;
	}
	if (efreopen (find->fullname, "rb", stdin))
	{
		SCAN scan;
		char package [FILENAME_MAX];
		char scratch [FILENAME_MAX];
		char buffer [TEXTLINE_MAX];
		size_t line;
		scaninput (& scan, buffer, sizeof (buffer));
		for (line = 0; ~ fgetline (buffer, sizeof (buffer), stdin); line++)
		{
			scanwhile (& scan, gcsASCIIAlpha ".");
			scanbreak (& scan, ":");
			if (havetoken (& scan, "Name:"))
			{
				scanuntil (& scan, gcsBreak);
				extract (& scan, package, sizeof (package));
			}
			else if (havetoken (& scan, "Requires:"))
			{
				while (tokensize (& scan))
				{
					if (isclass (& scan, "A"))
					{
						extract (& scan, scratch, sizeof (scratch));
						printf ("\"%s\",\"%s\"\n", package, scratch);
					}
					nexttoken (& scan);
				}
			}
			else if (havetoken (& scan, "Requires.private:"))
			{
				while (tokensize (& scan))
				{
					if (isclass (& scan, "A"))
					{
						extract (& scan, scratch, sizeof (scratch));
						printf ("\"%s\",\"%s\"\n", package, scratch);
					}
					nexttoken (& scan);
				}
			}
			scanstart (& scan);
		}
	}
	return;
}
Ejemplo n.º 2
0
void scanblock (SCAN * content, const char *literal) 

{
	while ((content->final < content->limit) && (*content->final != *literal)) 
	{
		literal++;
		scanuntil (content, literal);
		scanbreak (content, literal);
		literal--;
	}
	nextbreak (content);
	return;
}