<!DOCTYPE LINUXDOC SYSTEM>

<!-- This SGML file generated by cxref. -->
<!-- cxref program (c) Andrew M. Bishop 1995,96,97,98. -->

<article>

<title>Cross reference for cxref.c of cxref.
<author>cxref

<sect>File cxref.c
<bf>RCS Header: /home/amb/cxref/RCS/cxref.c 1.45 1999/01/26 19:40:12 amb Exp </bf>
<p>

  C Cross Referencing &amp; Documentation tool. Version 1.5.
<p>

<sect1>Included Files

<p>
<itemize>
<item><tt>#include &lt;stdio.h&gt;</tt>
</itemize>
<itemize>
<item><tt>#include &lt;stdlib.h&gt;</tt>
</itemize>
<itemize>
<item><tt>#include &lt;string.h&gt;</tt>
</itemize>
<itemize>
<item><tt>#include &lt;sys/types.h&gt;</tt>
</itemize>
<itemize>
<item><tt>#include &lt;sys/wait.h&gt;</tt>
</itemize>
<itemize>
<item><tt>#include &lt;sys/stat.h&gt;</tt>
</itemize>
<itemize>
<item><tt>#include &lt;unistd.h&gt;</tt>
</itemize>
<itemize>
<item><tt>#include &quot;parse-yy.h&quot;</tt>
<itemize>
<item><tt>#include &lt;stdio.h&gt;</tt>
<item><tt>#include &lt;stdlib.h&gt;</tt>
</itemize>
</itemize>
<itemize>
<item><tt>#include &quot;memory.h&quot;</tt>
</itemize>
<itemize>
<item><tt>#include &quot;datatype.h&quot;</tt>
</itemize>
<itemize>
<item><tt>#include &quot;cxref.h&quot;</tt>
<itemize>
<item><tt>#include &quot;datatype.h&quot;</tt>
</itemize>
</itemize>

<sect1>Preprocessor definitions

<p>
 The default value of the CPP command. 
<p>
<tt>#define CPP_COMMAND &quot;gcc -E -C -dD -dI&quot;</tt><newline>
<p>
 The name of the file to read the configuration from. 
<p>
<tt>#define CXREF_CONFIG_FILE &quot;.cxref&quot;</tt><newline>

<sect1>Global Variable option_all_comments

<p>
 The command line switch that sets the format of the output,   use all comments. 
<p>
<tt>int option_all_comments</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>parse-lex.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>yylex()  :  parse-lex.c
</itemize>
</descrip>

<sect1>Global Variable option_verbatim_comments

<p>
 The command line switch that sets the format of the output,   insert the comments verbatim into the output. 
<p>
<tt>int option_verbatim_comments</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>comment.c
<item>cxref.c
<item>html.c
<item>latex.c
<item>rtf.c
<item>sgml.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>SeenComment()  :  comment.c
<item>WriteHTMLFilePart()  :  html.c
<item>WriteHTMLFunction()  :  html.c
<item>WriteLatexFilePart()  :  latex.c
<item>WriteLatexFunction()  :  latex.c
<item>WriteRTFFilePart()  :  rtf.c
<item>WriteRTFFunction()  :  rtf.c
<item>WriteSGMLFilePart()  :  sgml.c
<item>WriteSGMLFunction()  :  sgml.c
</itemize>
</descrip>

<sect1>Global Variable option_block_comments

<p>
 The command line switch that sets the format of the output,   remove the leading block comment marker. 
<p>
<tt>int option_block_comments</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>parse-lex.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>yylex()  :  parse-lex.c
</itemize>
</descrip>

<sect1>Global Variable option_no_comments

<p>
 The command line switch that sets the format of the output,   ignore all comments. 
<p>
<tt>int option_no_comments</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>parse-lex.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>yylex()  :  parse-lex.c
</itemize>
</descrip>

<sect1>Global Variable option_xref

<p>
 The command line switch that sets the format of the output,   do cross referencing. 
