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; }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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 (¤t, 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, ¤t); 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); }