32                                  {
   33  bool           dbg = false, fixup = true;
   34  vector<string> input;
   36  for ( 
int i = 1; i < 
argc; ++i ) {
 
   37    if ( *argv[i] == '-' ) {
   38      switch ( 
::toupper( *( argv[i] + 1 ) ) ) {
 
   39      case 'N':
   40        fixup = false;
   41        break;
   42      case 'D':
   43        dbg = true;
   44        break;
   45      case 'O':
   47        ++i;
   48        break;
   49      case 'I':
   50        if ( i + 1 < argc ) input.push_back( argv[i + 1] );
   51        ++i;
   52        break;
   53      default:
   55      }
   56    }
   57  }
   58  if ( input.empty() ) {
   59    ::printf( "\nERROR: No input file(s) supplied\n\n" );
   61  } 
else if ( 
output.empty() ) {
 
   62    ::printf( "\nERROR: No output file supplied.\n\n" );
   64  }
   65  gROOT->SetBatch( kTRUE );
   66  s_err = SetErrorHandler( err_handler );
   67  for ( size_t i = 0; i < input.size(); ++i ) {
   68    const string& in       = input[i];
   69    bool          do_fixup = fixup && ( ( i + 1 ) == input.size() );
   70    
   71    
   72    int result = 
merge( 
output.c_str(), in.c_str(), do_fixup, dbg );
 
   73    if ( result == MERGE_ERROR ) {
   74      printf( "\nERROR: File merge failed after %ld files.\n\n", long( i + 1 ) );
   75      return 1;
   76    }
   77  }
   78  return 0;
   79}
void toupper(std::string &s)
 
void usage(const std::string &argv0)
 
int merge(const char *target, const char *source, bool fixup=false, bool dbg=true)