<p>
<tt>int option_xref</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>func.c
<item>warn-raw.c
<item>xref.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>CheckFunctionVariableRef()  :  func.c
<item>CrossReference()  :  xref.c
<item>ParseOptions()  :  cxref.c
<item>SeenFunctionCall()  :  func.c
<item>SeenFunctionDefinition()  :  func.c
<item>SeenFunctionProto()  :  func.c
<item>WriteWarnRawFilePart()  :  warn-raw.c
<item>WriteWarnRawFunction()  :  warn-raw.c
<item>WriteWarnRawVariable()  :  warn-raw.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_warn

<p>
 The command line switch that sets the format of the output,   produce warnings. 
<p>
<tt>int option_warn</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>parse-lex.c
<item>warn-raw.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>WriteWarnRawAppendix()  :  warn-raw.c
<item>WriteWarnRawDefine()  :  warn-raw.c
<item>WriteWarnRawFilePart()  :  warn-raw.c
<item>WriteWarnRawFunction()  :  warn-raw.c
<item>WriteWarnRawInclude()  :  warn-raw.c
<item>WriteWarnRawStructUnion()  :  warn-raw.c
<item>WriteWarnRawTypedef()  :  warn-raw.c
<item>WriteWarnRawVariable()  :  warn-raw.c
<item>main()  :  cxref.c
<item>yylex()  :  parse-lex.c
</itemize>
</descrip>

<sect1>Global Variable option_index

<p>
 The command line switch that sets the format of the output,   produce an index. 
<p>
<tt>int option_index</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>warn-raw.c
<item>xref.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>CreateAppendix()  :  xref.c
<item>ParseOptions()  :  cxref.c
<item>WriteWarnRawAppendix()  :  warn-raw.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_raw

<p>
 The command line switch that sets the format of the output,   produce raw output. 
<p>
<tt>int option_raw</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>warn-raw.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>WriteWarnRawDefine()  :  warn-raw.c
<item>WriteWarnRawFile()  :  warn-raw.c
<item>WriteWarnRawFilePart()  :  warn-raw.c
<item>WriteWarnRawFunction()  :  warn-raw.c
<item>WriteWarnRawInclude()  :  warn-raw.c
<item>WriteWarnRawStructUnion()  :  warn-raw.c
<item>WriteWarnRawTypedef()  :  warn-raw.c
<item>WriteWarnRawVariable()  :  warn-raw.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_latex

<p>
 The command line switch that sets the format of the output,   produce LaTeX output. 
<p>
<tt>int option_latex</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>latex.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>WriteLatexTemplate()  :  latex.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_html

<p>
 The command line switch that sets the format of the output,   produce HTML output. 
<p>
<tt>int option_html</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>html.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>WriteHTMLDefine()  :  html.c
<item>WriteHTMLFile()  :  html.c
<item>WriteHTMLFilePart()  :  html.c
<item>WriteHTMLFunction()  :  html.c
<item>WriteHTMLPreamble()  :  html.c
<item>WriteHTMLStructUnion()  :  html.c
<item>WriteHTMLTypedef()  :  html.c
<item>WriteHTMLVariable()  :  html.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_rtf

<p>
 The command line switch that sets the format of the output,   produce RTF output. 
<p>
<tt>int option_rtf</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_sgml

<p>
 The command line switch that sets the format of the output,   produce SGML output. 
<p>
<tt>int option_sgml</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_odir

<p>
 The command line switch for the output name,   the directory to use. 
