[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Define progn_ignore to run Fprogn and ignore output
From: |
Chris Gregory |
Subject: |
Re: Define progn_ignore to run Fprogn and ignore output |
Date: |
Tue, 27 Dec 2016 19:30:35 -0600 |
Your implementation is not what I intended. Please add the following
diff. I also fixed an additional place that still was declaring
unwind_body.
diff --git a/src/eval.c b/src/eval.c
index e50e26a..abd4028 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -458,7 +458,11 @@ usage: (progn BODY...) */)
void
prog_ignore (Lisp_Object body)
{
- Fprogn (body);
+ while (CONSP (body))
+ {
+ eval_sub (XCAR (body));
+ body = XCDR (body);
+ }
}
DEFUN ("prog1", Fprog1, Sprog1, 1, UNEVALLED, 0,
diff --git a/test/manual/etags/c-src/emacs/src/lisp.h
b/test/manual/etags/c-src/emacs/src/lisp.h
index db87229..1b9d82b 100644
--- a/test/manual/etags/c-src/emacs/src/lisp.h
+++ b/test/manual/etags/c-src/emacs/src/lisp.h
@@ -4042,7 +4042,7 @@ extern Lisp_Object safe_call1 (Lisp_Object, Lisp_Object);
extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object);
extern void init_eval (void);
extern void syms_of_eval (void);
-extern void unwind_body (Lisp_Object);
+extern void prog_ignore (Lisp_Object);
extern ptrdiff_t record_in_backtrace (Lisp_Object, Lisp_Object *, ptrdiff_t);
extern void mark_specpdl (void);
extern void get_backtrace (Lisp_Object array);