Exemple #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;
}
Exemple #2
0
int main (int argc, char const * argv []) 

{ 
	static char const * optv [] = 
	{ 
		"l:w:", 
		PUTOPTV_S_FUNNEL, 
		"copy one or more file headers to stdout", 
		"l n\tdisplay line count is (n) [" LITERAL (VT_LINES) "]", 
		"w n\tdisplay line width is (n) [" LITERAL (VT_LIMIT) "]", 
		(char const *)(0)
	}; 
	unsigned lines = VT_LINES; 
	unsigned width = VT_LIMIT; 
	signed c; 
	getviewport (& lines, & width); 
	lines--; 
	lines--; 
	width--; 
	while (~ (c = getoptv (argc, argv, optv))) 
	{ 
		switch (c) 
		{ 
		case 'l': 
			lines = uintspec (optarg, 1, SHRT_MAX); 
			break; 
		case 'w': 
			width = uintspec (optarg, 1, SHRT_MAX); 
			break; 
		default: 
			break; 
		} 
	} 
	argc -= optind; 
	argv += optind; 
	if (!argc) 
	{ 
		function (lines, width); 
	} 
	while ((argc) && (* argv)) 
	{ 
		if (efreopen (* argv, "rb", stdin)) 
		{ 
			function (lines, width); 
		} 
		argc--; 
		argv++; 
	} 
	exit (0); 
} 
Exemple #3
0
int main (int argc, char const * argv [])

{
	static char const * optv [] =
	{
		"copy one or more files to stdout",
		PUTOPTV_S_FUNNEL,
		"b:u",
		"b n\tbuffer size is (n) bytes [" LITERAL (BUFFERSIZE) "]",
		"u\tunbuffered copy",
		(char const *) (0)
	};
	signed length = BUFFERSIZE;
	signed c;
	while (~ (c = getoptv (argc, argv, optv)))
	{
		switch (c)
		{
		case 'b':
			length = uintspec (optarg, 1, SHRT_MAX);
			break;
		case 'u':
			length = 1;
			break;
		default: 
			break;
		}
	}
	argc -= optind;
	argv += optind;
	if (! argc)
	{
		function (length);
	}
	while ((argc) && (* argv))
	{
		if (efreopen (* argv, "rb", stdin))
		{
			function (length);
		}
		argc--;
		argv++;
	}
	exit (0);
}
Exemple #4
0
int main (int argc, char const * argv []) 

{ 
	static char const * optv [] = 
	{ 
		"w", 
		PUTOPTV_S_FUNNEL, 
		"print difference between consecutive unsigned decimal integers", 
		"w n\twidth in digits is (n) [" LITERAL (DIGITS) "]", 
		(char const *)(0)
	}; 
	unsigned width = DIGITS; 
	flag_t flags = (flag_t)(0); 
	signed c; 
	while (~ (c = getoptv (argc, argv, optv))) 
	{ 
		switch (c) 
		{ 
		case 'w': 
			width = (unsigned)(uintspec (optarg, 1, 16)); 
		default: 
			break; 
		} 
	} 
	argc -= optind; 
	argv += optind; 
	if (!argc) 
	{ 
		function ("stdin", width, flags); 
	} 
	while ((argc) && (* argv)) 
	{ 
		if (efreopen (* argv, "rb", stdin)) 
		{ 
			function (* argv, width, flags); 
		} 
		argc--; 
		argv++; 
	} 
	return (0); 
} 
Exemple #5
0
int main (int argc, char const * argv [])

{
	static char const * optv [] =
	{
		"print sparse matrix table",
		PUTOPTV_S_FUNNEL,
		"de:hl:m:st:",
		"d\tprint DOCBOOK table on stdout",
		"e s\tempty label is (s) [" LITERAL (EMPTY) "]",
		"h\tprint HTML table on stdout",
		"l n\tindent level is (n) [" LITERAL (LEVEL) "]",
		"m s\tmatch label is (s) [" LITERAL (MATCH) "]",
		"s\tprint CSS2 stylesheet on stdout",
		"t s\ttitle is (s) [" LITERAL (TITLE) "]",
		(char const *) (0)
	};
	unsigned (* table) (unsigned, char const *, struct column *) = table1;
	unsigned margin = LEVEL;
	char const * header = TITLE;
	struct column column =
	{
		(struct column *) (0),
		(char const *) (0),
		(char const *) (0),
		(char *) (0)
	};
	signed c;
	while (~ (c = getoptv (argc, argv, optv)))
	{
		switch (c)
		{
		case 'd':
			table = table2;
			break;
		case 'e':
			label_empty = optarg;
			break;
		case 'h':
			table = table1;
			break;
		case 'l':
			margin = (unsigned) (uintspec (optarg, 0, 16));
			break;
		case 'm':
			label_match = optarg;
			break;
		case 's':
			stylesheet (margin);
			return (0);
		case 't':
			header = optarg;
			break;
		default: 
			break;
		}
	}
	argc -= optind;
	argv += optind;
	if (! argc)
	{
		margin = table (margin, header, & column);
	}
	while ((argc) && (* argv))
	{
		if (efreopen (* argv, "rb", stdin))
		{
			margin = table (margin, header, & column);
		}
		argc--;
		argv++;
	}
	return (0);
}
Exemple #6
0
int main (int argc, char const * argv []) 