<p>
<tt>char* option_odir</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>html.c
<item>latex.c
<item>rtf.c
<item>sgml.c
<item>xref.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>CreateAppendix()  :  xref.c
<item>CrossReference()  :  xref.c
<item>CrossReferenceDelete()  :  xref.c
<item>ParseOptions()  :  cxref.c
<item>WriteHTMLAppendix()  :  html.c
<item>WriteHTMLDocument()  :  html.c
<item>WriteHTMLFile()  :  html.c
<item>WriteHTMLFileDelete()  :  html.c
<item>WriteHTMLSource()  :  html.c
<item>WriteLatexAppendix()  :  latex.c
<item>WriteLatexDocument()  :  latex.c
<item>WriteLatexFile()  :  latex.c
<item>WriteLatexFileDelete()  :  latex.c
<item>WriteLatexTemplate()  :  latex.c
<item>WriteRTFAppendix()  :  rtf.c
<item>WriteRTFFile()  :  rtf.c
<item>WriteRTFFileDelete()  :  rtf.c
<item>WriteSGMLAppendix()  :  sgml.c
<item>WriteSGMLFile()  :  sgml.c
<item>WriteSGMLFileDelete()  :  sgml.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_name

<p>
 The command line switch for the output name,   the base part of the name. 
<p>
<tt>char* option_name</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>html.c
<item>latex.c
<item>rtf.c
<item>sgml.c
<item>xref.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>CreateAppendix()  :  xref.c
<item>CrossReference()  :  xref.c
<item>CrossReferenceDelete()  :  xref.c
<item>ParseOptions()  :  cxref.c
<item>WriteHTMLAppendix()  :  html.c
<item>WriteHTMLDocument()  :  html.c
<item>WriteHTMLFile()  :  html.c
<item>WriteHTMLFileDelete()  :  html.c
<item>WriteLatexAppendix()  :  latex.c
<item>WriteLatexDocument()  :  latex.c
<item>WriteLatexFileDelete()  :  latex.c
<item>WriteRTFAppendix()  :  rtf.c
<item>WriteSGMLAppendix()  :  sgml.c
<item>WriteSGMLFile()  :  sgml.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_root

<p>
 The command line switch for the output name,   the source tree root directory. 
<p>
<tt>char* option_root</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_incdirs

<p>
 The name of the include directories specified on the command line. 
<p>
<tt>char** option_incdirs</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>preproc.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>SeenInclude()  :  preproc.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable option_nincdirs

<p>
 The number of include directories on the command line. 
<p>
<tt>int option_nincdirs</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>cxref.c
<item>preproc.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()  :  cxref.c
<item>SeenInclude()  :  preproc.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Variable CurFile

<p>
 The current file that is being processed. 
<p>
<tt>File CurFile</tt><newline>
<descrip>
<tag>Visible in:</tag>
<itemize>
<item>comment.c
<item>cxref.c
<item>file.c
<item>func.c
<item>preproc.c
<item>type.c
<item>var.c
</itemize>
<tag>Used in:</tag>
<itemize>
<item>CheckFunctionVariableRef()  :  func.c
<item>ResetFunctionAnalyser()  :  func.c
<item>SeenComment()  :  comment.c
<item>SeenDefine()  :  preproc.c
<item>SeenFileComment()  :  file.c
<item>SeenFunctionDefinition()  :  func.c
<item>SeenInclude()  :  preproc.c
<item>SeenStructUnionComp()  :  type.c
<item>SeenStructUnionEnd()  :  type.c
<item>SeenTypedef()  :  type.c
<item>SeenVariableDefinition()  :  var.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Local Variables

<p>
<bf>cpp_command</bf><newline>
 The actual cpp command that is built up, adding -D, -U and -I options. 
<p>
<tt>static char** cpp_command</tt><newline>
<descrip>
<tag>Used in:</tag>
<itemize>
<item>DocumentTheFile()
<item>ParseOptions()
<item>main()
</itemize>
</descrip>
<p>
<bf>cpp_command_num</bf><newline>
 The number of arguments to the cpp command. 
<p>
<tt>static int cpp_command_num</tt><newline>
<descrip>
<tag>Used in:</tag>
<itemize>
<item>DocumentTheFile()
<item>ParseOptions()
<item>main()
</itemize>
</descrip>
<p>
<bf>cpp_argument_num</bf><newline>
 The number of arguments to the -CPP argument. 
<p>
<tt>static int cpp_argument_num</tt><newline>
<descrip>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()
<item>main()
</itemize>
</descrip>
<p>
<bf>option_delete</bf><newline>
 The option to control the mode of operation. 
