emacs/lisp/emacs-lisp
Stefan Monnier c39c26e33f nadvice: Fix bug#61179
Advising interactive forms relies on the ability to distinguish
interactive forms that do nothing else than return a function.
So, be careful to preserve this info.
Furthermore, interactive forms are expected to be evaluated in
the lexical context captured by the closure to which they belong,
so be careful to preserve that context when manipulating those forms.

* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyze-form) <lambda>:
Preserve the info that an interactive form does nothing else than
return a function.

* lisp/emacs-lisp/nadvice.el (advice--interactive-form-1): New function.
(advice--interactive-form): Use it.
(advice--make-interactive-form): Refine to also accept function values
quoted with `quote`.  Remove obsolete TODO.

* test/lisp/emacs-lisp/nadvice-tests.el: Don't disallow byte-compilation.
(advice-test-bug61179): New test.

* lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): Allow
the `if` arg to be a form.
* lisp/simple.el (oclosure-interactive-form): Adjust accordingly.
2023-02-04 11:23:31 -05:00
..
advice.el Fix an oversight in advice.el 2023-01-19 22:13:25 +02:00
avl-tree.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
backquote.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
backtrace.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
benchmark.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
bindat.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
byte-opt.el LAP peephole optimisation improvements 2023-02-02 14:46:53 +01:00
byte-run.el Styled quotes in compiler warnings 2023-01-03 18:39:06 +01:00
bytecomp.el Better commutative binary numerical op codegen 2023-01-29 13:48:23 +01:00
cconv.el nadvice: Fix bug#61179 2023-02-04 11:23:31 -05:00
chart.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
check-declare.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
checkdoc.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-extra.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-generic.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-indent.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-lib.el Data argument to signal should be a list 2023-01-03 14:03:58 +01:00
cl-macs.el Merge from origin/emacs-29 2023-01-19 06:30:25 +01:00
cl-preloaded.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-print.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-seq.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
comp-cstr.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
comp.el Merge from origin/emacs-29 2023-01-30 07:19:43 +01:00
copyright.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
crm.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cursor-sensor.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
debug-early.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
debug.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
derived.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
disass.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
easy-mmode.el Styled quotes in compiler warnings 2023-01-03 18:39:06 +01:00
easymenu.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
edebug.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-base.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-core.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-custom.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-datadebug.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-opt.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-speedbar.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio.el Styled quotes in compiler warnings 2023-01-03 18:39:06 +01:00
eldoc.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
elint.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
elp.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ert-x.el ; Fix typo in ert-with-temp-file 2023-01-13 02:50:39 +01:00
ert.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ewoc.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
faceup.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
find-func.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
float-sup.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
generate-lisp-file.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
generator.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
generic.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
gv.el Merge from origin/emacs-29 2023-01-01 05:47:47 -05:00
helper.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
hierarchy.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
icons.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
inline.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
let-alist.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
lisp-mnt.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
lisp-mode.el Fix docstring fontification of CL's 'defstruct' 2023-02-02 20:12:02 +02:00
lisp.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
loaddefs-gen.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
macroexp.el Better lambda quote warning 2023-01-18 18:50:03 +01:00
map-ynp.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
map.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
memory-report.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
multisession.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
nadvice.el nadvice: Fix bug#61179 2023-02-04 11:23:31 -05:00
oclosure.el nadvice: Fix bug#61179 2023-02-04 11:23:31 -05:00
package-vc.el ; Actually use dummy package descriptor 2023-01-21 19:27:38 +01:00
package-x.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
package.el Merge from origin/emacs-29 2023-01-01 05:47:47 -05:00
pcase.el Styled quotes in compiler warnings 2023-01-03 18:39:06 +01:00
pp.el Fix minor issues with 'pp' and related commands 2023-01-13 10:39:58 +02:00
radix-tree.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
range.el ; * lisp/emacs-lisp/range.el: Fix some typos 2023-01-28 17:30:42 +01:00
re-builder.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
regexp-opt.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
regi.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ring.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
rmc.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
rx.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
seq.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
shadow.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
shortdoc.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
shorthands.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
smie.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
subr-x.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
syntax.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tabulated-list.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tcover-ses.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
testcover.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
text-property-search.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
thunk.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
timer-list.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
timer.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tq.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
trace.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
unsafep.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
vtable.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
warnings.el Fix display of warnings on w32 console 2023-01-17 15:44:51 +02:00