{ 
	extern unsigned margin; 
	extern unsigned column; 
	static char const * optv [] = 
	{ 
		"bc:ehl:prstxz", 
		PUTOPTV_S_FUNNEL, 
		"print offset table", 
		"b\tprint docbook format", 
		"c n\talign descriptions to column (n) [" LITERAL (COLUMN) "]", 
		"e\tprint efsu format", 
		"h\tprint HTML table on stdout", 
		"l n\tindent level is (n) [" LITERAL (MARGIN) "]", 
		"p\tprint HTML page on stdout", 
		"r\treset at headings", 
		"s\tprint CSS2 stylesheet on stdout", 
		"t\tprint text with TAB seperated columns", 
		"x\thide unmarked objects", 
		"z\tremove leading zeros", 
		(char const *)(0)
	}; 
	char const * colors [] = 
	{ 
		"#FFFFFF", 
		"#FFFF00", 
		"#00FFFF", 
		"#00FF00", 
		"#FF00FF"
	}; 
	flag_t flags = (flag_t)(0); 
	signed c; 
	while (~ (c = getoptv (argc, argv, optv))) 
	{ 
		switch (c) 
		{ 
		case 'b': 
			_setbits (flags, OFFSET_BOOK); 
			break; 
		case 'c': 
			column = uintspec (optarg, 0, UCHAR_MAX); 
			break; 
		case 'e': 
			_setbits (flags, OFFSET_EFSU); 
			break; 
		case 'h': 
			_setbits (flags, OFFSET_HTML); 
			break; 
		case 'p': 
			_setbits (flags, OFFSET_PAGE); 
			break; 
		case 'l': 
			margin = (unsigned) (uintspec (optarg, 0, 16)); 
			break; 
		case 'r': 
			_setbits (flags, OFFSET_HOLE); 
			break; 
		case 's': 
			stylesheet (margin); 
			return (0); 
		case 't': 
			_setbits (flags, OFFSET_TEXT); 
			break; 
		case 'x': 
			_setbits (flags, OFFSET_FOLD); 
			break; 
		case 'z': 
			_setbits (flags, OFFSET_ZERO); 
			break; 
		default: 
			break; 
		} 
	} 
	argc -= optind; 
	argv += optind; 
	symbol = emalloc (SYMBOLSIZE); 
	string = emalloc (STRINGSIZE); 
	if (!argc) 
	{ 
		function (colors, sizeof (colors) / sizeof (const char *), flags); 
	} 
	while ((argc) && (* argv)) 
	{ 
		if (efreopen (* argv, "rb", stdin)) 
		{ 
			function (colors, SIZEOF (colors), flags); 
		} 
		argc--; 
		argv++; 
	} 
	return (0); 
} 
Exemple #7
0
int main (int argc, char const * argv [])

