dbertoni    2003/03/20 16:44:32

  Modified:    c/Tests/Harness XMLFileReporter.hpp XMLFileReporter.cpp
  Log:
  Made static strings instance members as temporary workaround for static 
initialization.
  
  Revision  Changes    Path
  1.16      +53 -56    xml-xalan/c/Tests/Harness/XMLFileReporter.hpp
  
  Index: XMLFileReporter.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/Harness/XMLFileReporter.hpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XMLFileReporter.hpp       27 Nov 2002 22:36:28 -0000      1.15
  +++ XMLFileReporter.hpp       21 Mar 2003 00:44:32 -0000      1.16
  @@ -92,15 +92,9 @@
   public:
   
   
  -     // Simple constructor, does not perform initialization.
  -     XMLFileReporter();   
  -
  -
  -     // Construct and initialize this reporter with specified filename.
  -     XMLFileReporter(const XalanDOMString& fileName);
  -
  -     // Construct and initialize this reporter with specified filename.
  -     XMLFileReporter(const char* fileName);
  +     // Construct and initialize this reporter with specified filename, if
  +     // the filename is not empty.
  +     XMLFileReporter(const XalanDOMString& fileName = XalanDOMString());
   
        // Initialize this XMLFileReporter.  Must be called before attempting to log 
