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 value.
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 value 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 value 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 values in the
objv array may be abbreviations for a
subcommand. The command
Tcl_GetIndexFromObj will convert the
abbreviated string value 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 value 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(3)KEYWORDS
command, error message, wrong number of arguments
Tcl 8.0 Tcl_WrongNumArgs(3)