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]