richter     01/07/25 00:20:09

  Modified:    .        Tag: Embperl2c epdat.h epparse.c
               Embperl/Syntax Tag: Embperl2c RTF.pm
               test/cmp Tag: Embperl2c rtfbasic.asc rtfloop.asc
               test/html/rtf Tag: Embperl2c rtfbasic.asc
  Log:
  Embperl 2 - RTF enhancements
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.20.4.20 +2 -1      embperl/epdat.h
  
  Index: epdat.h
  ===================================================================
  RCS file: /home/cvs/embperl/epdat.h,v
  retrieving revision 1.20.4.19
  retrieving revision 1.20.4.20
  diff -u -r1.20.4.19 -r1.20.4.20
  --- epdat.h   2001/05/29 06:27:37     1.20.4.19
  +++ epdat.h   2001/07/25 07:20:09     1.20.4.20
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epdat.h,v 1.20.4.19 2001/05/29 06:27:37 richter Exp $
  +#   $Id: epdat.h,v 1.20.4.20 2001/07/25 07:20:09 richter Exp $
   #
   
###################################################################################*/
   
  @@ -114,6 +114,7 @@
       int                          bUnescape ; /* translate input?  */
       int                          bAddFlags ; /* add flags to node  */
       int                          bRemoveSpaces ;     /* 1 remove spaces before tag, 
2 remove after */
  +    int                          bInsideMustExist ;  /* if inside definition 
doesn't exists, ignore whole tag */
       unsigned char *      pContains ; /* chars that could be contained in the string 
*/
       struct tTokenTable *    pFollowedBy;/* table of tokens that can follow this one 
*/
       struct tTokenTable *    pInside ;        /* table of tokens that can apear 
inside this one */
  
  
  
  1.4.2.29  +38 -7     embperl/Attic/epparse.c
  
  Index: epparse.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epparse.c,v
  retrieving revision 1.4.2.28
  retrieving revision 1.4.2.29
  diff -u -r1.4.2.28 -r1.4.2.29
  --- epparse.c 2001/07/25 04:03:12     1.4.2.28
  +++ epparse.c 2001/07/25 07:20:09     1.4.2.29
  @@ -9,7 +9,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epparse.c,v 1.4.2.28 2001/07/25 04:03:12 richter Exp $
  +#   $Id: epparse.c,v 1.4.2.29 2001/07/25 07:20:09 richter Exp $
   #
   
###################################################################################*/
   
  @@ -308,6 +308,7 @@
            p -> nCDataType = GetHashValueInt (pHash, "cdatatype", ntypCDATA) ;
            p -> nForceType = GetHashValueInt (pHash, "forcetype", 0) ;
            p -> bRemoveSpaces = GetHashValueInt (pHash, "removespaces", p -> 
nNodeType != ntypCDATA?2:0) ;
  +         p -> bInsideMustExist = GetHashValueInt (pHash, "insidemustexist", 0) ;
            p -> pStartTag  = (struct tToken *)GetHashValueStrDup (pHash, "starttag", 
NULL) ;
            p -> pEndTag    = (struct tToken *)GetHashValueStrDup (pHash, "endtag", 
NULL) ;
            p -> sParseTimePerlCode =  GetHashValueStrDup (pHash, "parsetimeperlcode", 
NULL) ;
  @@ -530,6 +531,7 @@
                                enum tNodeType          nCDataType,
                                enum tNodeType          nForceType,
                                int                     bUnescape,
  +                             int                     bInsideMustExist, 
                                const char *            pParentNodeName,
                                tNode                   xParentNode,
                                int                     level, 
  @@ -741,6 +743,8 @@
                            }
                        if (pToken -> bAddFlags)
                               Node_self (pDomTree, xNewNode) -> bFlags |= pToken -> 
