Ok
On 5/6/21 4:17 am, Ryan Long wrote: > --- > tester/covoar/Explanations.cc | 45 > ++++++++++++++++--------------------------- > 1 file changed, 17 insertions(+), 28 deletions(-) > > diff --git a/tester/covoar/Explanations.cc b/tester/covoar/Explanations.cc > index d94cd2e..1449fb2 100644 > --- a/tester/covoar/Explanations.cc > +++ b/tester/covoar/Explanations.cc > @@ -10,6 +10,8 @@ > #include <string.h> > #include <unistd.h> > > +#include <fstream> > + > #include <rld.h> > > #include "Explanations.h" > @@ -30,15 +32,14 @@ namespace Coverage { > ) > { > #define MAX_LINE_LENGTH 512 > - FILE *explain; > - char *cStatus; > - Explanation e; > - int line = 1; > + std::ifstream explain; > + Explanation e; > + int line = 1; > > if (!explanations) > return; > > - explain = ::fopen( explanations, "r" ); > + explain.open( explanations ); > if (!explain) { > std::ostringstream what; > what << "Unable to open " << explanations; > @@ -50,9 +51,9 @@ namespace Coverage { > // skip blank lines between > do { > inputBuffer[0] = '\0'; > - cStatus = fgets( inputBuffer, MAX_LINE_LENGTH, explain ); > - if (cStatus == NULL) { > - goto done; > + explain.getline( inputBuffer, MAX_LINE_LENGTH ); > + if (explain.fail()) { > + return; > } > inputBuffer[ strlen(inputBuffer) - 1] = '\0'; > line++; > @@ -64,7 +65,6 @@ namespace Coverage { > what << "line " << line > << "contains a duplicate explanation (" > << inputBuffer << ")"; > - fclose( explain ); > throw rld::error( what, "Explanations::load" ); > } > > @@ -73,12 +73,11 @@ namespace Coverage { > e.found = false; > > // Get the classification > - cStatus = fgets( inputBuffer, MAX_LINE_LENGTH, explain ); > - if (cStatus == NULL) { > + explain.getline( inputBuffer, MAX_LINE_LENGTH ); > + if (explain.fail()) { > std::ostringstream what; > what << "line " << line > << "out of sync at the classification"; > - fclose( explain ); > throw rld::error( what, "Explanations::load" ); > } > inputBuffer[ strlen(inputBuffer) - 1] = '\0'; > @@ -87,13 +86,12 @@ namespace Coverage { > > // Get the explanation > while (1) { > - cStatus = fgets( inputBuffer, MAX_LINE_LENGTH, explain ); > + explain.getline( inputBuffer, MAX_LINE_LENGTH ); > // fprintf( stderr, "%d - %s\n", line, inputBuffer ); > - if (cStatus == NULL) { > + if (explain.fail()) { > std::ostringstream what; > what << "line " << line > << "out of sync at the explanation"; > - fclose( explain ); > throw rld::error( what, "Explanations::load" ); > } > inputBuffer[ strlen(inputBuffer) - 1] = '\0'; > @@ -110,10 +108,6 @@ namespace Coverage { > // Add this to the set of Explanations > set[ e.startingPoint ] = e; > } > -done: > - ; > - > - fclose( explain ); > > #undef MAX_LINE_LENGTH > } > @@ -137,14 +131,14 @@ done: > const char* const fileName > ) > { > - FILE* notFoundFile; > + std::ofstream notFoundFile; > bool notFoundOccurred = false; > > if (!fileName) > return; > > - notFoundFile = fopen( fileName, "w" ); > - if (notFoundFile == nullptr) { > + notFoundFile.open( fileName ); > + if (!notFoundFile) { > std::ostringstream what; > what << "Unable to open " << fileName > << " out of sync at the explanation"; > @@ -159,14 +153,9 @@ done: > > if (!e.found) { > notFoundOccurred = true; > - fprintf( > - notFoundFile, > - "%s\n", > - e.startingPoint.c_str() > - ); > + notFoundFile << e.startingPoint << std::endl; > } > } > - fclose( notFoundFile ); > > if (!notFoundOccurred) { > if (!unlink( fileName )) { > _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel