Provided by: tcl8.4-doc_8.4.20-8_all bug

NAME

       Tcl_NewIntObj,    Tcl_NewLongObj,    Tcl_NewWideIntObj,   Tcl_SetIntObj,   Tcl_SetLongObj,
       Tcl_SetWideIntObj,   Tcl_GetIntFromObj,   Tcl_GetLongFromObj,   Tcl_GetWideIntFromObj    -
       manipulate Tcl objects as integers and wide integers

SYNOPSIS

       #include <tcl.h>

       Tcl_Obj *
       Tcl_NewIntObj(intValue)

       Tcl_Obj *
       Tcl_NewLongObj(longValue)

       Tcl_Obj *                                                                                  │
       Tcl_NewWideIntObj(wideValue)                                                               │

       Tcl_SetIntObj(objPtr, intValue)

       Tcl_SetLongObj(objPtr, longValue)

       Tcl_SetWideIntObj(objPtr, wideValue)                                                       │

       int
       Tcl_GetIntFromObj(interp, objPtr, intPtr)

       int
       Tcl_GetLongFromObj(interp, objPtr, longPtr)

       int                                                                                        │
       Tcl_GetWideIntFromObj(interp, objPtr, widePtr)                                             │

ARGUMENTS

       int           intValue  (in)      Integer  value  used  to  initialize  or  set an integer
                                         object.

       long          longValue (in)      Long integer value used to initialize or set an  integer
                                         object.

       Tcl_WideInt   wideValue (in)      Wide integer value (minimum 64-bits wide where supported │
                                         by the compiler)  used  to  initialize  or  set  a  wide │
                                         integer object.

       Tcl_Obj       *objPtr   (in/out)  For       Tcl_SetIntObj,       Tcl_SetLongObj,       and │
                                         Tcl_SetWideIntObj, this  points  to  the  object  to  be │
                                         converted   to  integer  type.   For  Tcl_GetIntFromObj, │
                                         Tcl_GetLongFromObj,  and   Tcl_GetWideIntFromObj,   this │
                                         refers  to  the  object  from which to get an integer or │
                                         long integer value; if objPtr does not already point  to │
                                         an  integer object (or a wide integer object in the case │
                                         of  Tcl_SetWideIntObj  and  Tcl_GetWideIntFromObj,)   an
                                         attempt will be made to convert it to one.

       Tcl_Interp    *interp   (in/out)  If  an  error occurs during conversion, an error message
                                         is left in the interpreter's result object unless interp
                                         is NULL.

       int           *intPtr   (out)     Points  to  place to store the integer value obtained by
                                         Tcl_GetIntFromObj from objPtr.

       long          *longPtr  (out)     Points to place to store the long integer value obtained
                                         by Tcl_GetLongFromObj from objPtr.

       Tcl_WideInt   *widePtr  (out)     Points to place to store the wide integer value obtained │
                                         by Tcl_GetWideIntFromObj from objPtr.
_________________________________________________________________

DESCRIPTION

       These procedures are used to create, modify, and read integer and wide integer Tcl objects
       from  C  code.   Tcl_NewIntObj, Tcl_NewLongObj, Tcl_SetIntObj, and Tcl_SetLongObj create a
       new object of integer type or  modify  an  existing  object  to  have  integer  type,  and │
       Tcl_NewWideIntObj and Tcl_SetWideIntObj create a new object of wide integer type or modify │
       an existing object to have wide integer type.  Tcl_NewIntObj  and  Tcl_SetIntObj  set  the
       object  to have the integer value given by intValue, Tcl_NewLongObj and Tcl_SetLongObj set
       the object to have the long integer value given by longValue,  and  Tcl_NewWideIntObj  and │
       Tcl_SetWideIntObj  set  the  object  to  have  the  wide integer value given by wideValue. │
       Tcl_NewIntObj, Tcl_NewLongObj and Tcl_NewWideIntObj return a pointer to  a  newly  created │
       object  with  reference  count zero.  These procedures set the object's type to be integer │
       and assign the  integer  value  to  the  object's  internal  representation  longValue  or │
       wideValue  member  (as  appropriate).  Tcl_SetIntObj, Tcl_SetLongObj and Tcl_SetWideIntObj
       invalidate any old string representation and, if the object  is  not  already  an  integer
       object, free any old internal representation.

       Tcl_GetIntFromObj  and  Tcl_GetLongFromObj attempt to return an integer value from the Tcl
       object objPtr, and Tcl_GetWideIntFromObj attempts to return a wide integer value from  the │
       Tcl  object  objPtr.   If  the  object is not already an integer object, or a wide integer │
       object in the case of Tcl_GetWideIntFromObj they will attempt to convert it to one.  If an
       error  occurs  during  conversion, they return TCL_ERROR and leave an error message in the
       interpreter's result object unless interp is NULL.  Also, if the long integer held in  the
       object's  internal  representation longValue member can not be represented in a (non-long)
       integer,  Tcl_GetIntFromObj  returns  TCL_ERROR  and  leaves  an  error  message  in   the
       interpreter's result object unless interp is NULL.  Otherwise, all three procedures return
       TCL_OK and store the integer, long integer value or wide integer in the address  given  by │
       intPtr, longPtr and widePtr respectively.  If the object is not already an integer or wide
       integer object, the conversion will free any old internal representation.

SEE ALSO

       Tcl_NewObj, Tcl_DecrRefCount, Tcl_IncrRefCount, Tcl_GetObjResult

KEYWORDS

       integer, integer object, integer  type,  internal  representation,  object,  object  type,
       string representation