<p>
<tt>static int option_delete</tt><newline>
<descrip>
<tag>Used in:</tag>
<itemize>
<item>ParseOptions()
<item>main()
</itemize>
</descrip>
<p>
<bf>option_files</bf><newline>
 The names of the files to process. 
<p>
<tt>static char** option_files</tt><newline>
<descrip>
<tag>Used in:</tag>
<itemize>
<item>ParseConfigFile()
<item>ParseOptions()
<item>main()
</itemize>
</descrip>
<p>
<bf>option_nfiles</bf><newline>
 The number of files to process. 
<p>
<tt>static int option_nfiles</tt><newline>
<descrip>
<tag>Used in:</tag>
<itemize>
<item>ParseConfigFile()
<item>ParseOptions()
<item>main()
</itemize>
</descrip>
<p>
<bf>popen_pid</bf><newline>
 The process id of the pre-processor. 
<p>
<tt>static pid_t popen_pid</tt><newline>
<descrip>
<tag>Used in:</tag>
<itemize>
<item>pclose_execvp()
<item>popen_execvp()
</itemize>
</descrip>

<sect1>Global Function CanonicaliseName()

<p>  Canonicalise a file name by removing '/../', '/./' and '//' references.
<p>
<tt>char* CanonicaliseName ( char* name )</tt><newline>
<descrip>
<tag><tt>char* CanonicaliseName</tt></tag>
Returns the argument modified.
<tag><tt>char* name</tt></tag>
The original name
</descrip>
<descrip>
<tag>Prototyped in:</tag>
<itemize>
<item>cxref.h
</itemize>
<tag>Calls:</tag>
<itemize>
<item>strcmp(), strlen(), strstr()
</itemize>
<tag>Called by:</tag>
<itemize>
<item>SeenFileChange()  :  preproc.c
<item>SeenInclude()  :  preproc.c
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Global Function main()

<p>  The main function that calls the parser.
<p>
<tt>int main ( int argc, char** argv )</tt><newline>
<descrip>
<tag><tt>int main</tt></tag>
Returns the status, zero for normal termination, else an error.
<tag><tt>int argc</tt></tag>
The command line number of arguments.
<tag><tt>char** argv</tt></tag>
The actual command line arguments
</descrip>
<descrip>
<tag>Calls:</tag>
<itemize>
<item>CanonicaliseName()  :  cxref.c
<item>ConcatStrings()  :  memory.c
<item>CreateAppendix()  :  xref.c
<item>CrossReference()  :  xref.c
<item>CrossReferenceDelete()  :  xref.c
<item>DeleteComment()  :  comment.c
<item>DeleteFile()  :  file.c
<item>DeleteStringList()  :  slist.c
<item>DeleteStringList2()  :  slist.c
<item>DocumentTheFile()  :  cxref.c
<item>NewFile()  :  file.c
<item>NewStringList()  :  slist.c
<item>NewStringList2()  :  slist.c
<item>ParseConfigFile()  :  cxref.c
<item>ParseOptions()  :  cxref.c
<item>PrintMemoryStatistics()  :  memory.c
<item>ResetFunctionAnalyser()  :  func.c
<item>ResetLexer()  :  parse-lex.c
<item>ResetParser()  :  parse-yacc.c
<item>ResetPreProcAnalyser()  :  preproc.c
<item>ResetTypeAnalyser()  :  type.c
<item>ResetVariableAnalyser()  :  var.c
<item>SafeFree()  :  memory.c
<item>SafeMalloc()  :  memory.c
<item>SafeMallocString()  :  memory.c
<item>SafeRealloc()  :  memory.c
<item>TidyMemory()  :  memory.c
<item>Usage()  :  cxref.c
<item>WriteHTMLAppendix()  :  html.c
<item>WriteHTMLFile()  :  html.c
<item>WriteHTMLFileDelete()  :  html.c
<item>WriteLatexAppendix()  :  latex.c
<item>WriteLatexFile()  :  latex.c
<item>WriteLatexFileDelete()  :  latex.c
<item>WriteRTFAppendix()  :  rtf.c
<item>WriteRTFFile()  :  rtf.c
<item>WriteRTFFileDelete()  :  rtf.c
<item>WriteSGMLAppendix()  :  sgml.c
<item>WriteSGMLFile()  :  sgml.c
<item>WriteSGMLFileDelete()  :  sgml.c
<item>WriteWarnRawAppendix()  :  warn-raw.c
<item>WriteWarnRawFile()  :  warn-raw.c
<item>chdir(), exit(), fprintf(), getcwd(), strcmp(), strlen(), strncmp()
</itemize>
<tag>References Variables:</tag>
<itemize>
<item>CurFile  :  cxref.c
<item>cpp_argument_num  :  cxref.c
<item>cpp_command  :  cxref.c
<item>cpp_command_num  :  cxref.c
<item>option_delete  :  cxref.c
<item>option_files  :  cxref.c
<item>option_html  :  cxref.c
<item>option_incdirs  :  cxref.c
<item>option_index  :  cxref.c
<item>option_latex  :  cxref.c
<item>option_name  :  cxref.c
<item>option_nfiles  :  cxref.c
<item>option_nincdirs  :  cxref.c
<item>option_odir  :  cxref.c
<item>option_raw  :  cxref.c
<item>option_root  :  cxref.c
<item>option_rtf  :  cxref.c
<item>option_sgml  :  cxref.c
<item>option_warn  :  cxref.c
<item>option_xref  :  cxref.c
</itemize>
</descrip>

