1.1 --- a/templates/progops.c Thu Mar 23 23:36:32 2017 +0100
1.2 +++ b/templates/progops.c Fri Mar 24 19:07:01 2017 +0100
1.3 @@ -204,14 +204,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 @@ -253,7 +261,10 @@
1.29
1.30 /* Call with the prepared arguments. */
1.31
1.32 - return (always_callable ? __get_function(allargs[0], target) : __check_and_get_function(allargs[0], target))(allargs);
1.33 + return (always_callable ?
1.34 + __get_function_unwrapped(allargs[0], target) :
1.35 + __check_and_get_function_unwrapped(allargs[0], target)
1.36 + )(allargs);
1.37 }
1.38
1.39 /* Error routines. */