summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavygrvy <davygrvy@pobox.com>2004-10-27 17:13:58 (GMT)
committerdavygrvy <davygrvy@pobox.com>2004-10-27 17:13:58 (GMT)
commitae40e74a872262866a65b2bdbe48cfd49bfe7a61 (patch)
treed38e2e996f76b486c2c2fb432f57ca4fececc7e2
parentbbf8d929edc48523f1dbbb816c26ccc93a57518f (diff)
downloadtcl-ae40e74a872262866a65b2bdbe48cfd49bfe7a61.zip
tcl-ae40e74a872262866a65b2bdbe48cfd49bfe7a61.tar.gz
tcl-ae40e74a872262866a65b2bdbe48cfd49bfe7a61.tar.bz2
* generic/tclInt.decls: The following 9 functions were moved from
* generic/tclInt.h: tclInt.h to the internal Stubs table for * generic/tclIntDecls.h: use by the test suite. As tclTest.obj is * generic/tclStubInit.c: linked to the shell, these functions need "blessed" status so as to always be exported from the library. Being placed in the Stubs table guarantees this [Bug 1054748]: TclpObjRemoveDirectory, TclpObjCopyDirectory, TclpObjCreateDirectory, TclpObjDeleteFile, TclpObjCopyFile, TclpObjRenameFile, TclpObjStat, TclpObjAccess, TclpOpenFileChannel
-rw-r--r--generic/tclInt.decls34
-rw-r--r--generic/tclInt.h19
-rw-r--r--generic/tclIntDecls.h102
-rw-r--r--generic/tclStubInit.c11
4 files changed, 145 insertions, 21 deletions
diff --git a/generic/tclInt.decls b/generic/tclInt.decls
index 36b19a8..3b5dc5d 100644
--- a/generic/tclInt.decls
+++ b/generic/tclInt.decls
@@ -12,7 +12,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: tclInt.decls,v 1.81 2004/10/14 15:06:02 dkf Exp $
+# RCS: @(#) $Id: tclInt.decls,v 1.82 2004/10/27 17:13:58 davygrvy Exp $
library tcl
@@ -810,6 +810,38 @@ declare 199 generic {
int TclMatchIsTrivial(CONST char *pattern)
}
+# 200-208 exported for use by the test suite [Bug 1054748]
+declare 200 generic {
+ int TclpObjRemoveDirectory (Tcl_Obj *pathPtr, int recursive,
+ Tcl_Obj **errorPtr)
+}
+declare 201 generic {
+ int TclpObjCopyDirectory (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr,
+ Tcl_Obj **errorPtr)
+}
+declare 202 generic {
+ int TclpObjCreateDirectory (Tcl_Obj *pathPtr)
+}
+declare 203 generic {
+ int TclpObjDeleteFile (Tcl_Obj *pathPtr)
+}
+declare 204 generic {
+ int TclpObjCopyFile (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr)
+}
+declare 205 generic {
+ int TclpObjRenameFile (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr)
+}
+declare 206 generic {
+ int TclpObjStat (Tcl_Obj *pathPtr, Tcl_StatBuf *buf)
+}
+declare 207 generic {
+ int TclpObjAccess (Tcl_Obj *pathPtr, int mode)
+}
+declare 208 generic {
+ Tcl_Channel TclpOpenFileChannel (Tcl_Interp *interp,
+ Tcl_Obj *pathPtr, int mode, int permissions)
+}
+
##############################################################################
# Define the platform specific internal Tcl interface. These functions are
diff --git a/generic/tclInt.h b/generic/tclInt.h
index a13d351..ca5727c 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclInt.h,v 1.188 2004/10/26 16:19:58 msofer Exp $
+ * RCS: @(#) $Id: tclInt.h,v 1.189 2004/10/27 17:13:58 davygrvy Exp $
*/
#ifndef _TCLINT
@@ -1839,8 +1839,6 @@ EXTERN int TclParseWhiteSpace _ANSI_ARGS_((CONST char *src,
int numBytes, Tcl_Parse *parsePtr, char *typePtr));
EXTERN int TclProcessReturn _ANSI_ARGS_((Tcl_Interp *interp,
int code, int level, Tcl_Obj *returnOpts));
-EXTERN int TclpObjAccess _ANSI_ARGS_((Tcl_Obj *filename,
- int mode));
EXTERN int TclpObjLstat _ANSI_ARGS_((Tcl_Obj *pathPtr,
Tcl_StatBuf *buf));
EXTERN int TclpCheckStackSpace _ANSI_ARGS_((void));
@@ -1883,7 +1881,6 @@ EXTERN int TclpMatchFiles _ANSI_ARGS_((Tcl_Interp *interp,
char *pattern, char *tail));
EXTERN int TclpObjNormalizePath _ANSI_ARGS_((Tcl_Interp *interp,
Tcl_Obj *pathPtr, int nextCheckpoint));
-EXTERN int TclpObjCreateDirectory _ANSI_ARGS_((Tcl_Obj *pathPtr));
EXTERN void TclpNativeJoinPath _ANSI_ARGS_((Tcl_Obj *prefix,
char *joining));
EXTERN Tcl_Obj* TclpNativeSplitPath _ANSI_ARGS_((Tcl_Obj *pathPtr,
@@ -1892,15 +1889,6 @@ EXTERN Tcl_PathType TclpGetNativePathType _ANSI_ARGS_((Tcl_Obj *pathPtr,
int *driveNameLengthPtr, Tcl_Obj **driveNameRef));
EXTERN int TclCrossFilesystemCopy _ANSI_ARGS_((Tcl_Interp *interp,
Tcl_Obj *source, Tcl_Obj *target));
-EXTERN int TclpObjDeleteFile _ANSI_ARGS_((Tcl_Obj *pathPtr));
-EXTERN int TclpObjCopyDirectory _ANSI_ARGS_((Tcl_Obj *srcPathPtr,
- Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr));
-EXTERN int TclpObjCopyFile _ANSI_ARGS_((Tcl_Obj *srcPathPtr,
- Tcl_Obj *destPathPtr));
-EXTERN int TclpObjRemoveDirectory _ANSI_ARGS_((Tcl_Obj *pathPtr,
- int recursive, Tcl_Obj **errorPtr));
-EXTERN int TclpObjRenameFile _ANSI_ARGS_((Tcl_Obj *srcPathPtr,
- Tcl_Obj *destPathPtr));
EXTERN int TclpMatchInDirectory _ANSI_ARGS_((Tcl_Interp *interp,
Tcl_Obj *resultPtr, Tcl_Obj *pathPtr,
CONST char *pattern, Tcl_GlobTypeData *types));
@@ -1911,11 +1899,6 @@ EXTERN Tcl_Obj* TclpObjLink _ANSI_ARGS_((Tcl_Obj *pathPtr,
EXTERN int TclpObjChdir _ANSI_ARGS_((Tcl_Obj *pathPtr));
EXTERN Tcl_Obj* TclPathPart _ANSI_ARGS_((Tcl_Interp *interp,
Tcl_Obj *pathPtr, Tcl_PathPart portion));
-EXTERN int TclpObjStat _ANSI_ARGS_((Tcl_Obj *pathPtr,
- Tcl_StatBuf *buf));
-EXTERN Tcl_Channel TclpOpenFileChannel _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *pathPtr, int mode,
- int permissions));
EXTERN void TclpCutFileChannel _ANSI_ARGS_((Tcl_Channel chan));
EXTERN void TclpCutSockChannel _ANSI_ARGS_((Tcl_Channel chan));
EXTERN void TclpSpliceFileChannel _ANSI_ARGS_((Tcl_Channel chan));
diff --git a/generic/tclIntDecls.h b/generic/tclIntDecls.h
index 6f80d37..7549771 100644
--- a/generic/tclIntDecls.h
+++ b/generic/tclIntDecls.h
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclIntDecls.h,v 1.71 2004/10/14 15:06:02 dkf Exp $
+ * RCS: @(#) $Id: tclIntDecls.h,v 1.72 2004/10/27 17:13:58 davygrvy Exp $
*/
#ifndef _TCLINTDECLS
@@ -1024,6 +1024,61 @@ EXTERN int TclObjGetFrame _ANSI_ARGS_((Tcl_Interp * interp,
/* 199 */
EXTERN int TclMatchIsTrivial _ANSI_ARGS_((CONST char * pattern));
#endif
+#ifndef TclpObjRemoveDirectory_TCL_DECLARED
+#define TclpObjRemoveDirectory_TCL_DECLARED
+/* 200 */
+EXTERN int TclpObjRemoveDirectory _ANSI_ARGS_((
+ Tcl_Obj * pathPtr, int recursive,
+ Tcl_Obj ** errorPtr));
+#endif
+#ifndef TclpObjCopyDirectory_TCL_DECLARED
+#define TclpObjCopyDirectory_TCL_DECLARED
+/* 201 */
+EXTERN int TclpObjCopyDirectory _ANSI_ARGS_((
+ Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr,
+ Tcl_Obj ** errorPtr));
+#endif
+#ifndef TclpObjCreateDirectory_TCL_DECLARED
+#define TclpObjCreateDirectory_TCL_DECLARED
+/* 202 */
+EXTERN int TclpObjCreateDirectory _ANSI_ARGS_((
+ Tcl_Obj * pathPtr));
+#endif
+#ifndef TclpObjDeleteFile_TCL_DECLARED
+#define TclpObjDeleteFile_TCL_DECLARED
+/* 203 */
+EXTERN int TclpObjDeleteFile _ANSI_ARGS_((Tcl_Obj * pathPtr));
+#endif
+#ifndef TclpObjCopyFile_TCL_DECLARED
+#define TclpObjCopyFile_TCL_DECLARED
+/* 204 */
+EXTERN int TclpObjCopyFile _ANSI_ARGS_((Tcl_Obj * srcPathPtr,
+ Tcl_Obj * destPathPtr));
+#endif
+#ifndef TclpObjRenameFile_TCL_DECLARED
+#define TclpObjRenameFile_TCL_DECLARED
+/* 205 */
+EXTERN int TclpObjRenameFile _ANSI_ARGS_((Tcl_Obj * srcPathPtr,
+ Tcl_Obj * destPathPtr));
+#endif
+#ifndef TclpObjStat_TCL_DECLARED
+#define TclpObjStat_TCL_DECLARED
+/* 206 */
+EXTERN int TclpObjStat _ANSI_ARGS_((Tcl_Obj * pathPtr,
+ Tcl_StatBuf * buf));
+#endif
+#ifndef TclpObjAccess_TCL_DECLARED
+#define TclpObjAccess_TCL_DECLARED
+/* 207 */
+EXTERN int TclpObjAccess _ANSI_ARGS_((Tcl_Obj * pathPtr,
+ int mode));
+#endif
+#ifndef TclpOpenFileChannel_TCL_DECLARED
+#define TclpOpenFileChannel_TCL_DECLARED
+/* 208 */
+EXTERN Tcl_Channel TclpOpenFileChannel _ANSI_ARGS_((Tcl_Interp * interp,
+ Tcl_Obj * pathPtr, int mode, int permissions));
+#endif
typedef struct TclIntStubs {
int magic;
@@ -1244,6 +1299,15 @@ typedef struct TclIntStubs {
int (*tclCompEvalObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 197 */
int (*tclObjGetFrame) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, CallFrame ** framePtrPtr)); /* 198 */
int (*tclMatchIsTrivial) _ANSI_ARGS_((CONST char * pattern)); /* 199 */
+ int (*tclpObjRemoveDirectory) _ANSI_ARGS_((Tcl_Obj * pathPtr, int recursive, Tcl_Obj ** errorPtr)); /* 200 */
+ int (*tclpObjCopyDirectory) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr, Tcl_Obj ** errorPtr)); /* 201 */
+ int (*tclpObjCreateDirectory) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 202 */
+ int (*tclpObjDeleteFile) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 203 */
+ int (*tclpObjCopyFile) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr)); /* 204 */
+ int (*tclpObjRenameFile) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr)); /* 205 */
+ int (*tclpObjStat) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_StatBuf * buf)); /* 206 */
+ int (*tclpObjAccess) _ANSI_ARGS_((Tcl_Obj * pathPtr, int mode)); /* 207 */
+ Tcl_Channel (*tclpOpenFileChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * pathPtr, int mode, int permissions)); /* 208 */
} TclIntStubs;
#ifdef __cplusplus
@@ -1931,6 +1995,42 @@ extern TclIntStubs *tclIntStubsPtr;
#define TclMatchIsTrivial \
(tclIntStubsPtr->tclMatchIsTrivial) /* 199 */
#endif
+#ifndef TclpObjRemoveDirectory
+#define TclpObjRemoveDirectory \
+ (tclIntStubsPtr->tclpObjRemoveDirectory) /* 200 */
+#endif
+#ifndef TclpObjCopyDirectory
+#define TclpObjCopyDirectory \
+ (tclIntStubsPtr->tclpObjCopyDirectory) /* 201 */
+#endif
+#ifndef TclpObjCreateDirectory
+#define TclpObjCreateDirectory \
+ (tclIntStubsPtr->tclpObjCreateDirectory) /* 202 */
+#endif
+#ifndef TclpObjDeleteFile
+#define TclpObjDeleteFile \
+ (tclIntStubsPtr->tclpObjDeleteFile) /* 203 */
+#endif
+#ifndef TclpObjCopyFile
+#define TclpObjCopyFile \
+ (tclIntStubsPtr->tclpObjCopyFile) /* 204 */
+#endif
+#ifndef TclpObjRenameFile
+#define TclpObjRenameFile \
+ (tclIntStubsPtr->tclpObjRenameFile) /* 205 */
+#endif
+#ifndef TclpObjStat
+#define TclpObjStat \
+ (tclIntStubsPtr->tclpObjStat) /* 206 */
+#endif
+#ifndef TclpObjAccess
+#define TclpObjAccess \
+ (tclIntStubsPtr->tclpObjAccess) /* 207 */
+#endif
+#ifndef TclpOpenFileChannel
+#define TclpOpenFileChannel \
+ (tclIntStubsPtr->tclpOpenFileChannel) /* 208 */
+#endif
#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index de789c6..36b7247 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclStubInit.c,v 1.105 2004/10/14 15:06:03 dkf Exp $
+ * RCS: @(#) $Id: tclStubInit.c,v 1.106 2004/10/27 17:13:58 davygrvy Exp $
*/
#include "tclInt.h"
@@ -284,6 +284,15 @@ TclIntStubs tclIntStubs = {
TclCompEvalObj, /* 197 */
TclObjGetFrame, /* 198 */
TclMatchIsTrivial, /* 199 */
+ TclpObjRemoveDirectory, /* 200 */
+ TclpObjCopyDirectory, /* 201 */
+ TclpObjCreateDirectory, /* 202 */
+ TclpObjDeleteFile, /* 203 */
+ TclpObjCopyFile, /* 204 */
+ TclpObjRenameFile, /* 205 */
+ TclpObjStat, /* 206 */
+ TclpObjAccess, /* 207 */
+ TclpOpenFileChannel, /* 208 */
};
TclIntPlatStubs tclIntPlatStubs = {