<sect1>Local Function DocumentTheFile()

<p>  Calls CPP for the file to get all of the needed information.
<p>
<tt>static int DocumentTheFile ( char* name )</tt><newline>
<descrip>
<tag><tt>int DocumentTheFile</tt></tag>
Returns 1 in case of error, else 0.
<tag><tt>char* name</tt></tag>
The name of the file to document.
</descrip>
  The CPP is started as a sub-process, (using popen to return a FILE* for lex to use).
<p>
<descrip>
<tag>Prototyped in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Calls:</tag>
<itemize>
<item>pclose_execvp()  :  cxref.c
<item>popen_execvp()  :  cxref.c
<item>yyparse()  :  parse-yacc.c
<item>yyrestart()  :  parse-lex.c
<item>exit(), fprintf(), stat()
</itemize>
<tag>Called by:</tag>
<itemize>
<item>main()  :  cxref.c
</itemize>
<tag>References Variables:</tag>
<itemize>
<item>cpp_command  :  cxref.c
<item>cpp_command_num  :  cxref.c
<item>yyin  :  parse-lex.c
</itemize>
</descrip>

<sect1>Local Function ParseConfigFile()

<p>  Read in the options from the configuration file.
<p>
<tt>static int ParseConfigFile ( void )</tt><newline>
<descrip>
<tag><tt>int ParseConfigFile</tt></tag>
Returns the values returned by ParseOptions().
</descrip>
<descrip>
<tag>Prototyped in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Calls:</tag>
<itemize>
<item>CopyString()  :  memory.c
<item>ParseOptions()  :  cxref.c
<item>SafeFree()  :  memory.c
<item>SafeMalloc()  :  memory.c
<item>SafeRealloc()  :  memory.c
<item>fclose(), fgets(), fopen(), fprintf(), strlen(), strncmp()
</itemize>
<tag>Called by:</tag>
<itemize>
<item>main()  :  cxref.c
</itemize>
<tag>References Variables:</tag>
<itemize>
<item>option_files  :  cxref.c
<item>option_nfiles  :  cxref.c
</itemize>
</descrip>

<sect1>Local Function ParseOptions()