bAddFlags ;
  +                     if (!pToken -> pInside)
  +                         bInsideMustExist = 0 ;
                        }
                    else
                        {
  @@ -749,17 +753,44 @@
   
                    if (pInside = pToken -> pInside)
                        { /* parse for further tokens inside of this token */
  -                        ParseTokens (r, &pCurr, pEnd, pInside, 
  +                        rc = ParseTokens (r, &pCurr, pEnd, pInside, 
                                            pToken -> sEndText,
                                            pToken -> pContains,
                                            pToken -> nCDataType == ntypCDATA && 
!pToken -> sNodeName?ntypAttrValue:pToken -> nCDataType,
                                            0,
                                            pToken -> bUnescape, 
  +                                         pToken -> bInsideMustExist + 
bInsideMustExist, 
                                            pNodeName,
                                            xNewNode,
                                            level+1,
                                            pToken -> nNodeType == 
ntypCDATA?pCurrTokenStart:NULL,
                                            sEndText && *sEndText?sEndText:NULL) ;
  +                     if (rc == ok)
  +                         bInsideMustExist = 0 ;
  +                     else if (pToken -> bInsideMustExist && rc == rcNotFound)
  +                         {
  +                         rc = ok ;
  +                         /*
  +                         pToken = NULL ;
  +                         bFollow = 0 ;
  +                         sEndText = NULL ;
  +                         nEndText = 0 ;
  +                         pCurr  = pCurrTokenStart  ;
  +                         */
  +                         if (xNewNode != xParentNode)
  +                             {
  +                             Node_removeChild (pDomTree, xParentNode, xNewNode) ; 
  +                             if (r -> bDebug & dbgParse)
  +                                 lprintf (pCurrReq, "[%d]PARSE: DelNode: +%02d %*s 
parent=%d node=%d\n", 
  +                                  pCurrReq -> nPid, level, level * 2, "", 
xParentNode, xNewNode) ; 
  +                             }
  +                             
  +                         /* add as cdata*/
  +                         if (!(xNewNode = Node_appendChild (pDomTree, ntypCDATA, 0, 
pCurrStart, pCurr - pCurrStart, xParentNode, level, GetLineNoOf (r, pCurrStart))))
  +                             return 1 ;
  +                         }
  +                     else if (rc != rcNotFound)
  +                         return rc ;
                        }    
                    else
                        { /* nothing more inside of this token allowed, so search for 
the end of the token */
  @@ -846,7 +877,7 @@
                    return 1 ;
                }
               *ppCurr = pCurr ;
  -            return 0 ;
  +            return bInsideMustExist?rcNotFound:ok ;
               }
           else if (sEndText == NULL ||
            (*pCurr == *sEndText && strncmp (pCurr, sEndText, nEndText) == 0))
  @@ -859,18 +890,18 @@
            if (!pCDATAStart && !sStopText)
                pCurr += nEndText ;
               *ppCurr = pCurr ;
  -            return 0 ;
  +            return bInsideMustExist?rcNotFound:ok ;
               }
           else if (!pToken && bFollow < 2)
            pCurr++ ;
           }
           
  -    if (nCDataType)
  +    if (nCDataType && pCurr - pCurrStart)
        if (!(xNewNode = Node_appendChild (pDomTree,  nCDataType, 0,pCurrStart, pCurr 
- pCurrStart, xParentNode, level, GetLineNoOf (r, pCurrStart))))
            return 1 ;
   
       *ppCurr = pCurr ;
  -    return 0 ;
  +    return bInsideMustExist?rcNotFound:ok ;
       }
   
   
  @@ -920,7 +951,7 @@
   
       pTokenTableSave = r -> pTokenTable ;
       
  -    if ((rc = ParseTokens (r, &pStart, pEnd, r -> pTokenTable, "", NULL, ntypCDATA, 
0, 0, "root", xDocNode, 0, NULL, NULL)) != ok)
  +    if ((rc = ParseTokens (r, &pStart, pEnd, r -> pTokenTable, "", NULL, ntypCDATA, 
0, 0, 0, "root", xDocNode, 0, NULL, NULL)) != ok)
        return rc ; 
       
       /* Add one child node end the end to catch loops that end at the very last node 
*/
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.11  +7 -13     embperl/Embperl/Syntax/Attic/RTF.pm
  
  Index: RTF.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Syntax/Attic/RTF.pm,v
  retrieving revision 1.1.2.10
  retrieving revision 1.1.2.11
  diff -u -r1.1.2.10 -r1.1.2.11
  --- RTF.pm    2001/05/16 14:04:44     1.1.2.10
  +++ RTF.pm    2001/07/25 07:20:09     1.1.2.11
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: RTF.pm,v 1.1.2.10 2001/05/16 14:04:44 richter Exp $
  +#   $Id: RTF.pm,v 1.1.2.11 2001/07/25 07:20:09 richter Exp $
   #
   ###################################################################################
    
  @@ -56,6 +56,7 @@
   
        #$self -> {-rtfCmds} = $self -> {-rtfBlocks}{'RTF field'}{'follow'}{'RTF 
