From 03ba1bab5f4358f1fd440220b4462e6d2e69375b Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Tue, 11 Oct 2016 14:13:23 +0200
Subject: [PATCH] Fix printouts.

---
 DDCore/src/Printout.cpp                 | 14 +++++++++++---
 DDCore/src/plugins/Geant4XML.cpp        |  1 -
 DDG4/plugins/Geant4EventReaderHepMC.cpp |  6 +++---
 DDG4/src/Geant4InputAction.cpp          |  8 +++++---
 4 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/DDCore/src/Printout.cpp b/DDCore/src/Printout.cpp
index 1eb7899a9..34f6af1be 100644
--- a/DDCore/src/Printout.cpp
+++ b/DDCore/src/Printout.cpp
@@ -43,23 +43,31 @@ namespace {
     case DD4hep::ALWAYS:    return "     ";
     default:
       if ( lvl> DD4hep::ALWAYS )
-	return print_level(DD4hep::ALWAYS);
+        return print_level(DD4hep::ALWAYS);
       return print_level(DD4hep::NOLOG);
     }
   }
 
   size_t _the_printer_1(void*, DD4hep::PrintLevel lvl, const char* src, const char* text) {
-    size_t len = ::fprintf(stdout, print_fmt.c_str(), src, print_level(lvl), text);
     ::fflush(stdout);
+    ::fflush(stderr);
+    cout << flush;
+    cerr << flush;
+    size_t len = ::fprintf(stdout, print_fmt.c_str(), src, print_level(lvl), text);
+    ::fputc('\n',stdout);
     return len;
   }
 
   size_t _the_printer_2(void* par, DD4hep::PrintLevel lvl, const char* src, const char* fmt, va_list& args) {
     if ( !print_func_1 )  {
       char text[4096];
+      ::fflush(stdout);
+      ::fflush(stderr);
+      cout << flush;
+      cerr << flush;
       ::snprintf(text,sizeof(text),print_fmt.c_str(),src,print_level(lvl),fmt);
       size_t len = ::vfprintf(stdout, text, args);
-      ::fflush(stdout);
+      ::fputc('\n',stdout);
       return len;
     }
     char str[4096];
diff --git a/DDCore/src/plugins/Geant4XML.cpp b/DDCore/src/plugins/Geant4XML.cpp
index 2060098ce..7cb6c3994 100644
--- a/DDCore/src/plugins/Geant4XML.cpp
+++ b/DDCore/src/plugins/Geant4XML.cpp
@@ -1,4 +1,3 @@
-// $Id$
 //==========================================================================
 //  AIDA Detector description implementation for LCD
 //--------------------------------------------------------------------------
diff --git a/DDG4/plugins/Geant4EventReaderHepMC.cpp b/DDG4/plugins/Geant4EventReaderHepMC.cpp
index 25cbd455d..0ef39a63a 100644
--- a/DDG4/plugins/Geant4EventReaderHepMC.cpp
+++ b/DDG4/plugins/Geant4EventReaderHepMC.cpp
@@ -188,14 +188,14 @@ Geant4EventReaderHepMC::~Geant4EventReaderHepMC()    {
 Geant4EventReader::EventReaderStatus
 Geant4EventReaderHepMC::moveToEvent(int event_number) {
   if( m_currEvent == 0 && event_number != 0 ) {
-    printout(INFO,"EventReaderHepMC::moveToEvent","Skipping the first %d events ", event_number );
-    printout(INFO,"EventReaderHepMC::moveToEvent","Event number before skipping: %d", m_currEvent );
+    printout(INFO,"EventReaderHepMC::moveToEvent","Skipping the first %d events", event_number);
+    printout(INFO,"EventReaderHepMC::moveToEvent","Event number before skipping: %d", m_currEvent);
     while ( m_currEvent < event_number ) {
       if ( not m_events->read() ) return EVENT_READER_ERROR;
       ++m_currEvent;
     }
   }
-  printout(INFO,"EventReaderHepMC::moveToEvent","Current event number: %d", m_currEvent );
+  printout(INFO,"EventReaderHepMC::moveToEvent","Current event number: %d",m_currEvent);
   return EVENT_READER_OK;
 }
 
diff --git a/DDG4/src/Geant4InputAction.cpp b/DDG4/src/Geant4InputAction.cpp
index 559ea45f3..fda767660 100644
--- a/DDG4/src/Geant4InputAction.cpp
+++ b/DDG4/src/Geant4InputAction.cpp
@@ -107,7 +107,7 @@ int Geant4InputAction::readParticles(int evt_number,
   int evid = evt_number + m_firstEvent;
   if ( 0 == m_reader )  {
     if ( m_input.empty() )  {
-      throw runtime_error("InputAction: No input file declared!");
+      except("InputAction: No input file declared!");
     }
     string err;
     TypeName tn = TypeName::split(m_input,"|");
@@ -137,7 +137,8 @@ int Geant4InputAction::readParticles(int evt_number,
       abortRun(msg,"Error when reading file %s",m_input.c_str());
       return status;
     }
-    except("%s Error when reading file %s.", msg.c_str(), m_input.c_str());
+    error(msg.c_str());
+    except("Error when reading file %s.", m_input.c_str());
     return status;
   }
   status = m_reader->readParticles(evid, prim_vertex, particles);
@@ -147,7 +148,8 @@ int Geant4InputAction::readParticles(int evt_number,
       abortRun(msg,"Error when reading file %s",m_input.c_str());
       return status;
     }
-    except("%s Error when reading file %s.", msg.c_str(), m_input.c_str());
+    error(msg.c_str());
+    except("Error when reading file %s.", m_input.c_str());
   }
   return status;
 }
-- 
GitLab