diff options
| author | vasiljevic <zv@archiware.com> | 2006-09-07 09:17:33 (GMT) | 
|---|---|---|
| committer | vasiljevic <zv@archiware.com> | 2006-09-07 09:17:33 (GMT) | 
| commit | 8d7192b9bb9fcda7acb42ef68a34c1a743902686 (patch) | |
| tree | 24a87d9260aeac9825379096d9dfb97726dcc486 /unix/tclUnixFCmd.c | |
| parent | a997d1ebf0d281c2f1e2d4351b2c08ef1411cf8e (diff) | |
| download | tcl-8d7192b9bb9fcda7acb42ef68a34c1a743902686.zip tcl-8d7192b9bb9fcda7acb42ef68a34c1a743902686.tar.gz tcl-8d7192b9bb9fcda7acb42ef68a34c1a743902686.tar.bz2 | |
Rewritten MT-safe wrappers to return ptrs to TSD storage.
Diffstat (limited to 'unix/tclUnixFCmd.c')
| -rw-r--r-- | unix/tclUnixFCmd.c | 54 | 
1 files changed, 5 insertions, 49 deletions
| diff --git a/unix/tclUnixFCmd.c b/unix/tclUnixFCmd.c index a517da7..9cd2e1e 100644 --- a/unix/tclUnixFCmd.c +++ b/unix/tclUnixFCmd.c @@ -10,7 +10,7 @@   * See the file "license.terms" for information on usage and redistribution of   * this file, and for a DISCLAIMER OF ALL WARRANTIES.   * - * RCS: @(#) $Id: tclUnixFCmd.c,v 1.55 2006/09/06 13:23:37 vasiljevic Exp $ + * RCS: @(#) $Id: tclUnixFCmd.c,v 1.56 2006/09/07 09:17:33 vasiljevic Exp $   *   * Portions of this code were derived from NetBSD source code which has the   * following copyright notice: @@ -1290,13 +1290,7 @@ GetGroupAttribute(      Tcl_Obj **attributePtrPtr)	/* A pointer to return the object with. */  {      Tcl_StatBuf statBuf; -#ifdef TCL_THREADS -	int buflen = 512; -	char buf[512]; /* Should be really using sysconf() to get this size */ -	struct group gr, *groupPtr = NULL; -#else      struct group *groupPtr; -#endif      int result;      result = TclpObjStat(fileName, &statBuf); @@ -1310,12 +1304,7 @@ GetGroupAttribute(  	return TCL_ERROR;      } -#ifdef TCL_THREADS -	result = TclpGetGrGid(statBuf.st_gid, &gr, buf, buflen, &groupPtr); -#else -	groupPtr = getgrgid(statBuf.st_gid); -	result = 0; -#endif +    groupPtr = TclpGetGrGid(statBuf.st_gid);      if (groupPtr == NULL) {  	*attributePtrPtr = Tcl_NewIntObj((int) statBuf.st_gid); @@ -1356,13 +1345,7 @@ GetOwnerAttribute(      Tcl_Obj **attributePtrPtr)	/* A pointer to return the object with. */  {      Tcl_StatBuf statBuf; -#ifdef TCL_THREADS -	int buflen = 512; -	char buf[512]; /* Should be really using sysconf() to get this size */ -	struct passwd pw, *pwPtr = NULL; -#else      struct passwd *pwPtr; -#endif      int result;      result = TclpObjStat(fileName, &statBuf); @@ -1376,12 +1359,7 @@ GetOwnerAttribute(  	return TCL_ERROR;      } -#ifdef TCL_THREADS -	result = TclpGetPwUid(statBuf.st_uid, &pw, buf, buflen, &pwPtr); -#else -	pwPtr = getpwuid(statBuf.st_uid); -	result = 0; -#endif +    pwPtr = TclpGetPwUid(statBuf.st_uid);      if (pwPtr == NULL) {  	*attributePtrPtr = Tcl_NewIntObj((int) statBuf.st_uid); @@ -1471,25 +1449,14 @@ SetGroupAttribute(      if (Tcl_GetLongFromObj(NULL, attributePtr, &gid) != TCL_OK) {  	Tcl_DString ds; -#ifdef TCL_THREADS -	int buflen = 512; /* Should be really using sysconf() to get this size */ -	char buf[512]; -	struct group gr, *groupPtr = NULL; -#else  	struct group *groupPtr = NULL; -#endif  	CONST char *string;  	int length;  	string = Tcl_GetStringFromObj(attributePtr, &length);  	native = Tcl_UtfToExternalDString(NULL, string, length, &ds); -#ifdef TCL_THREADS -	result = TclpGetGrNam(native, &gr, buf, buflen, &groupPtr); /* INTL: Native. */ -#else -	groupPtr = getgrnam(native); /* INTL: Native. */ -	result = 0; -#endif +	groupPtr = TclpGetGrNam(native); /* INTL: Native. */  	Tcl_DStringFree(&ds);  	if (groupPtr == NULL) { @@ -1548,25 +1515,14 @@ SetOwnerAttribute(      if (Tcl_GetLongFromObj(NULL, attributePtr, &uid) != TCL_OK) {  	Tcl_DString ds; -#ifdef TCL_THREADS -	int buflen = 512; -	char buf[512]; /* Should be really using sysconf() to get this size */ -	struct passwd pw, *pwPtr = NULL; -#else  	struct passwd *pwPtr = NULL; -#endif  	CONST char *string;  	int length;  	string = Tcl_GetStringFromObj(attributePtr, &length);  	native = Tcl_UtfToExternalDString(NULL, string, length, &ds); -#ifdef TCL_THREADS -	result = TclpGetPwNam(native, &pw, buf, buflen, &pwPtr); /* INTL: Native. */ -#else -	pwPtr = getpwnam(native); /* INTL: Native. */ -	result = 0; -#endif +	pwPtr = TclpGetPwNam(native); /* INTL: Native. */  	Tcl_DStringFree(&ds);  	if (pwPtr == NULL) { | 
