diff options
| author | Kenichi Handa | 1997-08-26 11:42:33 +0000 |
|---|---|---|
| committer | Kenichi Handa | 1997-08-26 11:42:33 +0000 |
| commit | 166c822d2e424e0b067b709e8d07b8b89c39f2f0 (patch) | |
| tree | 9ef1ab0c1c10ddf94684fd928ba5d33b67ceacde | |
| parent | 450c1a67cad77252304df2f06596cdb1d183eb79 (diff) | |
| download | emacs-166c822d2e424e0b067b709e8d07b8b89c39f2f0.tar.gz emacs-166c822d2e424e0b067b709e8d07b8b89c39f2f0.zip | |
(Feval): Handle a subr which takes 8 arguments.
(Ffuncall): Likewise.
| -rw-r--r-- | src/eval.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c index 36fab7226b7..e3a49fd5727 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -1725,7 +1725,7 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0, | |||
| 1725 | if (SUBRP (fun)) | 1725 | if (SUBRP (fun)) |
| 1726 | { | 1726 | { |
| 1727 | Lisp_Object numargs; | 1727 | Lisp_Object numargs; |
| 1728 | Lisp_Object argvals[7]; | 1728 | Lisp_Object argvals[8]; |
| 1729 | Lisp_Object args_left; | 1729 | Lisp_Object args_left; |
| 1730 | register int i, maxargs; | 1730 | register int i, maxargs; |
| 1731 | 1731 | ||
| @@ -1819,6 +1819,12 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0, | |||
| 1819 | argvals[6]); | 1819 | argvals[6]); |
| 1820 | goto done; | 1820 | goto done; |
| 1821 | 1821 | ||
| 1822 | case 8: | ||
| 1823 | val = (*XSUBR (fun)->function) (argvals[0], argvals[1], argvals[2], | ||
| 1824 | argvals[3], argvals[4], argvals[5], | ||
| 1825 | argvals[6], argvals[7]); | ||
| 1826 | goto done; | ||
| 1827 | |||
| 1822 | default: | 1828 | default: |
| 1823 | /* Someone has created a subr that takes more arguments than | 1829 | /* Someone has created a subr that takes more arguments than |
| 1824 | is supported by this code. We need to either rewrite the | 1830 | is supported by this code. We need to either rewrite the |
| @@ -2458,9 +2464,16 @@ Thus, (funcall 'cons 'x 'y) returns (x . y).") | |||
| 2458 | internal_args[6]); | 2464 | internal_args[6]); |
| 2459 | goto done; | 2465 | goto done; |
| 2460 | 2466 | ||
| 2467 | case 8: | ||
| 2468 | val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1], | ||
| 2469 | internal_args[2], internal_args[3], | ||
| 2470 | internal_args[4], internal_args[5], | ||
| 2471 | internal_args[6], internal_args[7]); | ||
| 2472 | goto done; | ||
| 2473 | |||
| 2461 | default: | 2474 | default: |
| 2462 | 2475 | ||
| 2463 | /* If a subr takes more than 6 arguments without using MANY | 2476 | /* If a subr takes more than 8 arguments without using MANY |
| 2464 | or UNEVALLED, we need to extend this function to support it. | 2477 | or UNEVALLED, we need to extend this function to support it. |
| 2465 | Until this is done, there is no way to call the function. */ | 2478 | Until this is done, there is no way to call the function. */ |
| 2466 | abort (); | 2479 | abort (); |