From eaf0481b25eee6caf3f55ceebf0485b0909bff92 Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Tue, 15 Jan 2019 19:26:06 +0100
Subject: [PATCH] Fix bug in geoDisplay

---
 UtilityApps/src/display.cpp | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/UtilityApps/src/display.cpp b/UtilityApps/src/display.cpp
index a7852b461..9f9c2516d 100644
--- a/UtilityApps/src/display.cpp
+++ b/UtilityApps/src/display.cpp
@@ -17,24 +17,26 @@
 //______________________________________________________________________________
 int main(int argc,char** argv)  {
   std::vector<const char*> av;
-  std::string level, visopt, opt;
+  std::string level, visopt, opt, detector;
   bool dry = false;
   for(int i=0; i<argc; ++i)  {
     if ( i==1 && argv[i][0] != '-' ) av.push_back("-input");
-    if      ( strncmp(argv[i],"-load",4)   == 0 ) dry = true, av.push_back(argv[i]);
-    else if ( strncmp(argv[i],"-dry",4)    == 0 ) dry = true, av.push_back(argv[i]);
-    else if ( strncmp(argv[i],"-visopt",4) == 0 ) visopt = argv[i];
-    else if ( strncmp(argv[i],"-level", 4) == 0 ) level  = argv[i];
-    else if ( strncmp(argv[i],"-option",4) == 0 ) opt    = argv[i];
+    if      ( strncmp(argv[i],"-load",4)     == 0 ) dry = true, av.push_back(argv[i]);
+    else if ( strncmp(argv[i],"-dry",4)      == 0 ) dry = true, av.push_back(argv[i]);
+    else if ( strncmp(argv[i],"-visopt",4)   == 0 ) visopt   = argv[++i];
+    else if ( strncmp(argv[i],"-level", 4)   == 0 ) level    = argv[++i];
+    else if ( strncmp(argv[i],"-option",4)   == 0 ) opt      = argv[++i];
+    else if ( strncmp(argv[i],"-detector",4) == 0 ) detector = argv[++i];
     else av.push_back(argv[i]);
   }
   if ( !dry )   {
     av.push_back("-interactive");
     av.push_back("-plugin");
     av.push_back("DD4hep_GeometryDisplay");
-    if ( !opt.empty()    ) av.push_back("-opt"),    av.push_back(opt.c_str());
-    if ( !level.empty()  ) av.push_back("-level"),  av.push_back(level.c_str());
-    if ( !visopt.empty() ) av.push_back("-visopt"), av.push_back(visopt.c_str());
+    if ( !opt.empty()      ) av.push_back("-opt"),      av.push_back(opt.c_str());
+    if ( !level.empty()    ) av.push_back("-level"),    av.push_back(level.c_str());
+    if ( !visopt.empty()   ) av.push_back("-visopt"),   av.push_back(visopt.c_str());
+    if ( !detector.empty() ) av.push_back("-detector"), av.push_back(detector.c_str());
   }
   return dd4hep::execute::main_plugins("DD4hep_GeometryDisplay", av.size(), (char**)&av[0]);
 }
-- 
GitLab