Tcl_WrongNumArgs
Tcl_WrongNumArgs(3) Tcl Library Procedures Tcl_WrongNumArgs(3)
______________________________________________________________________________
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 mes-
sage.
Tcl_Obj *CONST objv[] (in) Arguments to command that had
the wrong number of arguments.
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 pro-
cedures 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 con-
sists 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 sub-
command. 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 origionally
passed in. Using the above example, lets assume that bar is actually
an abbreviation for barfly and the object is now an indexObject becasue
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
Tcl 8.0 Tcl_WrongNumArgs(3)