anything.
        bool initialize();
  @@ -325,68 +319,71 @@
        */
        bool printToFile(const XalanDOMString& output);
   
  +     void
  +     initStrings();
  +
        /**
        * worker method to prints to the resultsfile.  
        */
        XalanDOMString getDateTimeString();
        
        /** Key for Properties block that denotes our output filename.  */
  -     static const XalanDOMString OPT_FILENAME;
  +     XalanDOMString  OPT_FILENAME;
   
        /** XML tagnames for results file structure.  */
  -     static const XalanDOMString ELEM_RESULTSFILE;
  -     static const XalanDOMString ELEM_TESTFILE;
  -     static const XalanDOMString ELEM_FILERESULT;
  -     static const XalanDOMString ELEM_TESTCASE;
  -     static const XalanDOMString ELEM_CASERESULT;
  -     static const XalanDOMString ELEM_CHECKRESULT;
  -     static const XalanDOMString ELEM_STATISTIC;
  -     static const XalanDOMString ELEM_LONGVAL;
  -     static const XalanDOMString ELEM_DOUBLEVAL;
  -     static const XalanDOMString ELEM_MESSAGE;
  -     static const XalanDOMString ELEM_ARBITRARY;
  -     static const XalanDOMString ELEM_HASHTABLE;
  -     static const XalanDOMString ELEM_HASHITEM;
  +     XalanDOMString  ELEM_RESULTSFILE;
  +     XalanDOMString  ELEM_TESTFILE;
  +     XalanDOMString  ELEM_FILERESULT;
  +     XalanDOMString  ELEM_TESTCASE;
  +     XalanDOMString  ELEM_CASERESULT;
  +     XalanDOMString  ELEM_CHECKRESULT;
  +     XalanDOMString  ELEM_STATISTIC;
  +     XalanDOMString  ELEM_LONGVAL;
  +     XalanDOMString  ELEM_DOUBLEVAL;
  +     XalanDOMString  ELEM_MESSAGE;
  +     XalanDOMString  ELEM_ARBITRARY;
  +     XalanDOMString  ELEM_HASHTABLE;
  +     XalanDOMString  ELEM_HASHITEM;
   
        /** XML attribute names for results file structure.  */
  -     static const XalanDOMString ATTR_LEVEL;
  -     static const XalanDOMString ATTR_DESC;
  -     static const XalanDOMString ATTR_TIME;
  -     static const XalanDOMString ATTR_RESULT;
  -     static const XalanDOMString ATTR_KEY;
  -     static const XalanDOMString ATTR_FILENAME;
  -     static const XalanDOMString     LESS_THAN;
  -     static const XalanDOMString     GREATER_THAN;
  -     static const XalanDOMString     EQUALS_QUOTE;
  -     static const XalanDOMString     SPACE;
  -     static const XalanDOMString     QUOTE;
  -     static const XalanDOMString     QUOTE_SPACE;
  -     static const XalanDOMString QUOTE_GREATER_THAN;
  -     static const XalanDOMString QUOTE_SOLIDUS_GREATER_THAN;
  -     static const XalanDOMString     PASS;
  -     static const XalanDOMString     AMBG;
  -     static const XalanDOMString     ERRR;
  -     static const XalanDOMString     FAIL;
  -     static const XalanDOMString     LESS_THAN_SOLIDUS;
  -     static const XalanDOMString     XML_HEADER;
  -     static const XalanDOMString     REASON_EQUALS_QUOTE;
  +     XalanDOMString  ATTR_LEVEL;
  +     XalanDOMString  ATTR_DESC;
  +     XalanDOMString  ATTR_TIME;
  +     XalanDOMString  ATTR_RESULT;
  +     XalanDOMString  ATTR_KEY;
  +     XalanDOMString  ATTR_FILENAME;
  +     XalanDOMString  LESS_THAN;
  +     XalanDOMString  GREATER_THAN;
  +     XalanDOMString  EQUALS_QUOTE;
  +     XalanDOMString  SPACE;
  +     XalanDOMString  QUOTE;
  +     XalanDOMString  QUOTE_SPACE;
  +     XalanDOMString  QUOTE_GREATER_THAN;
  +     XalanDOMString  QUOTE_SOLIDUS_GREATER_THAN;
  +     XalanDOMString  PASS;
  +     XalanDOMString  AMBG;
  +     XalanDOMString  ERRR;
  +     XalanDOMString  FAIL;
  +     XalanDOMString  LESS_THAN_SOLIDUS;
  +     XalanDOMString  XML_HEADER;
  +     XalanDOMString  REASON_EQUALS_QUOTE;
   
        /** 
        * Optimization: for heavy use methods, form pre-defined constants to save on 
XalanDOMString concatenation.  
        * <P>Note the indent; must be updated if we ever switch to another indenting 
method.</P>
        */
  -     static const XalanDOMString TESTCASEINIT_HDR;
  -     static const XalanDOMString TESTCASECLOSE_HDR;
  -     static const XalanDOMString MESSAGE_HDR;
  -     static const XalanDOMString STATISTIC_HDR;
  -     static const XalanDOMString ARBITRARY_HDR;
  -     static const XalanDOMString HASHTABLE_HDR;
  -     static const XalanDOMString HASHITEM_HDR;
  -     static const XalanDOMString CHECKPASS_HDR;
  -     static const XalanDOMString CHECKAMBG_HDR;
  -     static const XalanDOMString CHECKERRR_HDR;
  -     static const XalanDOMString CHECKFAIL_HDR;
  -     static const XalanDOMString CHECKFAIL_FTR;
  +     XalanDOMString  TESTCASEINIT_HDR;
  +     XalanDOMString  TESTCASECLOSE_HDR;
  +     XalanDOMString  MESSAGE_HDR;
  +     XalanDOMString  STATISTIC_HDR;
  +     XalanDOMString  ARBITRARY_HDR;
  +     XalanDOMString  HASHTABLE_HDR;
  +     XalanDOMString  HASHITEM_HDR;
  +     XalanDOMString  CHECKPASS_HDR;
  +     XalanDOMString  CHECKAMBG_HDR;
  +     XalanDOMString  CHECKERRR_HDR;
  +     XalanDOMString  CHECKFAIL_HDR;
  +     XalanDOMString  CHECKFAIL_FTR;
   
        /** If we have output anything yet.  */
        bool m_anyOutput;
  
  
  
  1.19      +134 -96   xml-xalan/c/Tests/Harness/XMLFileReporter.cpp
  
  Index: XMLFileReporter.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/Harness/XMLFileReporter.cpp,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- XMLFileReporter.cpp       26 Nov 2002 02:12:27 -0000      1.18
  +++ XMLFileReporter.cpp       21 Mar 2003 00:44:32 -0000      1.19
  @@ -75,121 +75,104 @@
   
   
   
  -// $$$ToDo:  These strings must be initialized in a static call, and not at 
