<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for gcc-testing (2010-05-12)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
<font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-12 Joel Sherrill <joel.sherrilL@OARcorp.com>
* covoar.cc: Fix off by one bug.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ChangeLog.diff?r1=text&tr1=1.226&r2=text&tr2=1.227&diff_format=h">M</a></td><td width='1%'>1.227</td><td width='100%'>rtems-coverage/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/covoar.cc.diff?r1=text&tr1=1.20&r2=text&tr2=1.21&diff_format=h">M</a></td><td width='1%'>1.21</td><td width='100%'>rtems-coverage/covoar.cc</td></tr>
</table>
<pre>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ChangeLog:1.226 gcc-testing/rtems-coverage/ChangeLog:1.227
--- gcc-testing/rtems-coverage/ChangeLog:1.226 Wed May 12 07:26:28 2010
+++ gcc-testing/rtems-coverage/ChangeLog Wed May 12 08:33:30 2010
</font><font color='#997700'>@@ -1,5 +1,9 @@
</font> 2010-05-12 Joel Sherrill <joel.sherrilL@OARcorp.com>
<font color='#000088'>+ * covoar.cc: Fix off by one bug.
+
+2010-05-12 Joel Sherrill <joel.sherrilL@OARcorp.com>
+
</font> * Target_sparc.cc: Size of nop is 4 not 2.
2010-05-11 Joel Sherrill <joel.sherrilL@OARcorp.com>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/covoar.cc:1.20 gcc-testing/rtems-coverage/covoar.cc:1.21
--- gcc-testing/rtems-coverage/covoar.cc:1.20 Tue May 11 17:47:48 2010
+++ gcc-testing/rtems-coverage/covoar.cc Wed May 12 08:33:30 2010
</font><font color='#997700'>@@ -402,7 +402,7 @@
</font>
endAddress = itr->second.size - 1;
<font color='#880000'>- for (a = 0; a < endAddress; a++) {
</font><font color='#000088'>+ for (a = 0; a <= endAddress; a++) {
</font> totalBytes++;
if (!theCoverageMap->wasExecuted( a ))
notExecuted++;
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
<font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-12 Joel Sherrill <joel.sherrilL@OARcorp.com>
* ReportsHtml.cc, ReportsHtml.h: Add separate html file for each
explanation and link to it from the tables.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ChangeLog.diff?r1=text&tr1=1.227&r2=text&tr2=1.228&diff_format=h">M</a></td><td width='1%'>1.228</td><td width='100%'>rtems-coverage/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ReportsHtml.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>rtems-coverage/ReportsHtml.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ReportsHtml.cc.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>rtems-coverage/ReportsHtml.cc</td></tr>
</table>
<pre>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ChangeLog:1.227 gcc-testing/rtems-coverage/ChangeLog:1.228
--- gcc-testing/rtems-coverage/ChangeLog:1.227 Wed May 12 08:33:30 2010
+++ gcc-testing/rtems-coverage/ChangeLog Wed May 12 09:04:48 2010
</font><font color='#997700'>@@ -1,5 +1,10 @@
</font> 2010-05-12 Joel Sherrill <joel.sherrilL@OARcorp.com>
<font color='#000088'>+ * ReportsHtml.cc, ReportsHtml.h: Add separate html file for each
+ explanation and link to it from the tables.
+
+2010-05-12 Joel Sherrill <joel.sherrilL@OARcorp.com>
+
</font> * covoar.cc: Fix off by one bug.
2010-05-12 Joel Sherrill <joel.sherrilL@OARcorp.com>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ReportsHtml.h:1.3 gcc-testing/rtems-coverage/ReportsHtml.h:1.4
--- gcc-testing/rtems-coverage/ReportsHtml.h:1.3 Tue May 11 16:21:25 2010
+++ gcc-testing/rtems-coverage/ReportsHtml.h Wed May 12 09:04:48 2010
</font><font color='#997700'>@@ -15,6 +15,7 @@
</font>
#include <stdint.h>
#include "ReportsBase.h"
<font color='#000088'>+#include "Explanations.h"
</font>
namespace Coverage {
<font color='#997700'>@@ -130,7 +131,11 @@
</font> const char* const fileName
);
<font color='#880000'>-};
</font><font color='#000088'>+ virtual bool WriteExplationFile(
+ const char* fileName,
+ const Coverage::Explanation* explanation
+ );
+ };
</font>
}
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ReportsHtml.cc:1.4 gcc-testing/rtems-coverage/ReportsHtml.cc:1.5
--- gcc-testing/rtems-coverage/ReportsHtml.cc:1.4 Tue May 11 16:21:25 2010
+++ gcc-testing/rtems-coverage/ReportsHtml.cc Wed May 12 09:04:48 2010
</font><font color='#997700'>@@ -10,560 +10,578 @@
</font> #include "app_common.h"
#include "CoverageRanges.h"
#include "DesiredSymbols.h"
<font color='#880000'>-#include "Explanations.h"
</font> #include "ObjdumpProcessor.h"
<font color='#880000'>-
</font> namespace Coverage {
<font color='#880000'>-ReportsHtml::ReportsHtml():
- ReportsBase()
-{
- reportExtension_m = ".html";
-}
</font><font color='#000088'>+ ReportsHtml::ReportsHtml():
+ ReportsBase()
+ {
+ reportExtension_m = ".html";
+ }
</font>
<font color='#880000'>-ReportsHtml::~ReportsHtml()
-{
-}
</font><font color='#000088'>+ ReportsHtml::~ReportsHtml()
+ {
+ }
</font>
<font color='#880000'>-FILE* ReportsHtml::OpenFile(
- const char* const fileName
-)
-{
- FILE* aFile;
-<span style="background-color: #FF0000"> </span>
- // Open the file
- aFile = ReportsBase::OpenFile( fileName );
-
- // Put Header information on the file
- fprintf( aFile, "<html>\n");
- fprintf( aFile, "<meta http-equiv=\"Content-Language\" content=\"English\" >\n");
- fprintf(<span style="background-color: #FF0000"> </span>
- aFile,<span style="background-color: #FF0000"> </span>
- "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=us-ascii\" >\n"
- );
- fprintf(<span style="background-color: #FF0000"> </span>
- aFile,<span style="background-color: #FF0000"> </span>
- "<link rel=\"stylesheet\" type=\"text/css\" href=\"covoar.css\" media=\"screen\" >\n"
- );
- fprintf( aFile, "<body>\n");
</font><font color='#000088'>+ FILE* ReportsHtml::OpenFile(
+ const char* const fileName
+ )
+ {
+ FILE* aFile;
+<span style="background-color: #FF0000"> </span>
+ // Open the file
+ aFile = ReportsBase::OpenFile( fileName );
+
+ // Put Header information on the file
+ fprintf(
+ aFile,
+ "<html>\n"
+ "<meta http-equiv=\"Content-Language\" content=\"English\" >\n"
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=us-ascii\" >\n"
+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"covoar.css\" media=\"screen\" >\n"
+ "<body>\n"
+ "<pre class=\"code\">\n"
+ );
</font>
<font color='#880000'>- lastState_m = A_SOURCE;
- fprintf( aFile, "<pre class=\"code\">\n" );
</font>
<font color='#880000'>- return aFile;
-}
</font><font color='#000088'>+ return aFile;
+ }
</font>
<font color='#880000'>-FILE* ReportsHtml::OpenBranchFile(
- const char* const fileName,
- bool hasBranches
-)
-{
- FILE *aFile;
</font><font color='#000088'>+ FILE* ReportsHtml::OpenBranchFile(
+ const char* const fileName,
+ bool hasBranches
+ )
+ {
+ FILE *aFile;
</font>
<font color='#880000'>- // Open the file
- aFile = OpenFile(fileName);
</font><font color='#000088'>+ // Open the file
+ aFile = OpenFile(fileName);
</font>
<font color='#880000'>- if ( hasBranches ) {
- // Put header information into the file
- fprintf( aFile, "<table class=\"covoar-table\">\n");
- fprintf( aFile, "<tbody class=\"covoar-tbody\">\n");
- fprintf( aFile, "<tr class=\"covoar-tr covoar-tr-first\">\n");
- fprintf( aFile, "<th class=\"covoar-th\">Index</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Symbol</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Line</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Size</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Size</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Reason</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Classification</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Explanation</th>\n");
- fprintf( aFile, "</tr>\n");
-
- fprintf( aFile, "<tr class=\"covoar-tr covoar-tr-first\">\n");
- fprintf( aFile, "<th class=\"covoar-th\"></th>\n");
- fprintf( aFile, "<th class=\"covoar-th\"></th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Bytes</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Instructions</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\"></th>\n");
- fprintf( aFile, "<th class=\"covoar-th\"></th>\n");
- fprintf( aFile, "<th class=\"covoar-th\"></th>\n");
- fprintf( aFile, "</tr>\n");
</font><font color='#000088'>+ if ( hasBranches ) {
+ // Put header information into the file
+ fprintf(
+ aFile,
+ "<table class=\"covoar-table\">\n"
+ "<tbody class=\"covoar-tbody\">\n"
+ "<tr class=\"covoar-tr covoar-tr-first\">\n"
+ "<th class=\"covoar-th\">Index</th>\n"
+ "<th class=\"covoar-th\">Symbol</th>\n"
+ "<th class=\"covoar-th\">Line</th>\n"
+ "<th class=\"covoar-th\">Size</th>\n"
+ "<th class=\"covoar-th\">Size</th>\n"
+ "<th class=\"covoar-th\">Reason</th>\n"
+ "<th class=\"covoar-th\">Classification</th>\n"
+ "<th class=\"covoar-th\">Explanation</th>\n"
+ "</tr>\n"
+
+ "<tr class=\"covoar-tr covoar-tr-first\">\n"
+ "<th class=\"covoar-th\"></th>\n"
+ "<th class=\"covoar-th\"></th>\n"
+ "<th class=\"covoar-th\">Bytes</th>\n"
+ "<th class=\"covoar-th\">Instructions</th>\n"
+ "<th class=\"covoar-th\"></th>\n"
+ "<th class=\"covoar-th\"></th>\n"
+ "<th class=\"covoar-th\"></th>\n"
+ "</tr>\n"
+ );
+ }
+<span style="background-color: #FF0000"> </span>
+ return aFile;
</font> }
<font color='#880000'>-<span style="background-color: #FF0000"> </span>
- return aFile;
-}
</font>
<font color='#880000'>-FILE* ReportsHtml::OpenCoverageFile(
- const char* const fileName
-)
-{
- FILE *aFile;
-
- // Open the file
- aFile = OpenFile(fileName);
-
- // Put header information into the file
- fprintf( aFile, "<table class=\"covoar-table\">\n");
- fprintf( aFile, "<tbody class=\"covoar-tbody\">\n");
- fprintf( aFile, "<tr class=\"covoar-tr covoar-tr-first\">\n");
- fprintf( aFile, "<th class=\"covoar-th\">Index</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Symbol</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Range</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Size</br>Bytes</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Size</br>Instructions</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Classification</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Explanation</th>\n");
- fprintf( aFile, "</tr>\n");
</font><font color='#000088'>+ FILE* ReportsHtml::OpenCoverageFile(
+ const char* const fileName
+ )
+ {
+ FILE *aFile;
</font>
<font color='#880000'>- return aFile;
-}
</font><font color='#000088'>+ // Open the file
+ aFile = OpenFile(fileName);
</font>
<font color='#880000'>-FILE* ReportsHtml::OpenSizeFile(
- const char* const fileName
-)
-{
- FILE *aFile;
-
- // Open the file
- aFile = OpenFile(fileName);
-
- // Put header information into the file
- fprintf( aFile, "<table class=\"covoar-table\">\n");
- fprintf( aFile, "<tbody class=\"covoar-tbody\">\n");
- fprintf( aFile, "<tr class=\"covoar-tr covoar-tr-first\">\n");
- fprintf( aFile, "<th class=\"covoar-th\">Size</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">Symbol</th>\n");
- fprintf( aFile, "<th class=\"covoar-th\">File</th>\n");
- fprintf( aFile, "</tr>\n");
</font><font color='#000088'>+ // Put header information into the file
+ fprintf(
+ aFile,
+ "<table class=\"covoar-table\">\n"
+ "<tbody class=\"covoar-tbody\">\n"
+ "<tr class=\"covoar-tr covoar-tr-first\">\n"
+ "<th class=\"covoar-th\">Index</th>\n"
+ "<th class=\"covoar-th\">Symbol</th>\n"
+ "<th class=\"covoar-th\">Range</th>\n"
+ "<th class=\"covoar-th\">Size</br>Bytes</th>\n"
+ "<th class=\"covoar-th\">Size</br>Instructions</th>\n"
+ "<th class=\"covoar-th\">Classification</th>\n"
+ "<th class=\"covoar-th\">Explanation</th>\n"
+ "</tr>\n"
+ );
</font>
<font color='#880000'>- return aFile;
-}
</font><font color='#000088'>+ return aFile;
+ }
</font>
<font color='#880000'>-void ReportsHtml::PutAnnotatedLine(<span style="background-color: #FF0000"> </span>
- FILE* aFile,<span style="background-color: #FF0000"> </span>
- AnnotatedLineState_t state,<span style="background-color: #FF0000"> </span>
- std::string line,<span style="background-color: #FF0000"> </span>
- uint32_t id<span style="background-color: #FF0000"> </span>
-)
-{
- std::string stateText;
- char number[10];
-
-<span style="background-color: #FF0000"> </span>
- sprintf(number,"%d", id);
-
- // Set the stateText based upon the current state.
- switch (state) {
- case A_SOURCE:
- stateText = "</pre>\n<pre class=\"code\">\n";
- break;
- case A_EXECUTED:
- stateText = "</pre>\n<pre class=\"codeExecuted\">\n";
- break;
- case A_NEVER_EXECUTED:
- stateText = "</pre>\n";
- stateText += "<a name=\"range";
- stateText += number;
- stateText += "\"></a><pre class=\"codeNotExecuted\">\n";
- break;
- case A_BRANCH_TAKEN:
- stateText = "</pre>\n";
- stateText += "<a name=\"range";
- stateText += number;
- stateText += "\"></a><pre class=\"codeAlwaysTaken\">\n";
- break;
- case A_BRANCH_NOT_TAKEN:
- stateText = "</pre>\n";
- stateText += "<a name=\"range";
- stateText += number;
- stateText += "\"></a><pre class=\"codeNeverTaken\">\n";
- break;
- default:
- fprintf(stderr, "ERROR: ReportsHtml::PutAnnotatedLine Unknown state\n");
- exit( -1 );
- break;
- }
-
- // If the state has not changed there is no need to change the text block
- // format. If it has changed close out the old format and open up the
- // new format.
- if ( state != lastState_m ) {
- fprintf( aFile, stateText.c_str() );
- lastState_m = state;
- }
-
- // For all the characters in the line replace html reserved special characters
- // and output the line. Note that for a /pre block this is only a '<' symbol.
- for (unsigned int i=0; i<line.size(); i++ )
</font><font color='#000088'>+ FILE* ReportsHtml::OpenSizeFile(
+ const char* const fileName
+ )
</font> {
<font color='#880000'>- if ( line[i] == '<' )
- fprintf( aFile, "<" );
- else
- fprintf( aFile, "%c", line[i] );
</font><font color='#000088'>+ FILE *aFile;
+
+ // Open the file
+ aFile = OpenFile(fileName);
+
+ // Put header information into the file
+ fprintf(
+ aFile,
+ "<table class=\"covoar-table\">\n"
+ "<tbody class=\"covoar-tbody\">\n"
+ "<tr class=\"covoar-tr covoar-tr-first\">\n"
+ "<th class=\"covoar-th\">Size</th>\n"
+ "<th class=\"covoar-th\">Symbol</th>\n"
+ "<th class=\"covoar-th\">File</th>\n"
+ "</tr>\n"
+ );
+ return aFile;
</font> }
<font color='#880000'>- fprintf( aFile, "\n");
-}
</font>
<font color='#880000'>-bool ReportsHtml::PutNoBranchInfo(
- FILE* report
-)
-{
- if ( BranchInfoAvailable )
- fprintf( report, "All branch paths taken.\n" );
- else
- fprintf( report, "No branch information found.\n" );
- return true;
-}
</font><font color='#000088'>+ void ReportsHtml::PutAnnotatedLine(<span style="background-color: #FF0000"> </span>
+ FILE* aFile,<span style="background-color: #FF0000"> </span>
+ AnnotatedLineState_t state,<span style="background-color: #FF0000"> </span>
+ std::string line,<span style="background-color: #FF0000"> </span>
+ uint32_t id<span style="background-color: #FF0000"> </span>
+ )
+ {
+ std::string stateText;
+ char number[10];
</font>
<font color='#880000'>-bool ReportsHtml::PutBranchEntry(
- FILE* report,
- unsigned int count,
- Coverage::DesiredSymbols::symbolSet_t::iterator symbolPtr,
- Coverage::CoverageRanges::ranges_t::iterator rangePtr
-)
-{
- const Coverage::Explanation* explanation;
</font><font color='#000088'>+<span style="background-color: #FF0000"> </span>
+ sprintf(number,"%d", id);
</font>
<font color='#000088'>+ // Set the stateText based upon the current state.
+ switch (state) {
+ case A_SOURCE:
+ stateText = "</pre>\n<pre class=\"code\">\n";
+ break;
+ case A_EXECUTED:
+ stateText = "</pre>\n<pre class=\"codeExecuted\">\n";
+ break;
+ case A_NEVER_EXECUTED:
+ stateText = "</pre>\n";
+ stateText += "<a name=\"range";
+ stateText += number;
+ stateText += "\"></a><pre class=\"codeNotExecuted\">\n";
+ break;
+ case A_BRANCH_TAKEN:
+ stateText = "</pre>\n";
+ stateText += "<a name=\"range";
+ stateText += number;
+ stateText += "\"></a><pre class=\"codeAlwaysTaken\">\n";
+ break;
+ case A_BRANCH_NOT_TAKEN:
+ stateText = "</pre>\n";
+ stateText += "<a name=\"range";
+ stateText += number;
+ stateText += "\"></a><pre class=\"codeNeverTaken\">\n";
+ break;
+ default:
+ fprintf(stderr, "ERROR: ReportsHtml::PutAnnotatedLine Unknown state\n");
+ exit( -1 );
+ break;
+ }
</font>
<font color='#880000'>- // Mark the background color different for odd and even lines.
- fprintf( report, "</tr>\n");
- if ( ( count%2 ) == 0 )
- fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
- else
- fprintf( report, "<tr class=\"covoar-tr covoar-tr-odd\">\n");
</font><font color='#000088'>+ // If the state has not changed there is no need to change the text block
+ // format. If it has changed close out the old format and open up the
+ // new format.
+ if ( state != lastState_m ) {
+ fprintf( aFile, stateText.c_str() );
+ lastState_m = state;
+ }
</font>
<font color='#880000'>- // index
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\"><a href =\"annotated.html#range%d\">%d</td>\n",
- rangePtr->id,
- rangePtr->id
- );
</font><font color='#000088'>+ // For all the characters in the line replace html reserved special
+ // characters and output the line. Note that for a /pre block this
+ // is only a '<' symbol.
+ for (unsigned int i=0; i<line.size(); i++ ) {
+ if ( line[i] == '<' )
+ fprintf( aFile, "<" );
+ else
+ fprintf( aFile, "%c", line[i] );
+ }
+ fprintf( aFile, "\n");
+ }
</font>
<font color='#880000'>- // symbol
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
- symbolPtr->first.c_str()
- );
</font><font color='#000088'>+ bool ReportsHtml::PutNoBranchInfo(
+ FILE* report
+ )
+ {
+ if ( BranchInfoAvailable )
+ fprintf( report, "All branch paths taken.\n" );
+ else
+ fprintf( report, "No branch information found.\n" );
+ return true;
+ }
</font>
<font color='#880000'>- // line
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
- rangePtr->lowSourceLine.c_str()
- );
-<span style="background-color: #FF0000"> </span>
- // Size in bytes
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
- rangePtr->highAddress - rangePtr->lowAddress + 1
- );
</font><font color='#000088'>+ bool ReportsHtml::PutBranchEntry(
+ FILE* report,
+ unsigned int count,
+ Coverage::DesiredSymbols::symbolSet_t::iterator symbolPtr,
+ Coverage::CoverageRanges::ranges_t::iterator rangePtr
+ )
+ {
+ const Coverage::Explanation* explanation;
</font>
<font color='#880000'>- // Size in instructions
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
- );<span style="background-color: #FF0000"> </span>
</font><font color='#000088'>+ // Mark the background color different for odd and even lines.
+ fprintf( report, "</tr>\n");
+ if ( ( count%2 ) == 0 )
+ fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
+ else
+ fprintf( report, "<tr class=\"covoar-tr covoar-tr-odd\">\n");
</font>
<font color='#880000'>- // Reason Branch was uncovered
- if (rangePtr->reason ==
- Coverage::CoverageRanges::UNCOVERED_REASON_BRANCH_ALWAYS_TAKEN)
- fprintf(<span style="background-color: #FF0000"> </span>
- report,
- "<td class=\"covoar-td\" align=\"center\">Always Taken</td>\n"
- );
- else if (rangePtr->reason ==
- Coverage::CoverageRanges::UNCOVERED_REASON_BRANCH_NEVER_TAKEN)
</font><font color='#000088'>+ // index
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">Never Taken</td>\n"
- );
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\">"
+ "<a href =\"annotated.html#range%d\">%d</td>\n",
+ rangePtr->id,
+ rangePtr->id
+ );
</font>
<font color='#880000'>- // See if an explanation is available
- explanation = AllExplanations->lookupExplanation( rangePtr->lowSourceLine );
- if ( !explanation ) {
</font><font color='#000088'>+ // symbol
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">NONE</td>\n"
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
+ symbolPtr->first.c_str()
</font> );
<font color='#000088'>+
+ // line
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">No Explanation</td>\n"
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
+ rangePtr->lowSourceLine.c_str()
</font> );
<font color='#880000'>- } else {
</font><font color='#000088'>+<span style="background-color: #FF0000"> </span>
+ // Size in bytes
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">%s</td>\n",
- explanation->classification.c_str()
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ rangePtr->highAddress - rangePtr->lowAddress + 1
</font> );
<font color='#000088'>+
+ // Size in instructions
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">FILL ME IN</td>\n"
- );
-#if 0
- for ( unsigned int i=0 ;
- i < explanation->explanation.size();
- i++) {
- fprintf(
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ );<span style="background-color: #FF0000"> </span>
+
+ // Reason Branch was uncovered
+ if (rangePtr->reason ==
+ Coverage::CoverageRanges::UNCOVERED_REASON_BRANCH_ALWAYS_TAKEN)
+ fprintf(<span style="background-color: #FF0000"> </span>
</font> report,
<font color='#880000'>- "%s\n",
- explanation->explanation[i].c_str()
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\">Always Taken</td>\n"
</font> );
<font color='#000088'>+ else if (rangePtr->reason ==
+ Coverage::CoverageRanges::UNCOVERED_REASON_BRANCH_NEVER_TAKEN)
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">Never Taken</td>\n"
+ );
+
+ // See if an explanation is available
+ explanation = AllExplanations->lookupExplanation( rangePtr->lowSourceLine );
+ if ( !explanation ) {
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">No Explanation</td>\n"
+ );
+ } else {
+ char explanationFile[48];
+
+ sprintf( explanationFile, "explanation%d.html", rangePtr->id );
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%s</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">"
+ "<a href=\"%s\">Explanation</a></td>\n",
+ explanation->classification.c_str(),
+ explanationFile
+ );
+ WriteExplationFile( explanationFile, explanation );
</font> }
<font color='#880000'>-#endif
</font><font color='#000088'>+
+ fprintf( report, "</tr>\n");
+
+ return true;
</font> }
<font color='#880000'>- fprintf( report, "</tr>\n");
</font><font color='#000088'>+ bool ReportsHtml::WriteExplationFile(
+ const char* fileName,
+ const Coverage::Explanation* explanation
+ )
+ {
+ FILE* report;
</font>
<font color='#880000'>- return true;
-}
</font><font color='#000088'>+ report = OpenFile( fileName );
</font>
<font color='#880000'>-void ReportsHtml::putCoverageNoRange(
- FILE* report,
- unsigned int count,
- std::string symbol
-)
-{
-
- // Mark the background color different for odd and even lines.
- fprintf( report, "</tr>\n");
- if ( ( count%2 ) == 0 )
- fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
- else
- fprintf( report, "<tr class=\"covoar-tr covoar-tr-odd\">\n");
-
- // index
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\"></td>\n"
- );
-
- // symbol
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
- symbol.c_str()
- );
-
- // starting line
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\"></td>\n"
- );
-<span style="background-color: #FF0000"> </span>
- // Size in bytes
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\"></td>\n"
- );
-
- // Size in instructions
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\"></td>\n"
- );<span style="background-color: #FF0000"> </span>
-
- // See if an explanation is available
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\"></td>\n"
- );
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">"
- "This symbol was never referenced by an analyzed executable. "
- "Therefore there is no size or disassembly for this symbol. "
- "This could be due to symbol misspelling or lack of a test for"
- "this symbol.</td>\n"
- );
</font><font color='#000088'>+ for ( unsigned int i=0 ; i < explanation->explanation.size(); i++) {
+ fprintf(
+ report,
+ "%s\n",
+ explanation->explanation[i].c_str()
+ );
+ }
+ CloseFile( report );
+ return true;
+ }
</font>
<font color='#880000'>- fprintf( report, "</tr>\n");
-}
</font><font color='#000088'>+ void ReportsHtml::putCoverageNoRange(
+ FILE* report,
+ unsigned int count,
+ std::string symbol
+ )
+ {
</font>
<font color='#880000'>-bool ReportsHtml::PutCoverageLine(
- FILE* report,
- unsigned int count,
- Coverage::DesiredSymbols::symbolSet_t::iterator symbolPtr,
- Coverage::CoverageRanges::ranges_t::iterator rangePtr
-)
-{
- const Coverage::Explanation* explanation;
-
-
- // Mark the background color different for odd and even lines.
- fprintf( report, "</tr>\n");
- if ( ( count%2 ) == 0 )
- fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
- else
- fprintf( report, "<tr class=\"covoar-tr covoar-tr-odd\">\n");
-
- // index
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\"><a href =\"annotated.html#range%d\">%d</td>\n",
- rangePtr->id,
- rangePtr->id
- );
-
- // symbol
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
- symbolPtr->first.c_str()
- );
-
- // starting line
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%s(0x%x)</br>%s(0x%x)</td>\n",
- rangePtr->lowSourceLine.c_str(),
- rangePtr->lowAddress,
- rangePtr->highSourceLine.c_str(),
- rangePtr->highAddress
- );
-<span style="background-color: #FF0000"> </span>
- // Size in bytes
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
- rangePtr->highAddress - rangePtr->lowAddress + 1
- );
</font><font color='#000088'>+ // Mark the background color different for odd and even lines.
+ fprintf( report, "</tr>\n");
+ if ( ( count%2 ) == 0 )
+ fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
+ else
+ fprintf( report, "<tr class=\"covoar-tr covoar-tr-odd\">\n");
+
+ // index
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\"></td>\n"
+ );
</font>
<font color='#880000'>- // Size in instructions
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
- );<span style="background-color: #FF0000"> </span>
</font><font color='#000088'>+ // symbol
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
+ symbol.c_str()
+ );
</font>
<font color='#880000'>- // See if an explanation is available
- explanation = AllExplanations->lookupExplanation( rangePtr->lowSourceLine );
- if ( !explanation ) {
</font><font color='#000088'>+ // starting line
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\"></td>\n"
+ );
+<span style="background-color: #FF0000"> </span>
+ // Size in bytes
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">NONE</td>\n"
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\"></td>\n"
</font> );
<font color='#000088'>+
+ // Size in instructions
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\"></td>\n"
+ );<span style="background-color: #FF0000"> </span>
+
+ // See if an explanation is available
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">No Explanation</td>\n"
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\"></td>\n"
</font> );
<font color='#880000'>- } else {
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">%s</td>\n",
- explanation->classification.c_str()
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\">"
+ "This symbol was never referenced by an analyzed executable. "
+ "Therefore there is no size or disassembly for this symbol. "
+ "This could be due to symbol misspelling or lack of a test for"
+ "this symbol.</td>\n"
</font> );
<font color='#000088'>+
+ fprintf( report, "</tr>\n");
+ }
+
+ bool ReportsHtml::PutCoverageLine(
+ FILE* report,
+ unsigned int count,
+ Coverage::DesiredSymbols::symbolSet_t::iterator symbolPtr,
+ Coverage::CoverageRanges::ranges_t::iterator rangePtr
+ )
+ {
+ const Coverage::Explanation* explanation;
+
+
+ // Mark the background color different for odd and even lines.
+ fprintf( report, "</tr>\n");
+ if ( ( count%2 ) == 0 )
+ fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
+ else
+ fprintf( report, "<tr class=\"covoar-tr covoar-tr-odd\">\n");
+
+ // index
</font> fprintf(<span style="background-color: #FF0000"> </span>
report,<span style="background-color: #FF0000"> </span>
<font color='#880000'>- "<td class=\"covoar-td\" align=\"center\">FILL ME IN</td>\n"
</font><font color='#000088'>+ "<td class=\"covoar-td\" align=\"center\"><a href =\"annotated.html#range%d\">%d</td>\n",
+ rangePtr->id,
+ rangePtr->id
+ );
+
+ // symbol
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
+ symbolPtr->first.c_str()
</font> );
<font color='#000088'>+ // starting line
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%s(0x%x)</br>%s(0x%x)</td>\n",
+ rangePtr->lowSourceLine.c_str(),
+ rangePtr->lowAddress,
+ rangePtr->highSourceLine.c_str(),
+ rangePtr->highAddress
+ );
+<span style="background-color: #FF0000"> </span>
+ // Size in bytes
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ rangePtr->highAddress - rangePtr->lowAddress + 1
+ );
</font>
<font color='#880000'>- #if 0
- for ( unsigned int i=0; i < explanation->explanation.size(); i++) {
- fprintf( report,"%s\n", explanation->explanation[i].c_str() );
</font><font color='#000088'>+ // Size in instructions
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">XXX</td>\n"
+ );<span style="background-color: #FF0000"> </span>
+
+ // See if an explanation is available
+ explanation = AllExplanations->lookupExplanation( rangePtr->lowSourceLine );
+ if ( !explanation ) {
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">NONE</td>\n"
+ );
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">No Explanation</td>\n"
+ );
+ } else {
+ char explanationFile[48];
+
+ sprintf( explanationFile, "explanation%d.html", rangePtr->id );
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%s</td>\n"
+ "<td class=\"covoar-td\" align=\"center\">"
+ "<a href=\"%s\">Explanation</a></td>\n",
+ explanation->classification.c_str(),
+ explanationFile
+ );
+ WriteExplationFile( explanationFile, explanation );
</font> }
<font color='#880000'>- #endif
</font><font color='#000088'>+
+ fprintf( report, "</tr>\n");
+
+ return true;
</font> }
<font color='#880000'>- fprintf( report, "</tr>\n");
</font><font color='#000088'>+ bool ReportsHtml::PutSizeLine(
+ FILE* report,
+ unsigned int count,
+ Coverage::DesiredSymbols::symbolSet_t::iterator symbol,
+ Coverage::CoverageRanges::ranges_t::iterator range
+ )
+ {
+ // Mark the background color different for odd and even lines.
+ fprintf( report, "</tr>\n");
+ if ( ( count%2 ) == 0 )
+ fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
+ else
+ fprintf( report, "<tr class=\"covoar-tr covoar-tr-odd\">\n");
</font>
<font color='#880000'>- return true;
-}
</font><font color='#000088'>+ // size
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
+ range->highAddress - range->lowAddress + 1
+ );
</font>
<font color='#880000'>-bool ReportsHtml::PutSizeLine(
- FILE* report,
- unsigned int count,
- Coverage::DesiredSymbols::symbolSet_t::iterator symbol,
- Coverage::CoverageRanges::ranges_t::iterator range
-)
-{
- // Mark the background color different for odd and even lines.
- fprintf( report, "</tr>\n");
- if ( ( count%2 ) == 0 )
- fprintf( report, "<tr class=\"covoar-tr covoar-tr-even\">\n");
- else
- fprintf( report, "<tr class=\"covoar-tr covoar-tr-odd\">\n");
-
- // size
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%d</td>\n",
- range->highAddress - range->lowAddress + 1
- );
-
- // symbol
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
- symbol->first.c_str()
- );
-
- // file
- fprintf(<span style="background-color: #FF0000"> </span>
- report,<span style="background-color: #FF0000"> </span>
- "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
- range->lowSourceLine.c_str()
- );
</font><font color='#000088'>+ // symbol
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
+ symbol->first.c_str()
+ );
</font>
<font color='#000088'>+ // file
+ fprintf(<span style="background-color: #FF0000"> </span>
+ report,<span style="background-color: #FF0000"> </span>
+ "<td class=\"covoar-td\" align=\"center\">%s</td>\n",<span style="background-color: #FF0000"> </span>
+ range->lowSourceLine.c_str()
+ );
</font>
<font color='#880000'>- return true;
-}
</font>
<font color='#880000'>-void ReportsHtml::CloseAnnotatedFile(
- FILE* aFile
-)
-{
- fprintf( aFile,"</pre>\n");
- fprintf( aFile,"</body>\n");
- fprintf( aFile,"</html>");
</font><font color='#000088'>+ return true;
+ }
</font>
<font color='#880000'>- CloseFile(aFile);
-}
</font><font color='#000088'>+ void ReportsHtml::CloseAnnotatedFile(
+ FILE* aFile
+ )
+ {
+ fprintf(
+ aFile,
+ "</pre>\n"
+ "</body>\n"
+ "</html>"
+ );
</font>
<font color='#880000'>-void ReportsHtml::CloseBranchFile(
- FILE* aFile,
- bool hasBranches
-)
-{
- if ( hasBranches ) {
- fprintf( aFile, "</tbody>\n" );
- fprintf( aFile, "</table>\n" );
</font><font color='#000088'>+ CloseFile(aFile);
</font> }
<font color='#880000'>- fprintf( aFile, "</pre>\n" );
- fprintf( aFile, "</body>\n");
- fprintf( aFile, "</html>");
</font>
<font color='#880000'>- CloseFile(aFile);
-}
</font><font color='#000088'>+ void ReportsHtml::CloseBranchFile(
+ FILE* aFile,
+ bool hasBranches
+ )
+ {
+ if ( hasBranches ) {
+ fprintf(
+ aFile,
+ "</tbody>\n"
+ "</table>\n"<span style="background-color: #FF0000"> </span>
+ );
+ }
+ fprintf(
+ aFile,
+ "</pre>\n"<span style="background-color: #FF0000"> </span>
+ "</body>\n"
+ "</html>"
+ );
</font>
<font color='#880000'>-void ReportsHtml::CloseCoverageFile(
- FILE* aFile
-)
-{
- fprintf( aFile, "</tbody>\n" );
- fprintf( aFile, "</table>\n" );
- fprintf( aFile, "</pre>\n" );
- fprintf( aFile,"</body>\n");
- fprintf( aFile,"</html>");
</font><font color='#000088'>+ CloseFile(aFile);
+ }
</font>
<font color='#880000'>- CloseFile(aFile);
-}
</font><font color='#000088'>+ void ReportsHtml::CloseCoverageFile(
+ FILE* aFile
+ )
+ {
+ fprintf(
+ aFile,
+ "</tbody>\n"<span style="background-color: #FF0000"> </span>
+ "</table>\n"<span style="background-color: #FF0000"> </span>
+ "</pre>\n"<span style="background-color: #FF0000"> </span>
+ "</body>\n"
+ "</html>"
+ );
</font>
<font color='#880000'>-void ReportsHtml::CloseSizeFile(
- FILE* aFile
-)
-{
- fprintf( aFile, "</tbody>\n" );
- fprintf( aFile, "</table>\n" );
- fprintf( aFile, "</pre>\n" );
- fprintf( aFile, "</pre>\n" );
- fprintf( aFile,"</body>\n");
- fprintf( aFile,"</html>");
</font><font color='#000088'>+ CloseFile(aFile);
+ }
</font>
<font color='#880000'>- CloseFile( aFile );
-}
</font><font color='#000088'>+ void ReportsHtml::CloseSizeFile(
+ FILE* aFile
+ )
+ {
+ fprintf( aFile, "</tbody>\n" );
+ fprintf( aFile, "</table>\n" );
+ fprintf( aFile, "</pre>\n" );
+ fprintf( aFile, "</pre>\n" );
+ fprintf( aFile,"</body>\n");
+ fprintf( aFile,"</html>");
+
+ CloseFile( aFile );
+ }
</font>
}
</pre>
<p> </p>
<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>