fieldstart'}{'follow'}{'RTF block cmd'}{'follow'}  ;
        $self -> {-rtfCmds} = $self -> {-rtfBlocks}{'RTF first 
paragraph'}{'inside'}{'RTF field'}{'inside'}{'RTF fieldstart'}{'inside'}{'RTF block 
cmd'}{'inside'}  ;
  +     $self -> {-rtfCmds2} = $self -> {-rtfBlocks}{'RTF first 
paragraph'}{'inside'}{'RTF field'}{'inside'}{'RTF fieldstart'}{'inside'}  ;
        Init ($self) ;
           }
   
  @@ -86,7 +87,8 @@
                                   (ref($taginfo) eq 'HASH'?%$taginfo:()),
                                 } ;
       $tag -> {'procinfo'} = { $self -> {-procinfotype} => $procinfo } if ($procinfo) 
;
  -
  +    $self -> {-rtfCmds2} -> {$cmdname} = $tag ;
  +    
       return $tag ;
       }
   
  @@ -415,22 +417,13 @@
        'end'  => '}',
           'nodename' => ':{:}:',
        'cdatatype' => ntypAttrValue,
  +     'insidemustexist' => 1,
        'inside' => \%FieldStart,
           },
       ) ;
   
   # Basic definition of Block in a RTF file
   
  -my %Blockx = (
  -    '-lsearch' => 1,
  -    'RTF field' => {
  -     'text' => '{\field',
  -     'end'  => '}',
  -        'nodename' => ':{:}:',
  -     'cdatatype' => ntypAttrValue,
  -     'inside' => \%FieldStart,
  -        },
  -    ) ;
   
   %Block = (
       '-lsearch' => 1,
  @@ -447,7 +440,8 @@
        'end'  => '}',
           'nodename' => ':{:}:',
        'cdatatype' => ntypAttrValue,
  -     'inside' => \%FieldStart,
  +     'insidemustexist' => 1,
  +        'inside' => \%FieldStart,
           },
       'RTF escape open' => {
        'text' => '\\{',
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +13 -1     embperl/test/cmp/Attic/rtfbasic.asc
  
  Index: rtfbasic.asc
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/Attic/rtfbasic.asc,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- rtfbasic.asc      2001/05/16 14:04:49     1.1.2.2
  +++ rtfbasic.asc      2001/07/25 07:20:09     1.1.2.3
  @@ -8,8 +8,20 @@
   {hash.c.2: }{1111}
   {hash.c.3: }{2222}
   
  -{\b\f1\fs80\lang1024 1}
  +{1.1} {\b\f1\fs80\lang1024 1}
  +{1.2} {\b\f1\fs80\lang1024 1}
  +{1.3} {1}
  +{1.4} {1}
  +{1.5} {1}
  +{1.6} {1}
  +{1.7} {1}
  +{2.1} {1}
  +{2.2} {1}
  +{2.3} {1}
   
   {���}
   {open \{ close \} end}
  +
  +
  +{pass this thru: }{\field{\*\fldinst { PAGE  \\* MERGEFORMAT }}{\fldrslt 
{\lang1024\langfe1024\noproof 1}}}
   
  
  
  
  1.1.2.2   +2 -2      embperl/test/cmp/Attic/rtfloop.asc
  
  Index: rtfloop.asc
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/Attic/rtfloop.asc,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- rtfloop.asc       2001/05/08 12:56:22     1.1.2.1
  +++ rtfloop.asc       2001/07/25 07:20:09     1.1.2.2
  @@ -18,7 +18,7 @@
   \jcompress\viewkind1\viewscale50\pgbrdrhead\pgbrdrfoot\nolnhtadjtbl \fet0\sectd 
\psz9\linex0\headery709\footery284\colsx709\endnhere\sectdefaultcl 
{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2
   \pnucltr\pnstart1\pnindent720\pnhang{\pntxta 
.}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta 
.}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta 
)}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6
   \pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta 
)}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta 
)}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta 
)}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
  -{\pntxtb (}{\pntxta )}}\pard\plain \qc 
