minor bugfix in argument scanning
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 27 Nov 2007 09:21:08 +0000 (09:21 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 27 Nov 2007 09:21:08 +0000 (09:21 +0000)
HLT/TPCLib/AliHLTTPCDigitDumpComponent.cxx

index e845504..a5712c8 100644 (file)
@@ -85,9 +85,8 @@ int AliHLTTPCDigitDumpComponent::ScanArgument(int argc, const char** argv)
   TString argument="";
   bool bMissingParam=0;
   int i=0;
-  for (; i<argc && iResult>=0; i++) {
-    argument=argv[i];
-    if (argument.IsNull()) continue;
+  do {
+    if (i>=argc || (argument=argv[i]).IsNull()) continue;
 
     // -rawreadermode
     if (argument.CompareTo("-rawreadermode")==0) {
@@ -99,14 +98,11 @@ int AliHLTTPCDigitDumpComponent::ScanArgument(int argc, const char** argv)
       } else {
        fRawreaderMode=static_cast<unsigned>(mode);
       }
-      break;
     }
-  }
+  } while (0); // just use the do/while here to have the option of breaking
 
-  if (bMissingParam) {
-    iResult=-EPROTO;
-  }
-  if (iResult>=0) iResult=i+1;
+  if (bMissingParam) iResult=-EPROTO;
+  else if (iResult>=0) iResult=i;
 
   return iResult;
 }