From 2b99e4788a395d5cde8c7d857fa5c6532b6222dd Mon Sep 17 00:00:00 2001 From: Erik Garrison Date: Tue, 28 Sep 2010 17:44:12 -0400 Subject: [PATCH] added reader.Open checks to a number of tools --- src/toolkit/bamtools_convert.cpp | 10 ++++++++-- src/toolkit/bamtools_count.cpp | 5 ++++- src/toolkit/bamtools_coverage.cpp | 5 ++++- src/toolkit/bamtools_sort.cpp | 7 +++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/toolkit/bamtools_convert.cpp b/src/toolkit/bamtools_convert.cpp index 86a3f9e..730a061 100644 --- a/src/toolkit/bamtools_convert.cpp +++ b/src/toolkit/bamtools_convert.cpp @@ -160,7 +160,10 @@ bool ConvertTool::ConvertToolPrivate::Run(void) { // open input files BamMultiReader reader; - reader.Open(m_settings->InputFiles); + if (!reader.Open(m_settings->InputFiles, false)) { + cerr << "Could not open input files" << endl; + return false; + } m_references = reader.GetReferenceData(); // set region if specified @@ -463,7 +466,10 @@ void ConvertTool::ConvertToolPrivate::PrintJson(const BamAlignment& a) { case('H') : m_out << "\""; while (tagData[index]) { - m_out << tagData[index]; + if (tagData[index] == '\"') + m_out << "\\\""; // escape for json + else + m_out << tagData[index]; ++index; } m_out << "\""; diff --git a/src/toolkit/bamtools_count.cpp b/src/toolkit/bamtools_count.cpp index 20ed3ae..9d6623b 100644 --- a/src/toolkit/bamtools_count.cpp +++ b/src/toolkit/bamtools_count.cpp @@ -80,7 +80,10 @@ int CountTool::Run(int argc, char* argv[]) { // open reader without index BamMultiReader reader; - reader.Open(m_settings->InputFiles, false, true); + if (!reader.Open(m_settings->InputFiles, false, true)) { + cerr << "ERROR: Could not open input BAM file(s)... Aborting." << endl; + return 1; + } // alignment counter BamAlignment al; diff --git a/src/toolkit/bamtools_coverage.cpp b/src/toolkit/bamtools_coverage.cpp index 5924edb..d46ba20 100644 --- a/src/toolkit/bamtools_coverage.cpp +++ b/src/toolkit/bamtools_coverage.cpp @@ -123,7 +123,10 @@ bool CoverageTool::CoverageToolPrivate::Run(void) { //open our BAM reader BamReader reader; - reader.Open(m_settings->InputBamFilename); + if (!reader.Open(m_settings->InputBamFilename)) { + cerr << "Could not open " << m_settings->InputBamFilename << " for reading." << endl; + return false; + } m_references = reader.GetReferenceData(); // set up our output 'visitor' diff --git a/src/toolkit/bamtools_sort.cpp b/src/toolkit/bamtools_sort.cpp index 83584a6..a6b3bba 100644 --- a/src/toolkit/bamtools_sort.cpp +++ b/src/toolkit/bamtools_sort.cpp @@ -197,7 +197,10 @@ bool SortTool::SortToolPrivate::GenerateSortedRuns(void) { // open input BAM file BamReader inputReader; - inputReader.Open(m_settings->InputBamFilename); + if (!inputReader.Open(m_settings->InputBamFilename)) { + cerr << "Could not open " << m_settings->InputBamFilename << " for reading." << endl; + return false; + } // get basic data that will be shared by all temp/output files m_headerText = inputReader.GetHeaderText(); @@ -322,4 +325,4 @@ bool SortTool::SortToolPrivate::WriteTempFile(const vector& buffer // close temp file & return success tempWriter.Close(); return true; -} \ No newline at end of file +} -- 2.39.2