{
	static char const * optv [] =
	{
		"counts the lines, words, chars and bytes in a text file",
		PUTOPTV_S_FUNNEL,
		"W:lwcbt",
		"W s\tcharset is (s) [" CHRLIB_WORDSET "]",
		"l\tdisplay line count",
		"w\tdisplay word count",
		"c\tdisplay char count",
		"b\tdisplay byte count",
		"t\tdisplay totals",
		(char const *) (0)
	};
	struct wc total =
	{
		0,
		0,
		0,
		0,
		"total"
	};
	static char words [UCHAR_MAX +  1];
	static char table [UCHAR_MAX +  1];
	flag_t flags = (flag_t) (0);
	signed c;
	total._name = "total";
	memset (table, 0, sizeof (table));
	charset (CHRLIB_WORDSET, (char) (0), words, sizeof (words));
	chrdef (table, words);
	while (~ (c = getoptv (argc, argv, optv)))
	{
		switch (c)
		{
		case 'W':
			memset (table, 0, sizeof (table));
			charset (optarg, (char) (0), words, sizeof (words));
			chrdef (table, words);
			break;
		case 'l':
			_setbits (flags, WC_B_NLINE);
			break;
		case 'w':
			_setbits (flags, WC_B_NWORD);
			break;
		case 'c':
			_setbits (flags, WC_B_NCHAR);
			break;
		case 'b':
			_setbits (flags, WC_B_NBYTE);
			break;
		case 't':
			_setbits (flags, WC_B_TOTAL);
			break;
		default: 
			break;
		}
	}
	if (_allclr (flags, WC_B_NLINE | WC_B_NWORD | WC_B_NCHAR | WC_B_NBYTE))
	{
		_setbits (flags, WC_B_NLINE | WC_B_NWORD | WC_B_NCHAR | WC_B_NBYTE);
	}
	argc -= optind;
	argv += optind;
	if (! argc)
	{
		function ("stdin", table, & total, flags);
	}
	while ((argc) && (* argv))
	{
		if (efreopen (* argv, "rb", stdin))
		{
			function (* argv, table, & total, flags);
		}
		argc--;
		argv++;
	}
	show (& total, flags);
	exit (0);
}
Exemple #8
0
int main (int argc, char const * argv []) 

{ 
	static char const * optv [] = 
	{ 
		"cdmn:svx", 
		PUTOPTV_S_FUNNEL, 
		"generate C source code for a type table", 
		"c\tprint css stylesheet for xhtml", 
		"d\tprint preprocessor definitions", 
		"m\tprint xhtml markup", 
		"n s\ttable name is (s) [" LISTNAME "]", 
		"s\tprint switch statement", 
		"v\tprint variable declaration", 
		"x\tuse numbers instead of names", 
		(char const *)(0)
	}; 
	char const * name = LISTNAME; 
	struct _type_ list [LISTSIZE]; 
	size_t size = 0; 
	flag_t flags = (flag_t)(0); 
	signed c; 
	while (~ (c = getoptv (argc, argv, optv))) 
	{ 
		switch (c) 
		{ 
		case 'c': 
			stylesheet (1); 
			return (0); 
		case 'd': 
			_setbits (flags, TOOLS_B_DEFINE); 
			break; 
		case 'm': 
			_setbits (flags, TOOLS_B_MARKUP); 
			break; 
		case 'n': 
			name = optarg; 
			break; 
		case 's': 
			_setbits (flags, TOOLS_B_SWITCH); 
			break; 
		case 'v': 
			_setbits (flags, TOOLS_B_DECLARE); 
			break; 
		case 'x': 
			_setbits (flags, TOOLS_B_NUMBER); 
			break; 
		default: 
			break; 
		} 
	} 
	argc -= optind; 
	argv += optind; 
	if (!flags) 
	{ 
		flags = TOOLS_B_NORMAL; 
	} 
	if (!argc) 
	{ 
		size = typeload (list, LISTSIZE); 
		typesave (list, size, name, flags); 
	} 
	while ((argc) && (* argv)) 
	{ 
		if (efreopen (* argv, "rb", stdin)) 
		{ 
			size = typeload (list, LISTSIZE); 
			typesave (list, size, name, flags); 
		} 
		argc--; 
		argv++; 
	} 
	return (0); 
} 
Exemple #9
0
int main (int argc, char const * argv []) 

{ 
	static char const * optv [] = 
	{ 
		"ceh:p:qv", 
		PUTOPTV_S_FUNNEL, 
		"OpenWRT Makefile Tool", 
		"c\tcontinuation line output", 
		"e\tenumerate fields", 
		"h s\thandler name is (s) [" LITERAL (OWRT_NAME_HANDLER) "]", 
		"p s\tpackage name is (s) [" LITERAL (OWRT_NAME_PACKAGE) "]", 
		"q\tsuppress routine messages", 
		"v\tenable verbose messages", 
		(char const *)(0)
	}; 
	char const * handler = OWRT_NAME_HANDLER; 
	char const * package = OWRT_NAME_PACKAGE; 
	signed vectorsize = OWRT_SIZE_VECTOR; 
	signed buffersize = OWRT_SIZE_BUFFER; 
	void (* function) () = invoke_handler; 
	flag_t flags = (flag_t)(0); 
	signed c; 
	while (~ (c = getoptv (argc, argv, optv))) 
	{ 
		switch (c) 
		{ 
		case 'c': 
			_setbits (flags, OWRT_ONELINE); 
			break; 
		case 'e': 
			function = enumerate; 
			break; 
		case 'h': 
			handler = optarg; 
			break; 
		case 'p': 
			package = optarg; 
			break; 
		case 'q': 
			_setbits (flags, OWRT_SILENCE); 
			break; 
		case 'v': 
			_setbits (flags, OWRT_VERBOSE); 
			break; 
		default: 
			break; 
		} 
	} 
	argc -= optind; 
	argv += optind; 
	if (!argc) 
	{ 
		define_handler (handler, package); 
	} 
	while ((argc) && (* argv)) 
	{ 
		if (efreopen (* argv, "rb", stdin)) 
		{ 
			function (vectorsize, buffersize, flags); 
		} 
		argc--; 
		argv++; 
	} 
	exit (0); 
} 
Exemple #10
0
int main (int argc, char const * argv [])

{
	static char const * optv [] =
	{
		"convert .csv data to .html file",
		PUTOPTV_S_FUNNEL,
		"c:n:ps:t",
		"c s\tcomma characters [" LITERAL (CSV2HTML_COMMA) "]",
		"n n\tminimum number of columns",
		"p\tprint HTML page with header",
		"s s\tpage title string",
		"t\tprint HTML table only",
		(char const *) (0)
	};
	char const * string = (char *) (0);
	char const * comma = CSV2HTML_COMMA;
	unsigned column = 0;
	flag_t flags = (flag_t) (0);
	signed c;
	while (~ (c = getoptv (argc, argv, optv)))
	{
		switch (c)
		{
		case 'c':
			comma = optarg;
			break;
		case 'l':
			column = uintspec (optarg, 1, USHRT_MAX);
			break;
		case 'n':
			column = uintspec (optarg, 1, UCHAR_MAX);
			break;
		case 'p':
			_setbits (flags, CSV2HTML_PAGE);
			break;
		case 's':
			string = optarg;
			break;
		case 't':
			_setbits (flags, CSV2HTML_HTML);
			break;
		default: 
			break;
		}
	}
	argc -= optind;
	argv += optind;
	if (! argc)
	{
		if (! string)
		{
			string = "untitled";
		}
		function (string, comma, column, flags);
	}
	while ((argc) && (* argv))
	{
		if (efreopen (* argv, "rb", stdin))
		{
			if (! string)
			{
				string = filepart (* argv);
			}
			function (string, comma, column, flags);
		}
		argc--;
		argv++;
	}
	return (0);
}
Exemple #11
0
int main (int argc, char const * argv [])

{
	static char const * optv [] =
	{
		"s:",
		PUTOPTV_S_FUNNEL,
		"copy one or more files to a  serial device",
		"s n\tline speed is (n) [115200]",
		(char const *)(0)
	};
	struct termios restore;
	struct termios current;
	speed_t speed = B115200;
	byte buffer [512];
	signed c;
	while ((c = getoptv (argc, argv, optv)) != -1)
	{
		switch (c)
		{
		case 's':
			if (baudrate (uintspec (optarg, 0, UINT_MAX), &speed))
			{
				error (1, 0, "could not set baud rate");
			}
			break;
		default:
			break;
		}
	}
	argc -= optind;
	argv += optind;
	if (!isatty (STDOUT_FILENO))
	{
		error (1, ENOTSUP, "stdout must be a serial line device");
	}
	tcflush (STDOUT_FILENO, TCIFLUSH);
	tcgetattr (STDOUT_FILENO, &restore);
	memset (&current, 0, sizeof (current));
	current.c_cflag = speed | CS8 | CLOCAL | CREAD;
	current.c_iflag = IGNPAR;
	current.c_oflag = 0;
	current.c_lflag = 0;
	current.c_cc [VTIME] = 0;
	current.c_cc [VMIN] = 5;
	tcsetattr (STDOUT_FILENO, TCSANOW, &current);
	if (!argc)
	{
		copy (STDIN_FILENO, STDOUT_FILENO, buffer, sizeof (buffer));
	}
	while ((argc) && (* argv))
	{
		if (efreopen (* argv, "rb", stdin))
		{
			copy (STDIN_FILENO, STDOUT_FILENO, buffer, sizeof (buffer));
		}
		argc--;
		argv++;
	}
	tcsetattr (STDOUT_FILENO, TCSANOW, &restore);
	exit (0);
}