summaryrefslogtreecommitdiffstats
path: root/generic/tclObj.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclObj.c')
-rw-r--r--generic/tclObj.c72
1 files changed, 30 insertions, 42 deletions
diff --git a/generic/tclObj.c b/generic/tclObj.c
index a6621e3..adcf131 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -13,7 +13,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclObj.c,v 1.157 2009/09/16 21:17:24 ferrieux Exp $
+ * RCS: @(#) $Id: tclObj.c,v 1.158 2009/09/17 08:37:03 das Exp $
*/
#include "tclInt.h"
@@ -4379,56 +4379,44 @@ Tcl_RepresentationCmd(
int objc,
Tcl_Obj *const objv[])
{
- char s_refcount[TCL_INTEGER_SPACE+1];
- char s_tclobj[TCL_INTEGER_SPACE+1];
- char s_intrep[2*TCL_INTEGER_SPACE+3];
-#define TCLOBJ_TRUNCATE_STREP 16
- char s_strep[TCLOBJ_TRUNCATE_STREP+1];
+ char refcountBuffer[TCL_INTEGER_SPACE+1];
+ char objPtrBuffer[TCL_INTEGER_SPACE+3];
+ char internalRepBuffer[2*(TCL_INTEGER_SPACE+3)+1];
+#define TCLOBJ_TRUNCATE_STRINGREP 16
+ char stringRepBuffer[TCLOBJ_TRUNCATE_STRINGREP+1];
if (objc != 2) {
Tcl_WrongNumArgs(interp, 1, objv, "value");
return TCL_ERROR;
}
- /*
- value is a bignum with a refcount of 14, object pointer at
- 0x12345678 and intrep 0x45671234:0x98765432, strep: "1872361827361287"...
- */
-
- sprintf(s_refcount,"%d",objv[1]->refCount);
- sprintf(s_tclobj,"%p",(void *)objv[1]);
- Tcl_AppendResult(interp,
- "value is a ",
- (objv[1]->typePtr != NULL)?objv[1]->typePtr->name:"pure string",
- " with a refcount of ",
- s_refcount,
- ", object pointer at ",
- s_tclobj,
- NULL);
-
- if (objv[1]->typePtr != NULL) {
- sprintf(s_intrep,"%p:%p",(void *)objv[1]->internalRep.twoPtrValue.ptr1,(void *)objv[1]->internalRep.twoPtrValue.ptr2);
- Tcl_AppendResult(interp,
- " and intrep ",
- s_intrep,
- NULL);
- }
+ /*
+ * value is a bignum with a refcount of 14, object pointer at
+ * 0x12345678, internal representation 0x45671234:0x98765432,
+ * string representation "1872361827361287"
+ */
- if (objv[1]->bytes != NULL) {
- strncpy(s_strep,objv[1]->bytes,TCLOBJ_TRUNCATE_STREP);
- s_strep[TCLOBJ_TRUNCATE_STREP]=0;
- Tcl_AppendResult(interp,
- ", strep: \"",
- s_strep,
- (objv[1]->length>TCLOBJ_TRUNCATE_STREP)?"\"...":"\".",
- NULL);
+ sprintf(refcountBuffer, "%d", objv[1]->refCount);
+ sprintf(objPtrBuffer, "%p", (void *)objv[1]);
+ Tcl_AppendResult(interp, "value is a ", objv[1]->typePtr ?
+ objv[1]->typePtr->name : "pure string", " with a refcount of ",
+ refcountBuffer, ", object pointer at ", objPtrBuffer, NULL);
+ if (objv[1]->typePtr) {
+ sprintf(internalRepBuffer, "%p:%p",
+ (void *)objv[1]->internalRep.twoPtrValue.ptr1,
+ (void *)objv[1]->internalRep.twoPtrValue.ptr2);
+ Tcl_AppendResult(interp, ", internal representation ",
+ internalRepBuffer, NULL);
+ }
+ if (objv[1]->bytes) {
+ strncpy(stringRepBuffer, objv[1]->bytes, TCLOBJ_TRUNCATE_STRINGREP);
+ stringRepBuffer[TCLOBJ_TRUNCATE_STRINGREP] = 0;
+ Tcl_AppendResult(interp, ", string representation \"",
+ stringRepBuffer, objv[1]->length > TCLOBJ_TRUNCATE_STRINGREP ?
+ "\"..." : "\".", NULL);
} else {
- Tcl_AppendResult(interp,
- ", no strep.",
- NULL);
-
+ Tcl_AppendResult(interp, ", no string representation.", NULL);
}
-
return TCL_OK;
}