bionic (3) Tcl_WrongNumArgs.3tcl.gz

Provided by: tcl8.5-doc_8.5.19-4_all bug

NAME

       Tcl_WrongNumArgs - generate standard error message for wrong number of arguments

SYNOPSIS

       #include <tcl.h>

       Tcl_WrongNumArgs(interp, objc, objv, message)

ARGUMENTS

       Tcl_Interp interp (in)                Interpreter  in  which  error  will be reported: error message gets
                                             stored in its result object.

       int objc (in)                         Number of leading arguments from objv to include in error message.

       Tcl_Obj *const objv[] (in)            Arguments to command that had the wrong number of arguments.

       const char *message (in)              Additional error information to print after leading arguments  from
                                             objv.   This  typically gives the acceptable syntax of the command.
                                             This argument may be NULL.
________________________________________________________________________________________________________________

DESCRIPTION

       Tcl_WrongNumArgs is a utility procedure that is invoked by command procedures  when  they  discover  that
       they  have  received  the wrong number of arguments.  Tcl_WrongNumArgs generates a standard error message
       and stores it in the result object of interp.  The message includes the objc  initial  elements  of  objv
       plus  message.   For  example,  if  objv  consists  of  the values foo and bar, objc is 1, and message is
       “fileName count” then interp's result object will be set to the following string:
              wrong # args: should be "foo fileName count"
       If objc is 2, the result will be set to the following string:
              wrong # args: should be "foo bar fileName count"
       Objc is usually 1, but may be 2 or more for commands like string and the Tk widget  commands,  which  use
       the first argument as a subcommand.

       Some   of  the  objects  in  the  objv  array  may  be  abbreviations  for  a  subcommand.   The  command
       Tcl_GetIndexFromObj will convert the abbreviated string object into an indexObject.  If an  error  occurs
       in  the  parsing  of  the  subcommand  we  would  like  to  use  the full subcommand name rather than the
       abbreviation.  If the Tcl_WrongNumArgs command finds any indexObjects in the objv array it will  use  the
       full  subcommand name in the error message instead of the abbreviated name that was originally passed in.
       Using the above example, let us assume that bar is actually an abbreviation for barfly and the object  is
       now  an  indexObject  because it was passed to Tcl_GetIndexFromObj.  In this case the error message would
       be:
              wrong # args: should be "foo barfly fileName count"

SEE ALSO

       Tcl_GetIndexFromObj

KEYWORDS

       command, error message, wrong number of arguments