(void) realpath(dirname(thePath), theNormalizedPath);
(void) realpath(dirname(tmpPath), theNormalizedPath);
CompatFileNormalize(Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[]){	int theResult = TCL_OK;	do {		char* thePath;		char* theBaseName;		char theNormalizedPath[PATH_MAX];		int pathlength;		int baselength;				/*	unique (second) parameter is the file path */		if (objc != 3) {			Tcl_WrongNumArgs(interp, 1, objv, "filenormalize path");			theResult = TCL_ERROR;			break;		}		/* retrieve the parameter */		thePath = Tcl_GetString(objv[2]);				/* normalize the dir name */		(void) realpath(dirname(thePath), theNormalizedPath);				/* append the base name */		pathlength = strlen(theNormalizedPath);		theBaseName = basename(thePath);		baselength = strlen(theBaseName);		if (pathlength + baselength + 1 >= PATH_MAX)		{			Tcl_SetResult(interp, "path is too long", TCL_STATIC);			theResult = TCL_ERROR;			break;		}		theNormalizedPath[pathlength] = '/';		/* copy with null terminator */		(void) memcpy(					&theNormalizedPath[pathlength + 1],					theBaseName,					baselength + 1);				Tcl_SetResult(interp, theNormalizedPath, TCL_VOLATILE);    } while (0);    	return theResult;}