TCLコマンドの私のC側の実装では、たとえば、次の署名で:
myfunc(ClientData c、Tcl_Interp * interp、int objc、Tcl_Obj * const objv []);
objcが渡された引数の数よりも大きい場合があり、対応するobjv値が「0」または「1」のいずれかであることがわかりました。
グーグルでそのような問題を報告することはできません。TCL側のどこかが間違っているはずですが、どうしてか理解できませんでした。
私のTCL側が2つの引数または3つの引数のいずれかでコマンドを呼び出しています-
myfunc arg1 "word1 word2"
<... some code ...>
myfunc arg1 "" "checker1 checker2"
最初の呼び出しは2つの引数で、次の3つの引数です。
私が言及した問題は、2つの引数を期待する場合、「objc」が3で、「objv[3]」が「0」または「1」のいずれかであることがわかります。