summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-10-09 07:42:21 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-10-09 07:42:21 (GMT)
commit208927f00929ae34e598875f23dedcf7494668b2 (patch)
treebdc8665319d956ac534c8964bdc1a3f54c036239
parent4a3369807be6e501ec6452edf99a73514c24d861 (diff)
parente250b6f551523bf4b6fb9ae110bac1279d5eb581 (diff)
downloadtcl-208927f00929ae34e598875f23dedcf7494668b2.zip
tcl-208927f00929ae34e598875f23dedcf7494668b2.tar.gz
tcl-208927f00929ae34e598875f23dedcf7494668b2.tar.bz2
Merge 8.5
-rw-r--r--generic/tclFileName.c42
-rw-r--r--win/tclAppInit.c2
2 files changed, 23 insertions, 21 deletions
diff --git a/generic/tclFileName.c b/generic/tclFileName.c
index b47035c..15f93f4 100644
--- a/generic/tclFileName.c
+++ b/generic/tclFileName.c
@@ -587,7 +587,8 @@ Tcl_SplitPath(
* plus the argv pointers and the terminating NULL pointer.
*/
- *argvPtr = ckalloc((((*argcPtr) + 1) * sizeof(char *)) + size);
+ *argvPtr = (const char **)ckalloc(
+ ((((*argcPtr) + 1) * sizeof(char *)) + size));
/*
* Position p after the last argv pointer and copy the contents of the
@@ -598,7 +599,7 @@ Tcl_SplitPath(
for (i = 0; i < *argcPtr; i++) {
Tcl_ListObjIndex(NULL, resultPtr, i, &eltPtr);
str = Tcl_GetStringFromObj(eltPtr, &len);
- memcpy(p, str, len+1);
+ memcpy(p, str, len + 1);
p += len+1;
}
@@ -644,12 +645,13 @@ SplitUnixPath(
{
int length;
const char *origPath = path, *elementStart;
- Tcl_Obj *result = Tcl_NewObj();
+ Tcl_Obj *result;
/*
* Deal with the root directory as a special case.
*/
+ TclNewObj(result);
if (*path == '/') {
Tcl_Obj *rootElt;
++path;
@@ -735,9 +737,10 @@ SplitWinPath(
const char *p, *elementStart;
Tcl_PathType type = TCL_PATH_ABSOLUTE;
Tcl_DString buf;
- Tcl_Obj *result = Tcl_NewObj();
+ Tcl_Obj *result;
Tcl_DStringInit(&buf);
+ TclNewObj(result);
p = ExtractWinRoot(path, &buf, 0, &type);
/*
@@ -821,7 +824,7 @@ Tcl_FSJoinToPath(
return TclJoinPath(2, pair, 0);
} else {
int elemc = objc + 1;
- Tcl_Obj *ret, **elemv = ckalloc(elemc*sizeof(Tcl_Obj *));
+ Tcl_Obj *ret, **elemv = (Tcl_Obj**)ckalloc(elemc*sizeof(Tcl_Obj *));
elemv[0] = pathPtr;
memcpy(elemv+1, objv, objc*sizeof(Tcl_Obj *));
@@ -977,7 +980,7 @@ Tcl_JoinPath(
Tcl_DString *resultPtr) /* Pointer to previously initialized DString */
{
int i, len;
- Tcl_Obj *listObj = Tcl_NewObj();
+ Tcl_Obj *listObj;
Tcl_Obj *resultObj;
const char *resultStr;
@@ -985,6 +988,7 @@ Tcl_JoinPath(
* Build the list of paths.
*/
+ TclNewObj(listObj);
for (i = 0; i < argc; i++) {
Tcl_ListObjAppendElement(NULL, listObj,
Tcl_NewStringObj(argv[i], -1));
@@ -1072,7 +1076,7 @@ Tcl_TranslateFileName(
*/
if (tclPlatform == TCL_PLATFORM_WINDOWS) {
- register char *p;
+ char *p;
for (p = Tcl_DStringValue(bufferPtr); *p != '\0'; p++) {
if (*p == '/') {
*p = '\\';
@@ -1217,7 +1221,6 @@ DoTildeSubst(
*----------------------------------------------------------------------
*/
- /* ARGSUSED */
int
Tcl_GlobObjCmd(
ClientData dummy, /* Not used. */
@@ -1235,12 +1238,13 @@ Tcl_GlobObjCmd(
"-directory", "-join", "-nocomplain", "-path", "-tails",
"-types", "--", NULL
};
- enum options {
+ enum globOptionsEnum {
GLOB_DIR, GLOB_JOIN, GLOB_NOCOMPLAIN, GLOB_PATH, GLOB_TAILS,
GLOB_TYPE, GLOB_LAST
};
enum pathDirOptions {PATH_NONE = -1 , PATH_GENERAL = 0, PATH_DIR = 1};
Tcl_GlobTypeData *globTypes = NULL;
+ (void)dummy;
globFlags = 0;
join = 0;
@@ -1268,7 +1272,7 @@ Tcl_GlobObjCmd(
}
}
- switch (index) {
+ switch ((enum globOptionsEnum) index) {
case GLOB_NOCOMPLAIN: /* -nocomplain */
globFlags |= TCL_GLOBMODE_NO_COMPLAIN;
break;
@@ -1350,7 +1354,7 @@ Tcl_GlobObjCmd(
return TCL_ERROR;
}
- separators = NULL; /* lint. */
+ separators = NULL;
switch (tclPlatform) {
case TCL_PLATFORM_UNIX:
separators = "/";
@@ -1455,7 +1459,7 @@ Tcl_GlobObjCmd(
if (length <= 0) {
goto skipTypes;
}
- globTypes = TclStackAlloc(interp, sizeof(Tcl_GlobTypeData));
+ globTypes = (Tcl_GlobTypeData *)TclStackAlloc(interp, sizeof(Tcl_GlobTypeData));
globTypes->type = 0;
globTypes->perm = 0;
globTypes->macType = NULL;
@@ -1686,9 +1690,8 @@ Tcl_GlobObjCmd(
*
* TclGlob --
*
- * This procedure prepares arguments for the DoGlob call. It sets the
- * separator string based on the platform, performs * tilde substitution,
- * and calls DoGlob.
+ * Sets the separator string based on the platform, performs tilde
+ * substitution, and calls DoGlob.
*
* The interpreter's result, on entry to this function, must be a valid
* Tcl list (e.g. it could be empty), since we will lappend any new
@@ -1711,7 +1714,6 @@ Tcl_GlobObjCmd(
*----------------------------------------------------------------------
*/
- /* ARGSUSED */
int
TclGlob(
Tcl_Interp *interp, /* Interpreter for returning error message or
@@ -1730,7 +1732,7 @@ TclGlob(
int result;
Tcl_Obj *filenamesObj, *savedResultObj;
- separators = NULL; /* lint. */
+ separators = NULL;
switch (tclPlatform) {
case TCL_PLATFORM_UNIX:
separators = "/";
@@ -2083,7 +2085,7 @@ SkipToChar(
int match) /* Character to find. */
{
int quoted, level;
- register char *p;
+ char *p;
quoted = 0;
level = 0;
@@ -2529,7 +2531,7 @@ DoGlob(
Tcl_StatBuf *
Tcl_AllocStatBuf(void)
{
- return ckalloc(sizeof(Tcl_StatBuf));
+ return (Tcl_StatBuf *)ckalloc(sizeof(Tcl_StatBuf));
}
/*
@@ -2634,7 +2636,7 @@ Tcl_GetBlocksFromStat(
#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
return (Tcl_WideUInt) statPtr->st_blocks;
#else
- register unsigned blksize = Tcl_GetBlockSizeFromStat(statPtr);
+ unsigned blksize = Tcl_GetBlockSizeFromStat(statPtr);
return ((Tcl_WideUInt) statPtr->st_size + blksize - 1) / blksize;
#endif
diff --git a/win/tclAppInit.c b/win/tclAppInit.c
index 2236da3..171edff 100644
--- a/win/tclAppInit.c
+++ b/win/tclAppInit.c
@@ -268,7 +268,7 @@ setargv(
#undef Tcl_Alloc
#undef Tcl_DbCkalloc
- argSpace = ckalloc(size * sizeof(char *)
+ argSpace = (TCHAR *)ckalloc(size * sizeof(char *)
+ (_tcslen(cmdLine) * sizeof(TCHAR)) + sizeof(TCHAR));
argv = (TCHAR **) argSpace;
argSpace += size * (sizeof(char *)/sizeof(TCHAR));