1.1 --- a/templates/progops.c Fri Mar 24 22:39:37 2017 +0100
1.2 +++ b/templates/progops.c Fri Mar 24 22:46:46 2017 +0100
1.3 @@ -186,14 +186,22 @@
1.4 unsigned int pos, kwpos;
1.5
1.6 /* Check the number of arguments. */
1.7 +
1.8 + if ((nargs == max) && (nkwargs == 0))
1.9 + {
1.10 + /* pass */
1.11 + }
1.12 +
1.13 /* NOTE: Should use a more specific exception. */
1.14
1.15 - if ((min > (nargs + nkwargs)) || ((nargs + nkwargs) > max))
1.16 + else if ((min > (nargs + nkwargs)) || ((nargs + nkwargs) > max))
1.17 + {
1.18 __raise_type_error();
1.19 + }
1.20
1.21 /* Copy the arguments. */
1.22
1.23 - if (nargs < max)
1.24 + else if (nargs < max)
1.25 {
1.26 allargs = moreargs;
1.27
1.28 @@ -238,8 +246,8 @@
1.29
1.30 return __call_with_args(
1.31 always_callable ?
1.32 - __get_function(allargs[0], target) :
1.33 - __check_and_get_function(allargs[0], target),
1.34 + __get_function_unwrapped(allargs[0], target) :
1.35 + __check_and_get_function_unwrapped(allargs[0], target),
1.36 allargs, max);
1.37 }
1.38