\li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 
\fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 {- }{PAGE  \\* MERGEFORMAT }{-
  +{\pntxtb (}{\pntxta )}}\pard\plain \qc 
\li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 
\fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 {- }{\field{\*\fldinst { PAGE  
\\* MERGEFORMAT }}{\fldrslt {\lang1024\langfe1024\noproof 1}}}{-
   \par }{\expnd23\expndtw116 
   \par }\pard\plain \s17\qc \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 
\b\f121\fs44\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 
{\f120\fs48\expnd23\expndtw116 Teilnehmerliste 
   \par 
  @@ -67,7 +67,7 @@
   \clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2693 
\cellx5103\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 
\clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
   \cltxlrtb\clftsWidth3\clwWidth4111 \cellx9214\row }\pard \ql 
\li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f120 
   \par 
  -\par }\plain \qc \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 
\fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 {- }{PAGE  \\* MERGEFORMAT }{-
  +\par }\plain \qc \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 
\fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 {- }{\field{\*\fldinst { PAGE  
\\* MERGEFORMAT }}{\fldrslt {\lang1024\langfe1024\noproof 1}}}{-
   \par }{\expnd23\expndtw116 
   \par }\pard\plain \s17\qc \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 
\b\f121\fs44\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 
{\f120\fs48\expnd23\expndtw116 Teilnehmerliste 
   \par 
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.7   +13 -1     embperl/test/html/rtf/Attic/rtfbasic.asc
  
  Index: rtfbasic.asc
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/rtf/Attic/rtfbasic.asc,v
  retrieving revision 1.1.2.6
  retrieving revision 1.1.2.7
  diff -u -r1.1.2.6 -r1.1.2.7
  --- rtfbasic.asc      2001/05/16 14:04:57     1.1.2.6
  +++ rtfbasic.asc      2001/07/25 07:20:09     1.1.2.7
  @@ -8,7 +8,19 @@
   {hash.c.2: }{\field{\*\fldinst { MERGEFIELD hash.c.0 \\* MERGEFORMAT }}{\fldrslt }}
   {hash.c.3: }{\field{\*\fldinst { MERGEFIELD hash.c.1 }}{\fldrslt }}
   
  -{\field{\*\fldinst {\b\f1\fs80\lang1024   MERGEFIELD one }}{\fldrslt 
{\b\f1\fs80\lang1024 ----}}}
  +{1.1} {\field{\*\fldinst {\b\f1\fs80\lang1024   MERGEFIELD one }}{\fldrslt 
{\b\f1\fs80\lang1024 ----}}}
  +{1.2} {\field{\*\fldinst { \b\f1\fs80\lang1024   MERGEFIELD one}}{\fldrslt 
{\b\f1\fs80\lang1024 ----}}}
  +{1.3} {\field{\*\fldinst {MERGEFIELD one}}{\fldrslt {\b\f1\fs80\lang1024 ----}}}
  +{1.4} {\field{\*\fldinst { MERGEFIELD one}}{\fldrslt {\b\f1\fs80\lang1024 ----}}}
  +{1.5} {\field{\*\fldinst { MERGEFIELD one }}{\fldrslt {\b\f1\fs80\lang1024 ----}}}
  +{1.6} {\field{\*\fldinst {MERGEFIELD one }}{\fldrslt {\b\f1\fs80\lang1024 ----}}}
  +{1.7} {\field{\*\fldinst    {MERGEFIELD one }}   {\fldrslt {\b\f1\fs80\lang1024 
----}}}
  +{2.1} {\field{\*\fldinst MERGEFIELD one}{\fldrslt one}}
  +{2.2} {\field{\*\fldinst   MERGEFIELD one}{\fldrslt one}}
  +{2.3} {\field{\*\fldinst   MERGEFIELD   one }{\fldrslt one}}
   
   {\field{\*\fldinst {MERGEFIELD uml }}{\fldrslt {\b\f1\fs80\lang1024 ----}}}
   {\field{\*\fldinst {MERGEFIELD brace }}{\fldrslt {\b\f1\fs80\lang1024 ----}}}
  +
  +
  +{pass this thru: }{\field{\*\fldinst { PAGE  \\* MERGEFORMAT }}{\fldrslt 
{\lang1024\langfe1024\noproof 1}}}
  
  
  

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

Reply via email to