aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorJoakim Verona2015-02-08 21:55:28 +0100
committerJoakim Verona2015-02-08 21:55:28 +0100
commit5e1d5ef39ca0d2fbff26d659f2ec6ce863b14529 (patch)
tree860e0d53399626aee6249ebb5f972879f403b228 /src/eval.c
parent148262ce3db990ed16989341345e232570b3a338 (diff)
parent7d631aa0ffab875e4979727f632703ad5b4100a2 (diff)
downloademacs-xwidget.tar.gz
emacs-xwidget.zip
merge masterxwidget
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c
index b98b224e622..e828da9288f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -575,10 +575,23 @@ usage: (function ARG) */)
575 if (!NILP (Vinternal_interpreter_environment) 575 if (!NILP (Vinternal_interpreter_environment)
576 && CONSP (quoted) 576 && CONSP (quoted)
577 && EQ (XCAR (quoted), Qlambda)) 577 && EQ (XCAR (quoted), Qlambda))
578 /* This is a lambda expression within a lexical environment; 578 { /* This is a lambda expression within a lexical environment;
579 return an interpreted closure instead of a simple lambda. */ 579 return an interpreted closure instead of a simple lambda. */
580 return Fcons (Qclosure, Fcons (Vinternal_interpreter_environment, 580 Lisp_Object cdr = XCDR (quoted);
581 XCDR (quoted))); 581 Lisp_Object tmp = cdr;
582 if (CONSP (tmp)
583 && (tmp = XCDR (tmp), CONSP (tmp))
584 && (tmp = XCAR (tmp), CONSP (tmp))
585 && (EQ (QCdocumentation, XCAR (tmp))))
586 { /* Handle the special (:documentation <form>) to build the docstring
587 dynamically. */
588 Lisp_Object docstring = eval_sub (Fcar (XCDR (tmp)));
589 CHECK_STRING (docstring);
590 cdr = Fcons (XCAR (cdr), Fcons (docstring, XCDR (XCDR (cdr))));
591 }
592 return Fcons (Qclosure, Fcons (Vinternal_interpreter_environment,
593 cdr));
594 }
582 else 595 else
583 /* Simply quote the argument. */ 596 /* Simply quote the argument. */
584 return quoted; 597 return quoted;
@@ -3668,6 +3681,7 @@ before making `inhibit-quit' nil. */);
3668 DEFSYM (Qand_rest, "&rest"); 3681 DEFSYM (Qand_rest, "&rest");
3669 DEFSYM (Qand_optional, "&optional"); 3682 DEFSYM (Qand_optional, "&optional");
3670 DEFSYM (Qclosure, "closure"); 3683 DEFSYM (Qclosure, "closure");
3684 DEFSYM (QCdocumentation, ":documentation");
3671 DEFSYM (Qdebug, "debug"); 3685 DEFSYM (Qdebug, "debug");
3672 3686
3673 DEFVAR_LISP ("inhibit-debugger", Vinhibit_debugger, 3687 DEFVAR_LISP ("inhibit-debugger", Vinhibit_debugger,