diff options
| author | Joakim Verona | 2015-02-08 21:55:28 +0100 |
|---|---|---|
| committer | Joakim Verona | 2015-02-08 21:55:28 +0100 |
| commit | 5e1d5ef39ca0d2fbff26d659f2ec6ce863b14529 (patch) | |
| tree | 860e0d53399626aee6249ebb5f972879f403b228 /src/eval.c | |
| parent | 148262ce3db990ed16989341345e232570b3a338 (diff) | |
| parent | 7d631aa0ffab875e4979727f632703ad5b4100a2 (diff) | |
| download | emacs-xwidget.tar.gz emacs-xwidget.zip | |
merge masterxwidget
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 22 |
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, |