initialization.
  -const XalanDOMString XMLFileReporter::OPT_FILENAME(L"filename");
  -const XalanDOMString XMLFileReporter::ELEM_RESULTSFILE(L"resultsfile");
  -const XalanDOMString XMLFileReporter::ELEM_TESTFILE(L"testfile");
  -const XalanDOMString XMLFileReporter::ELEM_FILERESULT(L"fileresult");
  -const XalanDOMString XMLFileReporter::ELEM_TESTCASE(L"Test_Dir");
  -const XalanDOMString XMLFileReporter::ELEM_CASERESULT(L"Dir-result");
  -const XalanDOMString XMLFileReporter::ELEM_CHECKRESULT(L"Testcase");
  -const XalanDOMString XMLFileReporter::ELEM_STATISTIC(L"statistic");
  -const XalanDOMString XMLFileReporter::ELEM_LONGVAL(L"longval");
  -const XalanDOMString XMLFileReporter::ELEM_DOUBLEVAL(L"doubleval");
  -const XalanDOMString XMLFileReporter::ELEM_MESSAGE(L"message");
  -const XalanDOMString XMLFileReporter::ELEM_ARBITRARY(L"arbitrary");
  -const XalanDOMString XMLFileReporter::ELEM_HASHTABLE(L"hashtable");
  -const XalanDOMString XMLFileReporter::ELEM_HASHITEM(L"hashitem");
  -const XalanDOMString XMLFileReporter::ATTR_LEVEL(L"level");
  -const XalanDOMString XMLFileReporter::ATTR_DESC(L"desc");
  -const XalanDOMString XMLFileReporter::ATTR_TIME(L"time");
  -const XalanDOMString XMLFileReporter::ATTR_RESULT(L"result");
  -const XalanDOMString XMLFileReporter::ATTR_KEY(L"key");
  -const XalanDOMString XMLFileReporter::ATTR_FILENAME = XMLFileReporter::OPT_FILENAME;
  -const XalanDOMString XMLFileReporter::LESS_THAN(L"<");
  -const XalanDOMString XMLFileReporter::GREATER_THAN(L">");
  -const XalanDOMString XMLFileReporter::EQUALS_QUOTE(L"=\"");
  -const XalanDOMString XMLFileReporter::SPACE(L" ");
  -const XalanDOMString XMLFileReporter::QUOTE(L"\"");
  -const XalanDOMString XMLFileReporter::QUOTE_SPACE(L"\" ");
  -const XalanDOMString XMLFileReporter::QUOTE_GREATER_THAN(L"\">");
  -const XalanDOMString XMLFileReporter::QUOTE_SOLIDUS_GREATER_THAN(L"\"/>");
  -const XalanDOMString XMLFileReporter::PASS(L"PASS");
  -const XalanDOMString XMLFileReporter::AMBG(L"AMBG");
  -const XalanDOMString XMLFileReporter::ERRR(L"ERRR");
  -const XalanDOMString XMLFileReporter::FAIL(L"FAIL");
  -const XalanDOMString XMLFileReporter::LESS_THAN_SOLIDUS(L"</");
  -const XalanDOMString XMLFileReporter::XML_HEADER("<?xml version=\"1.0\"?>");
  -const XalanDOMString XMLFileReporter::REASON_EQUALS_QUOTE("reason=\"");
  -
  -const XalanDOMString XMLFileReporter::TESTCASEINIT_HDR(LESS_THAN + ELEM_TESTCASE + 
SPACE + ATTR_DESC + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::TESTCASECLOSE_HDR(LESS_THAN + ELEM_CASERESULT 
+ SPACE + ATTR_DESC + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::MESSAGE_HDR(LESS_THAN + ELEM_MESSAGE + SPACE 
+ ATTR_LEVEL + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::STATISTIC_HDR(LESS_THAN + ELEM_STATISTIC + 
SPACE + ATTR_LEVEL + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::ARBITRARY_HDR(LESS_THAN + ELEM_ARBITRARY + 
SPACE + ATTR_LEVEL + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::HASHTABLE_HDR(LESS_THAN + ELEM_HASHTABLE + 
SPACE + ATTR_LEVEL + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::HASHITEM_HDR(LESS_THAN + ELEM_HASHITEM + 
SPACE + ATTR_KEY + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::CHECKPASS_HDR(LESS_THAN + ELEM_CHECKRESULT + 
SPACE + ATTR_RESULT + EQUALS_QUOTE + PASS + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::CHECKAMBG_HDR(LESS_THAN + ELEM_CHECKRESULT + 
SPACE + ATTR_RESULT + EQUALS_QUOTE + AMBG + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::CHECKERRR_HDR(LESS_THAN + ELEM_CHECKRESULT + 
SPACE + ATTR_RESULT + EQUALS_QUOTE + ERRR + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::CHECKFAIL_HDR(LESS_THAN + ELEM_CHECKRESULT + 
SPACE + ATTR_RESULT + EQUALS_QUOTE + FAIL + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE);
  -const XalanDOMString XMLFileReporter::CHECKFAIL_FTR(LESS_THAN_SOLIDUS + 
ELEM_CHECKRESULT + GREATER_THAN);
  -
  -
  -XMLFileReporter::XMLFileReporter():
  -     m_anyOutput(false),
  -     m_fileName(""),
  -     m_fileHandle(0),
  -     m_ready(false),
  -     m_error(false),
  -     m_flushOnCaseClose(true)
  -{        
  -}
  -
  -
  -
  -XMLFileReporter::XMLFileReporter(const XalanDOMString& fileName):
  +XMLFileReporter::XMLFileReporter(const XalanDOMString&       fileName) :
  +     OPT_FILENAME(),
  +     ELEM_RESULTSFILE(),
  +     ELEM_TESTFILE(),
  +     ELEM_FILERESULT(),
  +     ELEM_TESTCASE(),
  +     ELEM_CASERESULT(),
  +     ELEM_CHECKRESULT(),
  +     ELEM_STATISTIC(),
  +     ELEM_LONGVAL(),
  +     ELEM_DOUBLEVAL(),
  +     ELEM_MESSAGE(),
  +     ELEM_ARBITRARY(),
  +     ELEM_HASHTABLE(),
  +     ELEM_HASHITEM(),
  +     ATTR_LEVEL(),
  +     ATTR_DESC(),
  +     ATTR_TIME(),
  +     ATTR_RESULT(),
  +     ATTR_KEY(),
  +     ATTR_FILENAME(),
  +     LESS_THAN(),
  +     GREATER_THAN(),
  +     EQUALS_QUOTE(),
  +     SPACE(),
  +     QUOTE(),
  +     QUOTE_SPACE(),
  +     QUOTE_GREATER_THAN(),
  +     QUOTE_SOLIDUS_GREATER_THAN(),
  +     PASS(),
  +     AMBG(),
  +     ERRR(),
  +     FAIL(),
  +     LESS_THAN_SOLIDUS(),
  +     XML_HEADER(),
  +     REASON_EQUALS_QUOTE(),
  +     TESTCASEINIT_HDR(),
  +     TESTCASECLOSE_HDR(),
  +     MESSAGE_HDR(),
  +     STATISTIC_HDR(),
  +     ARBITRARY_HDR(),
  +     HASHTABLE_HDR(),
  +     HASHITEM_HDR(),
  +     CHECKPASS_HDR(),
  +     CHECKAMBG_HDR(),
  +     CHECKERRR_HDR(),
  +     CHECKFAIL_HDR(),
  +     CHECKFAIL_FTR(),
        m_anyOutput(false),
        m_fileName(fileName),
        m_fileHandle(0),
        m_ready(false),
        m_error(false),
        m_flushOnCaseClose(true)
  -{         
  -    m_ready = initialize();
  -}
  -
  -XMLFileReporter::XMLFileReporter(const char* fileName):
  -     m_anyOutput(false),
  -     m_fileName(XalanDOMString(fileName)),
  -     m_fileHandle(0),
  -     m_ready(false),
  -     m_error(false),
  -     m_flushOnCaseClose(true)
  -{         
  -    m_ready = initialize();
  +{
  +     if (m_fileName.size() > 0)
  +     {
  +             m_ready = initialize();
  +     }
   }
   
  -bool 
  +bool
   XMLFileReporter::initialize()
   {    
  -    if (length(m_fileName) == 0)
  +    if (m_fileName.size() == 0)
       {
           // We don't have a valid file, so bail
           m_error = true;
           m_ready = false;
           fprintf(stderr, "XMLFileReporter.initialize() ERROR: No file name 
specified");
  -        return(false);
       }
  +     else
  +     {
  +             // Transcode down the file name...
  +             const CharVectorType    theTranscodedFileName(m_fileName.transcode());
  +             const char* const               theTranscodedFileNamePointer = 
&theTranscodedFileName.front();
  +
  +             // Create a file and ensure it has a place to live
  +             m_fileHandle = fopen(theTranscodedFileNamePointer, "w");
  +             if (m_fileHandle == 0)
  +             {
  +                     // Couldn't create or find the directory for the file to live 
in, so bail
  +                     m_error = true;
  +                     m_ready = false;
  +                     fprintf(stderr, "XMLFileReporter.initialize() ERROR: unble to 
open file, %s", theTranscodedFileNamePointer);
  +                     return(false);
  +             }
  +             else
  +             {
  +                     m_ready = true;
   
  -     // Transcode down the file name...
  -     const CharVectorType    theTranscodedFileName(m_fileName.transcode());
  -     const char* const               theTranscodedFileNamePointer = 
&theTranscodedFileName.front();
  +                     initStrings();
   
  -    // Create a file and ensure it has a place to live
  -     m_fileHandle = fopen(theTranscodedFileNamePointer, "w");
  -     if (m_fileHandle == 0)
  -     {
  -        // Couldn't create or find the directory for the file to live in, so bail
  -        m_error = true;
  -        m_ready = false;
  -        fprintf(stderr, "XMLFileReporter.initialize() ERROR: unble to open file, 
%s", theTranscodedFileNamePointer);
  -        return(false);
  -     }
  +                     startResultsFile();
   
  -    m_ready = true;
  -    startResultsFile();
  -    // fprintf(stderr, "DEBUG:XMLFileReporter.initialize() complete with " + 
fileName);
  +                     // fprintf(stderr, "DEBUG:XMLFileReporter.initialize() 
complete with " + fileName);
  +             }
  +     }
   
       return m_ready;
   }
  @@ -741,6 +724,61 @@
        const char* const       theTime = asctime(tmNow);
   
        return XalanDOMString(theTime, strlen(theTime) - 1);
  +}
  +
  +
  +
  +void
  +XMLFileReporter::initStrings()
  +{
  +     OPT_FILENAME = XALAN_STATIC_UCODE_STRING("filename");
  +     ELEM_RESULTSFILE = XALAN_STATIC_UCODE_STRING("resultsfile");
  +     ELEM_TESTFILE = XALAN_STATIC_UCODE_STRING("testfile");
  +     ELEM_FILERESULT = XALAN_STATIC_UCODE_STRING("fileresult");
  +     ELEM_TESTCASE = XALAN_STATIC_UCODE_STRING("Test_Dir");
  +     ELEM_CASERESULT = XALAN_STATIC_UCODE_STRING("Dir-result");
  +     ELEM_CHECKRESULT = XALAN_STATIC_UCODE_STRING("Testcase");
  +     ELEM_STATISTIC = XALAN_STATIC_UCODE_STRING("statistic");
  +     ELEM_LONGVAL = XALAN_STATIC_UCODE_STRING("longval");
  +     ELEM_DOUBLEVAL = XALAN_STATIC_UCODE_STRING("doubleval");
  +     ELEM_MESSAGE = XALAN_STATIC_UCODE_STRING("message");
  +     ELEM_ARBITRARY = XALAN_STATIC_UCODE_STRING("arbitrary");
  +     ELEM_HASHTABLE = XALAN_STATIC_UCODE_STRING("hashtable");
  +     ELEM_HASHITEM = XALAN_STATIC_UCODE_STRING("hashitem");
  +     ATTR_LEVEL = XALAN_STATIC_UCODE_STRING("level");
  +     ATTR_DESC = XALAN_STATIC_UCODE_STRING("desc");
  +     ATTR_TIME = XALAN_STATIC_UCODE_STRING("time");
  +     ATTR_RESULT = XALAN_STATIC_UCODE_STRING("result");
  +     ATTR_KEY = XALAN_STATIC_UCODE_STRING("key");
  +     ATTR_FILENAME = OPT_FILENAME;
  +     LESS_THAN = XALAN_STATIC_UCODE_STRING("<");
  +     GREATER_THAN = XALAN_STATIC_UCODE_STRING(">");
  +     EQUALS_QUOTE = XALAN_STATIC_UCODE_STRING("=\"");
  +     SPACE = XALAN_STATIC_UCODE_STRING(" ");
  +     QUOTE = XALAN_STATIC_UCODE_STRING("\"");
  +     QUOTE_SPACE = XALAN_STATIC_UCODE_STRING("\" ");
  +     QUOTE_GREATER_THAN = XALAN_STATIC_UCODE_STRING("\">");
  +     QUOTE_SOLIDUS_GREATER_THAN = XALAN_STATIC_UCODE_STRING("\"/>");
  +     PASS = XALAN_STATIC_UCODE_STRING("PASS");
  +     AMBG = XALAN_STATIC_UCODE_STRING("AMBG");
  +     ERRR = XALAN_STATIC_UCODE_STRING("ERRR");
  +     FAIL = XALAN_STATIC_UCODE_STRING("FAIL");
  +     LESS_THAN_SOLIDUS = XALAN_STATIC_UCODE_STRING("</");
  +     XML_HEADER = XALAN_STATIC_UCODE_STRING("<?xml version=\"1.0\"?>");
  +     REASON_EQUALS_QUOTE = XALAN_STATIC_UCODE_STRING("reason=\"");
  +
  +     TESTCASEINIT_HDR = LESS_THAN + ELEM_TESTCASE + SPACE + ATTR_DESC + 
EQUALS_QUOTE;
  +     TESTCASECLOSE_HDR = LESS_THAN + ELEM_CASERESULT + SPACE + ATTR_DESC + 
EQUALS_QUOTE;
  +     MESSAGE_HDR = LESS_THAN + ELEM_MESSAGE + SPACE + ATTR_LEVEL + EQUALS_QUOTE;
  +     STATISTIC_HDR = LESS_THAN + ELEM_STATISTIC + SPACE + ATTR_LEVEL + EQUALS_QUOTE;
  +     ARBITRARY_HDR = LESS_THAN + ELEM_ARBITRARY + SPACE + ATTR_LEVEL + EQUALS_QUOTE;
  +     HASHTABLE_HDR = LESS_THAN + ELEM_HASHTABLE + SPACE + ATTR_LEVEL + EQUALS_QUOTE;
  +     HASHITEM_HDR = LESS_THAN + ELEM_HASHITEM + SPACE + ATTR_KEY + EQUALS_QUOTE;
  +     CHECKPASS_HDR = LESS_THAN + ELEM_CHECKRESULT + SPACE + ATTR_RESULT + 
EQUALS_QUOTE + PASS + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE;
  +     CHECKAMBG_HDR = LESS_THAN + ELEM_CHECKRESULT + SPACE + ATTR_RESULT + 
EQUALS_QUOTE + AMBG + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE;
  +     CHECKERRR_HDR = LESS_THAN + ELEM_CHECKRESULT + SPACE + ATTR_RESULT + 
EQUALS_QUOTE + ERRR + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE;
  +     CHECKFAIL_HDR = LESS_THAN + ELEM_CHECKRESULT + SPACE + ATTR_RESULT + 
EQUALS_QUOTE + FAIL + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE;
  +     CHECKFAIL_FTR = LESS_THAN_SOLIDUS + ELEM_CHECKRESULT + GREATER_THAN;
   }
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to