Changeset 13005 for trunk


Ignore:
Timestamp:
03/07/12 18:47:04 (13 years ago)
Author:
tbretz
Message:
Added some debug options; moved the PrintHelp at a better position so that exceptions wouldn't effect the output.
Location:
trunk/FACT++/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/Configuration.cc

    r12826 r13005  
    989989//!    - proper handling and error messages if files not available
    990990//
    991 const po::variables_map &Configuration::Parse(int argc, const char **argv)
     991const po::variables_map &Configuration::Parse(int argc, const char **argv, const std::function<void()> &PrintHelp)
    992992{
    993993    const po::positional_options_description &opt_positional = fArgumentPositions;
    994994
    995995    // ------------------------ (0) --------------------------
     996#ifdef DEBUG
     997    cout << "--0--" << endl;
     998#endif
    996999
    9971000    po::options_description opt_commandline;
     
    10091012
    10101013    // ------------------------ (1) --------------------------
     1014#ifdef DEBUG
     1015    cout << "--1--" << endl;
     1016#endif
    10111017
    10121018    fPriorityFile = "";
     
    10151021
    10161022    // ------------------------ (2) --------------------------
     1023#ifdef DEBUG
     1024    cout << "--2--" << endl;
     1025#endif
    10171026
    10181027    po::command_line_parser parser(argc, const_cast<char**>(argv));
     
    10251034
    10261035    // ------------------------ (3) --------------------------
     1036#ifdef DEBUG
     1037    cout << "--3--" << endl;
     1038#endif
    10271039
    10281040    po::variables_map getfiles;
     
    10491061        cout << fOptionsDatabase[kVisible] << endl;
    10501062
     1063
     1064
    10511065    // ------------------------ (4) --------------------------
     1066#ifdef DEBUG
     1067    cout << "--4--" << endl;
     1068#endif
    10521069
    10531070    if (getfiles.count("print") || getfiles.count("print-all"))
     
    10581075    }
    10591076
     1077    if (getfiles.count("help")     || getfiles.count("help-config") ||
     1078        getfiles.count("help-env") || getfiles.count("help-database"))
     1079    {
     1080        if (PrintHelp)
     1081            PrintHelp();
     1082    }
     1083
    10601084    // ------------------------ (5) --------------------------
     1085#ifdef DEBUG
     1086    cout << "--5--" << endl;
     1087#endif
    10611088
    10621089    const boost::filesystem::path path(GetName());
     
    10731100
    10741101    // ------------------------ (6) --------------------------
     1102#ifdef DEBUG
     1103    cout << "--6--" << endl;
     1104#endif
    10751105
    10761106    // Get default file from command line
     
    10931123
    10941124    // ------------------------ (7) --------------------------
     1125#ifdef DEBUG
     1126    cout << "--7--" << endl;
     1127#endif
    10951128
    10961129    if (getfiles.count("print-default") || getfiles.count("print-all"))
     
    11091142
    11101143    // ------------------------ (8) --------------------------
     1144#ifdef DEBUG
     1145    cout << "--8--" << endl;
     1146#endif
    11111147
    11121148    // Get priority from commandline(1), defaultfile(2)
     
    11241160
    11251161    // ------------------------ (9) --------------------------
     1162#ifdef DEBUG
     1163    cout << "--9--" << endl;
     1164#endif
    11261165
    11271166    if (getfiles.count("print-config") || getfiles.count("print-all"))
     
    11381177
    11391178    // ------------------------ (10) -------------------------
     1179#ifdef DEBUG
     1180    cout << "--10--" << endl;
     1181#endif
    11401182
    11411183    po::variables_map getdatabase;
     
    11611203#endif
    11621204    // ------------------------ (11) -------------------------
     1205#ifdef DEBUG
     1206    cout << "--11--" << endl;
     1207#endif
    11631208
    11641209    if (getfiles.count("print-database") || getfiles.count("print-all"))
     
    11751220
    11761221    // ------------------------ (12) -------------------------
     1222#ifdef DEBUG
     1223    cout << "--12--" << endl;
     1224#endif
    11771225
    11781226    const po::parsed_options parsed_environment = po::parse_environment(opt_environment, fNameMapper);
    11791227
    11801228    // ------------------------ (13) -------------------------
     1229#ifdef DEBUG
     1230    cout << "--13--" << endl;
     1231#endif
    11811232
    11821233    if (getfiles.count("print-environment"))
     
    11881239
    11891240    // ------------------------ (14) -------------------------
     1241#ifdef DEBUG
     1242    cout << "--14--" << endl;
     1243#endif
     1244
    11901245    po::variables_map result;
    11911246    po::store(parsed_commandline,  result);
     
    12001255
    12011256    // ------------------------ (15) -------------------------
     1257#ifdef DEBUG
     1258    cout << "--15--" << endl;
     1259#endif
    12021260
    12031261    const vector<string> unknown0 = collect_unrecognized(parsed_globalfile.options,   po::exclude_positional);
     
    12151273
    12161274    // ------------------------ (16) -------------------------
     1275#ifdef DEBUG
     1276    cout << "--16--" << endl;
     1277#endif
    12171278
    12181279    CreateWildcardOptions();
    12191280
    12201281    // ------------------------ (17) -------------------------
     1282#ifdef DEBUG
     1283    cout << "--17--" << endl;
     1284#endif
    12211285
    12221286    if (result.count("print-options"))
     
    12291293        PrintUnknown();
    12301294
     1295#ifdef DEBUG
     1296    cout << "------" << endl;
     1297#endif
     1298
    12311299    return fVariables;
    12321300}
     
    12361304    try
    12371305    {
    1238         Parse(argc, argv);
     1306        Parse(argc, argv, PrintHelp);
    12391307    }
    12401308#if BOOST_VERSION > 104000
     
    12511319    }
    12521320
    1253     if (HasVersion() || HasPrint())
    1254         return false;
    1255 
    1256     if (HasHelp())
    1257     {
    1258         if (PrintHelp)
    1259             PrintHelp();
    1260         return false;
    1261     }
    1262 
    1263     return true;
     1321    return !HasVersion() && !HasPrint() && !HasHelp();
    12641322}
    12651323
  • trunk/FACT++/src/Configuration.h

    r12315 r13005  
    124124
    125125    // Process command line arguments
    126     const po::variables_map &Parse(int argc, const char **argv);
     126    const po::variables_map &Parse(int argc, const char **argv, const std::function<void()> &func=std::function<void()>());
    127127    bool DoParse(int argc, const char **argv, const std::function<void()> &func=std::function<void()>());
    128128
Note: See TracChangeset for help on using the changeset viewer.