<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="cpp2html 1.2 by Lorenzo Bettini, bettini@gnu.org http://w3.newnet.it/bettini http://www.gnu.org/software/cpp2html/cpp2html.html"> <title>cmdline.c</title> <link rel="stylesheet" href="cpp2html.css" type="text/css"> </head> <body> <body text="#000000" bgcolor="#CBFFE1" link="#CC6600" vlink="#51188E" alink="#FF0000"> This file has been formatted with <br><b><font color="#FF0000">GNU cpp2html</font></b>, <a href="http://www.gnu.org/software/cpp2html">http://www.gnu.org/software/cpp2html</a><a href="http://www.gnu.org/software/cpp2html"></a> <br> by <i><font color="#009900">Lorenzo Bettini</font></i> <<a href="mailto:bettini@gnu.org">bettini@gnu.org</a>> <hr> <center> <table BORDER=3 CELLPADDING=10 COLS=1 WIDTH="90%" BGCOLOR="#FFFF99" NOSAVE > <tr NOSAVE> <td NOSAVE> <pre> <tt> <span class="comment">/* File autogenerated by gengetopt version 2.1 generated with the following command: /home/lorenzo/usr/local/bin/gengetopt --input cmdline.ggo --unamed-opts The developers of gengetopt consider the fixed text that goes in all gengetopt output files to be in the public domain: we make no copyright claims on it. */</span> <span class="keyword">#include</span> <span class="string"><stdio.h></span> <span class="keyword">#include</span> <span class="string"><stdlib.h></span> <span class="keyword">#include</span> <span class="string"><string.h></span> <span class="comment">/* If we use autoconf. */</span> <span class="keyword">#ifdef</span> HAVE_CONFIG_H <span class="keyword">#include</span> <span class="string">"config.h"</span> <span class="keyword">#endif</span> <span class="comment">/* Check for configure's getopt check result. */</span> <span class="keyword">#ifndef</span> HAVE_GETOPT_LONG <span class="keyword">#include</span> <span class="string">"getopt.h"</span> <span class="keyword">#else</span> <span class="keyword">#include</span> <span class="string"><getopt.h></span> <span class="keyword">#endif</span> <span class="keyword">#include</span> <span class="string">"cmdline.h"</span> <span class="comment">/* Don't define PACKAGE and VERSION if we use automake. */</span> <span class="keyword">#ifndef</span> PACKAGE <span class="comment">/* ******* WRITE THE NAME OF YOUR PROGRAM HERE ******* */</span> <span class="keyword">#define</span> PACKAGE <span class="string">""</span> <span class="keyword">#endif</span> <span class="keyword">#ifndef</span> VERSION <span class="comment">/* ******* WRITE THE VERSION OF YOUR PROGRAM HERE ******* */</span> <span class="keyword">#define</span> VERSION <span class="string">""</span> <span class="keyword">#endif</span> <span class="type">void</span> print_version (<span class="type">void</span>) { printf (<span class="string">"%s %s\n"</span>, PACKAGE, VERSION); } <span class="type">void</span> print_help (<span class="type">void</span>) { print_version (); printf (<span class="string">"Usage: %s [OPTIONS]... [FILES]...\n\ -h --help Print help and exit\n\ -V --version Print version and exit\n\ -v --verbose verbose mode on\n\ -d --doc create html with title and header\n\ -cSTRING --css=STRING use a css for formatting. Implies --doc\n\ -TSTRING --title=STRING give a title to the html. Implies --doc\n\ -iSTRING --input=STRING input file. default std input\n\ -oSTRING --output=STRING output file. default std output\n\ -tINT --tab=INT specify tab length. default 8\n\ -HSTRING --header=STRING file to insert as header\n\ -FSTRING --footer=STRING file to insert as footer\n\ "</span>, PACKAGE); } <span class="type">char</span> * gengetopt_strdup (<span class="type">char</span> * s) { <span class="type">char</span> * n, * pn, * ps = s; <span class="keyword">while</span> (*ps) ps++; n = (<span class="type">char</span> *) malloc (<span class="number">1</span> + ps - s); <span class="keyword">if</span> (n != NULL) { <span class="keyword">for</span> (ps=s,pn=n; *ps; ps++,pn++) *pn = *ps; *pn = <span class="number">0</span>; } <span class="keyword">return</span> n; } <span class="type">int</span> cmdline_parser (<span class="type">int</span> argc, <span class="type">char</span> **argv, <span class="keyword">struct</span> gengetopt_args_info *args_info) { <span class="type">int</span> c; <span class="comment">/* Character of the parsed option. */</span> <span class="type">int</span> missing_required_options = <span class="number">0</span>; args_info->help_given = <span class="number">0</span> ; args_info->version_given = <span class="number">0</span> ; args_info->verbose_given = <span class="number">0</span> ; args_info->doc_given = <span class="number">0</span> ; args_info->css_given = <span class="number">0</span> ; args_info->title_given = <span class="number">0</span> ; args_info->input_given = <span class="number">0</span> ; args_info->output_given = <span class="number">0</span> ; args_info->tab_given = <span class="number">0</span> ; args_info->header_given = <span class="number">0</span> ; args_info->footer_given = <span class="number">0</span> ; <span class="keyword">#define</span> clear_args() { \ args_info->css_arg = NULL; \ args_info->title_arg = NULL; \ args_info->input_arg = NULL; \ args_info->output_arg = NULL; \ args_info->header_arg = NULL; \ args_info->footer_arg = NULL; \ } clear_args(); args_info->inputs = NULL; args_info->inputs_num = <span class="number">0</span>; <span class="keyword">while</span> (<span class="number">1</span>) { <span class="type">int</span> option_index = <span class="number">0</span>; <span class="keyword">static</span> <span class="keyword">struct</span> option long_options[] = { { <span class="string">"help"</span>, <span class="number">0</span>, NULL, <span class="string">'h'</span> }, { <span class="string">"version"</span>, <span class="number">0</span>, NULL, <span class="string">'V'</span> }, { <span class="string">"verbose"</span>, <span class="number">0</span>, NULL, <span class="string">'v'</span> }, { <span class="string">"doc"</span>, <span class="number">0</span>, NULL, <span class="string">'d'</span> }, { <span class="string">"css"</span>, <span class="number">1</span>, NULL, <span class="string">'c'</span> }, { <span class="string">"title"</span>, <span class="number">1</span>, NULL, <span class="string">'T'</span> }, { <span class="string">"input"</span>, <span class="number">1</span>, NULL, <span class="string">'i'</span> }, { <span class="string">"output"</span>, <span class="number">1</span>, NULL, <span class="string">'o'</span> }, { <span class="string">"tab"</span>, <span class="number">1</span>, NULL, <span class="string">'t'</span> }, { <span class="string">"header"</span>, <span class="number">1</span>, NULL, <span class="string">'H'</span> }, { <span class="string">"footer"</span>, <span class="number">1</span>, NULL, <span class="string">'F'</span> }, { NULL, <span class="number">0</span>, NULL, <span class="number">0</span> } }; c = getopt_long (argc, argv, <span class="string">"hVvdc:T:i:o:t:H:F:"</span>, long_options, &option_index); <span class="keyword">if</span> (c == -<span class="number">1</span>) <span class="keyword">break</span>; <span class="comment">/* Exit from `while (1)' loop. */</span> <span class="keyword">switch</span> (c) { <span class="keyword">case</span> <span class="string">'h'</span>: <span class="comment">/* Print help and exit. */</span> clear_args (); print_help (); exit (<span class="number">0</span>); <span class="keyword">case</span> <span class="string">'V'</span>: <span class="comment">/* Print version and exit. */</span> clear_args (); print_version (); exit (<span class="number">0</span>); <span class="keyword">case</span> <span class="string">'v'</span>: <span class="comment">/* verbose mode on. */</span> <span class="keyword">if</span> (args_info->verbose_given) { fprintf (stderr, <span class="string">"%s: `--verbose' (`-v') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->verbose_given = <span class="number">1</span>; <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'d'</span>: <span class="comment">/* create html with title and header. */</span> <span class="keyword">if</span> (args_info->doc_given) { fprintf (stderr, <span class="string">"%s: `--doc' (`-d') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->doc_given = <span class="number">1</span>; <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'c'</span>: <span class="comment">/* use a css for formatting. Implies --doc. */</span> <span class="keyword">if</span> (args_info->css_given) { fprintf (stderr, <span class="string">"%s: `--css' (`-c') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->css_given = <span class="number">1</span>; args_info->css_arg = gengetopt_strdup (optarg); <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'T'</span>: <span class="comment">/* give a title to the html. Implies --doc. */</span> <span class="keyword">if</span> (args_info->title_given) { fprintf (stderr, <span class="string">"%s: `--title' (`-T') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->title_given = <span class="number">1</span>; args_info->title_arg = gengetopt_strdup (optarg); <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'i'</span>: <span class="comment">/* input file. default std input. */</span> <span class="keyword">if</span> (args_info->input_given) { fprintf (stderr, <span class="string">"%s: `--input' (`-i') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->input_given = <span class="number">1</span>; args_info->input_arg = gengetopt_strdup (optarg); <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'o'</span>: <span class="comment">/* output file. default std output. */</span> <span class="keyword">if</span> (args_info->output_given) { fprintf (stderr, <span class="string">"%s: `--output' (`-o') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->output_given = <span class="number">1</span>; args_info->output_arg = gengetopt_strdup (optarg); <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'t'</span>: <span class="comment">/* specify tab length. default 8. */</span> <span class="keyword">if</span> (args_info->tab_given) { fprintf (stderr, <span class="string">"%s: `--tab' (`-t') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->tab_given = <span class="number">1</span>; args_info->tab_arg = atoi (optarg); <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'H'</span>: <span class="comment">/* file to insert as header. */</span> <span class="keyword">if</span> (args_info->header_given) { fprintf (stderr, <span class="string">"%s: `--header' (`-H') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->header_given = <span class="number">1</span>; args_info->header_arg = gengetopt_strdup (optarg); <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'F'</span>: <span class="comment">/* file to insert as footer. */</span> <span class="keyword">if</span> (args_info->footer_given) { fprintf (stderr, <span class="string">"%s: `--footer' (`-F') option given more than once\n"</span>, PACKAGE); clear_args (); print_help (); exit (<span class="number">1</span>); } args_info->footer_given = <span class="number">1</span>; args_info->footer_arg = gengetopt_strdup (optarg); <span class="keyword">break</span>; <span class="keyword">case</span> <span class="string">'?'</span>: <span class="comment">/* Invalid option. */</span> <span class="comment">/* `getopt_long' already printed an error message. */</span> exit (<span class="number">1</span>); <span class="keyword">default</span>: <span class="comment">/* bug: option not considered. */</span> fprintf (stderr, <span class="string">"%s: option unknown: %c\n"</span>, PACKAGE, c); abort (); } <span class="comment">/* switch */</span> } <span class="comment">/* while */</span> <span class="keyword">if</span> ( missing_required_options ) exit (<span class="number">1</span>); <span class="keyword">if</span> (optind < argc) { <span class="type">int</span> i = <span class="number">0</span> ; args_info->inputs_num = argc - optind ; args_info->inputs = (<span class="type">char</span> **)(malloc ((args_info->inputs_num)*<span class="keyword">sizeof</span>(<span class="type">char</span> *))) ; <span class="keyword">while</span> (optind < argc) args_info->inputs[ i++ ] = strdup (argv[optind++]) ; } <span class="keyword">return</span> <span class="number">0</span>; }</tt> </pre> </td> </tr> </table></center> <hr> This file was generated with the following command: <pre> cpp2html -i cmdline.c -o cmdline.c.html --css="cpp2html.css" --header="./header.html" --footer="./footer.html"</pre> and these are <a href="header.html">header.html</a> and <a href="footer.html">footer.html</a>. <br> <tt>--header</tt> and <tt>--footer</tt> options are an idea of Xavier Outhier <<a href="mailto:xouthier@yahoo.fr">xouthier@yahoo.fr</a>>, for Java2html, <a href="http://www.gnu.org/software/java2html">http://www.gnu.org/software/java2html</a><a href="http://www.gnu.org/software/java2html"></a> </body> </html>