diff options
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/src/eval.c b/src/eval.c index ddcccc285d3..e50e26a11d2 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -453,11 +453,10 @@ usage: (progn BODY...) */) | |||
| 453 | return val; | 453 | return val; |
| 454 | } | 454 | } |
| 455 | 455 | ||
| 456 | /* Evaluate BODY sequentially, discarding its value. Suitable for | 456 | /* Evaluate BODY sequentially, discarding its value. */ |
| 457 | record_unwind_protect. */ | ||
| 458 | 457 | ||
| 459 | void | 458 | void |
| 460 | unwind_body (Lisp_Object body) | 459 | prog_ignore (Lisp_Object body) |
| 461 | { | 460 | { |
| 462 | Fprogn (body); | 461 | Fprogn (body); |
| 463 | } | 462 | } |
| @@ -469,16 +468,8 @@ whose values are discarded. | |||
| 469 | usage: (prog1 FIRST BODY...) */) | 468 | usage: (prog1 FIRST BODY...) */) |
| 470 | (Lisp_Object args) | 469 | (Lisp_Object args) |
| 471 | { | 470 | { |
| 472 | Lisp_Object val; | 471 | Lisp_Object val = eval_sub (XCAR (args)); |
| 473 | Lisp_Object args_left; | 472 | prog_ignore (XCDR (args)); |
| 474 | |||
| 475 | args_left = args; | ||
| 476 | val = args; | ||
| 477 | |||
| 478 | val = eval_sub (XCAR (args_left)); | ||
| 479 | while (CONSP (args_left = XCDR (args_left))) | ||
| 480 | eval_sub (XCAR (args_left)); | ||
| 481 | |||
| 482 | return val; | 473 | return val; |
| 483 | } | 474 | } |
| 484 | 475 | ||
| @@ -988,7 +979,7 @@ usage: (while TEST BODY...) */) | |||
| 988 | while (!NILP (eval_sub (test))) | 979 | while (!NILP (eval_sub (test))) |
| 989 | { | 980 | { |
| 990 | QUIT; | 981 | QUIT; |
| 991 | Fprogn (body); | 982 | prog_ignore (body); |
| 992 | } | 983 | } |
| 993 | 984 | ||
| 994 | return Qnil; | 985 | return Qnil; |
| @@ -1191,7 +1182,7 @@ usage: (unwind-protect BODYFORM UNWINDFORMS...) */) | |||
| 1191 | Lisp_Object val; | 1182 | Lisp_Object val; |
| 1192 | ptrdiff_t count = SPECPDL_INDEX (); | 1183 | ptrdiff_t count = SPECPDL_INDEX (); |
| 1193 | 1184 | ||
| 1194 | record_unwind_protect (unwind_body, XCDR (args)); | 1185 | record_unwind_protect (prog_ignore, XCDR (args)); |
| 1195 | val = eval_sub (XCAR (args)); | 1186 | val = eval_sub (XCAR (args)); |
| 1196 | return unbind_to (count, val); | 1187 | return unbind_to (count, val); |
| 1197 | } | 1188 | } |