Pegasus InfoCorp: Web site design and web software development company

Tcl_IntObj (3)

manipulate Tcl objects as integers

SYNOPSIS

    #include <tcl.h>
    Tcl_Obj *
    Tcl_NewIntObj(intValue)
    Tcl_Obj *
    Tcl_NewLongObj(longValue)
    Tcl_SetIntObj(objPtr, intValue)
    Tcl_SetLongObj(objPtr, longValue)
    int
    Tcl_GetIntFromObj(interp, objPtr, intPtr)
    int
    Tcl_GetLongFromObj(interp, objPtr, longPtr)
    

ARGUMENTS

    Tcl_Interp *interp 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_Obj *objPtr in/out For Tcl_SetIntObj and Tcl_SetLongObj, this points to the object to be converted to integer type. For Tcl_GetIntFromObj and Tcl_GetLongFromObj, 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, 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.

DESCRIPTION

    These procedures are used to create, modify, and read 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. Tcl_NewIntObj and Tcl_SetIntObj set the object to have the integer value given by intValue, while Tcl_NewLongObj and Tcl_SetLongObj set the object to have the long integer value given by longValue. Tcl_NewIntObj and Tcl_NewLongObj 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 member. Tcl_SetIntObj and Tcl_SetLongObj 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. If the object is not already an integer object, 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, both procedures return TCL_OK and store the integer or the long integer value in the address given by intPtr and longPtr respectively. If the object is not already an 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 '\" '\" Copyright (c) 1995-1997 Sun Microsystems, Inc. '\" '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" '\" RCS: @(#) $Id: Notifier.3,v 1.2 1998/09/14 18:39:49 stanton Exp $ '\" '\" The definitions below are for supplemental macros used in Tcl/Tk '\" manual entries. '\" '\" .AP type name in/out ?indent? '\" Start paragraph describing an argument to a library procedure. '\" type is type of argument (int, etc.), in/out is either "in", "out", '\" or "in/out" to describe whether procedure reads or modifies arg, '\" and indent is equivalent to second arg of .IP (shouldn't ever be '\" needed; use .AS below instead) '\" '\" .AS ?type? ?name? '\" Give maximum sizes of arguments for setting tab stops. Type and '\" name are examples of largest possible arguments that will be passed '\" to .AP later. If args are omitted, default tab stops are used. '\" '\" .BS '\" Start box enclosure. From here until next .BE, everything will be '\" enclosed in one large box. '\" '\" .BE '\" End of box enclosure. '\" '\" .CS '\" Begin code excerpt. '\" '\" .CE '\" End code excerpt. '\" '\" .VS ?version? ?br? '\" Begin vertical sidebar, for use in marking newly-changed parts '\" of man pages. The first argument is ignored and used for recording '\" the version when the .VS was added, so that the sidebars can be '\" found and removed when they reach a certain age. If another argument '\" is present, then a line break is forced before starting the sidebar. '\" '\" .VE '\" End of vertical sidebar. '\" '\" .DS '\" Begin an indented unfilled display. '\" '\" .DE '\" End of indented unfilled display. '\" '\" .SO '\" Start of list of standard options for a Tk widget. The '\" options follow on successive lines, in four columns separated '\" by tabs. '\" '\" .SE '\" End of list of standard options for a Tk widget. '\" '\" .OP cmdName dbName dbClass '\" Start of description of a specific option. cmdName gives the '\" option's name as specified in the class command, dbName gives '\" the option's name in the option database, and dbClass gives '\" the option's class in the option database. '\" '\" .UL arg1 arg2 '\" Print arg1 underlined, then print arg2 normally. '\" '\" RCS: @(#) $Id: man.macros,v 1.2 1998/09/14 18:39:54 stanton Exp $ '\" '\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. t .wh -1.3i ^B ^l \n(.l b '\" # Start an argument description AP !"\\$4"" .TP \\$4 \{\ !"\\$2"" .TP \\n()Cu .TP 15