Ignore:
Timestamp:
07/19/05 15:53:36 (19 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mfbase/MF.cc

    r6932 r7200  
    477477Int_t MF::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
    478478{
    479     Bool_t rc = MFilter::ReadEnv(env, prefix, print);
    480     if (rc==kERROR)
    481         return kERROR;
    482 
    483     if (!IsEnvDefined(env, prefix, "Condition", print))
    484     {
    485         if (rc)
     479
     480    /*
     481     Bool_t rc = MFilter::ReadEnv(env, prefix, print);
     482     if (rc==kERROR)
     483     return kERROR;
     484    */
     485    if (IsEnvDefined(env, prefix, "Condition", print))
     486    {
     487        TString rule = GetEnvValue(env, prefix, "Condition", "");
     488        rule.ReplaceAll(" ", "");
     489
     490        Int_t idx=0;
     491        while (1)
     492        {
     493            TString cond;
     494            if (IsEnvDefined(env, prefix, Form("%d", idx), print))
     495            {
     496                cond += "(";
     497                cond += GetEnvValue(env, prefix, Form("%d", idx), "");
     498                cond += ")";
     499            }
     500
     501            if (cond.IsNull())
     502                break;
     503
     504            rule.ReplaceAll(Form("{%d}", idx), cond);
     505            idx++;
     506        }
     507
     508        if (fF)
     509        {
     510            delete fF;
     511            fF = 0;
     512        }
     513
     514        if (rule.IsNull())
     515        {
     516            *fLog << warn << GetDescriptor() << " ::ReadEnv - WARNING: Empty condition found." << endl;
     517            SetAllowEmpty();
     518            return kTRUE;
     519        }
     520
     521        SetAllowEmpty(kFALSE);
     522
     523        if (!(fF=ParseString(rule, 1)))
     524        {
     525            *fLog << err << "MF::ReadEnv - ERROR: Parsing '" << rule << "' failed." << endl;
     526            return kERROR;
     527        }
     528
     529        if (print)
     530        {
     531            *fLog << inf << "found: ";
     532            fF->Print();
     533            *fLog << endl;
     534        }
     535    }
     536    else
     537    {
     538        if (!fF)
    486539        {
    487540            *fLog << warn << GetDescriptor() << " ::ReadEnv - WARNING: No condition found." << endl;
    488541            SetAllowEmpty();
    489         }
    490         return rc;
    491     }
    492 
    493     TString rule = GetEnvValue(env, prefix, "Condition", "");
    494     rule.ReplaceAll(" ", "");
    495 
    496     Int_t idx=0;
    497     while (1)
    498     {
    499         TString cond;
    500         if (IsEnvDefined(env, prefix, Form("%d", idx), print))
    501         {
    502             cond += "(";
    503             cond += GetEnvValue(env, prefix, Form("%d", idx), "");
    504             cond += ")";
    505         }
    506 
    507         if (cond.IsNull())
    508             break;
    509 
    510         rule.ReplaceAll(Form("{%d}", idx), cond);
    511         idx++;
    512     }
    513 
    514     if (fF)
    515     {
    516         delete fF;
    517         fF = 0;
    518     }
    519 
    520     if (rule.IsNull())
    521     {
    522         *fLog << warn << GetDescriptor() << " ::ReadEnv - WARNING: Empty condition found." << endl;
    523         SetAllowEmpty();
    524         return kTRUE;
    525     }
    526 
    527     SetAllowEmpty(kFALSE);
    528 
    529     if (!(fF=ParseString(rule, 1)))
    530     {
    531         *fLog << err << "MF::ReadEnv - ERROR: Parsing '" << rule << "' failed." << endl;
    532         return kERROR;
    533     }
    534 
    535     if (print)
    536     {
    537         *fLog << inf << "found: ";
    538         fF->Print();
    539         *fLog << endl;
     542            return kFALSE;
     543        }
    540544    }
    541545
     
    546550    // might check for "Inverted" in this case both gets inverted
    547551    // and double-inversion is no inversion
     552    /*
    548553    if (IsEnvDefined(env, prefix, "Inverted", print))
    549554        if (GetEnvValue(env, prefix, "Inverted", kFALSE)==kTRUE)
    550             SetInverted(kFALSE);
     555            SetInverted(kFALSE);*/
    551556
    552557    return kTRUE;
Note: See TracChangeset for help on using the changeset viewer.