<p>  Parse the options from the command line or from the .cxref file.
<p>
<tt>static int ParseOptions ( int nargs, char** args, int fromfile )</tt><newline>
<descrip>
<tag><tt>int ParseOptions</tt></tag>
Return 1 if there is an error.
<tag><tt>int nargs</tt></tag>
The number of arguments.
<tag><tt>char** args</tt></tag>
The actual arguments
<tag><tt>int fromfile</tt></tag>
A flag indicating that they are read from the .cxref file.
</descrip>
<descrip>
<tag>Prototyped in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Calls:</tag>
<itemize>
<item>SafeFree()  :  memory.c
<item>SafeMalloc()  :  memory.c
<item>SafeMallocString()  :  memory.c
<item>SafeRealloc()  :  memory.c
<item>fprintf(), strcmp(), strncmp()
</itemize>
<tag>Called by:</tag>
<itemize>
<item>ParseConfigFile()  :  cxref.c
<item>main()  :  cxref.c
</itemize>
<tag>References Variables:</tag>
<itemize>
<item>cpp_argument_num  :  cxref.c
<item>cpp_command  :  cxref.c
<item>cpp_command_num  :  cxref.c
<item>option_all_comments  :  cxref.c
<item>option_block_comments  :  cxref.c
<item>option_delete  :  cxref.c
<item>option_files  :  cxref.c
<item>option_html  :  cxref.c
<item>option_incdirs  :  cxref.c
<item>option_index  :  cxref.c
<item>option_latex  :  cxref.c
<item>option_name  :  cxref.c
<item>option_nfiles  :  cxref.c
<item>option_nincdirs  :  cxref.c
<item>option_no_comments  :  cxref.c
<item>option_odir  :  cxref.c
<item>option_raw  :  cxref.c
<item>option_root  :  cxref.c
<item>option_rtf  :  cxref.c
<item>option_sgml  :  cxref.c
<item>option_verbatim_comments  :  cxref.c
<item>option_warn  :  cxref.c
<item>option_xref  :  cxref.c
</itemize>
</descrip>

<sect1>Local Function Usage()

<p>  Print out the usage instructions.
<p>
<tt>static void Usage ( int verbose )</tt><newline>
<descrip>
<tag><tt>int verbose</tt></tag>
If true then output a long version of the information.
</descrip>
<descrip>
<tag>Prototyped in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Calls:</tag>
<itemize>
<item>exit(), fputs()
</itemize>
<tag>Called by:</tag>
<itemize>
<item>main()  :  cxref.c
</itemize>
</descrip>

<sect1>Local Function pclose_execvp()

<p>  Close the file to the to the preprocessor
<p>
<tt>static int pclose_execvp ( FILE* f )</tt><newline>
<descrip>
<tag><tt>int pclose_execvp</tt></tag>
Return the error status.
<tag><tt>FILE* f</tt></tag>
The file to close.
</descrip>
<descrip>
<tag>Prototyped in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Calls:</tag>
<itemize>
<item>fclose(), waitpid()
</itemize>
<tag>Called by:</tag>
<itemize>
<item>DocumentTheFile()  :  cxref.c
</itemize>
<tag>References Variables:</tag>
<itemize>
<item>popen_pid  :  cxref.c
</itemize>
</descrip>

<sect1>Local Function popen_execvp()

<p>  A popen function that takes a list of arguments not a string.
<p>
<tt>static FILE* popen_execvp ( char** command )</tt><newline>
<descrip>
<tag><tt>FILE* popen_execvp</tt></tag>
Returns a file descriptor.
<tag><tt>char** command</tt></tag>
The command arguments.
</descrip>
<descrip>
<tag>Prototyped in:</tag>
<itemize>
<item>cxref.c
</itemize>
<tag>Calls:</tag>
<itemize>
<item>close(), dup(), execvp(), exit(), fdopen(), fork(), fprintf(), pipe()
</itemize>
<tag>Called by:</tag>
<itemize>
<item>DocumentTheFile()  :  cxref.c
</itemize>
<tag>References Variables:</tag>
<itemize>
<item>popen_pid  :  cxref.c
</itemize>
</descrip>

</article>
