richter     01/05/28 23:28:13

  Modified:    .        embperl.h ep.h epdat.h epeval.c epnames.h eputil.c
  Log:
  Source sync
  
  Revision  Changes    Path
  1.25      +3 -3      embperl/embperl.h
  
  Index: embperl.h
  ===================================================================
  RCS file: /home/cvs/embperl/embperl.h,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- embperl.h 2001/02/13 05:39:16     1.24
  +++ embperl.h 2001/05/29 06:28:09     1.25
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: embperl.h,v 1.24 2001/02/13 05:39:16 richter Exp $
  +#   $Id: embperl.h,v 1.25 2001/05/29 06:28:09 richter Exp $
   #
   
###################################################################################*/
   
  @@ -71,8 +71,8 @@
       rcUnclosedCmd,
       rcNotAllowed,
       rcNotHashRef,
  -    rcTagMismatch
  -    
  +    rcTagMismatch,
  +    rcCleanupErr
       } ;
   
   
  
  
  
  1.37      +5 -1      embperl/ep.h
  
  Index: ep.h
  ===================================================================
  RCS file: /home/cvs/embperl/ep.h,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- ep.h      2001/05/11 04:06:49     1.36
  +++ ep.h      2001/05/29 06:28:10     1.37
  @@ -454,6 +454,9 @@
   #ifndef WIN32
   #define strnicmp strncasecmp
   #define stricmp strcasecmp
  +#else
  +#define strnicmp _strnicmp
  +#define stricmp _stricmp
   #endif
   
   void Dirname (/*in*/ const char * filename,
  @@ -472,7 +475,8 @@
   
   
   void ClearSymtab (/*i/o*/ register req * r,
  -               /*in*/  const char *    sPackage) ;
  +               /*in*/  const char *    sPackage,
  +                  /*in*/  int                 bDebug) ;
   
   void UndefSub    (/*i/o*/ register req * r,
                  /*in*/  const char *    sName, 
  
  
  
  1.31      +10 -6     embperl/epdat.h
  
  Index: epdat.h
  ===================================================================
  RCS file: /home/cvs/embperl/epdat.h,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- epdat.h   2001/04/27 06:38:00     1.30
  +++ epdat.h   2001/05/29 06:28:10     1.31
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -10,6 +10,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#   $Id: epdat.h,v 1.31 2001/05/29 06:28:10 richter Exp $
  +#
   
###################################################################################*/
   
   
  @@ -110,6 +112,8 @@
       enum tNodeType       nCDataType ;/* type for sub nodes that contains text */
       enum tNodeType       nForceType ;/* force this type for sub nodes */
       int                          bUnescape ; /* translate input?  */
  +    int                          bAddFlags ; /* add flags to node  */
  +    int                          bRemoveSpaces ;     /* 1 remove spaces before tag, 
2 remove after */
       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 */
  @@ -406,12 +410,12 @@
       
       /* --- DomTree ---*/
   
  -    tNode    xDocument ;
  -    tNode    xCurrNode ;
  -    tIndex   xCurrDomTree ;
  +    tNode    xDocument ;     /* Document node */
  +    tNode    xCurrNode ;     /* node that was last executed */
  +    tIndex   xCurrDomTree ;  /* DomTree we are currently working on */
  +    tIndex   xSourceDomTree ;/* DomTree which contains the source */
   #endif
  -    tTokenTable *  pTokenTable ;
  -
  +    struct tTokenTable *  pTokenTable ; /* holds the current syntax */
   
       /* --- Source in memory --- */
   
  
  
  
  1.29      +2 -1      embperl/epeval.c
  
  Index: epeval.c
  ===================================================================
  RCS file: /home/cvs/embperl/epeval.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- epeval.c  2001/02/13 05:39:21     1.28
  +++ epeval.c  2001/05/29 06:28:10     1.29
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epeval.c,v 1.28 2001/02/13 05:39:21 richter Exp $
  +#   $Id: epeval.c,v 1.29 2001/05/29 06:28:10 richter Exp $
   #
   
###################################################################################*/
   
  @@ -696,6 +696,7 @@
                       /*in*/  int           flags,
                       /*out*/ SV **         pRet)             
       {
  +    dTHXsem
       int   num ;         
       SV *  pSVErr ;
   
  
  
  
  1.28      +80 -1     embperl/epnames.h
  
  Index: epnames.h
  ===================================================================
  RCS file: /home/cvs/embperl/epnames.h,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- epnames.h 2001/05/02 04:08:56     1.27
  +++ epnames.h 2001/05/29 06:28:11     1.28
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epnames.h,v 1.27 2001/05/02 04:08:56 richter Exp $
  +#   $Id: epnames.h,v 1.28 2001/05/29 06:28:11 richter Exp $
   #
   
###################################################################################*/
   
  @@ -117,6 +117,85 @@
   #define InitialReq             EMBPERL_InitialReq
   #define pCurrReq               EMBPERL_pCurrReq
   
  +#define ArrayAdd                 EMBPERL_ArrayAdd               
  +#define ArrayClone               EMBPERL_ArrayClone             
  +#define ArrayFree                EMBPERL_ArrayFree              
  +#define ArrayGetSize             EMBPERL_ArrayGetSize                   
  +#define ArrayNew                 EMBPERL_ArrayNew               
  +#define ArraySet                 EMBPERL_ArraySet               
  +#define ArraySetSize             EMBPERL_ArraySetSize                   
  +#define ArraySub                 EMBPERL_ArraySub               
  +#define Attr_selfValue                   EMBPERL_Attr_selfValue                 
  +#define BuildTokenTable                  EMBPERL_BuildTokenTable                
  +#define CallStoredCV             EMBPERL_CallStoredCV                   
  +#define DefaultTokenTable        EMBPERL_DefaultTokenTable      
  +#define DomInit                          EMBPERL_DomInit                        
  +#define DomStats                 EMBPERL_DomStats               
  +#define DomTree_alloc                    EMBPERL_DomTree_alloc                  
  +#define DomTree_checkpoint       EMBPERL_DomTree_checkpoint     
  +#define DomTree_clone                    EMBPERL_DomTree_clone                  
  +#define DomTree_delete                   EMBPERL_DomTree_delete                 
  +#define DomTree_discardAfterCheckpoint   EMBPERL_DomTree_discardAfterCheckpoint
  +#define DomTree_mvtTab                   EMBPERL_DomTree_mvtTab                 
  +#define DomTree_new              EMBPERL_DomTree_new            
  +#define DomTree_selfCheckpoint           EMBPERL_DomTree_selfCheckpoint         
  +#define DomTree_selfDiscardAfterCheckpoint   
EMBPERL_DomTree_selfDiscardAfterCheckpoint  
  +#define Element_selfGetAttribut     EMBPERL_Element_selfGetAttribut    
  +#define Element_selfGetNthAttribut  EMBPERL_Element_selfGetNthAttribut 
  +#define Element_selfRemoveAttribut  EMBPERL_Element_selfRemoveAttribut 
  +#define Element_selfSetAttribut     EMBPERL_Element_selfSetAttribut    
  +#define EvalStore                EMBPERL_EvalStore              
  +#define NdxStringFree                    EMBPERL_NdxStringFree                  
  +#define NodeList_toString        EMBPERL_NodeList_toString      
  +#define Node_appendChild         EMBPERL_Node_appendChild       
  +#define Node_childsText                  EMBPERL_Node_childsText                
  +#define Node_cloneNode                   EMBPERL_Node_cloneNode                 
  +#define Node_insertAfter         EMBPERL_Node_insertAfter       
  +#define Node_insertAfter_CDATA      EMBPERL_Node_insertAfter_CDATA     
  +#define Node_newAndAppend        EMBPERL_Node_newAndAppend      
  +#define Node_nextSibling         EMBPERL_Node_nextSibling       
  +#define Node_previousSibling     EMBPERL_Node_previousSibling           
  +#define Node_removeChild         EMBPERL_Node_removeChild       
  +#define Node_replaceChildWithCDATA  EMBPERL_Node_replaceChildWithCDATA 
  +#define Node_replaceChildWithNode   EMBPERL_Node_replaceChildWithNode  
  +#define Node_replaceChildWithUrlDATA    EMBPERL_Node_replaceChildWithUrlDATA
  +#define Node_selfCloneNode       EMBPERL_Node_selfCloneNode     
  +#define Node_selfCondCloneNode      EMBPERL_Node_selfCondCloneNode     
  +#define Node_selfExpand                  EMBPERL_Node_selfExpand                
  +#define Node_selfLastChild       EMBPERL_Node_selfLastChild     
  +#define Node_selfNextSibling     EMBPERL_Node_selfNextSibling           
  +#define Node_selfNthChild        EMBPERL_Node_selfNthChild      
  +#define Node_selfPreviousSibling    EMBPERL_Node_selfPreviousSibling   
  +#define Node_selfRemoveChild     EMBPERL_Node_selfRemoveChild           
  +#define Node_toString                    EMBPERL_Node_toString                  
  +#define Node_toString2                   EMBPERL_Node_toString2                 
  +#define ParseFile                EMBPERL_ParseFile
  +#define String2NdxInc                    EMBPERL_String2NdxInc                  
  +#define StringAdd                EMBPERL_StringAdd              
  +#define StringFree               EMBPERL_StringFree             
  +#define StringNew                EMBPERL_StringNew              
  +#define dom_free                 EMBPERL_dom_free               
  +#define dom_malloc               EMBPERL_dom_malloc             
  +#define dom_realloc              EMBPERL_dom_realloc            
  +#define mydie                            EMBPERL_mydie                          
  +#define nCheckpointCache         EMBPERL_nCheckpointCache       
  +#define nCheckpointCacheMask     EMBPERL_nCheckpointCacheMask           
  +#define nInitialNodePadSize      EMBPERL_nInitialNodePadSize    
  +#define pDomTrees                EMBPERL_pDomTrees              
  +#define pFreeDomTrees                    EMBPERL_pFreeDomTrees                  
  +#define pStringTableArray        EMBPERL_pStringTableArray      
  +#define pStringTableHash         EMBPERL_pStringTableHash       
  +#define str_free                 EMBPERL_str_free               
  +#define str_malloc               EMBPERL_str_malloc             
  +#define str_realloc              EMBPERL_str_realloc            
  +#define xCheckpointCache         EMBPERL_xCheckpointCache       
  +#define xDocument                EMBPERL_xDocument              
  +#define xDocumentFraq                    EMBPERL_xDocumentFraq                  
  +#define xDomTreeAttr             EMBPERL_xDomTreeAttr                   
  +#define xNoName                          EMBPERL_xNoName                        
  +#define xOrderIndexAttr                  EMBPERL_xOrderIndexAttr                
  + 
  + 
   #ifndef PERL_VERSION
   #include <patchlevel.h>
   #define PERL_VERSION PATCHLEVEL
  
  
  
  1.22      +58 -8     embperl/eputil.c
  
  Index: eputil.c
  ===================================================================
  RCS file: /home/cvs/embperl/eputil.c,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- eputil.c  2001/05/10 19:08:17     1.21
  +++ eputil.c  2001/05/29 06:28:11     1.22
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: eputil.c,v 1.21 2001/05/10 19:08:17 richter Exp $
  +#   $Id: eputil.c,v 1.22 2001/05/29 06:28:11 richter Exp $
   #
   
###################################################################################*/
   
  @@ -880,13 +880,15 @@
   
   
   void ClearSymtab (/*i/o*/ register req * r,
  -               /*in*/  const char *    sPackage) 
  +               /*in*/  const char *   sPackage,
  +                  /*in*/  int                 bDebug) 
   
       {
  +    dTHXsem 
       SV *     val;
       char *   key;
       I32              klen;
  -    int              bDebug = 1 ;
  +    
       SV *     sv;
       HV *     hv;
       AV *     av;
  @@ -900,6 +902,7 @@
       HV *     pCleanupHV ;
       char *      s ;
       GV *     pFileGV ;
  +    char *      sObjName ;
       /*
       GV *     symtabgv ;
       GV *     symtabfilegv ;
  @@ -1005,20 +1008,67 @@
            */
            }
        
  +     sObjName = NULL ;
        
  -     if((sv = GvSV((GV*)val)) && SvOK (sv))
  +        lprintf (r, "[%d]CUP: type = %d flags=%x\n", r -> nPid, SvTYPE 
(GvSV((GV*)val)), SvFLAGS (GvSV((GV*)val))) ;
  +        if((sv = GvSV((GV*)val)) && SvTYPE (sv) == SVt_PVMG)
  +         {
  +            HV * pStash = SvSTASH (sv) ;
  +
  +            if (pStash)
  +                {
  +                sObjName = HvNAME(pStash) ;
  +                if (sObjName && strcmp (sObjName, "DBIx::Recordset") == 0)
  +                    {
  +                    SV * pSV = newSVpvf ("DBIx::Recordset::Undef ('%s')", s) ;
  +
  +                 if (bDebug)
  +                     lprintf (r, "[%d]CUP: Recordset *%s\n", r -> nPid, s) ;
  +                    EvalDirect (r, pSV, 0, NULL) ;
  +                    SvREFCNT_dec (pSV) ;
  +                    }
  +                }
  +            }
  +
  +        if((sv = GvSV((GV*)val)) && SvROK (sv) && SvOBJECT (SvRV(sv)))
            {
  +            HV * pStash = SvSTASH (SvRV(sv)) ;
  +        lprintf (r, "[%d]CUP: rv type = %d\n", r -> nPid, SvTYPE 
(SvRV(GvSV((GV*)val)))) ;
  +            if (pStash)
  +                {
  +                sObjName = HvNAME(pStash) ;
  +                if (sObjName && strcmp (sObjName, "DBIx::Recordset") == 0)
  +                    {
  +                    SV * pSV = newSVpvf ("DBIx::Recordset::Undef ('%s')", s) ;
  +
  +                 if (bDebug)
  +                     lprintf (r, "[%d]CUP: Recordset *%s\n", r -> nPid, s) ;
  +                    EvalDirect (r, pSV, 0, NULL) ;
  +                    SvREFCNT_dec (pSV) ;
  +                    }
  +                }
  +            }
  +     if((sv = GvSV((GV*)val)) && (SvOK (sv) || SvROK (sv)))
  +         {
            if (bDebug)
  -             lprintf (r, "[%d]CUP: $%s = %s\n", r -> nPid, s, SvPV (sv, l)) ;
  +                lprintf (r, "[%d]CUP: $%s = %s %s%s\n", r -> nPid, s, SvPV (sv, l), 
sObjName?" Object of ":"", sObjName?sObjName:"") ;
        
  -         sv_unmagic (sv, 'q') ; /* untie */
  -         sv_setsv(sv, &sv_undef);
  +         if ((sv = GvSV((GV*)val)) && SvREADONLY (sv))
  +             {
  +             if (bDebug)
  +                 lprintf (r, "[%d]CUP: Ignore %s because it's readonly\n", r -> 
nPid, s) ;
  +             }
  +            else
  +                {
  +             sv_unmagic (sv, 'q') ; /* untie */
  +             sv_setsv(sv, &sv_undef);
  +                }
            }
        if((hv = GvHV((GV*)val)))
            {
            if (bDebug)
                lprintf (r, "[%d]CUP: %%%s = ...\n", r -> nPid, s) ;
  -         sv_unmagic ((SV *)hv, 'P') ; /* untie */
  +            sv_unmagic ((SV *)hv, 'P') ; /* untie */
            hv_clear(hv);
            }
        if((av = GvAV((GV*)val)))
  
  
  

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

Reply via email to