summaryrefslogtreecommitdiff
path: root/.localrepo/macrostep-0.9.5.tar
blob: e4790beaaab4b1bd673c5295d20247d360d9b13b (plain)
ofshex dumpascii
0000 6d 61 63 72 6f 73 74 65 70 2d 30 2e 39 2e 35 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 macrostep-0.9.5/................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 31 36 31 00 20 35 00 00 00 0000000.00000000000.012161..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 6d 61 63 72 6f 73 74 65 70 2d 30 2e 39 2e 35 2f 52 45 41 44 4d 45 2e 6f 72 67 00 00 00 00 00 00 macrostep-0.9.5/README.org......
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 32 34 35 34 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 33 34 00 20 30 00 00 00 0024540.00000000000.013634..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 2a 20 6d 61 63 72 6f 73 74 65 70 3a 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 61 63 72 6f 2d 65 *.macrostep:.interactive.macro-e
0420 78 70 61 6e 64 65 72 0a 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 3d 20 69 73 20 61 6e 20 45 6d xpander.....=macrostep=.is.an.Em
0440 61 63 73 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 acs.minor.mode.for.interactively
0460 20 73 74 65 70 70 69 6e 67 0a 20 20 20 74 68 72 6f 75 67 68 20 74 68 65 20 65 78 70 61 6e 73 69 .stepping....through.the.expansi
0480 6f 6e 20 6f 66 20 6d 61 63 72 6f 73 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 20 73 6f 75 72 63 on.of.macros.in.Emacs.Lisp.sourc
04a0 65 20 63 6f 64 65 2e 20 20 49 74 20 6c 65 74 73 0a 20 20 20 79 6f 75 20 73 65 65 20 65 78 61 63 e.code...It.lets....you.see.exac
04c0 74 6c 79 20 77 68 61 74 20 68 61 70 70 65 6e 73 20 61 74 20 65 61 63 68 20 73 74 65 70 20 6f 66 tly.what.happens.at.each.step.of
04e0 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 20 70 72 6f 63 65 73 73 0a 20 20 20 62 79 20 70 72 65 .the.expansion.process....by.pre
0500 74 74 79 2d 70 72 69 6e 74 69 6e 67 20 74 68 65 20 65 78 70 61 6e 64 65 64 20 66 6f 72 6d 73 20 tty-printing.the.expanded.forms.
0520 69 6e 6c 69 6e 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 2c 0a 20 20 20 inline.in.the.source.buffer,....
0540 77 68 69 63 68 20 69 73 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 72 65 61 64 2d 6f 6e 6c 79 20 77 which.is.temporarily.read-only.w
0560 68 69 6c 65 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 20 61 72 65 20 76 69 73 69 62 6c hile.macro.expansions.are.visibl
0580 65 2e 0a 20 20 20 59 6f 75 20 63 61 6e 20 65 78 70 61 6e 64 20 61 6e 64 20 63 6f 6c 6c 61 70 73 e.....You.can.expand.and.collaps
05a0 65 20 6d 61 63 72 6f 20 66 6f 72 6d 73 20 6f 6e 65 20 73 74 65 70 20 61 74 20 61 20 74 69 6d 65 e.macro.forms.one.step.at.a.time
05c0 2c 20 61 6e 64 0a 20 20 20 65 76 61 6c 75 61 74 65 20 6f 72 20 69 6e 73 74 72 75 6d 65 6e 74 20 ,.and....evaluate.or.instrument.
05e0 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 73 20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 20 77 69 74 the.expansions.for.debugging.wit
0600 68 20 45 64 65 62 75 67 20 61 73 0a 20 20 20 6e 6f 72 6d 61 6c 20 28 62 75 74 20 73 65 65 20 22 h.Edebug.as....normal.(but.see."
0620 42 75 67 73 20 61 6e 64 20 6b 6e 6f 77 6e 20 6c 69 6d 69 74 61 74 69 6f 6e 73 22 2c 20 62 65 6c Bugs.and.known.limitations",.bel
0640 6f 77 29 2e 0a 20 20 20 53 69 6e 67 6c 65 2d 73 74 65 70 70 69 6e 67 20 74 68 72 6f 75 67 68 20 ow).....Single-stepping.through.
0660 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 20 69 73 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 75 73 the.expansion.is.particularly.us
0680 65 66 75 6c 20 66 6f 72 0a 20 20 20 64 65 62 75 67 67 69 6e 67 20 6d 61 63 72 6f 73 20 74 68 61 eful.for....debugging.macros.tha
06a0 74 20 65 78 70 61 6e 64 20 69 6e 74 6f 20 61 6e 6f 74 68 65 72 20 6d 61 63 72 6f 20 66 6f 72 6d t.expand.into.another.macro.form
06c0 2e 20 20 54 68 65 73 65 20 63 61 6e 20 62 65 0a 20 20 20 64 69 66 66 69 63 75 6c 74 20 74 6f 20 ...These.can.be....difficult.to.
06e0 64 65 62 75 67 20 77 69 74 68 20 45 6d 61 63 73 27 20 62 75 69 6c 74 2d 69 6e 20 3d 6d 61 63 72 debug.with.Emacs'.built-in.=macr
0700 6f 65 78 70 61 6e 64 3d 2c 20 77 68 69 63 68 0a 20 20 20 63 6f 6e 74 69 6e 75 65 73 20 65 78 70 oexpand=,.which....continues.exp
0720 61 6e 73 69 6f 6e 20 75 6e 74 69 6c 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 66 6f 72 6d 20 ansion.until.the.top-level.form.
0740 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 20 6d 61 63 72 6f 0a 20 20 20 63 61 6c 6c 2e 0a 0a 20 is.no.longer.a.macro....call....
0760 20 20 42 6f 74 68 20 67 6c 6f 62 61 6c 6c 79 2d 76 69 73 69 62 6c 65 20 6d 61 63 72 6f 73 20 61 ..Both.globally-visible.macros.a
0780 73 20 64 65 66 69 6e 65 64 20 62 79 20 3d 64 65 66 6d 61 63 72 6f 3d 20 61 6e 64 20 6c 6f 63 61 s.defined.by.=defmacro=.and.loca
07a0 6c 0a 20 20 20 6d 61 63 72 6f 73 20 62 6f 75 6e 64 20 62 79 20 3d 28 63 6c 2d 29 6d 61 63 72 6f l....macros.bound.by.=(cl-)macro
07c0 6c 65 74 3d 20 6f 72 20 61 6e 6f 74 68 65 72 20 6d 61 63 72 6f 2d 64 65 66 69 6e 69 6e 67 20 66 let=.or.another.macro-defining.f
07e0 6f 72 6d 20 63 61 6e 0a 20 20 20 62 65 20 65 78 70 61 6e 64 65 64 2e 20 20 57 69 74 68 69 6e 20 orm.can....be.expanded...Within.
0800 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 2c 20 63 61 6c 6c 73 20 74 6f 20 6d 61 63 72 6f macro.expansions,.calls.to.macro
0820 73 20 61 6e 64 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20 6d 61 63 72 6f 73 20 61 72 65 20 66 6f 6e s.and.compiler....macros.are.fon
0840 74 69 66 69 65 64 20 73 70 65 63 69 61 6c 6c 79 3a 20 6d 61 63 72 6f 20 66 6f 72 6d 73 20 75 73 tified.specially:.macro.forms.us
0860 69 6e 67 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 61 63 65 3d 2c 20 61 ing....=macrostep-macro-face=,.a
0880 6e 64 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 72 20 6d 61 63 72 6f nd.functions.with.compiler.macro
08a0 73 20 75 73 69 6e 67 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6d 70 69 6c 65 72 2d 6d s.using....=macrostep-compiler-m
08c0 61 63 72 6f 2d 66 61 63 65 3d 2e 20 20 55 6e 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f 6c 73 20 acro-face=...Uninterned.symbols.
08e0 28 67 65 6e 73 79 6d 73 29 20 61 72 65 0a 20 20 20 66 6f 6e 74 69 66 69 65 64 20 62 61 73 65 64 (gensyms).are....fontified.based
0900 20 6f 6e 20 77 68 69 63 68 20 73 74 65 70 20 69 6e 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 20 .on.which.step.in.the.expansion.
0920 63 72 65 61 74 65 64 20 74 68 65 6d 2c 20 74 6f 0a 20 20 20 64 69 73 74 69 6e 67 75 69 73 68 20 created.them,.to....distinguish.
0940 74 68 65 6d 20 62 6f 74 68 20 66 72 6f 6d 20 6e 6f 72 6d 61 6c 20 73 79 6d 62 6f 6c 73 20 61 6e them.both.from.normal.symbols.an
0960 64 20 66 72 6f 6d 20 6f 74 68 65 72 20 67 65 6e 73 79 6d 73 0a 20 20 20 77 69 74 68 20 74 68 65 d.from.other.gensyms....with.the
0980 20 73 61 6d 65 20 70 72 69 6e 74 20 6e 61 6d 65 2e 0a 0a 20 20 20 41 73 20 6f 66 20 76 65 72 73 .same.print.name......As.of.vers
09a0 69 6f 6e 20 30 2e 39 2c 20 69 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 ion.0.9,.it.is.also.possible.to.
09c0 65 78 74 65 6e 64 20 3d 6d 61 63 72 6f 73 74 65 70 3d 20 74 6f 0a 20 20 20 77 6f 72 6b 20 77 69 extend.=macrostep=.to....work.wi
09e0 74 68 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 77 69 74 68 20 6d 61 63 72 6f 20 73 79 th.other.languages.with.macro.sy
0a00 73 74 65 6d 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 45 6d 61 63 73 0a 20 20 20 4c 69 stems.in.addition.to.Emacs....Li
0a20 73 70 2e 20 20 41 6e 20 65 78 74 65 6e 73 69 6f 6e 20 66 6f 72 20 43 6f 6d 6d 6f 6e 20 4c 69 73 sp...An.extension.for.Common.Lis
0a40 70 20 28 76 69 61 20 53 4c 49 4d 45 29 20 69 73 20 69 6e 20 74 68 65 20 77 6f 72 6b 73 3b 0a 20 p.(via.SLIME).is.in.the.works;..
0a60 20 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 66 6f 72 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 ..contributions.for.other.langua
0a80 67 65 73 20 61 72 65 20 77 65 6c 63 6f 6d 65 2e 20 20 53 65 65 20 22 45 78 74 65 6e 64 69 6e 67 ges.are.welcome...See."Extending
0aa0 0a 20 20 20 6d 61 63 72 6f 73 74 65 70 22 20 62 65 6c 6f 77 20 66 6f 72 20 64 65 74 61 69 6c 73 ....macrostep".below.for.details
0ac0 2e 0a 0a 2a 2a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 20 20 20 49 6e 73 74 61 6c 6c 20 3d ...**.Installation.....Install.=
0ae0 6d 61 63 72 6f 73 74 65 70 3d 20 66 72 6f 6d 20 45 6d 61 63 73 20 77 69 74 68 20 3d 4d 2d 78 20 macrostep=.from.Emacs.with.=M-x.
0b00 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 3d 2e 0a 0a 20 20 20 package-install.macrostep=......
0b20 3d 6d 61 63 72 6f 73 74 65 70 3d 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 5b 5b 68 74 =macrostep=.is.available.on.[[ht
0b40 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 2f 5d 5b 20 4e 6f 6e 47 4e 55 20 tps://elpa.nongnu.org/][.NonGNU.
0b60 45 4c 50 41 2e 5d 5d 0a 20 20 20 46 6f 72 20 66 75 72 74 68 65 72 20 64 65 74 61 69 6c 73 2c 20 ELPA.]]....For.further.details,.
0b80 73 65 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 2f 6e 6f see.[[https://elpa.nongnu.org/no
0ba0 6e 67 6e 75 2f 6d 61 63 72 6f 73 74 65 70 2e 68 74 6d 6c 5d 5b 74 68 65 20 6d 61 63 72 6f 73 74 ngnu/macrostep.html][the.macrost
0bc0 65 70 20 70 61 67 65 2e 5d 5d 0a 20 20 20 0a 2a 2a 20 4b 65 79 2d 62 69 6e 64 69 6e 67 73 20 61 ep.page.]].....**.Key-bindings.a
0be0 6e 64 20 75 73 61 67 65 0a 20 20 20 54 68 65 20 73 74 61 6e 64 61 72 64 20 6b 65 79 62 69 6e 64 nd.usage....The.standard.keybind
0c00 69 6e 67 73 20 69 6e 20 3d 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 3d 20 61 72 65 20 74 68 65 ings.in.=macrostep-mode=.are.the
0c20 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 20 0a 20 20 20 20 2d 20 65 2c 20 3d 2c 20 52 45 54 20 20 3a .following:.......-.e,.=,.RET..:
0c40 3a 20 65 78 70 61 6e 64 20 74 68 65 20 6d 61 63 72 6f 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e :.expand.the.macro.form.followin
0c60 67 20 70 6f 69 6e 74 20 6f 6e 65 20 73 74 65 70 0a 20 20 20 20 2d 20 63 2c 20 75 2c 20 44 45 4c g.point.one.step.....-.c,.u,.DEL
0c80 20 20 3a 3a 20 63 6f 6c 6c 61 70 73 65 20 74 68 65 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 ..::.collapse.the.form.following
0ca0 20 70 6f 69 6e 74 0a 20 20 20 20 2d 20 71 2c 20 43 2d 63 20 43 2d 63 20 3a 3a 20 63 6f 6c 6c 61 .point.....-.q,.C-c.C-c.::.colla
0cc0 70 73 65 20 61 6c 6c 20 65 78 70 61 6e 64 65 64 20 66 6f 72 6d 73 20 61 6e 64 20 65 78 69 74 20 pse.all.expanded.forms.and.exit.
0ce0 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 0a 20 20 20 20 2d 20 6e 2c 20 54 41 42 20 20 20 20 20 macrostep-mode.....-.n,.TAB.....
0d00 3a 3a 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6d 61 63 72 6f 20 66 6f 72 6d 20 69 ::.jump.to.the.next.macro.form.i
0d20 6e 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 0a 20 20 20 20 2d 20 70 2c 20 4d 2d 54 41 42 20 20 n.the.expansion.....-.p,.M-TAB..
0d40 20 3a 3a 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6d 61 63 72 6f 20 66 .::.jump.to.the.previous.macro.f
0d60 6f 72 6d 20 69 6e 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 0a 0a 20 20 20 20 49 74 27 73 20 6e orm.in.the.expansion......It's.n
0d80 6f 74 20 76 65 72 79 20 75 73 65 66 75 6c 20 74 6f 20 65 6e 61 62 6c 65 20 61 6e 64 20 64 69 73 ot.very.useful.to.enable.and.dis
0da0 61 62 6c 65 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 0a 20 20 20 20 64 69 72 65 63 74 6c 79 able.macrostep-mode.....directly
0dc0 2e 20 20 49 6e 73 74 65 61 64 2c 20 62 69 6e 64 20 3d 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 ...Instead,.bind.=macrostep-expa
0de0 6e 64 3d 20 74 6f 20 61 20 6b 65 79 20 69 6e 0a 20 20 20 20 3d 65 6d 61 63 73 2d 6c 69 73 70 2d nd=.to.a.key.in.....=emacs-lisp-
0e00 6d 6f 64 65 2d 6d 61 70 3d 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 43 2d 63 20 65 3a 0a 0a 23 mode-map=,.for.example.C-c.e:..#
0e20 2b 42 45 47 49 4e 5f 53 52 43 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 28 64 65 66 69 6e 65 2d +BEGIN_SRC.emacs-lisp...(define-
0e40 6b 65 79 20 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 43 2d key.emacs-lisp-mode-map.(kbd."C-
0e60 63 20 65 22 29 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 29 0a 23 2b 45 4e 44 5f 53 c.e").'macrostep-expand).#+END_S
0e80 52 43 0a 0a 20 20 20 20 59 6f 75 20 63 61 6e 20 74 68 65 6e 20 65 6e 74 65 72 20 6d 61 63 72 6f RC......You.can.then.enter.macro
0ea0 73 74 65 70 2d 6d 6f 64 65 20 61 6e 64 20 65 78 70 61 6e 64 20 61 20 6d 61 63 72 6f 20 66 6f 72 step-mode.and.expand.a.macro.for
0ec0 6d 0a 20 20 20 20 63 6f 6d 70 6c 65 74 65 6c 79 20 62 79 20 74 79 70 69 6e 67 20 3d 43 2d 63 20 m.....completely.by.typing.=C-c.
0ee0 65 20 65 20 65 20 2e 2e 2e 3d 20 61 73 20 6d 61 6e 79 20 74 69 6d 65 73 20 61 73 20 6e 65 63 65 e.e.e....=.as.many.times.as.nece
0f00 73 73 61 72 79 2e 0a 0a 20 20 20 20 45 78 69 74 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 ssary.......Exit.macrostep-mode.
0f20 62 79 20 74 79 70 69 6e 67 20 3d 71 3d 20 6f 72 20 3d 43 2d 63 20 43 2d 63 3d 2c 20 6f 72 20 62 by.typing.=q=.or.=C-c.C-c=,.or.b
0f40 79 20 73 75 63 63 65 73 73 69 76 65 6c 79 0a 20 20 20 20 74 79 70 69 6e 67 20 3d 63 3d 20 74 6f y.successively.....typing.=c=.to
0f60 20 63 6f 6c 6c 61 70 73 65 20 61 6c 6c 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 65 78 70 61 6e 73 .collapse.all.surrounding.expans
0f80 69 6f 6e 73 2e 0a 0a 2a 2a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 0a ions...**.Customization.options.
0fa0 20 20 20 54 79 70 65 20 3d 4d 2d 78 20 63 75 73 74 6f 6d 69 7a 65 2d 67 72 6f 75 70 20 52 45 54 ...Type.=M-x.customize-group.RET
0fc0 20 6d 61 63 72 6f 73 74 65 70 20 52 45 54 3d 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 6f 70 74 .macrostep.RET=.to.customize.opt
0fe0 69 6f 6e 73 0a 20 20 20 61 6e 64 20 66 61 63 65 73 2e 0a 0a 20 20 20 54 6f 20 64 69 73 70 6c 61 ions....and.faces......To.displa
1000 79 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 y.macro.expansions.in.a.separate
1020 20 77 69 6e 64 6f 77 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 69 6e 6c 69 6e 65 0a 20 20 20 69 6e .window,.instead.of.inline....in
1040 20 74 68 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 2c 20 63 75 73 74 6f 6d 69 7a 65 0a 20 20 .the.source.buffer,.customize...
1060 20 3d 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 69 6e 2d 73 65 70 61 72 61 74 65 2d 62 .=macrostep-expand-in-separate-b
1080 75 66 66 65 72 3d 20 74 6f 20 3d 74 3d 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 0a 20 uffer=.to.=t=...The.default.is..
10a0 20 20 3d 6e 69 6c 3d 2e 20 20 57 68 69 63 68 65 76 65 72 20 64 65 66 61 75 6c 74 20 62 65 68 61 ..=nil=...Whichever.default.beha
10c0 76 69 6f 72 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 74 68 65 20 61 6c 74 65 72 6e 61 74 69 76 vior.is.selected,.the.alternativ
10e0 65 0a 20 20 20 62 65 68 61 76 69 6f 72 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 74 65 e....behavior.can.be.obtained.te
1100 6d 70 6f 72 61 72 69 6c 79 20 62 79 20 67 69 76 69 6e 67 20 61 20 70 72 65 66 69 78 20 61 72 67 mporarily.by.giving.a.prefix.arg
1120 75 6d 65 6e 74 20 74 6f 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 3d 2e 0a ument.to....=macrostep-expand=..
1140 0a 20 20 20 54 6f 20 68 61 76 65 20 3d 6d 61 63 72 6f 73 74 65 70 3d 20 69 67 6e 6f 72 65 20 63 ....To.have.=macrostep=.ignore.c
1160 6f 6d 70 69 6c 65 72 20 6d 61 63 72 6f 73 2c 20 63 75 73 74 6f 6d 69 7a 65 0a 20 20 20 3d 6d 61 ompiler.macros,.customize....=ma
1180 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 73 3d 20 crostep-expand-compiler-macros=.
11a0 74 6f 20 3d 6e 69 6c 3d 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 3d 74 3d 2e 0a 0a to.=nil=...The.default.is.=t=...
11c0 20 20 20 43 75 73 74 6f 6d 69 7a 65 20 74 68 65 20 66 61 63 65 73 20 3d 6d 61 63 72 6f 73 74 65 ...Customize.the.faces.=macroste
11e0 70 2d 6d 61 63 72 6f 2d 66 61 63 65 3d 2c 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6d p-macro-face=,....=macrostep-com
1200 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 61 63 65 3d 2c 20 61 6e 64 20 3d 6d 61 63 72 6f 73 74 65 piler-macro-face=,.and.=macroste
1220 70 2d 67 65 6e 73 79 6d 2d 31 3d 20 74 68 72 6f 75 67 68 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 p-gensym-1=.through....=macroste
1240 70 2d 67 65 6e 73 79 6d 2d 35 3d 20 74 6f 20 61 6c 74 65 72 20 74 68 65 20 61 70 70 65 61 72 61 p-gensym-5=.to.alter.the.appeara
1260 6e 63 65 20 6f 66 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 2e 0a 0a 2a 2a 20 4c 6f 63 nce.of.macro.expansions...**.Loc
1280 61 6c 6c 79 2d 62 6f 75 6e 64 20 6d 61 63 72 6f 73 0a 20 20 20 41 73 20 6f 66 20 76 65 72 73 69 ally-bound.macros....As.of.versi
12a0 6f 6e 20 30 2e 39 2c 20 3d 6d 61 63 72 6f 73 74 65 70 3d 20 63 61 6e 20 65 78 70 61 6e 64 20 63 on.0.9,.=macrostep=.can.expand.c
12c0 61 6c 6c 73 20 74 6f 20 61 20 6c 6f 63 61 6c 6c 79 2d 62 6f 75 6e 64 0a 20 20 20 6d 61 63 72 6f alls.to.a.locally-bound....macro
12e0 2c 20 77 68 65 74 68 65 72 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 73 75 72 72 6f 75 6e 64 69 ,.whether.defined.by.a.surroundi
1300 6e 67 20 3d 28 63 6c 2d 29 6d 61 63 72 6f 6c 65 74 3d 20 66 6f 72 6d 2c 20 6f 72 20 62 79 0a 20 ng.=(cl-)macrolet=.form,.or.by..
1320 20 20 61 6e 6f 74 68 65 72 20 6d 61 63 72 6f 2d 64 65 66 69 6e 69 6e 67 20 6d 61 63 72 6f 2e 20 ..another.macro-defining.macro..
1340 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 .In.other.words,.it.is.possible.
1360 74 6f 0a 20 20 20 65 78 70 61 6e 64 20 74 68 65 20 69 6e 6e 65 72 20 3d 6c 6f 63 61 6c 2d 6d 61 to....expand.the.inner.=local-ma
1380 63 72 6f 3d 20 66 6f 72 6d 73 20 69 6e 20 62 6f 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 cro=.forms.in.both.the.following
13a0 0a 20 20 20 65 78 61 6d 70 6c 65 73 2c 20 77 68 65 74 68 65 72 20 3d 6c 6f 63 61 6c 2d 6d 61 63 ....examples,.whether.=local-mac
13c0 72 6f 3d 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 61 6e 20 65 6e 63 6c 6f 73 69 6e 67 0a 20 ro=.is.defined.by.an.enclosing..
13e0 20 20 3d 63 6c 2d 6d 61 63 72 6f 6c 65 74 3d 20 2d 2d 0a 20 20 20 0a 20 20 20 23 2b 42 45 47 49 ..=cl-macrolet=.--........#+BEGI
1400 4e 5f 53 52 43 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 20 20 20 28 63 6c 2d 6d 61 63 72 6f 6c N_SRC.emacs-lisp......(cl-macrol
1420 65 74 20 28 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 et.((local-macro.(&rest.args)...
1440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 65 78 70 61 6e 73 69 6f 6e 20 6f ...................`(expansion.o
1460 66 20 2c 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 f.,args)))........(local-macro.(
1480 64 6f 2d 73 6f 6d 65 74 68 69 6e 67 29 29 29 0a 20 20 20 23 2b 45 4e 44 5f 53 52 43 0a 0a 20 20 do-something)))....#+END_SRC....
14a0 20 2d 2d 20 6f 72 20 62 79 20 61 20 6d 61 63 72 6f 20 77 68 69 63 68 20 65 78 70 61 6e 64 73 20 .--.or.by.a.macro.which.expands.
14c0 69 6e 74 6f 20 3d 63 6c 2d 6d 61 63 72 6f 6c 65 74 3d 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 into.=cl-macrolet=,.provided.tha
14e0 74 0a 20 20 20 69 74 73 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 6d 61 63 72 6f 20 69 73 20 t....its.definition.of.macro.is.
1500 65 76 61 6c 75 61 74 65 64 20 70 72 69 6f 72 20 74 6f 20 63 61 6c 6c 69 6e 67 0a 20 20 20 3d 6d evaluated.prior.to.calling....=m
1520 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 3d 3a 0a 0a 20 20 20 23 2b 42 45 47 49 4e 5f 53 52 acrostep-expand=:.....#+BEGIN_SR
1540 43 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 20 20 20 28 64 65 66 6d 61 63 72 6f 20 77 69 74 68 C.emacs-lisp......(defmacro.with
1560 2d 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 20 20 20 20 -local-macro.(&rest.body).......
1580 20 60 28 63 6c 2d 6d 61 63 72 6f 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 26 72 .`(cl-macrolet.((local-macro.(&r
15a0 65 73 74 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 est.args).......................
15c0 20 20 60 28 65 78 70 61 6e 73 69 6f 6e 20 6f 66 20 2c 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 ..`(expansion.of.,args))).......
15e0 20 20 20 20 2c 40 62 6f 64 79 29 29 0a 0a 20 20 20 20 20 28 77 69 74 68 2d 6c 6f 63 61 6c 2d 6d ....,@body)).......(with-local-m
1600 61 63 72 6f 0a 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 64 6f 20 73 acro..........(local-macro.(do.s
1620 6f 6d 65 74 68 69 6e 67 20 28 65 6c 73 65 29 29 29 0a 20 20 20 23 2b 45 4e 44 5f 53 52 43 0a 0a omething.(else)))....#+END_SRC..
1640 20 20 20 53 65 65 20 74 68 65 20 3d 77 69 74 68 2d 6a 73 3d 20 6d 61 63 72 6f 20 69 6e 20 45 6d ...See.the.=with-js=.macro.in.Em
1660 61 63 73 27 73 20 3d 6a 73 2e 65 6c 3d 20 66 6f 72 20 61 20 72 65 61 6c 20 65 78 61 6d 70 6c 65 acs's.=js.el=.for.a.real.example
1680 20 6f 66 0a 20 20 20 74 68 65 20 6c 61 74 74 65 72 20 6b 69 6e 64 20 6f 66 20 6d 61 63 72 6f 2e .of....the.latter.kind.of.macro.
16a0 0a 0a 20 20 20 45 78 70 61 6e 73 69 6f 6e 20 6f 66 20 6c 6f 63 61 6c 6c 79 2d 62 6f 75 6e 64 20 .....Expansion.of.locally-bound.
16c0 6d 61 63 72 6f 73 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79 20 69 6e 73 74 72 75 6d macros.is.implemented.by.instrum
16e0 65 6e 74 69 6e 67 0a 20 20 20 45 6d 61 63 73 20 4c 69 73 70 27 73 20 6d 61 63 72 6f 2d 65 78 70 enting....Emacs.Lisp's.macro-exp
1700 61 6e 64 65 72 20 74 6f 20 63 61 70 74 75 72 65 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 ander.to.capture.the.environment
1720 20 61 74 20 70 6f 69 6e 74 2e 20 20 41 0a 20 20 20 73 69 6d 69 6c 61 72 20 74 72 69 63 6b 20 69 .at.point...A....similar.trick.i
1740 73 20 75 73 65 64 20 74 6f 20 64 65 74 65 63 74 20 6d 61 63 72 6f 2d 20 61 6e 64 20 63 6f 6d 70 s.used.to.detect.macro-.and.comp
1760 69 6c 65 72 2d 6d 61 63 72 6f 20 63 61 6c 6c 73 0a 20 20 20 77 69 74 68 69 6e 20 65 78 70 61 6e iler-macro.calls....within.expan
1780 64 65 64 20 74 65 78 74 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 63 61 6e 20 62 65 20 66 6f 6e ded.text.so.that.they.can.be.fon
17a0 74 69 66 69 65 64 20 61 63 63 75 72 61 74 65 6c 79 2e 0a 0a 2a 2a 20 45 78 70 61 6e 64 69 6e 67 tified.accurately...**.Expanding
17c0 20 73 75 62 2d 66 6f 72 6d 73 0a 20 20 20 42 79 20 6d 6f 76 69 6e 67 20 70 6f 69 6e 74 20 61 72 .sub-forms....By.moving.point.ar
17e0 6f 75 6e 64 20 69 6e 20 74 68 65 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 20 75 73 69 6e ound.in.the.macro.expansion.usin
1800 67 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 2d 6e 65 78 74 2d 6d 61 63 72 6f 3d 20 61 6e 64 20 g....=macrostep-next-macro=.and.
1820 3d 6d 61 63 72 6f 73 74 65 70 2d 70 72 65 76 2d 6d 61 63 72 6f 3d 20 28 62 6f 75 6e 64 20 74 6f =macrostep-prev-macro=.(bound.to
1840 20 74 68 65 20 3d 6e 3d 0a 20 20 20 61 6e 64 20 3d 70 3d 20 6b 65 79 73 29 2c 20 69 74 20 69 73 .the.=n=....and.=p=.keys),.it.is
1860 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 78 70 61 6e 64 20 6f 74 68 65 72 20 6d 61 63 72 6f 20 .possible.to.expand.other.macro.
1880 63 61 6c 6c 73 20 77 69 74 68 69 6e 0a 20 20 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 20 62 65 calls.within....the.expansion.be
18a0 66 6f 72 65 20 65 78 70 61 6e 64 69 6e 67 20 74 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 66 6f 72 fore.expanding.the.outermost.for
18c0 6d 2e 20 20 54 68 69 73 20 63 61 6e 0a 20 20 20 73 6f 6d 65 74 69 6d 65 73 20 62 65 20 75 73 65 m...This.can....sometimes.be.use
18e0 66 75 6c 2c 20 61 6c 74 68 6f 75 67 68 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 63 6f 72 72 65 73 ful,.although.it.does.not.corres
1900 70 6f 6e 64 20 74 6f 20 74 68 65 20 72 65 61 6c 0a 20 20 20 6f 72 64 65 72 20 6f 66 20 6d 61 63 pond.to.the.real....order.of.mac
1920 72 6f 20 65 78 70 61 6e 73 69 6f 6e 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 2c 20 77 68 69 63 ro.expansion.in.Emacs.Lisp,.whic
1940 68 20 70 72 6f 63 65 65 64 73 20 62 79 20 66 75 6c 6c 79 0a 20 20 20 65 78 70 61 6e 64 69 6e 67 h.proceeds.by.fully....expanding
1960 20 74 68 65 20 6f 75 74 65 72 20 66 6f 72 6d 20 74 6f 20 61 20 6e 6f 6e 2d 6d 61 63 72 6f 20 66 .the.outer.form.to.a.non-macro.f
1980 6f 72 6d 20 62 65 66 6f 72 65 20 65 78 70 61 6e 64 69 6e 67 0a 20 20 20 73 75 62 2d 66 6f 72 6d orm.before.expanding....sub-form
19a0 73 2e 0a 0a 20 20 20 54 68 65 20 6d 61 69 6e 20 72 65 61 73 6f 6e 20 74 6f 20 65 78 70 61 6e 64 s......The.main.reason.to.expand
19c0 20 73 75 62 2d 66 6f 72 6d 73 20 6f 75 74 20 6f 66 20 6f 72 64 65 72 20 69 73 20 74 6f 20 68 65 .sub-forms.out.of.order.is.to.he
19e0 6c 70 20 77 69 74 68 0a 20 20 20 64 65 62 75 67 67 69 6e 67 20 6d 61 63 72 6f 73 20 77 68 69 63 lp.with....debugging.macros.whic
1a00 68 20 70 72 6f 67 72 61 6d 6d 61 74 69 63 61 6c 6c 79 20 65 78 70 61 6e 64 20 74 68 65 69 72 20 h.programmatically.expand.their.
1a20 61 72 67 75 6d 65 6e 74 73 20 69 6e 0a 20 20 20 6f 72 64 65 72 20 74 6f 20 72 65 77 72 69 74 65 arguments.in....order.to.rewrite
1a40 20 74 68 65 6d 2e 20 20 45 78 70 61 6e 64 69 6e 67 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 .them...Expanding.the.arguments.
1a60 6f 66 20 73 75 63 68 20 61 20 6d 61 63 72 6f 0a 20 20 20 6c 65 74 73 20 79 6f 75 20 76 69 73 75 of.such.a.macro....lets.you.visu
1a80 61 6c 69 73 65 20 77 68 61 74 20 74 68 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 20 alise.what.the.macro.definition.
1aa0 77 6f 75 6c 64 20 63 6f 6d 70 75 74 65 20 76 69 61 0a 20 20 20 3d 6d 61 63 72 6f 65 78 70 61 6e would.compute.via....=macroexpan
1ac0 64 2d 61 6c 6c 3d 2e 0a 0a 2a 2a 20 45 78 74 65 6e 64 69 6e 67 20 6d 61 63 72 6f 73 74 65 70 20 d-all=...**.Extending.macrostep.
1ae0 66 6f 72 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 0a 20 20 20 53 69 6e 63 65 20 76 65 72 for.other.languages....Since.ver
1b00 73 69 6f 6e 20 30 2e 39 2c 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 78 74 65 sion.0.9,.it.is.possible.to.exte
1b20 6e 64 20 6d 61 63 72 6f 73 74 65 70 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 0a 20 20 20 6f 74 68 nd.macrostep.to.work.with....oth
1b40 65 72 20 6c 61 6e 67 75 61 67 65 73 20 62 65 73 69 64 65 73 20 45 6d 61 63 73 20 4c 69 73 70 2e er.languages.besides.Emacs.Lisp.
1b60 20 20 49 6e 20 74 79 70 69 63 61 6c 20 45 6d 61 63 73 20 66 61 73 68 69 6f 6e 2c 20 74 68 69 73 ..In.typical.Emacs.fashion,.this
1b80 0a 20 20 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 62 75 ....is.implemented.by.setting.bu
1ba0 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 74 6f 20 64 69 66 66 65 72 65 6e ffer-local.variables.to.differen
1bc0 74 0a 20 20 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 75 65 73 2e 20 20 53 69 78 20 62 75 66 66 65 t....function.values...Six.buffe
1be0 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 64 65 66 69 6e 65 20 74 68 65 0a 20 20 20 r-local.variables.define.the....
1c00 6c 61 6e 67 75 61 67 65 2d 73 70 65 63 69 66 69 63 20 70 61 72 74 20 6f 66 20 74 68 65 20 69 6d language-specific.part.of.the.im
1c20 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 3a 0a 0a 20 20 20 2d 20 3d 6d 61 63 72 6f 73 74 65 70 2d 73 plementation:.....-.=macrostep-s
1c40 65 78 70 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 3d 0a 20 20 20 2d 20 3d 6d 61 63 72 6f exp-bounds-function=....-.=macro
1c60 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 3d 0a 20 20 20 step-sexp-at-point-function=....
1c80 2d 20 3d 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e -.=macrostep-environment-at-poin
1ca0 74 2d 66 75 6e 63 74 69 6f 6e 3d 0a 20 20 20 2d 20 3d 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 t-function=....-.=macrostep-expa
1cc0 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 3d 0a 20 20 20 2d 20 3d 6d 61 63 72 6f 73 74 65 70 2d 70 nd-1-function=....-.=macrostep-p
1ce0 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 3d 0a 20 20 20 2d 20 3d 6d 61 63 72 6f 73 74 65 70 2d 6d rint-function=....-.=macrostep-m
1d00 61 63 72 6f 2d 66 6f 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 3d 0a 0a 20 20 20 54 79 70 69 63 61 acro-form-p-function=.....Typica
1d20 6c 6c 79 2c 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 61 6e 6f 74 68 lly,.an.implementation.for.anoth
1d40 65 72 20 6c 61 6e 67 75 61 67 65 20 77 6f 75 6c 64 20 73 65 74 20 74 68 65 73 65 0a 20 20 20 76 er.language.would.set.these....v
1d60 61 72 69 61 62 6c 65 73 20 69 6e 20 61 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 68 6f 6f 6b 2e 20 20 ariables.in.a.major-mode.hook...
1d80 53 65 65 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 73 20 6f 66 20 65 61 63 68 0a 20 20 20 76 61 See.the.docstrings.of.each....va
1da0 72 69 61 62 6c 65 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 68 6f 77 20 65 61 63 68 20 6f riable.for.details.on.how.each.o
1dc0 6e 65 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 64 20 77 68 61 74 20 69 74 20 73 68 6f 75 6c 64 0a ne.is.called.and.what.it.should.
1de0 20 20 20 72 65 74 75 72 6e 2e 20 20 41 74 20 61 20 6d 69 6e 69 6d 75 6d 2c 20 61 6e 6f 74 68 65 ...return...At.a.minimum,.anothe
1e00 72 20 6c 61 6e 67 75 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6e 65 65 64 73 20 r.language.implementation.needs.
1e20 74 6f 0a 20 20 20 70 72 6f 76 69 64 65 20 3d 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 to....provide.=macrostep-sexp-at
1e40 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 3d 2c 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 2d -point-function=,....=macrostep-
1e60 65 78 70 61 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 3d 2c 20 61 6e 64 20 3d 6d 61 63 72 6f 73 74 expand-1-function=,.and.=macrost
1e80 65 70 2d 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 3d 2e 0a 20 20 20 4c 69 73 70 2d 6c 69 6b 65 ep-print-function=.....Lisp-like
1ea0 20 6c 61 6e 67 75 61 67 65 73 20 6d 61 79 20 62 65 20 61 62 6c 65 20 74 6f 20 72 65 75 73 65 20 .languages.may.be.able.to.reuse.
1ec0 74 68 65 20 64 65 66 61 75 6c 74 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 the.default....=macrostep-sexp-b
1ee0 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 3d 20 69 66 20 74 68 65 79 20 70 72 6f 76 69 64 65 20 ounds-function=.if.they.provide.
1f00 61 6e 6f 74 68 65 72 0a 20 20 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 3d 6d 61 another....implementation.of.=ma
1f20 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 3d 2e 20 crostep-macro-form-p-function=..
1f40 20 4c 61 6e 67 75 61 67 65 73 0a 20 20 20 77 68 69 63 68 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65 .Languages....which.do.not.imple
1f60 6d 65 6e 74 20 6c 6f 63 61 6c 6c 79 2d 64 65 66 69 6e 65 64 20 6d 61 63 72 6f 73 20 63 61 6e 20 ment.locally-defined.macros.can.
1f80 73 65 74 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 set....=macrostep-environment-at
1fa0 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 3d 20 74 6f 20 3d 69 67 6e 6f 72 65 3d 2e 0a 20 20 -point-function=.to.=ignore=....
1fc0 20 0a 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 63 6f 72 65 20 3d 6d 61 63 72 6f 73 74 .....Note.that.the.core.=macrost
1fe0 65 70 3d 20 6d 61 63 68 69 6e 65 72 79 20 6f 6e 6c 79 20 69 6e 74 65 72 70 72 65 74 73 20 74 68 ep=.machinery.only.interprets.th
2000 65 20 72 65 74 75 72 6e 0a 20 20 20 76 61 6c 75 65 20 6f 66 20 3d 6d 61 63 72 6f 73 74 65 70 2d e.return....value.of.=macrostep-
2020 73 65 78 70 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 3d 2c 20 73 6f 20 69 6d 70 6c 65 6d sexp-bounds-function=,.so.implem
2040 65 6e 74 61 74 69 6f 6e 73 20 66 6f 72 0a 20 20 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 entations.for....other.languages
2060 20 63 61 6e 20 75 73 65 20 61 6e 79 20 69 6e 74 65 72 6e 61 6c 20 72 65 70 72 65 73 65 6e 74 61 .can.use.any.internal.representa
2080 74 69 6f 6e 73 20 6f 66 20 63 6f 64 65 20 61 6e 64 0a 20 20 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 tions.of.code.and....environment
20a0 73 20 77 68 69 63 68 20 69 73 20 63 6f 6e 76 65 6e 69 65 6e 74 2e 20 20 41 6c 74 68 6f 75 67 68 s.which.is.convenient...Although
20c0 20 74 68 65 20 74 65 72 6d 69 6e 6f 6c 6f 67 79 20 69 73 0a 20 20 20 4c 69 73 70 2d 73 70 65 63 .the.terminology.is....Lisp-spec
20e0 69 66 69 63 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 72 65 61 73 6f 6e 20 74 68 61 74 20 69 6d ific,.there.is.no.reason.that.im
2100 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 0a 20 20 20 70 72 plementations.could.not.be....pr
2120 6f 76 69 64 65 64 20 66 6f 72 20 6e 6f 6e 2d 4c 69 73 70 20 6c 61 6e 67 75 61 67 65 73 20 77 69 ovided.for.non-Lisp.languages.wi
2140 74 68 20 6d 61 63 72 6f 20 73 79 73 74 65 6d 73 2c 20 70 72 6f 76 69 64 65 64 20 74 68 65 72 65 th.macro.systems,.provided.there
2160 0a 20 20 20 69 73 20 73 6f 6d 65 20 77 61 79 20 6f 66 20 69 64 65 6e 74 69 66 79 69 6e 67 20 6d ....is.some.way.of.identifying.m
2180 61 63 72 6f 20 63 61 6c 6c 73 20 61 6e 64 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 63 6f 6d 70 69 acro.calls.and.calling.the.compi
21a0 6c 65 72 20 2f 0a 20 20 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 74 6f 20 6f 62 74 61 69 6e 20 ler./....preprocessor.to.obtain.
21c0 74 68 65 69 72 20 65 78 70 61 6e 73 69 6f 6e 73 2e 0a 0a 2a 2a 20 42 75 67 73 20 61 6e 64 20 6b their.expansions...**.Bugs.and.k
21e0 6e 6f 77 6e 20 6c 69 6d 69 74 61 74 69 6f 6e 73 0a 20 20 20 59 6f 75 20 63 61 6e 20 65 76 61 6c nown.limitations....You.can.eval
2200 75 61 74 65 20 61 6e 64 20 65 64 65 62 75 67 20 6d 61 63 72 6f 2d 65 78 70 61 6e 64 65 64 20 66 uate.and.edebug.macro-expanded.f
2220 6f 72 6d 73 20 61 6e 64 20 73 74 65 70 20 74 68 72 6f 75 67 68 0a 20 20 20 74 68 65 20 6d 61 63 orms.and.step.through....the.mac
2240 72 6f 2d 65 78 70 61 6e 64 65 64 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 74 68 65 20 66 6f 72 ro-expanded.version,.but.the.for
2260 6d 20 74 68 61 74 20 3d 65 76 61 6c 2d 64 65 66 75 6e 3d 20 61 6e 64 0a 20 20 20 66 72 69 65 6e m.that.=eval-defun=.and....frien
2280 64 73 20 72 65 61 64 20 66 72 6f 6d 20 74 68 65 20 62 75 66 66 65 72 20 77 6f 6e 27 74 20 68 61 ds.read.from.the.buffer.won't.ha
22a0 76 65 20 74 68 65 20 75 6e 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f 6c 73 20 6f 66 0a 20 20 20 ve.the.uninterned.symbols.of....
22c0 74 68 65 20 72 65 61 6c 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 20 20 54 68 69 73 20 the.real.macro.expansion...This.
22e0 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 77 6f 72 6b 20 4f 4b 20 77 69 74 68 20 43 4c 2d 73 74 will.probably.work.OK.with.CL-st
2300 79 6c 65 0a 20 20 20 67 65 6e 73 79 6d 73 2c 20 62 75 74 20 6d 61 79 20 63 61 75 73 65 20 70 72 yle....gensyms,.but.may.cause.pr
2320 6f 62 6c 65 6d 73 20 77 69 74 68 20 3d 6d 61 6b 65 2d 73 79 6d 62 6f 6c 3d 20 73 79 6d 62 6f 6c oblems.with.=make-symbol=.symbol
2340 73 20 69 66 20 74 68 65 79 0a 20 20 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 70 72 69 6e 74 s.if.they....have.the.same.print
2360 20 6e 61 6d 65 20 61 73 20 61 6e 6f 74 68 65 72 20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 65 20 65 .name.as.another.symbol.in.the.e
2380 78 70 61 6e 73 69 6f 6e 2e 20 49 74 27 73 0a 20 20 20 70 6f 73 73 69 62 6c 65 20 74 68 61 74 20 xpansion..It's....possible.that.
23a0 75 73 69 6e 67 20 3d 70 72 69 6e 74 2d 63 69 72 63 6c 65 3d 20 61 6e 64 20 3d 70 72 69 6e 74 2d using.=print-circle=.and.=print-
23c0 67 65 6e 73 79 6d 3d 20 63 6f 75 6c 64 20 67 65 74 0a 20 20 20 61 72 6f 75 6e 64 20 74 68 69 73 gensym=.could.get....around.this
23e0 2e 0a 0a 20 20 20 50 6c 65 61 73 65 20 73 65 6e 64 20 6f 74 68 65 72 20 62 75 67 20 72 65 70 6f ......Please.send.other.bug.repo
2400 72 74 73 20 61 6e 64 20 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 73 20 74 6f 20 74 68 65 20 rts.and.feature.requests.to.the.
2420 61 75 74 68 6f 72 2e 0a 0a 2a 2a 20 41 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 73 0a 20 20 20 author...**.Acknowledgements....
2440 54 68 61 6e 6b 73 20 74 6f 3a 0a 20 20 20 2d 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 66 6f 72 Thanks.to:....-.John.Wiegley.for
2460 20 66 69 78 69 6e 67 20 61 20 62 75 67 20 77 69 74 68 20 74 68 65 20 66 61 63 65 20 64 65 66 69 .fixing.a.bug.with.the.face.defi
2480 6e 69 74 69 6f 6e 73 20 75 6e 64 65 72 0a 20 20 20 20 20 45 6d 61 63 73 20 32 34 20 26 20 66 6f nitions.under......Emacs.24.&.fo
24a0 72 20 70 6c 75 67 67 69 6e 67 20 6d 61 63 72 6f 73 74 65 70 20 69 6e 20 68 69 73 20 5b 5b 68 74 r.plugging.macrostep.in.his.[[ht
24c0 74 70 3a 2f 2f 79 6f 75 74 75 2e 62 65 2f 52 76 50 46 5a 4c 36 4e 4a 4e 51 5d 5b 45 6d 61 63 73 tp://youtu.be/RvPFZL6NJNQ][Emacs
24e0 43 6f 6e 66 20 70 72 65 73 65 6e 74 61 74 69 6f 6e 5d 5d 21 0a 20 20 20 2d 20 47 65 6f 72 67 65 Conf.presentation]]!....-.George
2500 20 4b 65 74 74 6c 65 62 6f 72 6f 75 67 68 20 66 6f 72 20 62 75 67 20 72 65 70 6f 72 74 73 2c 20 .Kettleborough.for.bug.reports,.
2520 61 6e 64 20 70 61 74 63 68 65 73 20 74 6f 20 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 74 68 and.patches.to.highlight......th
2540 65 20 65 78 70 61 6e 64 65 64 20 72 65 67 69 6f 6e 20 61 6e 64 20 70 72 6f 70 65 72 6c 79 20 68 e.expanded.region.and.properly.h
2560 61 6e 64 6c 65 20 62 61 63 6b 71 75 6f 74 65 73 2e 0a 20 20 20 2d 20 4e 69 63 20 46 65 72 72 69 andle.backquotes.....-.Nic.Ferri
2580 65 72 20 66 6f 72 20 73 75 67 67 65 73 74 69 6e 67 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6c 6f er.for.suggesting.support.for.lo
25a0 63 61 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 77 69 74 68 69 6e 0a 20 20 20 20 20 6d 61 63 72 cal.definitions.within......macr
25c0 6f 6c 65 74 20 66 6f 72 6d 73 0a 20 20 20 2d 20 4c 75 c3 ad 73 20 4f 6c 69 76 65 69 72 61 20 66 olet.forms....-.Lu..s.Oliveira.f
25e0 6f 72 20 73 75 67 67 65 73 74 69 6e 67 20 61 6e 64 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 53 or.suggesting.and.implementing.S
2600 4c 49 4d 45 20 73 75 70 70 6f 72 74 0a 0a 20 20 20 3d 6d 61 63 72 6f 73 74 65 70 3d 20 77 61 73 LIME.support.....=macrostep=.was
2620 20 6f 72 69 67 69 6e 61 6c 6c 79 20 69 6e 73 70 69 72 65 64 20 62 79 20 4a 2e 20 56 2e 20 54 6f .originally.inspired.by.J..V..To
2640 75 70 73 27 73 20 27 44 65 65 70 20 45 6d 61 63 73 0a 20 20 20 4c 69 73 70 27 20 61 72 74 69 63 ups's.'Deep.Emacs....Lisp'.artic
2660 6c 65 73 20 28 5b 5b 68 74 74 70 3a 2f 2f 64 6f 72 6f 70 68 6f 6e 65 2e 62 6c 6f 67 73 70 6f 74 les.([[http://dorophone.blogspot
2680 2e 63 6f 2e 75 6b 2f 32 30 31 31 2f 30 34 2f 64 65 65 70 2d 65 6d 61 63 73 2d 70 61 72 74 2d 31 .co.uk/2011/04/deep-emacs-part-1
26a0 2e 68 74 6d 6c 5d 5b 70 61 72 74 20 31 5d 5d 2c 20 5b 5b 68 74 74 70 3a 2f 2f 64 6f 72 6f 70 68 .html][part.1]],.[[http://doroph
26c0 6f 6e 65 2e 62 6c 6f 67 73 70 6f 74 2e 63 6f 2e 75 6b 2f 32 30 31 31 2f 30 34 2f 64 65 65 70 2d one.blogspot.co.uk/2011/04/deep-
26e0 65 6d 61 63 73 2d 6c 69 73 70 2d 70 61 72 74 2d 32 2e 68 74 6d 6c 5d 5b 70 61 72 74 20 32 5d 5d emacs-lisp-part-2.html][part.2]]
2700 2c 20 5b 5b 68 74 74 70 3a 2f 2f 64 6f 72 6f 70 68 6f 6e 65 2e 62 6c 6f 67 73 70 6f 74 2e 63 6f ,.[[http://dorophone.blogspot.co
2720 2e 75 6b 2f 32 30 31 31 2f 30 35 2f 6d 6f 6e 61 64 69 63 2d 70 61 72 73 65 72 2d 63 6f 6d 62 69 .uk/2011/05/monadic-parser-combi
2740 6e 61 74 6f 72 73 2d 69 6e 2d 65 6c 69 73 70 2e 68 74 6d 6c 5d 5b 73 63 72 65 65 6e 63 61 73 74 nators-in-elisp.html][screencast
2760 5d 5d 29 2e 0a 0a 2a 2a 20 43 68 61 6e 67 65 6c 6f 67 0a 20 20 20 2d 20 76 30 2e 39 2e 34 2c 20 ]])...**.Changelog....-.v0.9.4,.
2780 32 30 32 34 2d 30 35 2d 30 39 3a 0a 20 20 20 20 20 2d 20 61 64 64 20 63 6f 6d 70 61 74 20 64 65 2024-05-09:......-.add.compat.de
27a0 70 65 6e 64 65 6e 63 79 20 66 6f 72 20 64 65 66 76 61 72 2d 6b 65 79 6d 61 70 0a 20 20 20 2d 20 pendency.for.defvar-keymap....-.
27c0 76 30 2e 39 2e 33 2c 20 32 30 32 34 2d 30 34 2d 33 30 3a 0a 20 20 20 20 20 2d 20 63 6f 64 65 20 v0.9.3,.2024-04-30:......-.code.
27e0 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 73 2c 20 63 68 65 63 6b 64 6f 63 20 66 69 78 65 73 2e simplifications,.checkdoc.fixes.
2800 0a 20 20 20 2d 20 76 30 2e 39 2e 32 2c 20 32 30 32 33 2d 30 35 2d 31 32 3a 0a 20 20 20 20 20 2d ....-.v0.9.2,.2023-05-12:......-
2820 20 6e 61 6d 65 20 74 68 65 20 6b 65 79 6d 61 70 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 2d .name.the.keymap.macrostep-mode-
2840 6d 61 70 2c 20 66 69 78 69 6e 67 20 61 20 72 65 67 72 65 73 73 69 6f 6e 20 69 6e 20 76 30 2e 39 map,.fixing.a.regression.in.v0.9
2860 2e 31 0a 20 20 20 2d 20 76 30 2e 39 2e 31 2c 20 32 30 32 33 2d 30 33 2d 31 32 3a 0a 20 20 20 20 .1....-.v0.9.1,.2023-03-12:.....
2880 20 2d 20 62 75 67 20 66 69 78 65 73 2c 20 63 6c 65 61 6e 75 70 20 61 6e 64 20 6d 6f 64 65 72 6e .-.bug.fixes,.cleanup.and.modern
28a0 69 7a 61 74 69 6f 6e 0a 20 20 20 2d 20 76 30 2e 39 2c 20 32 30 31 35 2d 31 30 2d 30 31 3a 0a 20 ization....-.v0.9,.2015-10-01:..
28c0 20 20 20 20 2d 20 73 65 70 61 72 61 74 65 20 69 6e 74 6f 20 45 6c 69 73 70 2d 73 70 65 63 69 66 ....-.separate.into.Elisp-specif
28e0 69 63 20 61 6e 64 20 67 65 6e 65 72 69 63 20 63 6f 6d 70 6f 6e 65 6e 74 73 0a 20 20 20 20 20 2d ic.and.generic.components......-
2900 20 68 69 67 68 6c 69 67 68 74 20 61 6e 64 20 65 78 70 61 6e 64 20 63 6f 6d 70 69 6c 65 72 20 6d .highlight.and.expand.compiler.m
2920 61 63 72 6f 73 0a 20 20 20 20 20 2d 20 69 6d 70 72 6f 76 65 20 6c 6f 63 61 6c 20 6d 61 63 72 6f acros......-.improve.local.macro
2940 20 65 78 70 61 6e 73 69 6f 6e 20 61 6e 64 20 6d 61 63 72 6f 20 66 6f 72 6d 20 69 64 65 6e 74 69 .expansion.and.macro.form.identi
2960 66 69 63 61 74 69 6f 6e 20 62 79 0a 20 20 20 20 20 20 20 69 6e 73 74 72 75 6d 65 6e 74 69 6e 67 fication.by........instrumenting
2980 20 3d 6d 61 63 72 6f 65 78 70 61 6e 64 28 2d 61 6c 6c 29 3d 0a 20 20 20 2d 20 76 30 2e 38 2c 20 .=macroexpand(-all)=....-.v0.8,.
29a0 32 30 31 34 2d 30 35 2d 32 39 3a 20 66 69 78 20 61 20 62 75 67 20 77 69 74 68 20 70 72 69 6e 74 2014-05-29:.fix.a.bug.with.print
29c0 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 0a 20 20 20 20 20 6c 69 ing.the.first.element.of......li
29e0 73 74 73 0a 20 20 20 2d 20 76 30 2e 37 2c 20 32 30 31 34 2d 30 35 2d 31 31 3a 20 65 78 70 61 6e sts....-.v0.7,.2014-05-11:.expan
2a00 64 20 6c 6f 63 61 6c 6c 79 2d 64 65 66 69 6e 65 64 20 6d 61 63 72 6f 73 20 77 69 74 68 69 6e 0a d.locally-defined.macros.within.
2a20 20 20 20 20 20 3d 28 63 6c 2d 29 6d 61 63 72 6f 6c 65 74 3d 20 66 6f 72 6d 73 0a 20 20 20 2d 20 .....=(cl-)macrolet=.forms....-.
2a40 76 30 2e 36 2c 20 32 30 31 33 2d 30 35 2d 30 34 3a 20 62 65 74 74 65 72 20 68 61 6e 64 6c 69 6e v0.6,.2013-05-04:.better.handlin
2a60 67 20 6f 66 20 71 75 6f 74 65 20 61 6e 64 20 62 61 63 6b 71 75 6f 74 65 0a 20 20 20 2d 20 76 30 g.of.quote.and.backquote....-.v0
2a80 2e 35 2c 20 32 30 31 33 2d 30 34 2d 31 36 3a 20 68 69 67 68 6c 69 67 68 74 20 72 65 67 69 6f 6e .5,.2013-04-16:.highlight.region
2aa0 2c 20 6d 61 69 6e 74 61 69 6e 20 63 6c 65 61 6e 65 72 20 62 75 66 66 65 72 20 73 74 61 74 65 0a ,.maintain.cleaner.buffer.state.
2ac0 20 20 20 2d 20 76 30 2e 34 2c 20 32 30 31 33 2d 30 34 2d 30 37 3a 20 6f 6e 6c 79 20 65 6e 74 65 ...-.v0.4,.2013-04-07:.only.ente
2ae0 72 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 6f 6e 20 73 75 63 63 65 73 73 66 75 6c 0a 20 r.macrostep-mode.on.successful..
2b00 20 20 20 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 0a 20 20 20 2d 20 76 30 2e 33 2c 20 32 ....macro-expansion....-.v0.3,.2
2b20 30 31 32 2d 31 30 2d 33 30 3a 20 70 72 69 6e 74 20 64 6f 74 74 65 64 20 6c 69 73 74 73 20 63 6f 012-10-30:.print.dotted.lists.co
2b40 72 72 65 63 74 6c 79 2e 20 61 75 74 6f 6c 6f 61 64 0a 20 20 20 20 20 64 65 66 69 6e 69 74 69 6f rrectly..autoload......definitio
2b60 6e 73 2e 0a 0a 2a 20 43 6f 6e 74 72 69 62 75 74 69 6f 6e 73 0a 0a 50 6c 65 61 73 65 20 6e 6f 74 ns...*.Contributions..Please.not
2b80 65 20 74 68 61 74 20 61 73 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 74 65 6e 64 e.that.as.this.package.is.intend
2ba0 65 64 20 74 6f 20 62 65 20 70 61 72 74 20 6f 66 20 45 6d 61 63 73 20 73 6f 6f 6e 2c 0a 6e 6f 6e ed.to.be.part.of.Emacs.soon,.non
2bc0 2d 74 72 69 76 69 61 6c 20 63 6f 64 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 72 65 71 75 -trivial.code.contributions.requ
2be0 69 72 65 20 46 53 46 20 63 6f 70 79 72 69 67 68 74 20 61 73 73 69 67 6e 6d 65 6e 74 20 70 72 69 ire.FSF.copyright.assignment.pri
2c00 6f 72 0a 74 6f 20 61 63 63 65 70 74 61 6e 63 65 2e 0a 0a 54 68 65 20 63 6f 70 79 72 69 67 68 74 or.to.acceptance...The.copyright
2c20 20 61 73 73 69 67 6e 6d 65 6e 74 20 70 6f 6c 69 63 79 20 69 73 20 61 74 0a 68 74 74 70 73 3a 2f .assignment.policy.is.at.https:/
2c40 2f 77 77 77 2e 66 73 66 2e 6f 72 67 2f 6c 69 63 65 6e 73 69 6e 67 2f 63 6f 6e 74 72 69 62 75 74 /www.fsf.org/licensing/contribut
2c60 6f 72 2d 66 61 71 0a 0a 41 6e 79 20 6c 65 67 61 6c 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 or-faq..Any.legally.significant.
2c80 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 6d 65 72 67 65 64 contributions.can.only.be.merged
2ca0 20 61 66 74 65 72 20 74 68 65 0a 61 75 74 68 6f 72 20 68 61 73 20 63 6f 6d 70 6c 65 74 65 64 20 .after.the.author.has.completed.
2cc0 74 68 65 69 72 20 70 61 70 65 72 77 6f 72 6b 2e 0a 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 their.paperwork..https://www.gnu
2ce0 2e 6f 72 67 2f 70 72 65 70 2f 6d 61 69 6e 74 61 69 6e 2f 68 74 6d 6c 5f 6e 6f 64 65 2f 4c 65 67 .org/prep/maintain/html_node/Leg
2d00 61 6c 6c 79 2d 53 69 67 6e 69 66 69 63 61 6e 74 2e 68 74 6d 6c 23 4c 65 67 61 6c 6c 79 2d 53 69 ally-Significant.html#Legally-Si
2d20 67 6e 69 66 69 63 61 6e 74 0a 23 2b 4f 50 54 49 4f 4e 53 3a 20 61 75 74 68 6f 72 3a 6e 69 6c 20 gnificant.#+OPTIONS:.author:nil.
2d40 65 6d 61 69 6c 3a 6e 69 6c 20 74 6f 63 3a 6e 69 6c 20 74 69 6d 65 73 74 61 6d 70 3a 6e 69 6c 0a email:nil.toc:nil.timestamp:nil.
2d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e00 6d 61 63 72 6f 73 74 65 70 2d 30 2e 39 2e 35 2f 52 45 41 44 4d 45 2d 65 6c 70 61 00 00 00 00 00 macrostep-0.9.5/README-elpa.....
2e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2e80 30 30 32 36 31 36 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 37 33 00 20 30 00 00 00 0026166.00000000000.013773..0...
2ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3000 31 20 6d 61 63 72 6f 73 74 65 70 3a 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 61 63 72 6f 2d 65 1.macrostep:.interactive.macro-e
3020 78 70 61 6e 64 65 72 0a e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 xpander.........................
3040 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 ................................
3060 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 ................................
3080 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 0a 0a 20 ................................
30a0 20 60 6d 61 63 72 6f 73 74 65 70 27 20 69 73 20 61 6e 20 45 6d 61 63 73 20 6d 69 6e 6f 72 20 6d .`macrostep'.is.an.Emacs.minor.m
30c0 6f 64 65 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 73 74 65 70 70 69 6e 67 20 74 ode.for.interactively.stepping.t
30e0 68 72 6f 75 67 68 0a 20 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 20 6f 66 20 6d 61 63 72 6f 73 hrough...the.expansion.of.macros
3100 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 74 20 .in.Emacs.Lisp.source.code...It.
3120 6c 65 74 73 20 79 6f 75 20 73 65 65 0a 20 20 65 78 61 63 74 6c 79 20 77 68 61 74 20 68 61 70 70 lets.you.see...exactly.what.happ
3140 65 6e 73 20 61 74 20 65 61 63 68 20 73 74 65 70 20 6f 66 20 74 68 65 20 65 78 70 61 6e 73 69 6f ens.at.each.step.of.the.expansio
3160 6e 20 70 72 6f 63 65 73 73 20 62 79 0a 20 20 70 72 65 74 74 79 2d 70 72 69 6e 74 69 6e 67 20 74 n.process.by...pretty-printing.t
3180 68 65 20 65 78 70 61 6e 64 65 64 20 66 6f 72 6d 73 20 69 6e 6c 69 6e 65 20 69 6e 20 74 68 65 20 he.expanded.forms.inline.in.the.
31a0 73 6f 75 72 63 65 20 62 75 66 66 65 72 2c 20 77 68 69 63 68 0a 20 20 69 73 20 74 65 6d 70 6f 72 source.buffer,.which...is.tempor
31c0 61 72 69 6c 79 20 72 65 61 64 2d 6f 6e 6c 79 20 77 68 69 6c 65 20 6d 61 63 72 6f 20 65 78 70 61 arily.read-only.while.macro.expa
31e0 6e 73 69 6f 6e 73 20 61 72 65 20 76 69 73 69 62 6c 65 2e 20 20 59 6f 75 20 63 61 6e 0a 20 20 65 nsions.are.visible...You.can...e
3200 78 70 61 6e 64 20 61 6e 64 20 63 6f 6c 6c 61 70 73 65 20 6d 61 63 72 6f 20 66 6f 72 6d 73 20 6f xpand.and.collapse.macro.forms.o
3220 6e 65 20 73 74 65 70 20 61 74 20 61 20 74 69 6d 65 2c 20 61 6e 64 20 65 76 61 6c 75 61 74 65 20 ne.step.at.a.time,.and.evaluate.
3240 6f 72 0a 20 20 69 6e 73 74 72 75 6d 65 6e 74 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 73 20 66 or...instrument.the.expansions.f
3260 6f 72 20 64 65 62 75 67 67 69 6e 67 20 77 69 74 68 20 45 64 65 62 75 67 20 61 73 20 6e 6f 72 6d or.debugging.with.Edebug.as.norm
3280 61 6c 20 28 62 75 74 20 73 65 65 0a 20 20 22 42 75 67 73 20 61 6e 64 20 6b 6e 6f 77 6e 20 6c 69 al.(but.see..."Bugs.and.known.li
32a0 6d 69 74 61 74 69 6f 6e 73 22 2c 20 62 65 6c 6f 77 29 2e 20 20 53 69 6e 67 6c 65 2d 73 74 65 70 mitations",.below)...Single-step
32c0 70 69 6e 67 20 74 68 72 6f 75 67 68 20 74 68 65 0a 20 20 65 78 70 61 6e 73 69 6f 6e 20 69 73 20 ping.through.the...expansion.is.
32e0 70 61 72 74 69 63 75 6c 61 72 6c 79 20 75 73 65 66 75 6c 20 66 6f 72 20 64 65 62 75 67 67 69 6e particularly.useful.for.debuggin
3300 67 20 6d 61 63 72 6f 73 20 74 68 61 74 20 65 78 70 61 6e 64 20 69 6e 74 6f 0a 20 20 61 6e 6f 74 g.macros.that.expand.into...anot
3320 68 65 72 20 6d 61 63 72 6f 20 66 6f 72 6d 2e 20 20 54 68 65 73 65 20 63 61 6e 20 62 65 20 64 69 her.macro.form...These.can.be.di
3340 66 66 69 63 75 6c 74 20 74 6f 20 64 65 62 75 67 20 77 69 74 68 20 45 6d 61 63 73 27 0a 20 20 62 fficult.to.debug.with.Emacs'...b
3360 75 69 6c 74 2d 69 6e 20 60 6d 61 63 72 6f 65 78 70 61 6e 64 27 2c 20 77 68 69 63 68 20 63 6f 6e uilt-in.`macroexpand',.which.con
3380 74 69 6e 75 65 73 20 65 78 70 61 6e 73 69 6f 6e 20 75 6e 74 69 6c 20 74 68 65 20 74 6f 70 2d 6c tinues.expansion.until.the.top-l
33a0 65 76 65 6c 0a 20 20 66 6f 72 6d 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 20 6d 61 63 72 6f evel...form.is.no.longer.a.macro
33c0 20 63 61 6c 6c 2e 0a 0a 20 20 42 6f 74 68 20 67 6c 6f 62 61 6c 6c 79 2d 76 69 73 69 62 6c 65 20 .call.....Both.globally-visible.
33e0 6d 61 63 72 6f 73 20 61 73 20 64 65 66 69 6e 65 64 20 62 79 20 60 64 65 66 6d 61 63 72 6f 27 20 macros.as.defined.by.`defmacro'.
3400 61 6e 64 20 6c 6f 63 61 6c 20 6d 61 63 72 6f 73 0a 20 20 62 6f 75 6e 64 20 62 79 20 60 28 63 6c and.local.macros...bound.by.`(cl
3420 2d 29 6d 61 63 72 6f 6c 65 74 27 20 6f 72 20 61 6e 6f 74 68 65 72 20 6d 61 63 72 6f 2d 64 65 66 -)macrolet'.or.another.macro-def
3440 69 6e 69 6e 67 20 66 6f 72 6d 20 63 61 6e 20 62 65 0a 20 20 65 78 70 61 6e 64 65 64 2e 20 20 57 ining.form.can.be...expanded...W
3460 69 74 68 69 6e 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 2c 20 63 61 6c 6c 73 20 74 6f ithin.macro.expansions,.calls.to
3480 20 6d 61 63 72 6f 73 20 61 6e 64 20 63 6f 6d 70 69 6c 65 72 0a 20 20 6d 61 63 72 6f 73 20 61 72 .macros.and.compiler...macros.ar
34a0 65 20 66 6f 6e 74 69 66 69 65 64 20 73 70 65 63 69 61 6c 6c 79 3a 20 6d 61 63 72 6f 20 66 6f 72 e.fontified.specially:.macro.for
34c0 6d 73 20 75 73 69 6e 67 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 61 63 65 ms.using...`macrostep-macro-face
34e0 27 2c 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 72 20 6d ',.and.functions.with.compiler.m
3500 61 63 72 6f 73 20 75 73 69 6e 67 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6d 70 69 6c 65 acros.using...`macrostep-compile
3520 72 2d 6d 61 63 72 6f 2d 66 61 63 65 27 2e 20 20 55 6e 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f r-macro-face'...Uninterned.symbo
3540 6c 73 20 28 67 65 6e 73 79 6d 73 29 20 61 72 65 0a 20 20 66 6f 6e 74 69 66 69 65 64 20 62 61 73 ls.(gensyms).are...fontified.bas
3560 65 64 20 6f 6e 20 77 68 69 63 68 20 73 74 65 70 20 69 6e 20 74 68 65 20 65 78 70 61 6e 73 69 6f ed.on.which.step.in.the.expansio
3580 6e 20 63 72 65 61 74 65 64 20 74 68 65 6d 2c 20 74 6f 0a 20 20 64 69 73 74 69 6e 67 75 69 73 68 n.created.them,.to...distinguish
35a0 20 74 68 65 6d 20 62 6f 74 68 20 66 72 6f 6d 20 6e 6f 72 6d 61 6c 20 73 79 6d 62 6f 6c 73 20 61 .them.both.from.normal.symbols.a
35c0 6e 64 20 66 72 6f 6d 20 6f 74 68 65 72 20 67 65 6e 73 79 6d 73 20 77 69 74 68 0a 20 20 74 68 65 nd.from.other.gensyms.with...the
35e0 20 73 61 6d 65 20 70 72 69 6e 74 20 6e 61 6d 65 2e 0a 0a 20 20 41 73 20 6f 66 20 76 65 72 73 69 .same.print.name.....As.of.versi
3600 6f 6e 20 30 2e 39 2c 20 69 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 on.0.9,.it.is.also.possible.to.e
3620 78 74 65 6e 64 20 60 6d 61 63 72 6f 73 74 65 70 27 20 74 6f 20 77 6f 72 6b 0a 20 20 77 69 74 68 xtend.`macrostep'.to.work...with
3640 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 77 69 74 68 20 6d 61 63 72 6f 20 73 79 73 74 .other.languages.with.macro.syst
3660 65 6d 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 45 6d 61 63 73 20 4c 69 73 70 2e 20 20 ems.in.addition.to.Emacs.Lisp...
3680 41 6e 0a 20 20 65 78 74 65 6e 73 69 6f 6e 20 66 6f 72 20 43 6f 6d 6d 6f 6e 20 4c 69 73 70 20 28 An...extension.for.Common.Lisp.(
36a0 76 69 61 20 53 4c 49 4d 45 29 20 69 73 20 69 6e 20 74 68 65 20 77 6f 72 6b 73 3b 20 63 6f 6e 74 via.SLIME).is.in.the.works;.cont
36c0 72 69 62 75 74 69 6f 6e 73 0a 20 20 66 6f 72 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 ributions...for.other.languages.
36e0 61 72 65 20 77 65 6c 63 6f 6d 65 2e 20 20 53 65 65 20 22 45 78 74 65 6e 64 69 6e 67 20 6d 61 63 are.welcome...See."Extending.mac
3700 72 6f 73 74 65 70 22 20 62 65 6c 6f 77 20 66 6f 72 0a 20 20 64 65 74 61 69 6c 73 2e 0a 0a 0a 31 rostep".below.for...details....1
3720 2e 31 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 .1.Installation.................
3740 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 ................................
3760 0a 0a 20 20 49 6e 73 74 61 6c 6c 20 60 6d 61 63 72 6f 73 74 65 70 27 20 66 72 6f 6d 20 45 6d 61 ....Install.`macrostep'.from.Ema
3780 63 73 20 77 69 74 68 20 60 4d 2d 78 20 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 20 6d 61 63 cs.with.`M-x.package-install.mac
37a0 72 6f 73 74 65 70 27 2e 0a 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 27 20 69 73 20 61 76 61 69 6c rostep'.....`macrostep'.is.avail
37c0 61 62 6c 65 20 6f 6e 20 5b 20 4e 6f 6e 47 4e 55 20 45 4c 50 41 2e 5d 20 20 46 6f 72 20 66 75 72 able.on.[.NonGNU.ELPA.]..For.fur
37e0 74 68 65 72 20 64 65 74 61 69 6c 73 2c 20 73 65 65 0a 20 20 5b 74 68 65 20 6d 61 63 72 6f 73 74 ther.details,.see...[the.macrost
3800 65 70 20 70 61 67 65 2e 5d 0a 0a 0a 5b 20 4e 6f 6e 47 4e 55 20 45 4c 50 41 2e 5d 20 3c 68 74 74 ep.page.]...[.NonGNU.ELPA.].<htt
3820 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 2f 3e 0a 0a 5b 74 68 65 20 6d 61 63 ps://elpa.nongnu.org/>..[the.mac
3840 72 6f 73 74 65 70 20 70 61 67 65 2e 5d 20 3c 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 rostep.page.].<https://elpa.nong
3860 6e 75 2e 6f 72 67 2f 6e 6f 6e 67 6e 75 2f 6d 61 63 72 6f 73 74 65 70 2e 68 74 6d 6c 3e 0a 0a 0a nu.org/nongnu/macrostep.html>...
3880 31 2e 32 20 4b 65 79 2d 62 69 6e 64 69 6e 67 73 20 61 6e 64 20 75 73 61 67 65 0a e2 94 80 e2 94 1.2.Key-bindings.and.usage......
38a0 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 ................................
38c0 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 ................................
38e0 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 54 68 65 20 73 74 61 6e 64 61 72 64 20 6b 65 79 62 69 6e .............The.standard.keybin
3900 64 69 6e 67 73 20 69 6e 20 60 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 27 20 61 72 65 20 74 68 dings.in.`macrostep-mode'.are.th
3920 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 20 20 65 2c 20 3d 2c 20 52 45 54 20 0a 20 20 20 20 20 e.following:....e,.=,.RET.......
3940 20 20 20 65 78 70 61 6e 64 20 74 68 65 20 6d 61 63 72 6f 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 ...expand.the.macro.form.followi
3960 6e 67 20 70 6f 69 6e 74 20 6f 6e 65 20 73 74 65 70 0a 20 20 63 2c 20 75 2c 20 44 45 4c 20 0a 20 ng.point.one.step...c,.u,.DEL...
3980 20 20 20 20 20 20 20 63 6f 6c 6c 61 70 73 65 20 74 68 65 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 .......collapse.the.form.followi
39a0 6e 67 20 70 6f 69 6e 74 0a 20 20 71 2c 20 43 2d 63 20 43 2d 63 0a 20 20 20 20 20 20 20 20 63 6f ng.point...q,.C-c.C-c.........co
39c0 6c 6c 61 70 73 65 20 61 6c 6c 20 65 78 70 61 6e 64 65 64 20 66 6f 72 6d 73 20 61 6e 64 20 65 78 llapse.all.expanded.forms.and.ex
39e0 69 74 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 0a 20 20 6e 2c 20 54 41 42 20 20 20 20 0a 20 it.macrostep-mode...n,.TAB......
3a00 20 20 20 20 20 20 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6d 61 63 72 6f 20 66 6f .......jump.to.the.next.macro.fo
3a20 72 6d 20 69 6e 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 0a 20 20 70 2c 20 4d 2d 54 41 42 20 20 rm.in.the.expansion...p,.M-TAB..
3a40 0a 20 20 20 20 20 20 20 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6d 61 .........jump.to.the.previous.ma
3a60 63 72 6f 20 66 6f 72 6d 20 69 6e 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 0a 0a 20 20 49 74 27 cro.form.in.the.expansion....It'
3a80 73 20 6e 6f 74 20 76 65 72 79 20 75 73 65 66 75 6c 20 74 6f 20 65 6e 61 62 6c 65 20 61 6e 64 20 s.not.very.useful.to.enable.and.
3aa0 64 69 73 61 62 6c 65 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 64 69 72 65 63 74 6c 79 2e disable.macrostep-mode.directly.
3ac0 0a 20 20 49 6e 73 74 65 61 64 2c 20 62 69 6e 64 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 ...Instead,.bind.`macrostep-expa
3ae0 6e 64 27 20 74 6f 20 61 20 6b 65 79 20 69 6e 20 60 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 nd'.to.a.key.in.`emacs-lisp-mode
3b00 2d 6d 61 70 27 2c 0a 20 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 43 2d 63 20 65 3a 0a 0a 20 20 e2 -map',...for.example.C-c.e:.....
3b20 94 8c e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 20 20 e2 94 82 20 28 64 65 66 69 6e 65 2d 6b 65 79 .....................(define-key
3b40 20 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 65 .emacs-lisp-mode-map.(kbd."C-c.e
3b60 22 29 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 29 0a 20 20 e2 94 94 e2 94 80 e2 94 ").'macrostep-expand)...........
3b80 80 e2 94 80 e2 94 80 0a 0a 20 20 59 6f 75 20 63 61 6e 20 74 68 65 6e 20 65 6e 74 65 72 20 6d 61 ...........You.can.then.enter.ma
3ba0 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 61 6e 64 20 65 78 70 61 6e 64 20 61 20 6d 61 63 72 6f 20 crostep-mode.and.expand.a.macro.
3bc0 66 6f 72 6d 20 63 6f 6d 70 6c 65 74 65 6c 79 0a 20 20 62 79 20 74 79 70 69 6e 67 20 60 43 2d 63 form.completely...by.typing.`C-c
3be0 20 65 20 65 20 65 20 2e 2e 2e 27 20 61 73 20 6d 61 6e 79 20 74 69 6d 65 73 20 61 73 20 6e 65 63 .e.e.e....'.as.many.times.as.nec
3c00 65 73 73 61 72 79 2e 0a 0a 20 20 45 78 69 74 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 62 essary.....Exit.macrostep-mode.b
3c20 79 20 74 79 70 69 6e 67 20 60 71 27 20 6f 72 20 60 43 2d 63 20 43 2d 63 27 2c 20 6f 72 20 62 79 y.typing.`q'.or.`C-c.C-c',.or.by
3c40 20 73 75 63 63 65 73 73 69 76 65 6c 79 0a 20 20 74 79 70 69 6e 67 20 60 63 27 20 74 6f 20 63 6f .successively...typing.`c'.to.co
3c60 6c 6c 61 70 73 65 20 61 6c 6c 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 65 78 70 61 6e 73 69 6f 6e llapse.all.surrounding.expansion
3c80 73 2e 0a 0a 0a 31 2e 33 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 0a e2 s....1.3.Customization.options..
3ca0 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 ................................
3cc0 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 ................................
3ce0 80 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 54 79 70 65 20 60 4d 2d 78 20 63 75 73 74 6f 6d 69 7a ..............Type.`M-x.customiz
3d00 65 2d 67 72 6f 75 70 20 52 45 54 20 6d 61 63 72 6f 73 74 65 70 20 52 45 54 27 20 74 6f 20 63 75 e-group.RET.macrostep.RET'.to.cu
3d20 73 74 6f 6d 69 7a 65 20 6f 70 74 69 6f 6e 73 20 61 6e 64 0a 20 20 66 61 63 65 73 2e 0a 0a 20 20 stomize.options.and...faces.....
3d40 54 6f 20 64 69 73 70 6c 61 79 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 20 69 6e 20 61 To.display.macro.expansions.in.a
3d60 20 73 65 70 61 72 61 74 65 20 77 69 6e 64 6f 77 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 69 6e 6c .separate.window,.instead.of.inl
3d80 69 6e 65 20 69 6e 0a 20 20 74 68 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 2c 20 63 75 73 74 ine.in...the.source.buffer,.cust
3da0 6f 6d 69 7a 65 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 69 6e 2d 73 65 70 61 72 omize.`macrostep-expand-in-separ
3dc0 61 74 65 2d 62 75 66 66 65 72 27 20 74 6f 0a 20 20 60 74 27 2e 20 20 54 68 65 20 64 65 66 61 75 ate-buffer'.to...`t'...The.defau
3de0 6c 74 20 69 73 20 60 6e 69 6c 27 2e 20 20 57 68 69 63 68 65 76 65 72 20 64 65 66 61 75 6c 74 20 lt.is.`nil'...Whichever.default.
3e00 62 65 68 61 76 69 6f 72 20 69 73 20 73 65 6c 65 63 74 65 64 2c 0a 20 20 74 68 65 20 61 6c 74 65 behavior.is.selected,...the.alte
3e20 72 6e 61 74 69 76 65 20 62 65 68 61 76 69 6f 72 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 rnative.behavior.can.be.obtained
3e40 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 62 79 20 67 69 76 69 6e 67 20 61 0a 20 20 70 72 65 66 69 .temporarily.by.giving.a...prefi
3e60 78 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 27 x.argument.to.`macrostep-expand'
3e80 2e 0a 0a 20 20 54 6f 20 68 61 76 65 20 60 6d 61 63 72 6f 73 74 65 70 27 20 69 67 6e 6f 72 65 20 .....To.have.`macrostep'.ignore.
3ea0 63 6f 6d 70 69 6c 65 72 20 6d 61 63 72 6f 73 2c 20 63 75 73 74 6f 6d 69 7a 65 0a 20 20 60 6d 61 compiler.macros,.customize...`ma
3ec0 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 73 27 20 crostep-expand-compiler-macros'.
3ee0 74 6f 20 60 6e 69 6c 27 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 60 74 27 2e 0a 0a to.`nil'...The.default.is.`t'...
3f00 20 20 43 75 73 74 6f 6d 69 7a 65 20 74 68 65 20 66 61 63 65 73 20 60 6d 61 63 72 6f 73 74 65 70 ..Customize.the.faces.`macrostep
3f20 2d 6d 61 63 72 6f 2d 66 61 63 65 27 2c 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6d 70 69 -macro-face',...`macrostep-compi
3f40 6c 65 72 2d 6d 61 63 72 6f 2d 66 61 63 65 27 2c 20 61 6e 64 20 60 6d 61 63 72 6f 73 74 65 70 2d ler-macro-face',.and.`macrostep-
3f60 67 65 6e 73 79 6d 2d 31 27 20 74 68 72 6f 75 67 68 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 67 gensym-1'.through...`macrostep-g
3f80 65 6e 73 79 6d 2d 35 27 20 74 6f 20 61 6c 74 65 72 20 74 68 65 20 61 70 70 65 61 72 61 6e 63 65 ensym-5'.to.alter.the.appearance
3fa0 20 6f 66 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 2e 0a 0a 0a 31 2e 34 20 4c 6f 63 61 .of.macro.expansions....1.4.Loca
3fc0 6c 6c 79 2d 62 6f 75 6e 64 20 6d 61 63 72 6f 73 0a e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 lly-bound.macros................
3fe0 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 ................................
4000 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 41 73 20 .............................As.
4020 6f 66 20 76 65 72 73 69 6f 6e 20 30 2e 39 2c 20 60 6d 61 63 72 6f 73 74 65 70 27 20 63 61 6e 20 of.version.0.9,.`macrostep'.can.
4040 65 78 70 61 6e 64 20 63 61 6c 6c 73 20 74 6f 20 61 20 6c 6f 63 61 6c 6c 79 2d 62 6f 75 6e 64 0a expand.calls.to.a.locally-bound.
4060 20 20 6d 61 63 72 6f 2c 20 77 68 65 74 68 65 72 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 73 75 ..macro,.whether.defined.by.a.su
4080 72 72 6f 75 6e 64 69 6e 67 20 60 28 63 6c 2d 29 6d 61 63 72 6f 6c 65 74 27 20 66 6f 72 6d 2c 20 rrounding.`(cl-)macrolet'.form,.
40a0 6f 72 20 62 79 0a 20 20 61 6e 6f 74 68 65 72 20 6d 61 63 72 6f 2d 64 65 66 69 6e 69 6e 67 20 6d or.by...another.macro-defining.m
40c0 61 63 72 6f 2e 20 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 69 74 20 69 73 20 70 6f 73 acro...In.other.words,.it.is.pos
40e0 73 69 62 6c 65 20 74 6f 0a 20 20 65 78 70 61 6e 64 20 74 68 65 20 69 6e 6e 65 72 20 60 6c 6f 63 sible.to...expand.the.inner.`loc
4100 61 6c 2d 6d 61 63 72 6f 27 20 66 6f 72 6d 73 20 69 6e 20 62 6f 74 68 20 74 68 65 20 66 6f 6c 6c al-macro'.forms.in.both.the.foll
4120 6f 77 69 6e 67 20 65 78 61 6d 70 6c 65 73 2c 0a 20 20 77 68 65 74 68 65 72 20 60 6c 6f 63 61 6c owing.examples,...whether.`local
4140 2d 6d 61 63 72 6f 27 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 61 6e 20 65 6e 63 6c 6f 73 69 -macro'.is.defined.by.an.enclosi
4160 6e 67 20 60 63 6c 2d 6d 61 63 72 6f 6c 65 74 27 20 e2 80 93 0a 0a 20 20 e2 94 8c e2 94 80 e2 94 ng.`cl-macrolet'................
4180 80 e2 94 80 e2 94 80 0a 20 20 e2 94 82 20 28 63 6c 2d 6d 61 63 72 6f 6c 65 74 20 28 28 6c 6f 63 ..............(cl-macrolet.((loc
41a0 61 6c 2d 6d 61 63 72 6f 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 e2 94 82 20 09 09 60 28 al-macro.(&rest.args).........`(
41c0 65 78 70 61 6e 73 69 6f 6e 20 6f 66 20 2c 61 72 67 73 29 29 29 0a 20 20 e2 94 82 20 20 20 28 6c expansion.of.,args))).........(l
41e0 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 64 6f 2d 73 6f 6d 65 74 68 69 6e 67 29 29 29 0a 20 20 e2 94 ocal-macro.(do-something))).....
4200 94 e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 e2 80 93 20 6f 72 20 62 79 20 61 20 6d 61 63 .....................or.by.a.mac
4220 72 6f 20 77 68 69 63 68 20 65 78 70 61 6e 64 73 20 69 6e 74 6f 20 60 63 6c 2d 6d 61 63 72 6f 6c ro.which.expands.into.`cl-macrol
4240 65 74 27 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 69 74 73 0a 20 20 64 65 66 69 6e 69 74 et',.provided.that.its...definit
4260 69 6f 6e 20 6f 66 20 6d 61 63 72 6f 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 70 72 69 6f 72 20 ion.of.macro.is.evaluated.prior.
4280 74 6f 20 63 61 6c 6c 69 6e 67 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 27 3a 0a 0a to.calling.`macrostep-expand':..
42a0 20 20 e2 94 8c e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 20 20 e2 94 82 20 28 64 65 66 6d 61 63 72 ........................(defmacr
42c0 6f 20 77 69 74 68 2d 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a o.with-local-macro.(&rest.body).
42e0 20 20 e2 94 82 20 20 20 60 28 63 6c 2d 6d 61 63 72 6f 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 6d 61 ........`(cl-macrolet.((local-ma
4300 63 72 6f 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 e2 94 82 20 09 09 20 20 20 60 28 65 78 cro.(&rest.args)............`(ex
4320 70 61 6e 73 69 6f 6e 20 6f 66 20 2c 61 72 67 73 29 29 29 0a 20 20 e2 94 82 20 20 20 20 20 20 2c pansion.of.,args)))............,
4340 40 62 6f 64 79 29 29 0a 20 20 e2 94 82 20 0a 20 20 e2 94 82 20 28 77 69 74 68 2d 6c 6f 63 61 6c @body))..............(with-local
4360 2d 6d 61 63 72 6f 0a 20 20 e2 94 82 20 20 20 20 20 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 64 -macro...........(local-macro.(d
4380 6f 20 73 6f 6d 65 74 68 69 6e 67 20 28 65 6c 73 65 29 29 29 0a 20 20 e2 94 94 e2 94 80 e2 94 80 o.something.(else)))............
43a0 e2 94 80 e2 94 80 0a 0a 20 20 53 65 65 20 74 68 65 20 60 77 69 74 68 2d 6a 73 27 20 6d 61 63 72 ..........See.the.`with-js'.macr
43c0 6f 20 69 6e 20 45 6d 61 63 73 27 73 20 60 6a 73 2e 65 6c 27 20 66 6f 72 20 61 20 72 65 61 6c 20 o.in.Emacs's.`js.el'.for.a.real.
43e0 65 78 61 6d 70 6c 65 20 6f 66 20 74 68 65 0a 20 20 6c 61 74 74 65 72 20 6b 69 6e 64 20 6f 66 20 example.of.the...latter.kind.of.
4400 6d 61 63 72 6f 2e 0a 0a 20 20 45 78 70 61 6e 73 69 6f 6e 20 6f 66 20 6c 6f 63 61 6c 6c 79 2d 62 macro.....Expansion.of.locally-b
4420 6f 75 6e 64 20 6d 61 63 72 6f 73 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79 20 69 6e ound.macros.is.implemented.by.in
4440 73 74 72 75 6d 65 6e 74 69 6e 67 0a 20 20 45 6d 61 63 73 20 4c 69 73 70 27 73 20 6d 61 63 72 6f strumenting...Emacs.Lisp's.macro
4460 2d 65 78 70 61 6e 64 65 72 20 74 6f 20 63 61 70 74 75 72 65 20 74 68 65 20 65 6e 76 69 72 6f 6e -expander.to.capture.the.environ
4480 6d 65 6e 74 20 61 74 20 70 6f 69 6e 74 2e 20 20 41 0a 20 20 73 69 6d 69 6c 61 72 20 74 72 69 63 ment.at.point...A...similar.tric
44a0 6b 20 69 73 20 75 73 65 64 20 74 6f 20 64 65 74 65 63 74 20 6d 61 63 72 6f 2d 20 61 6e 64 20 63 k.is.used.to.detect.macro-.and.c
44c0 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 20 63 61 6c 6c 73 20 77 69 74 68 69 6e 0a 20 20 65 78 70 ompiler-macro.calls.within...exp
44e0 61 6e 64 65 64 20 74 65 78 74 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 63 61 6e 20 62 65 20 66 anded.text.so.that.they.can.be.f
4500 6f 6e 74 69 66 69 65 64 20 61 63 63 75 72 61 74 65 6c 79 2e 0a 0a 0a 31 2e 35 20 45 78 70 61 6e ontified.accurately....1.5.Expan
4520 64 69 6e 67 20 73 75 62 2d 66 6f 72 6d 73 0a e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 ding.sub-forms..................
4540 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 ................................
4560 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 42 79 20 6d 6f 76 69 6e ........................By.movin
4580 67 20 70 6f 69 6e 74 20 61 72 6f 75 6e 64 20 69 6e 20 74 68 65 20 6d 61 63 72 6f 20 65 78 70 61 g.point.around.in.the.macro.expa
45a0 6e 73 69 6f 6e 20 75 73 69 6e 67 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 6e 65 78 74 2d 6d 61 nsion.using...`macrostep-next-ma
45c0 63 72 6f 27 20 61 6e 64 20 60 6d 61 63 72 6f 73 74 65 70 2d 70 72 65 76 2d 6d 61 63 72 6f 27 20 cro'.and.`macrostep-prev-macro'.
45e0 28 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 60 6e 27 0a 20 20 61 6e 64 20 60 70 27 20 6b 65 79 73 (bound.to.the.`n'...and.`p'.keys
4600 29 2c 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 78 70 61 6e 64 20 6f 74 68 65 ),.it.is.possible.to.expand.othe
4620 72 20 6d 61 63 72 6f 20 63 61 6c 6c 73 20 77 69 74 68 69 6e 20 74 68 65 0a 20 20 65 78 70 61 6e r.macro.calls.within.the...expan
4640 73 69 6f 6e 20 62 65 66 6f 72 65 20 65 78 70 61 6e 64 69 6e 67 20 74 68 65 20 6f 75 74 65 72 6d sion.before.expanding.the.outerm
4660 6f 73 74 20 66 6f 72 6d 2e 20 20 54 68 69 73 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 62 65 ost.form...This.can.sometimes.be
4680 0a 20 20 75 73 65 66 75 6c 2c 20 61 6c 74 68 6f 75 67 68 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 ...useful,.although.it.does.not.
46a0 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 74 68 65 20 72 65 61 6c 20 6f 72 64 65 72 20 6f 66 20 correspond.to.the.real.order.of.
46c0 6d 61 63 72 6f 0a 20 20 65 78 70 61 6e 73 69 6f 6e 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 2c macro...expansion.in.Emacs.Lisp,
46e0 20 77 68 69 63 68 20 70 72 6f 63 65 65 64 73 20 62 79 20 66 75 6c 6c 79 20 65 78 70 61 6e 64 69 .which.proceeds.by.fully.expandi
4700 6e 67 20 74 68 65 20 6f 75 74 65 72 0a 20 20 66 6f 72 6d 20 74 6f 20 61 20 6e 6f 6e 2d 6d 61 63 ng.the.outer...form.to.a.non-mac
4720 72 6f 20 66 6f 72 6d 20 62 65 66 6f 72 65 20 65 78 70 61 6e 64 69 6e 67 20 73 75 62 2d 66 6f 72 ro.form.before.expanding.sub-for
4740 6d 73 2e 0a 0a 20 20 54 68 65 20 6d 61 69 6e 20 72 65 61 73 6f 6e 20 74 6f 20 65 78 70 61 6e 64 ms.....The.main.reason.to.expand
4760 20 73 75 62 2d 66 6f 72 6d 73 20 6f 75 74 20 6f 66 20 6f 72 64 65 72 20 69 73 20 74 6f 20 68 65 .sub-forms.out.of.order.is.to.he
4780 6c 70 20 77 69 74 68 0a 20 20 64 65 62 75 67 67 69 6e 67 20 6d 61 63 72 6f 73 20 77 68 69 63 68 lp.with...debugging.macros.which
47a0 20 70 72 6f 67 72 61 6d 6d 61 74 69 63 61 6c 6c 79 20 65 78 70 61 6e 64 20 74 68 65 69 72 20 61 .programmatically.expand.their.a
47c0 72 67 75 6d 65 6e 74 73 20 69 6e 0a 20 20 6f 72 64 65 72 20 74 6f 20 72 65 77 72 69 74 65 20 74 rguments.in...order.to.rewrite.t
47e0 68 65 6d 2e 20 20 45 78 70 61 6e 64 69 6e 67 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 6f 66 hem...Expanding.the.arguments.of
4800 20 73 75 63 68 20 61 20 6d 61 63 72 6f 20 6c 65 74 73 0a 20 20 79 6f 75 20 76 69 73 75 61 6c 69 .such.a.macro.lets...you.visuali
4820 73 65 20 77 68 61 74 20 74 68 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 6f 75 se.what.the.macro.definition.wou
4840 6c 64 20 63 6f 6d 70 75 74 65 20 76 69 61 0a 20 20 60 6d 61 63 72 6f 65 78 70 61 6e 64 2d 61 6c ld.compute.via...`macroexpand-al
4860 6c 27 2e 0a 0a 0a 31 2e 36 20 45 78 74 65 6e 64 69 6e 67 20 6d 61 63 72 6f 73 74 65 70 20 66 6f l'....1.6.Extending.macrostep.fo
4880 72 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 0a e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 r.other.languages...............
48a0 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 ................................
48c0 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 ................................
48e0 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 ................................
4900 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 53 69 6e 63 65 20 76 65 72 .......................Since.ver
4920 73 69 6f 6e 20 30 2e 39 2c 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 78 74 65 sion.0.9,.it.is.possible.to.exte
4940 6e 64 20 6d 61 63 72 6f 73 74 65 70 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 0a 20 20 6f 74 68 65 nd.macrostep.to.work.with...othe
4960 72 20 6c 61 6e 67 75 61 67 65 73 20 62 65 73 69 64 65 73 20 45 6d 61 63 73 20 4c 69 73 70 2e 20 r.languages.besides.Emacs.Lisp..
4980 20 49 6e 20 74 79 70 69 63 61 6c 20 45 6d 61 63 73 20 66 61 73 68 69 6f 6e 2c 20 74 68 69 73 20 .In.typical.Emacs.fashion,.this.
49a0 69 73 0a 20 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 62 75 66 66 is...implemented.by.setting.buff
49c0 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 74 6f 20 64 69 66 66 65 72 65 6e 74 20 er-local.variables.to.different.
49e0 66 75 6e 63 74 69 6f 6e 0a 20 20 76 61 6c 75 65 73 2e 20 20 53 69 78 20 62 75 66 66 65 72 2d 6c function...values...Six.buffer-l
4a00 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 64 65 66 69 6e 65 20 74 68 65 20 6c 61 6e 67 75 61 ocal.variables.define.the.langua
4a20 67 65 2d 73 70 65 63 69 66 69 63 20 70 61 72 74 0a 20 20 6f 66 20 74 68 65 20 69 6d 70 6c 65 6d ge-specific.part...of.the.implem
4a40 65 6e 74 61 74 69 6f 6e 3a 0a 0a 20 20 e2 80 a2 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 entation:........`macrostep-sexp
4a60 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 27 0a 20 20 e2 80 a2 20 60 6d 61 63 72 6f 73 74 -bounds-function'.......`macrost
4a80 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 0a 20 20 e2 80 a2 ep-sexp-at-point-function'......
4aa0 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 .`macrostep-environment-at-point
4ac0 2d 66 75 6e 63 74 69 6f 6e 27 0a 20 20 e2 80 a2 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 -function'.......`macrostep-expa
4ae0 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 27 0a 20 20 e2 80 a2 20 60 6d 61 63 72 6f 73 74 65 70 2d nd-1-function'.......`macrostep-
4b00 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 0a 20 20 e2 80 a2 20 60 6d 61 63 72 6f 73 74 65 70 print-function'.......`macrostep
4b20 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 27 0a 0a 20 20 54 79 70 69 63 -macro-form-p-function'....Typic
4b40 61 6c 6c 79 2c 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 61 6e 6f 74 ally,.an.implementation.for.anot
4b60 68 65 72 20 6c 61 6e 67 75 61 67 65 20 77 6f 75 6c 64 20 73 65 74 20 74 68 65 73 65 0a 20 20 76 her.language.would.set.these...v
4b80 61 72 69 61 62 6c 65 73 20 69 6e 20 61 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 68 6f 6f 6b 2e 20 20 ariables.in.a.major-mode.hook...
4ba0 53 65 65 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 73 20 6f 66 20 65 61 63 68 20 76 61 72 69 61 See.the.docstrings.of.each.varia
4bc0 62 6c 65 0a 20 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 68 6f 77 20 65 61 63 68 20 6f 6e ble...for.details.on.how.each.on
4be0 65 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 64 20 77 68 61 74 20 69 74 20 73 68 6f 75 6c 64 20 72 e.is.called.and.what.it.should.r
4c00 65 74 75 72 6e 2e 20 20 41 74 20 61 0a 20 20 6d 69 6e 69 6d 75 6d 2c 20 61 6e 6f 74 68 65 72 20 eturn...At.a...minimum,.another.
4c20 6c 61 6e 67 75 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6e 65 65 64 73 20 74 6f language.implementation.needs.to
4c40 20 70 72 6f 76 69 64 65 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f .provide...`macrostep-sexp-at-po
4c60 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 int-function',.`macrostep-expand
4c80 2d 31 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 61 6e 64 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 70 -1-function',.and...`macrostep-p
4ca0 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 2e 20 20 4c 69 73 70 2d 6c 69 6b 65 20 6c 61 6e 67 75 rint-function'...Lisp-like.langu
4cc0 61 67 65 73 20 6d 61 79 20 62 65 20 61 62 6c 65 20 74 6f 20 72 65 75 73 65 0a 20 20 74 68 65 20 ages.may.be.able.to.reuse...the.
4ce0 64 65 66 61 75 6c 74 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 2d 66 default.`macrostep-sexp-bounds-f
4d00 75 6e 63 74 69 6f 6e 27 20 69 66 20 74 68 65 79 20 70 72 6f 76 69 64 65 20 61 6e 6f 74 68 65 72 unction'.if.they.provide.another
4d20 0a 20 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 60 6d 61 63 72 6f 73 74 65 70 2d ...implementation.of.`macrostep-
4d40 6d 61 63 72 6f 2d 66 6f 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 27 2e 20 20 4c 61 6e 67 75 61 67 macro-form-p-function'...Languag
4d60 65 73 20 77 68 69 63 68 0a 20 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 20 6c 6f 63 61 es.which...do.not.implement.loca
4d80 6c 6c 79 2d 64 65 66 69 6e 65 64 20 6d 61 63 72 6f 73 20 63 61 6e 20 73 65 74 0a 20 20 60 6d 61 lly-defined.macros.can.set...`ma
4da0 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e crostep-environment-at-point-fun
4dc0 63 74 69 6f 6e 27 20 74 6f 20 60 69 67 6e 6f 72 65 27 2e 0a 0a 20 20 4e 6f 74 65 20 74 68 61 74 ction'.to.`ignore'.....Note.that
4de0 20 74 68 65 20 63 6f 72 65 20 60 6d 61 63 72 6f 73 74 65 70 27 20 6d 61 63 68 69 6e 65 72 79 20 .the.core.`macrostep'.machinery.
4e00 6f 6e 6c 79 20 69 6e 74 65 72 70 72 65 74 73 20 74 68 65 20 72 65 74 75 72 6e 0a 20 20 76 61 6c only.interprets.the.return...val
4e20 75 65 20 6f 66 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 2d 66 75 6e ue.of.`macrostep-sexp-bounds-fun
4e40 63 74 69 6f 6e 27 2c 20 73 6f 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 66 6f 72 0a 20 ction',.so.implementations.for..
4e60 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 63 61 6e 20 75 73 65 20 61 6e 79 20 69 6e 74 .other.languages.can.use.any.int
4e80 65 72 6e 61 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 63 6f 64 65 20 61 6e ernal.representations.of.code.an
4ea0 64 0a 20 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 20 77 68 69 63 68 20 69 73 20 63 6f 6e 76 65 6e d...environments.which.is.conven
4ec0 69 65 6e 74 2e 20 20 41 6c 74 68 6f 75 67 68 20 74 68 65 20 74 65 72 6d 69 6e 6f 6c 6f 67 79 20 ient...Although.the.terminology.
4ee0 69 73 0a 20 20 4c 69 73 70 2d 73 70 65 63 69 66 69 63 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 is...Lisp-specific,.there.is.no.
4f00 72 65 61 73 6f 6e 20 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 63 6f 75 6c reason.that.implementations.coul
4f20 64 20 6e 6f 74 20 62 65 0a 20 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 6e 6f 6e 2d 4c 69 73 70 d.not.be...provided.for.non-Lisp
4f40 20 6c 61 6e 67 75 61 67 65 73 20 77 69 74 68 20 6d 61 63 72 6f 20 73 79 73 74 65 6d 73 2c 20 70 .languages.with.macro.systems,.p
4f60 72 6f 76 69 64 65 64 20 74 68 65 72 65 20 69 73 0a 20 20 73 6f 6d 65 20 77 61 79 20 6f 66 20 69 rovided.there.is...some.way.of.i
4f80 64 65 6e 74 69 66 79 69 6e 67 20 6d 61 63 72 6f 20 63 61 6c 6c 73 20 61 6e 64 20 63 61 6c 6c 69 dentifying.macro.calls.and.calli
4fa0 6e 67 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 2f 0a 20 20 70 72 65 70 72 6f 63 65 73 73 6f 72 ng.the.compiler./...preprocessor
4fc0 20 74 6f 20 6f 62 74 61 69 6e 20 74 68 65 69 72 20 65 78 70 61 6e 73 69 6f 6e 73 2e 0a 0a 0a 31 .to.obtain.their.expansions....1
4fe0 2e 37 20 42 75 67 73 20 61 6e 64 20 6b 6e 6f 77 6e 20 6c 69 6d 69 74 61 74 69 6f 6e 73 0a e2 94 .7.Bugs.and.known.limitations...
5000 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 ................................
5020 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 ................................
5040 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 59 6f 75 20 ............................You.
5060 63 61 6e 20 65 76 61 6c 75 61 74 65 20 61 6e 64 20 65 64 65 62 75 67 20 6d 61 63 72 6f 2d 65 78 can.evaluate.and.edebug.macro-ex
5080 70 61 6e 64 65 64 20 66 6f 72 6d 73 20 61 6e 64 20 73 74 65 70 20 74 68 72 6f 75 67 68 20 74 68 panded.forms.and.step.through.th
50a0 65 0a 20 20 6d 61 63 72 6f 2d 65 78 70 61 6e 64 65 64 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 e...macro-expanded.version,.but.
50c0 74 68 65 20 66 6f 72 6d 20 74 68 61 74 20 60 65 76 61 6c 2d 64 65 66 75 6e 27 20 61 6e 64 20 66 the.form.that.`eval-defun'.and.f
50e0 72 69 65 6e 64 73 0a 20 20 72 65 61 64 20 66 72 6f 6d 20 74 68 65 20 62 75 66 66 65 72 20 77 6f riends...read.from.the.buffer.wo
5100 6e 27 74 20 68 61 76 65 20 74 68 65 20 75 6e 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f 6c 73 20 n't.have.the.uninterned.symbols.
5120 6f 66 20 74 68 65 20 72 65 61 6c 0a 20 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 20 20 of.the.real...macro.expansion...
5140 54 68 69 73 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 77 6f 72 6b 20 4f 4b 20 77 69 74 68 20 This.will.probably.work.OK.with.
5160 43 4c 2d 73 74 79 6c 65 20 67 65 6e 73 79 6d 73 2c 0a 20 20 62 75 74 20 6d 61 79 20 63 61 75 73 CL-style.gensyms,...but.may.caus
5180 65 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 60 6d 61 6b 65 2d 73 79 6d 62 6f 6c 27 20 73 79 e.problems.with.`make-symbol'.sy
51a0 6d 62 6f 6c 73 20 69 66 20 74 68 65 79 20 68 61 76 65 20 74 68 65 0a 20 20 73 61 6d 65 20 70 72 mbols.if.they.have.the...same.pr
51c0 69 6e 74 20 6e 61 6d 65 20 61 73 20 61 6e 6f 74 68 65 72 20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 int.name.as.another.symbol.in.th
51e0 65 20 65 78 70 61 6e 73 69 6f 6e 2e 20 49 74 27 73 20 70 6f 73 73 69 62 6c 65 20 74 68 61 74 0a e.expansion..It's.possible.that.
5200 20 20 75 73 69 6e 67 20 60 70 72 69 6e 74 2d 63 69 72 63 6c 65 27 20 61 6e 64 20 60 70 72 69 6e ..using.`print-circle'.and.`prin
5220 74 2d 67 65 6e 73 79 6d 27 20 63 6f 75 6c 64 20 67 65 74 20 61 72 6f 75 6e 64 20 74 68 69 73 2e t-gensym'.could.get.around.this.
5240 0a 0a 20 20 50 6c 65 61 73 65 20 73 65 6e 64 20 6f 74 68 65 72 20 62 75 67 20 72 65 70 6f 72 74 ....Please.send.other.bug.report
5260 73 20 61 6e 64 20 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 73 20 74 6f 20 74 68 65 20 61 75 s.and.feature.requests.to.the.au
5280 74 68 6f 72 2e 0a 0a 0a 31 2e 38 20 41 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 73 0a e2 94 80 thor....1.8.Acknowledgements....
52a0 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 ................................
52c0 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 54 68 61 .............................Tha
52e0 6e 6b 73 20 74 6f 3a 0a 20 20 e2 80 a2 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 66 6f 72 20 66 nks.to:.......John.Wiegley.for.f
5300 69 78 69 6e 67 20 61 20 62 75 67 20 77 69 74 68 20 74 68 65 20 66 61 63 65 20 64 65 66 69 6e 69 ixing.a.bug.with.the.face.defini
5320 74 69 6f 6e 73 20 75 6e 64 65 72 20 45 6d 61 63 73 0a 20 20 20 20 32 34 20 26 20 66 6f 72 20 70 tions.under.Emacs.....24.&.for.p
5340 6c 75 67 67 69 6e 67 20 6d 61 63 72 6f 73 74 65 70 20 69 6e 20 68 69 73 20 5b 45 6d 61 63 73 43 lugging.macrostep.in.his.[EmacsC
5360 6f 6e 66 20 70 72 65 73 65 6e 74 61 74 69 6f 6e 5d 21 0a 20 20 e2 80 a2 20 47 65 6f 72 67 65 20 onf.presentation]!.......George.
5380 4b 65 74 74 6c 65 62 6f 72 6f 75 67 68 20 66 6f 72 20 62 75 67 20 72 65 70 6f 72 74 73 2c 20 61 Kettleborough.for.bug.reports,.a
53a0 6e 64 20 70 61 74 63 68 65 73 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 74 68 65 0a 20 20 20 20 nd.patches.to.highlight.the.....
53c0 65 78 70 61 6e 64 65 64 20 72 65 67 69 6f 6e 20 61 6e 64 20 70 72 6f 70 65 72 6c 79 20 68 61 6e expanded.region.and.properly.han
53e0 64 6c 65 20 62 61 63 6b 71 75 6f 74 65 73 2e 0a 20 20 e2 80 a2 20 4e 69 63 20 46 65 72 72 69 65 dle.backquotes........Nic.Ferrie
5400 72 20 66 6f 72 20 73 75 67 67 65 73 74 69 6e 67 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6c 6f 63 r.for.suggesting.support.for.loc
5420 61 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 77 69 74 68 69 6e 0a 20 20 20 20 6d 61 63 72 6f 6c al.definitions.within.....macrol
5440 65 74 20 66 6f 72 6d 73 0a 20 20 e2 80 a2 20 4c 75 c3 ad 73 20 4f 6c 69 76 65 69 72 61 20 66 6f et.forms.......Lu..s.Oliveira.fo
5460 72 20 73 75 67 67 65 73 74 69 6e 67 20 61 6e 64 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 53 4c r.suggesting.and.implementing.SL
5480 49 4d 45 20 73 75 70 70 6f 72 74 0a 0a 20 20 60 6d 61 63 72 6f 73 74 65 70 27 20 77 61 73 20 6f IME.support....`macrostep'.was.o
54a0 72 69 67 69 6e 61 6c 6c 79 20 69 6e 73 70 69 72 65 64 20 62 79 20 4a 2e 20 56 2e 20 54 6f 75 70 riginally.inspired.by.J..V..Toup
54c0 73 27 73 20 27 44 65 65 70 20 45 6d 61 63 73 20 4c 69 73 70 27 0a 20 20 61 72 74 69 63 6c 65 73 s's.'Deep.Emacs.Lisp'...articles
54e0 20 28 5b 70 61 72 74 20 31 5d 2c 20 5b 70 61 72 74 20 32 5d 2c 20 5b 73 63 72 65 65 6e 63 61 73 .([part.1],.[part.2],.[screencas
5500 74 5d 29 2e 0a 0a 0a 5b 45 6d 61 63 73 43 6f 6e 66 20 70 72 65 73 65 6e 74 61 74 69 6f 6e 5d 20 t])....[EmacsConf.presentation].
5520 3c 68 74 74 70 3a 2f 2f 79 6f 75 74 75 2e 62 65 2f 52 76 50 46 5a 4c 36 4e 4a 4e 51 3e 0a 0a 5b <http://youtu.be/RvPFZL6NJNQ>..[
5540 70 61 72 74 20 31 5d 0a 3c 68 74 74 70 3a 2f 2f 64 6f 72 6f 70 68 6f 6e 65 2e 62 6c 6f 67 73 70 part.1].<http://dorophone.blogsp
5560 6f 74 2e 63 6f 2e 75 6b 2f 32 30 31 31 2f 30 34 2f 64 65 65 70 2d 65 6d 61 63 73 2d 70 61 72 74 ot.co.uk/2011/04/deep-emacs-part
5580 2d 31 2e 68 74 6d 6c 3e 0a 0a 5b 70 61 72 74 20 32 5d 0a 3c 68 74 74 70 3a 2f 2f 64 6f 72 6f 70 -1.html>..[part.2].<http://dorop
55a0 68 6f 6e 65 2e 62 6c 6f 67 73 70 6f 74 2e 63 6f 2e 75 6b 2f 32 30 31 31 2f 30 34 2f 64 65 65 70 hone.blogspot.co.uk/2011/04/deep
55c0 2d 65 6d 61 63 73 2d 6c 69 73 70 2d 70 61 72 74 2d 32 2e 68 74 6d 6c 3e 0a 0a 5b 73 63 72 65 65 -emacs-lisp-part-2.html>..[scree
55e0 6e 63 61 73 74 5d 0a 3c 68 74 74 70 3a 2f 2f 64 6f 72 6f 70 68 6f 6e 65 2e 62 6c 6f 67 73 70 6f ncast].<http://dorophone.blogspo
5600 74 2e 63 6f 2e 75 6b 2f 32 30 31 31 2f 30 35 2f 6d 6f 6e 61 64 69 63 2d 70 61 72 73 65 72 2d 63 t.co.uk/2011/05/monadic-parser-c
5620 6f 6d 62 69 6e 61 74 6f 72 73 2d 69 6e 2d 65 6c 69 73 70 2e 68 74 6d 6c 3e 0a 0a 0a 31 2e 39 20 ombinators-in-elisp.html>...1.9.
5640 43 68 61 6e 67 65 6c 6f 67 0a e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 Changelog.......................
5660 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 e2 94 80 0a 0a 20 20 e2 80 a2 20 76 30 2e 39 2e 34 2c .........................v0.9.4,
5680 20 32 30 32 34 2d 30 35 2d 30 39 3a 0a 20 20 20 20 e2 80 a2 20 61 64 64 20 63 6f 6d 70 61 74 20 .2024-05-09:.........add.compat.
56a0 64 65 70 65 6e 64 65 6e 63 79 20 66 6f 72 20 64 65 66 76 61 72 2d 6b 65 79 6d 61 70 0a 20 20 e2 dependency.for.defvar-keymap....
56c0 80 a2 20 76 30 2e 39 2e 33 2c 20 32 30 32 34 2d 30 34 2d 33 30 3a 0a 20 20 20 20 e2 80 a2 20 63 ...v0.9.3,.2024-04-30:.........c
56e0 6f 64 65 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 73 2c 20 63 68 65 63 6b 64 6f 63 20 66 69 ode.simplifications,.checkdoc.fi
5700 78 65 73 2e 0a 20 20 e2 80 a2 20 76 30 2e 39 2e 32 2c 20 32 30 32 33 2d 30 35 2d 31 32 3a 0a 20 xes........v0.9.2,.2023-05-12:..
5720 20 20 20 e2 80 a2 20 6e 61 6d 65 20 74 68 65 20 6b 65 79 6d 61 70 20 6d 61 63 72 6f 73 74 65 70 .......name.the.keymap.macrostep
5740 2d 6d 6f 64 65 2d 6d 61 70 2c 20 66 69 78 69 6e 67 20 61 20 72 65 67 72 65 73 73 69 6f 6e 20 69 -mode-map,.fixing.a.regression.i
5760 6e 20 76 30 2e 39 2e 31 0a 20 20 e2 80 a2 20 76 30 2e 39 2e 31 2c 20 32 30 32 33 2d 30 33 2d 31 n.v0.9.1.......v0.9.1,.2023-03-1
5780 32 3a 0a 20 20 20 20 e2 80 a2 20 62 75 67 20 66 69 78 65 73 2c 20 63 6c 65 61 6e 75 70 20 61 6e 2:.........bug.fixes,.cleanup.an
57a0 64 20 6d 6f 64 65 72 6e 69 7a 61 74 69 6f 6e 0a 20 20 e2 80 a2 20 76 30 2e 39 2c 20 32 30 31 35 d.modernization.......v0.9,.2015
57c0 2d 31 30 2d 30 31 3a 0a 20 20 20 20 e2 80 a2 20 73 65 70 61 72 61 74 65 20 69 6e 74 6f 20 45 6c -10-01:.........separate.into.El
57e0 69 73 70 2d 73 70 65 63 69 66 69 63 20 61 6e 64 20 67 65 6e 65 72 69 63 20 63 6f 6d 70 6f 6e 65 isp-specific.and.generic.compone
5800 6e 74 73 0a 20 20 20 20 e2 80 a2 20 68 69 67 68 6c 69 67 68 74 20 61 6e 64 20 65 78 70 61 6e 64 nts.........highlight.and.expand
5820 20 63 6f 6d 70 69 6c 65 72 20 6d 61 63 72 6f 73 0a 20 20 20 20 e2 80 a2 20 69 6d 70 72 6f 76 65 .compiler.macros.........improve
5840 20 6c 6f 63 61 6c 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 20 61 6e 64 20 6d 61 63 72 6f .local.macro.expansion.and.macro
5860 20 66 6f 72 6d 20 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 62 79 0a 20 20 20 20 20 20 69 6e .form.identification.by.......in
5880 73 74 72 75 6d 65 6e 74 69 6e 67 20 60 6d 61 63 72 6f 65 78 70 61 6e 64 28 2d 61 6c 6c 29 27 0a strumenting.`macroexpand(-all)'.
58a0 20 20 e2 80 a2 20 76 30 2e 38 2c 20 32 30 31 34 2d 30 35 2d 32 39 3a 20 66 69 78 20 61 20 62 75 ......v0.8,.2014-05-29:.fix.a.bu
58c0 67 20 77 69 74 68 20 70 72 69 6e 74 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e g.with.printing.the.first.elemen
58e0 74 20 6f 66 20 6c 69 73 74 73 0a 20 20 e2 80 a2 20 76 30 2e 37 2c 20 32 30 31 34 2d 30 35 2d 31 t.of.lists.......v0.7,.2014-05-1
5900 31 3a 20 65 78 70 61 6e 64 20 6c 6f 63 61 6c 6c 79 2d 64 65 66 69 6e 65 64 20 6d 61 63 72 6f 73 1:.expand.locally-defined.macros
5920 20 77 69 74 68 69 6e 0a 20 20 20 20 60 28 63 6c 2d 29 6d 61 63 72 6f 6c 65 74 27 20 66 6f 72 6d .within.....`(cl-)macrolet'.form
5940 73 0a 20 20 e2 80 a2 20 76 30 2e 36 2c 20 32 30 31 33 2d 30 35 2d 30 34 3a 20 62 65 74 74 65 72 s.......v0.6,.2013-05-04:.better
5960 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 71 75 6f 74 65 20 61 6e 64 20 62 61 63 6b 71 75 6f 74 65 .handling.of.quote.and.backquote
5980 0a 20 20 e2 80 a2 20 76 30 2e 35 2c 20 32 30 31 33 2d 30 34 2d 31 36 3a 20 68 69 67 68 6c 69 67 .......v0.5,.2013-04-16:.highlig
59a0 68 74 20 72 65 67 69 6f 6e 2c 20 6d 61 69 6e 74 61 69 6e 20 63 6c 65 61 6e 65 72 20 62 75 66 66 ht.region,.maintain.cleaner.buff
59c0 65 72 20 73 74 61 74 65 0a 20 20 e2 80 a2 20 76 30 2e 34 2c 20 32 30 31 33 2d 30 34 2d 30 37 3a er.state.......v0.4,.2013-04-07:
59e0 20 6f 6e 6c 79 20 65 6e 74 65 72 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 6f 6e 20 73 75 .only.enter.macrostep-mode.on.su
5a00 63 63 65 73 73 66 75 6c 0a 20 20 20 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 0a 20 20 e2 ccessful.....macro-expansion....
5a20 80 a2 20 76 30 2e 33 2c 20 32 30 31 32 2d 31 30 2d 33 30 3a 20 70 72 69 6e 74 20 64 6f 74 74 65 ...v0.3,.2012-10-30:.print.dotte
5a40 64 20 6c 69 73 74 73 20 63 6f 72 72 65 63 74 6c 79 2e 20 61 75 74 6f 6c 6f 61 64 0a 20 20 20 20 d.lists.correctly..autoload.....
5a60 64 65 66 69 6e 69 74 69 6f 6e 73 2e 0a 0a 0a 32 20 43 6f 6e 74 72 69 62 75 74 69 6f 6e 73 0a e2 definitions....2.Contributions..
5a80 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 e2 95 90 ................................
5aa0 e2 95 90 e2 95 90 e2 95 90 e2 95 90 0a 0a 20 20 50 6c 65 61 73 65 20 6e 6f 74 65 20 74 68 61 74 ................Please.note.that
5ac0 20 61 73 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 .as.this.package.is.intended.to.
5ae0 62 65 20 70 61 72 74 20 6f 66 20 45 6d 61 63 73 20 73 6f 6f 6e 2c 0a 20 20 6e 6f 6e 2d 74 72 69 be.part.of.Emacs.soon,...non-tri
5b00 76 69 61 6c 20 63 6f 64 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 72 65 71 75 69 72 65 20 vial.code.contributions.require.
5b20 46 53 46 20 63 6f 70 79 72 69 67 68 74 20 61 73 73 69 67 6e 6d 65 6e 74 20 70 72 69 6f 72 0a 20 FSF.copyright.assignment.prior..
5b40 20 74 6f 20 61 63 63 65 70 74 61 6e 63 65 2e 0a 0a 20 20 54 68 65 20 63 6f 70 79 72 69 67 68 74 .to.acceptance.....The.copyright
5b60 20 61 73 73 69 67 6e 6d 65 6e 74 20 70 6f 6c 69 63 79 20 69 73 20 61 74 0a 20 20 3c 68 74 74 70 .assignment.policy.is.at...<http
5b80 73 3a 2f 2f 77 77 77 2e 66 73 66 2e 6f 72 67 2f 6c 69 63 65 6e 73 69 6e 67 2f 63 6f 6e 74 72 69 s://www.fsf.org/licensing/contri
5ba0 62 75 74 6f 72 2d 66 61 71 3e 0a 0a 20 20 41 6e 79 20 6c 65 67 61 6c 6c 79 20 73 69 67 6e 69 66 butor-faq>....Any.legally.signif
5bc0 69 63 61 6e 74 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 icant.contributions.can.only.be.
5be0 6d 65 72 67 65 64 20 61 66 74 65 72 20 74 68 65 0a 20 20 61 75 74 68 6f 72 20 68 61 73 20 63 6f merged.after.the...author.has.co
5c00 6d 70 6c 65 74 65 64 20 74 68 65 69 72 20 70 61 70 65 72 77 6f 72 6b 2e 0a 20 20 3c 68 74 74 70 mpleted.their.paperwork....<http
5c20 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 70 72 65 70 2f 6d 61 69 6e 74 61 69 6e 2f 68 74 s://www.gnu.org/prep/maintain/ht
5c40 6d 6c 5f 6e 6f 64 65 2f 4c 65 67 61 6c 6c 79 2d 53 69 67 6e 69 66 69 63 61 6e 74 2e 68 74 6d 6c ml_node/Legally-Significant.html
5c60 23 4c 65 67 61 6c 6c 79 2d 53 69 67 6e 69 66 69 63 61 6e 74 3e 0a 00 00 00 00 00 00 00 00 00 00 #Legally-Significant>...........
5c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e00 6d 61 63 72 6f 73 74 65 70 2d 30 2e 39 2e 35 2f 4d 61 6b 65 66 69 6c 65 00 00 00 00 00 00 00 00 macrostep-0.9.5/Makefile........
5e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
5e80 30 30 30 30 34 35 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 32 33 00 20 30 00 00 00 0000453.00000000000.013623..0...
5ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
5f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
5f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6000 45 4d 41 43 53 20 3f 3d 20 65 6d 61 63 73 0a 0a 61 6c 6c 3a 20 6d 61 63 72 6f 73 74 65 70 2e 65 EMACS.?=.emacs..all:.macrostep.e
6020 6c 63 20 6d 61 63 72 6f 73 74 65 70 2d 63 2e 65 6c 63 0a 0a 63 6c 65 61 6e 3a 0a 09 72 6d 20 2d lc.macrostep-c.elc..clean:..rm.-
6040 66 20 2a 2e 65 6c 63 0a 0a 74 65 73 74 3a 20 63 6c 65 61 6e 20 61 6c 6c 0a 09 24 28 45 4d 41 43 f.*.elc..test:.clean.all..$(EMAC
6060 53 29 20 2d 2d 62 61 74 63 68 20 2d 4c 20 2e 20 2d 2d 6c 6f 61 64 20 6d 61 63 72 6f 73 74 65 70 S).--batch.-L...--load.macrostep
6080 2d 74 65 73 74 2e 65 6c 0a 0a 73 61 6e 64 62 6f 78 3a 20 61 6c 6c 0a 09 24 28 45 4d 41 43 53 29 -test.el..sandbox:.all..$(EMACS)
60a0 20 2d 51 20 2d 4c 20 2e 20 2d 2d 6c 6f 61 64 20 6d 61 63 72 6f 73 74 65 70 20 2d 2d 6c 6f 61 64 .-Q.-L...--load.macrostep.--load
60c0 20 6d 61 63 72 6f 73 74 65 70 2d 63 0a 0a 25 2e 65 6c 63 3a 20 25 2e 65 6c 0a 09 24 28 45 4d 41 .macrostep-c..%.elc:.%.el..$(EMA
60e0 43 53 29 20 2d 2d 62 61 74 63 68 20 2d 4c 20 2e 20 2d 2d 66 75 6e 63 61 6c 6c 20 62 61 74 63 68 CS).--batch.-L...--funcall.batch
6100 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 20 22 24 3c 22 0a 0a 2e 50 48 4f 4e 59 3a 20 74 65 73 74 -byte-compile."$<"...PHONY:.test
6120 20 61 6c 6c 20 63 6c 65 61 6e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .all.clean......................
6140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
61a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
61c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
61e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6200 6d 61 63 72 6f 73 74 65 70 2d 30 2e 39 2e 35 2f 6d 61 63 72 6f 73 74 65 70 2d 63 2e 65 6c 00 00 macrostep-0.9.5/macrostep-c.el..
6220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
6280 30 30 31 34 34 35 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 33 30 00 20 30 00 00 00 0014454.00000000000.014730..0...
62a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
62c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
62e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
6320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
6340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
63e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6400 3b 3b 3b 20 6d 61 63 72 6f 73 74 65 70 2d 63 2e 65 6c 20 2d 2d 2d 20 6d 61 63 72 6f 73 74 65 70 ;;;.macrostep-c.el.---.macrostep
6420 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 43 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 20 2d 2a .interface.to.C.preprocessor..-*
6440 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f -.lexical-binding:.t;.-*-..;;.Co
6460 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 35 20 4a 6f 6e 20 4f 64 64 69 65 0a 0a 3b 3b 20 41 pyright.(C).2015.Jon.Oddie..;;.A
6480 75 74 68 6f 72 3a 20 4a 6f 6e 20 4f 64 64 69 65 20 3c 6a 2e 6a 2e 6f 64 64 69 65 40 67 6d 61 69 uthor:.Jon.Oddie.<j.j.oddie@gmai
64a0 6c 2e 63 6f 6d 3e 0a 3b 3b 20 55 72 6c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f l.com>.;;.Url:.https://github.co
64c0 6d 2f 65 6d 61 63 73 6f 72 70 68 61 6e 61 67 65 2f 6d 61 63 72 6f 73 74 65 70 0a 3b 3b 20 4b 65 m/emacsorphanage/macrostep.;;.Ke
64e0 79 77 6f 72 64 73 3a 20 63 2c 20 6c 61 6e 67 75 61 67 65 73 2c 20 6d 61 63 72 6f 2c 20 64 65 62 ywords:.c,.languages,.macro,.deb
6500 75 67 67 69 6e 67 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 ugging..;;.SPDX-License-Identifi
6520 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73 20 66 69 er:.GPL-3.0-or-later..;;.This.fi
6540 6c 65 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 72 65 64 le.is.free.software:.you.can.red
6560 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 istribute.it.and/or.modify.;;.it
6580 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .under.the.terms.of.the.GNU.Gene
65a0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 0a ral.Public.License.as.published.
65c0 3b 3b 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 ;;.by.the.Free.Software.Foundati
65e0 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 on,.either.version.3.of.the.Lice
6600 6e 73 65 2c 0a 3b 3b 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 nse,.;;.or.(at.your.option).any.
6620 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 later.version..;;.;;.This.file.i
6640 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 s.distributed.in.the.hope.that.i
6660 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 t.will.be.useful,.;;.but.WITHOUT
6680 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 .ANY.WARRANTY;.without.even.the.
66a0 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 implied.warranty.of.;;.MERCHANTA
66c0 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c BILITY.or.FITNESS.FOR.A.PARTICUL
66e0 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 AR.PURPOSE...See.the.;;.GNU.Gene
6700 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 ral.Public.License.for.more.deta
6720 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 ils..;;.;;.You.should.have.recei
6740 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 ved.a.copy.of.the.GNU.General.Pu
6760 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 blic.License.;;.along.with.this.
6780 66 69 6c 65 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e file...If.not,.see.<https://www.
67a0 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 gnu.org/licenses/>...;;;.Comment
67c0 61 72 79 3a 0a 0a 3b 3b 20 41 20 74 68 69 6e 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 45 ary:..;;.A.thin.wrapper.around.E
67e0 6d 61 63 73 27 73 20 62 75 69 6c 74 2d 69 6e 20 60 63 6d 61 63 65 78 70 27 20 6c 69 62 72 61 72 macs's.built-in.`cmacexp'.librar
6800 79 20 74 6f 20 70 72 6f 76 69 64 65 0a 3b 3b 20 62 61 73 69 63 20 73 75 70 70 6f 72 74 20 66 6f y.to.provide.;;.basic.support.fo
6820 72 20 65 78 70 61 6e 64 69 6e 67 20 43 20 6d 61 63 72 6f 73 20 75 73 69 6e 67 20 74 68 65 20 60 r.expanding.C.macros.using.the.`
6840 6d 61 63 72 6f 73 74 65 70 27 20 75 73 65 72 0a 3b 3b 20 69 6e 74 65 72 66 61 63 65 2e 20 20 54 macrostep'.user.;;.interface...T
6860 6f 20 75 73 65 2c 20 70 6f 73 69 74 69 6f 6e 20 70 6f 69 6e 74 20 6f 6e 20 61 20 6d 61 63 72 6f o.use,.position.point.on.a.macro
6880 20 75 73 65 20 69 6e 20 61 20 43 20 62 75 66 66 65 72 20 61 6e 64 0a 3b 3b 20 74 79 70 65 20 60 .use.in.a.C.buffer.and.;;.type.`
68a0 4d 2d 78 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 27 2e 20 20 54 68 65 20 76 61 72 69 M-x.macrostep-expand'...The.vari
68c0 61 62 6c 65 73 20 60 63 2d 6d 61 63 72 6f 2d 70 72 65 70 72 6f 63 65 73 73 6f 72 27 0a 3b 3b 20 ables.`c-macro-preprocessor'.;;.
68e0 61 6e 64 20 65 73 70 65 63 69 61 6c 6c 79 20 60 63 2d 6d 61 63 72 6f 2d 63 70 70 66 6c 61 67 73 and.especially.`c-macro-cppflags
6900 27 20 6d 61 79 20 6e 65 65 64 20 74 6f 20 62 65 20 73 65 74 20 63 6f 72 72 65 63 74 6c 79 20 66 '.may.need.to.be.set.correctly.f
6920 6f 72 0a 3b 3b 20 61 63 63 75 72 61 74 65 20 65 78 70 61 6e 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 or.;;.accurate.expansion...;;.Th
6940 69 73 20 69 73 20 66 61 69 72 6c 79 20 62 61 73 69 63 20 63 6f 6d 70 61 72 65 64 20 74 6f 20 74 is.is.fairly.basic.compared.to.t
6960 68 65 20 45 6d 61 63 73 20 4c 69 73 70 20 60 6d 61 63 72 6f 73 74 65 70 27 2e 20 20 49 6e 0a 3b he.Emacs.Lisp.`macrostep'...In.;
6980 3b 20 70 61 72 74 69 63 75 6c 61 72 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 74 65 70 2d 62 ;.particular,.there.is.no.step-b
69a0 79 2d 73 74 65 70 20 65 78 70 61 6e 73 69 6f 6e 2c 20 73 69 6e 63 65 20 43 20 6d 61 63 72 6f 73 y-step.expansion,.since.C.macros
69c0 20 61 72 65 0a 3b 3b 20 65 78 70 61 6e 64 65 64 20 69 6e 20 61 20 73 69 6e 67 6c 65 20 22 63 70 .are.;;.expanded.in.a.single."cp
69e0 70 22 20 70 61 73 73 2c 20 61 6e 64 20 6e 6f 20 70 72 65 74 74 79 2d 70 72 69 6e 74 69 6e 67 2e p".pass,.and.no.pretty-printing.
6a00 0a 0a 3b 3b 20 54 6f 20 68 69 64 65 20 74 68 65 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 6e 69 ..;;.To.hide.the.buffer.containi
6a20 6e 67 20 22 63 70 70 22 20 77 61 72 6e 69 6e 67 73 20 28 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 ng."cpp".warnings.(not.recommend
6a40 65 64 29 2c 20 79 6f 75 0a 3b 3b 20 63 6f 75 6c 64 20 64 6f 20 73 6f 6d 65 74 68 69 6e 67 20 6c ed),.you.;;.could.do.something.l
6a60 69 6b 65 3a 0a 3b 3b 0a 3b 3b 20 28 70 75 73 68 20 60 28 2c 28 72 65 67 65 78 70 2d 71 75 6f 74 ike:.;;.;;.(push.`(,(regexp-quot
6a80 65 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 77 61 72 6e 69 6e 67 2d 62 75 66 66 65 72 29 0a 3b 3b e.macrostep-c-warning-buffer).;;
6aa0 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 6e 6f 2d 77 69 6e ..........(display-buffer-no-win
6ac0 64 6f 77 29 29 0a 3b 3b 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 6c dow)).;;.......display-buffer-al
6ae0 69 73 74 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 6d 61 63 72 6f ist)..;;;.Code:..(require.'macro
6b00 73 74 65 70 29 0a 28 72 65 71 75 69 72 65 20 27 63 6d 61 63 65 78 70 29 0a 28 72 65 71 75 69 72 step).(require.'cmacexp).(requir
6b20 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 20 6e 69 6c e.'cl-lib)..(require.'subr-x.nil
6b40 20 74 29 0a 28 64 65 66 61 6c 69 61 73 20 27 6d 61 63 72 6f 73 74 65 70 2d 63 2d 73 74 72 69 6e .t).(defalias.'macrostep-c-strin
6b60 67 2d 74 72 69 6d 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 73 74 72 69 6e 67 2d 74 72 g-trim...(if.(fboundp.'string-tr
6b80 69 6d 29 0a 20 20 20 20 20 20 23 27 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 28 6c 61 6d im).......#'string-trim.....(lam
6ba0 62 64 61 20 28 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 bda.(string).......(when.(string
6bc0 2d 6d 61 74 63 68 20 22 5c 5c 60 5b 20 5c 74 5c 6e 5c 72 5d 2b 22 20 73 74 72 69 6e 67 29 0a 09 -match."\\`[.\t\n\r]+".string)..
6be0 28 73 65 74 71 20 73 74 72 69 6e 67 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 (setq.string.(replace-match."".t
6c00 20 74 20 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 .t.string))).......(when.(string
6c20 2d 6d 61 74 63 68 20 22 5b 20 5c 74 5c 6e 5c 72 5d 2b 5c 5c 27 22 20 73 74 72 69 6e 67 29 0a 09 -match."[.\t\n\r]+\\'".string)..
6c40 28 73 65 74 71 20 73 74 72 69 6e 67 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 (setq.string.(replace-match."".t
6c60 20 74 20 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 73 74 72 69 6e 67 29 29 29 0a 0a 28 70 .t.string))).......string)))..(p
6c80 75 74 20 27 6d 61 63 72 6f 73 74 65 70 2d 63 2d 6e 6f 6e 2d 6d 61 63 72 6f 20 27 65 72 72 6f 72 ut.'macrostep-c-non-macro.'error
6ca0 2d 63 6f 6e 64 69 74 69 6f 6e 73 0a 20 20 20 20 20 27 28 6d 61 63 72 6f 73 74 65 70 2d 63 2d 6e -conditions......'(macrostep-c-n
6cc0 6f 6e 2d 6d 61 63 72 6f 20 65 72 72 6f 72 29 29 0a 28 70 75 74 20 27 6d 61 63 72 6f 73 74 65 70 on-macro.error)).(put.'macrostep
6ce0 2d 63 2d 6e 6f 6e 2d 6d 61 63 72 6f 20 27 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 -c-non-macro.'error-message.....
6d00 20 22 54 65 78 74 20 61 72 6f 75 6e 64 20 70 6f 69 6e 74 20 69 73 20 6e 6f 74 20 61 20 6d 61 63 ."Text.around.point.is.not.a.mac
6d20 72 6f 20 63 61 6c 6c 2e 22 29 0a 0a 28 70 75 74 20 27 6d 61 63 72 6f 73 74 65 70 2d 63 2d 65 78 ro.call.")..(put.'macrostep-c-ex
6d40 70 61 6e 73 69 6f 6e 2d 66 61 69 6c 65 64 20 27 65 72 72 6f 72 2d 63 6f 6e 64 69 74 69 6f 6e 73 pansion-failed.'error-conditions
6d60 0a 20 20 20 20 20 27 28 6d 61 63 72 6f 73 74 65 70 2d 63 2d 65 78 70 61 6e 73 69 6f 6e 2d 66 61 ......'(macrostep-c-expansion-fa
6d80 69 6c 65 64 20 65 72 72 6f 72 29 29 0a 28 70 75 74 20 27 6d 61 63 72 6f 73 74 65 70 2d 63 2d 65 iled.error)).(put.'macrostep-c-e
6da0 78 70 61 6e 73 69 6f 6e 2d 66 61 69 6c 65 64 20 27 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 0a 20 xpansion-failed.'error-message..
6dc0 20 20 20 20 22 4d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 20 66 61 69 6c 65 64 2e 22 29 0a 0a ...."Macro-expansion.failed.")..
6de0 28 64 65 66 76 61 72 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 77 61 72 6e 69 6e 67 2d 62 75 66 66 (defvar.macrostep-c-warning-buff
6e00 65 72 20 22 2a 4d 61 63 72 6f 65 78 70 61 6e 73 69 6f 6e 20 57 61 72 6e 69 6e 67 73 2a 22 29 0a er."*Macroexpansion.Warnings*").
6e20 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 .;;;###autoload.(defun.macrostep
6e40 2d 63 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 28 29 0a 20 20 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 -c-mode-hook.()...(setq.macroste
6e60 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 23 p-sexp-bounds-function.........#
6e80 27 6d 61 63 72 6f 73 74 65 70 2d 63 2d 73 65 78 70 2d 62 6f 75 6e 64 73 29 0a 20 20 28 73 65 74 'macrostep-c-sexp-bounds)...(set
6ea0 71 20 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 q.macrostep-sexp-at-point-functi
6ec0 6f 6e 0a 20 20 20 20 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 63 2d 73 65 78 70 2d 61 74 on.........#'macrostep-c-sexp-at
6ee0 2d 70 6f 69 6e 74 29 0a 20 20 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f -point)...(setq.macrostep-enviro
6f00 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 nment-at-point-function.........
6f20 23 27 69 67 6e 6f 72 65 29 0a 20 20 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 #'ignore)...(setq.macrostep-expa
6f40 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 nd-1-function.........#'macroste
6f60 70 2d 63 2d 65 78 70 61 6e 64 2d 31 29 0a 20 20 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 70 2d p-c-expand-1)...(setq.macrostep-
6f80 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 23 27 6d 61 63 72 6f 73 74 print-function.........#'macrost
6fa0 65 70 2d 63 2d 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b ep-c-print-function)...(add-hook
6fc0 20 27 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 2d 6f 66 66 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 .'macrostep-mode-off-hook.......
6fe0 20 20 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 63 2d 6d 6f 64 65 2d 6f 66 66 20 6e 69 6c ......#'macrostep-c-mode-off.nil
7000 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 6d 6f 64 65 2d 6f 66 .t))..(defun.macrostep-c-mode-of
7020 66 20 28 26 72 65 73 74 20 5f 69 67 6e 6f 72 65 29 0a 20 20 28 77 68 65 6e 20 28 64 65 72 69 76 f.(&rest._ignore)...(when.(deriv
7040 65 64 2d 6d 6f 64 65 2d 70 20 27 63 2d 6d 6f 64 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 77 61 ed-mode-p.'c-mode).....(let.((wa
7060 72 6e 69 6e 67 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 rning-window............(get-buf
7080 66 65 72 2d 77 69 6e 64 6f 77 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 77 61 72 6e 69 6e 67 2d 62 fer-window.macrostep-c-warning-b
70a0 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 77 61 72 6e 69 6e 67 2d 77 69 6e uffer))).......(when.warning-win
70c0 64 6f 77 0a 20 20 20 20 20 20 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 20 6e 69 6c 20 77 61 72 dow.........(quit-window.nil.war
70e0 6e 69 6e 67 2d 77 69 6e 64 6f 77 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 ning-window)))))..;;;###autoload
7100 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 63 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6d 61 63 72 6f 73 .(add-hook.'c-mode-hook.#'macros
7120 74 65 70 2d 63 2d 6d 6f 64 65 2d 68 6f 6f 6b 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 tep-c-mode-hook)..(defun.macrost
7140 65 70 2d 63 2d 73 65 78 70 2d 62 6f 75 6e 64 73 20 28 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 ep-c-sexp-bounds.()...(save-excu
7160 72 73 69 6f 6e 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 28 6c 65 74 20 28 28 72 rsion.....(cl-loop......(let.((r
7180 65 67 69 6f 6e 20 28 6d 61 63 72 6f 73 74 65 70 2d 63 2d 73 65 78 70 2d 62 6f 75 6e 64 73 2d 31 egion.(macrostep-c-sexp-bounds-1
71a0 29 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c )))........(cond..........((null
71c0 20 72 65 67 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 6d 61 63 72 .region)...........(signal.'macr
71e0 6f 73 74 65 70 2d 63 2d 6e 6f 6e 2d 6d 61 63 72 6f 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 ostep-c-non-macro.nil)).........
7200 20 28 28 6d 61 63 72 6f 73 74 65 70 2d 63 2d 65 78 70 61 6e 64 61 62 6c 65 2d 70 20 72 65 67 69 .((macrostep-c-expandable-p.regi
7220 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 74 75 72 6e 20 72 65 67 69 6f 6e 29 on)...........(cl-return.region)
7240 29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 )..........(t...........(conditi
7260 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e on-case.nil...............(progn
7280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 75 70 2d 6c 69 .................(backward-up-li
72a0 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 st).................(skip-syntax
72c0 2d 62 61 63 6b 77 61 72 64 20 22 2d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 63 61 -backward."-")).............(sca
72e0 6e 2d 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 6d 61 n-error..............(signal.'ma
7300 63 72 6f 73 74 65 70 2d 63 2d 6e 6f 6e 2d 6d 61 63 72 6f 20 6e 69 6c 29 29 29 29 29 29 29 29 29 crostep-c-non-macro.nil)))))))))
7320 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 73 65 78 70 2d 62 6f 75 6e 64 73 ..(defun.macrostep-c-sexp-bounds
7340 2d 31 20 28 29 0a 20 20 28 6c 65 74 20 28 28 72 65 67 69 6f 6e 20 28 62 6f 75 6e 64 73 2d 6f 66 -1.()...(let.((region.(bounds-of
7360 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 20 27 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 28 -thing-at-point.'symbol))).....(
7380 77 68 65 6e 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 when.region.......(cl-destructur
73a0 69 6e 67 2d 62 69 6e 64 20 28 73 79 6d 62 6f 6c 2d 73 74 61 72 74 20 2e 20 73 79 6d 62 6f 6c 2d ing-bind.(symbol-start...symbol-
73c0 65 6e 64 29 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 end).region.........(save-excurs
73e0 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 79 6d 62 6f 6c 2d ion...........(goto-char.symbol-
7400 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 end)...........(if.(looking-at."
7420 5b 5b 3a 73 70 61 63 65 3a 5d 5d 2a 28 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 [[:space:]]*(")...............(c
7440 6f 6e 73 20 73 79 6d 62 6f 6c 2d 73 74 61 72 74 20 28 73 63 61 6e 2d 73 65 78 70 73 20 73 79 6d ons.symbol-start.(scan-sexps.sym
7460 62 6f 6c 2d 65 6e 64 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 67 69 6f 6e bol-end.1))...............region
7480 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 65 78 70 61 6e ))))))..(defun.macrostep-c-expan
74a0 64 61 62 6c 65 2d 70 20 28 72 65 67 69 6f 6e 29 0a 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 dable-p.(region)...(cl-destructu
74c0 72 69 6e 67 2d 62 69 6e 64 20 28 73 74 61 72 74 20 2e 20 65 6e 64 29 20 72 65 67 69 6f 6e 0a 20 ring-bind.(start...end).region..
74e0 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 ...(condition-case.nil.........(
7500 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 65 78 70 61 6e 73 69 6f 6e cl-destructuring-bind.(expansion
7520 20 5f 77 61 72 6e 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 ._warnings).............(macrost
7540 65 70 2d 63 2d 65 78 70 61 6e 64 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 20 65 6e 64 29 0a 20 20 ep-c-expand-region.start.end)...
7560 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 63 6c 2d 70 6c 75 73 70 20 28 6c 65 6e 67 74 68 20 65 ........(and.(cl-plusp.(length.e
7580 78 70 61 6e 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 xpansion))................(not.(
75a0 73 74 72 69 6e 67 3d 20 65 78 70 61 6e 73 69 6f 6e 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 string=.expansion.(buffer-substr
75c0 69 6e 67 20 73 74 61 72 74 20 65 6e 64 29 29 29 29 29 0a 20 20 20 20 20 20 28 6d 61 63 72 6f 73 ing.start.end))))).......(macros
75e0 74 65 70 2d 63 2d 65 78 70 61 6e 73 69 6f 6e 2d 66 61 69 6c 65 64 20 6e 69 6c 29 29 29 29 0a 0a tep-c-expansion-failed.nil))))..
7600 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 (defun.macrostep-c-sexp-at-point
7620 20 28 73 74 61 72 74 20 65 6e 64 29 0a 20 20 28 63 6f 6e 73 20 73 74 61 72 74 20 65 6e 64 29 29 .(start.end)...(cons.start.end))
7640 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 65 78 70 61 6e 64 2d 31 20 28 72 ..(defun.macrostep-c-expand-1.(r
7660 65 67 69 6f 6e 20 5f 69 67 6e 6f 72 65 29 0a 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 egion._ignore)...(cl-destructuri
7680 6e 67 2d 62 69 6e 64 20 28 73 74 61 72 74 20 2e 20 65 6e 64 29 20 72 65 67 69 6f 6e 0a 20 20 20 ng-bind.(start...end).region....
76a0 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 65 78 70 61 6e 73 69 .(cl-destructuring-bind.(expansi
76c0 6f 6e 20 77 61 72 6e 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d on.warnings).........(macrostep-
76e0 63 2d 65 78 70 61 6e 64 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 20 65 6e 64 29 0a 20 20 20 20 20 c-expand-region.start.end)......
7700 20 28 77 68 65 6e 20 28 63 6c 2d 70 6c 75 73 70 20 28 6c 65 6e 67 74 68 20 77 61 72 6e 69 6e 67 .(when.(cl-plusp.(length.warning
7720 73 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 s)).........(with-current-buffer
7740 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 .............(get-buffer-create.
7760 6d 61 63 72 6f 73 74 65 70 2d 63 2d 77 61 72 6e 69 6e 67 2d 62 75 66 66 65 72 29 0a 20 20 20 20 macrostep-c-warning-buffer).....
7780 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 ......(let.((inhibit-read-only.t
77a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 )).............(erase-buffer)...
77c0 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 77 61 72 6e 69 6e 67 73 29 0a 20 20 20 20 ..........(insert.warnings).....
77e0 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 ........(goto-char.(point-min)))
7800 0a 20 20 20 20 20 20 20 20 20 20 28 73 70 65 63 69 61 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 ...........(special-mode).......
7820 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 ....(display-buffer.(current-buf
7840 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 fer)...........................'
7860 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 70 6f 70 2d 75 70 2d 77 69 6e 64 6f 77 0a 20 20 (display-buffer-pop-up-window...
7880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 ..........................(inhib
78a0 69 74 2d 73 61 6d 65 2d 77 69 6e 64 6f 77 20 2e 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 it-same-window...t).............
78c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 6c 6f 77 2d 6e 6f 2d 77 69 6e 64 6f 77 ................(allow-no-window
78e0 20 2e 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 65 78 70 61 6e 73 69 6f 6e 29 29 29 0a 0a 28 64 ...t))))).......expansion)))..(d
7900 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 2d 65 78 70 61 6e 64 2d 72 65 67 69 6f 6e 20 28 efun.macrostep-c-expand-region.(
7920 73 74 61 72 74 20 65 6e 64 29 0a 20 20 28 6c 65 74 20 28 28 65 78 70 61 6e 73 69 6f 6e 0a 20 20 start.end)...(let.((expansion...
7940 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 .......(condition-case.nil......
7960 20 20 20 20 20 20 20 20 28 63 2d 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 20 73 74 61 72 74 ........(c-macro-expansion.start
7980 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .end............................
79a0 20 20 20 20 20 28 63 6f 6e 63 61 74 20 63 2d 6d 61 63 72 6f 2d 70 72 65 70 72 6f 63 65 73 73 6f .....(concat.c-macro-preprocesso
79c0 72 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r."."...........................
79e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 2d 6d 61 63 72 6f 2d 63 70 70 66 6c 61 67 73 29 29 ..............c-macro-cppflags))
7a00 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 61 69 6c 65 64 0a 20 20 20 20 20 ............(search-failed......
7a20 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 6d 61 63 72 6f 73 74 65 70 2d 63 2d 65 78 70 61 .......(signal.'macrostep-c-expa
7a40 6e 73 69 6f 6e 2d 66 61 69 6c 65 64 20 6e 69 6c 29 29 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d nsion-failed.nil))))).....(with-
7a60 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f temp-buffer.......(save-excursio
7a80 6e 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 65 78 70 61 6e 73 69 6f 6e 29 29 0a 20 20 n.........(insert.expansion))...
7aa0 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 72 65 67 65 78 70 2d 71 75 ....(when.(looking-at.(regexp-qu
7ac0 6f 74 65 20 22 2f 2a 22 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 ote."/*")).........(search-forwa
7ae0 72 64 20 22 2a 2f 22 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 77 61 72 6e 69 6e 67 73 20 rd."*/")).......(let.((warnings.
7b00 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 (buffer-substring.(point-min).(p
7b20 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 73 69 6f 6e 20 28 oint))).............(expansion.(
7b40 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d buffer-substring.(point).(point-
7b60 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 6d 61 63 72 6f 73 max)))).........(mapcar.#'macros
7b80 74 65 70 2d 63 2d 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 6c 69 73 74 20 65 78 70 61 6e 73 69 6f tep-c-string-trim.(list.expansio
7ba0 6e 20 77 61 72 6e 69 6e 67 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 n.warnings))))))..(defun.macrost
7bc0 65 70 2d 63 2d 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 20 28 65 78 70 61 6e 73 69 6f 6e 20 26 ep-c-print-function.(expansion.&
7be0 72 65 73 74 20 5f 69 67 6e 6f 72 65 29 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 rest._ignore)...(with-temp-buffe
7c00 72 0a 20 20 20 20 28 69 6e 73 65 72 74 20 65 78 70 61 6e 73 69 6f 6e 29 0a 20 20 20 20 28 6c 65 r.....(insert.expansion).....(le
7c20 74 20 28 28 65 78 69 74 2d 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d t.((exit-code............(shell-
7c40 63 6f 6d 6d 61 6e 64 2d 6f 6e 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 command-on-region.(point-min).(p
7c60 6f 69 6e 74 2d 6d 61 78 29 20 22 69 6e 64 65 6e 74 22 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 oint-max)."indent".nil.t))).....
7c80 20 20 28 77 68 65 6e 20 28 7a 65 72 6f 70 20 65 78 69 74 2d 63 6f 64 65 29 0a 20 20 20 20 20 20 ..(when.(zerop.exit-code).......
7ca0 20 20 28 73 65 74 71 20 65 78 70 61 6e 73 69 6f 6e 20 28 6d 61 63 72 6f 73 74 65 70 2d 63 2d 73 ..(setq.expansion.(macrostep-c-s
7cc0 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 29 29 0a tring-trim.(buffer-string)))))).
7ce0 20 20 28 69 6e 73 65 72 74 20 65 78 70 61 6e 73 69 6f 6e 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 ..(insert.expansion))..(provide.
7d00 27 6d 61 63 72 6f 73 74 65 70 2d 63 29 0a 0a 3b 3b 3b 20 6d 61 63 72 6f 73 74 65 70 2d 63 2e 65 'macrostep-c)..;;;.macrostep-c.e
7d20 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l.ends.here.....................
7d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e00 6d 61 63 72 6f 73 74 65 70 2d 30 2e 39 2e 35 2f 6d 61 63 72 6f 73 74 65 70 2e 65 6c 00 00 00 00 macrostep-0.9.5/macrostep.el....
7e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
7e80 30 31 33 33 30 36 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 30 33 00 20 30 00 00 00 0133060.00000000000.014503..0...
7ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
7f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
7f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8000 3b 3b 3b 20 6d 61 63 72 6f 73 74 65 70 2e 65 6c 20 2d 2d 2d 20 49 6e 74 65 72 61 63 74 69 76 65 ;;;.macrostep.el.---.Interactive
8020 20 6d 61 63 72 6f 20 65 78 70 61 6e 64 65 72 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e .macro.expander..-*-.lexical-bin
8040 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
8060 30 31 32 2d 32 30 31 35 20 4a 6f 6e 20 4f 64 64 69 65 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 012-2015.Jon.Oddie.;;.Copyright.
8080 28 43 29 20 32 30 32 30 2d 32 30 32 34 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e (C).2020-2024.Free.Software.Foun
80a0 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4a 6f 6e 20 4f 64 64 dation,.Inc...;;.Author:.Jon.Odd
80c0 69 65 20 3c 6a 2e 6a 2e 6f 64 64 69 65 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4d 61 69 6e ie.<j.j.oddie@gmail.com>.;;.Main
80e0 74 61 69 6e 65 72 3a 20 4a 65 72 65 6d 79 20 42 72 79 61 6e 74 20 3c 6a 62 40 6a 65 72 65 6d 79 tainer:.Jeremy.Bryant.<jb@jeremy
8100 62 72 79 61 6e 74 2e 6e 65 74 3e 0a 3b 3b 20 55 72 6c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 bryant.net>.;;.Url:.https://gith
8120 75 62 2e 63 6f 6d 2f 65 6d 61 63 73 6f 72 70 68 61 6e 61 67 65 2f 6d 61 63 72 6f 73 74 65 70 0a ub.com/emacsorphanage/macrostep.
8140 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6c 69 73 70 2c 20 6c 61 6e 67 75 61 67 65 73 2c 20 6d 61 ;;.Keywords:.lisp,.languages,.ma
8160 63 72 6f 2c 20 64 65 62 75 67 67 69 6e 67 0a 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 56 65 72 73 69 cro,.debugging..;;.Package-Versi
8180 6f 6e 3a 20 30 2e 39 2e 35 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 on:.0.9.5.;;.Package-Requires:.(
81a0 28 63 6c 2d 6c 69 62 20 22 30 2e 35 22 29 20 28 63 6f 6d 70 61 74 20 22 32 39 22 29 29 0a 0a 3b (cl-lib."0.5").(compat."29"))..;
81c0 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 ;.SPDX-License-Identifier:.GPL-3
81e0 2e 30 2d 6f 72 2d 6c 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 66 72 65 .0-or-later..;;.This.file.is.fre
8200 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 e.software:.you.can.redistribute
8220 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 .it.and/or.modify.;;.it.under.th
8240 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 e.terms.of.the.GNU.General.Publi
8260 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 0a 3b 3b 20 62 79 20 74 68 65 c.License.as.published.;;.by.the
8280 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 .Free.Software.Foundation,.eithe
82a0 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 0a 3b 3b 20 6f r.version.3.of.the.License,.;;.o
82c0 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 r.(at.your.option).any.later.ver
82e0 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 64 69 73 74 72 69 62 sion..;;.;;.This.file.is.distrib
8300 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 uted.in.the.hope.that.it.will.be
8320 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 .useful,.;;.but.WITHOUT.ANY.WARR
8340 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 ANTY;.without.even.the.implied.w
8360 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 arranty.of.;;.MERCHANTABILITY.or
8380 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 .FITNESS.FOR.A.PARTICULAR.PURPOS
83a0 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 E...See.the.;;.GNU.General.Publi
83c0 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b c.License.for.more.details..;;.;
83e0 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 ;.You.should.have.received.a.cop
8400 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 y.of.the.GNU.General.Public.Lice
8420 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 66 69 6c 65 2e 20 20 49 66 nse.;;.along.with.this.file...If
8440 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c .not,.see.<https://www.gnu.org/l
8460 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 icenses/>...;;;.Commentary:..;;.
8480 60 6d 61 63 72 6f 73 74 65 70 27 20 69 73 20 61 6e 20 45 6d 61 63 73 20 6d 69 6e 6f 72 20 6d 6f `macrostep'.is.an.Emacs.minor.mo
84a0 64 65 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 73 74 65 70 70 69 6e 67 20 74 68 de.for.interactively.stepping.th
84c0 72 6f 75 67 68 0a 3b 3b 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 20 6f 66 20 6d 61 63 72 6f 73 rough.;;.the.expansion.of.macros
84e0 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 74 20 .in.Emacs.Lisp.source.code...It.
8500 6c 65 74 73 20 79 6f 75 20 73 65 65 0a 3b 3b 20 65 78 61 63 74 6c 79 20 77 68 61 74 20 68 61 70 lets.you.see.;;.exactly.what.hap
8520 70 65 6e 73 20 61 74 20 65 61 63 68 20 73 74 65 70 20 6f 66 20 74 68 65 20 65 78 70 61 6e 73 69 pens.at.each.step.of.the.expansi
8540 6f 6e 20 70 72 6f 63 65 73 73 20 62 79 0a 3b 3b 20 70 72 65 74 74 79 2d 70 72 69 6e 74 69 6e 67 on.process.by.;;.pretty-printing
8560 20 74 68 65 20 65 78 70 61 6e 64 65 64 20 66 6f 72 6d 73 20 69 6e 6c 69 6e 65 20 69 6e 20 74 68 .the.expanded.forms.inline.in.th
8580 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 2c 20 77 68 69 63 68 20 69 73 0a 3b 3b 20 74 65 6d e.source.buffer,.which.is.;;.tem
85a0 70 6f 72 61 72 69 6c 79 20 72 65 61 64 2d 6f 6e 6c 79 20 77 68 69 6c 65 20 6d 61 63 72 6f 20 65 porarily.read-only.while.macro.e
85c0 78 70 61 6e 73 69 6f 6e 73 20 61 72 65 20 76 69 73 69 62 6c 65 2e 20 20 59 6f 75 20 63 61 6e 0a xpansions.are.visible...You.can.
85e0 3b 3b 20 65 78 70 61 6e 64 20 61 6e 64 20 63 6f 6c 6c 61 70 73 65 20 6d 61 63 72 6f 20 66 6f 72 ;;.expand.and.collapse.macro.for
8600 6d 73 20 6f 6e 65 20 73 74 65 70 20 61 74 20 61 20 74 69 6d 65 2c 20 61 6e 64 20 65 76 61 6c 75 ms.one.step.at.a.time,.and.evalu
8620 61 74 65 20 6f 72 0a 3b 3b 20 69 6e 73 74 72 75 6d 65 6e 74 20 74 68 65 20 65 78 70 61 6e 73 69 ate.or.;;.instrument.the.expansi
8640 6f 6e 73 20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 20 77 69 74 68 20 45 64 65 62 75 67 20 61 73 ons.for.debugging.with.Edebug.as
8660 20 6e 6f 72 6d 61 6c 20 28 62 75 74 20 73 65 65 0a 3b 3b 20 22 42 75 67 73 20 61 6e 64 20 6b 6e .normal.(but.see.;;."Bugs.and.kn
8680 6f 77 6e 20 6c 69 6d 69 74 61 74 69 6f 6e 73 22 2c 20 62 65 6c 6f 77 29 2e 20 20 53 69 6e 67 6c own.limitations",.below)...Singl
86a0 65 2d 73 74 65 70 70 69 6e 67 20 74 68 72 6f 75 67 68 20 74 68 65 0a 3b 3b 20 65 78 70 61 6e 73 e-stepping.through.the.;;.expans
86c0 69 6f 6e 20 69 73 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 75 73 65 66 75 6c 20 66 6f 72 20 64 ion.is.particularly.useful.for.d
86e0 65 62 75 67 67 69 6e 67 20 6d 61 63 72 6f 73 20 74 68 61 74 20 65 78 70 61 6e 64 20 69 6e 74 6f ebugging.macros.that.expand.into
8700 0a 3b 3b 20 61 6e 6f 74 68 65 72 20 6d 61 63 72 6f 20 66 6f 72 6d 2e 20 20 54 68 65 73 65 20 63 .;;.another.macro.form...These.c
8720 61 6e 20 62 65 20 64 69 66 66 69 63 75 6c 74 20 74 6f 20 64 65 62 75 67 20 77 69 74 68 20 45 6d an.be.difficult.to.debug.with.Em
8740 61 63 73 27 0a 3b 3b 20 62 75 69 6c 74 2d 69 6e 20 60 6d 61 63 72 6f 65 78 70 61 6e 64 27 2c 20 acs'.;;.built-in.`macroexpand',.
8760 77 68 69 63 68 20 63 6f 6e 74 69 6e 75 65 73 20 65 78 70 61 6e 73 69 6f 6e 20 75 6e 74 69 6c 20 which.continues.expansion.until.
8780 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 0a 3b 3b 20 66 6f 72 6d 20 69 73 20 6e 6f 20 6c 6f 6e 67 the.top-level.;;.form.is.no.long
87a0 65 72 20 61 20 6d 61 63 72 6f 20 63 61 6c 6c 2e 0a 0a 3b 3b 20 42 6f 74 68 20 67 6c 6f 62 61 6c er.a.macro.call...;;.Both.global
87c0 6c 79 2d 76 69 73 69 62 6c 65 20 6d 61 63 72 6f 73 20 61 73 20 64 65 66 69 6e 65 64 20 62 79 20 ly-visible.macros.as.defined.by.
87e0 60 64 65 66 6d 61 63 72 6f 27 20 61 6e 64 20 6c 6f 63 61 6c 20 6d 61 63 72 6f 73 0a 3b 3b 20 62 `defmacro'.and.local.macros.;;.b
8800 6f 75 6e 64 20 62 79 20 60 28 63 6c 2d 29 6d 61 63 72 6f 6c 65 74 27 20 6f 72 20 61 6e 6f 74 68 ound.by.`(cl-)macrolet'.or.anoth
8820 65 72 20 6d 61 63 72 6f 2d 64 65 66 69 6e 69 6e 67 20 66 6f 72 6d 20 63 61 6e 20 62 65 20 65 78 er.macro-defining.form.can.be.ex
8840 70 61 6e 64 65 64 2e 0a 3b 3b 20 57 69 74 68 69 6e 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f panded..;;.Within.macro.expansio
8860 6e 73 2c 20 63 61 6c 6c 73 20 74 6f 20 6d 61 63 72 6f 73 20 61 6e 64 20 63 6f 6d 70 69 6c 65 72 ns,.calls.to.macros.and.compiler
8880 20 6d 61 63 72 6f 73 20 61 72 65 0a 3b 3b 20 66 6f 6e 74 69 66 69 65 64 20 73 70 65 63 69 61 6c .macros.are.;;.fontified.special
88a0 6c 79 3a 20 6d 61 63 72 6f 20 66 6f 72 6d 73 20 75 73 69 6e 67 20 60 6d 61 63 72 6f 73 74 65 70 ly:.macro.forms.using.`macrostep
88c0 2d 6d 61 63 72 6f 2d 66 61 63 65 27 2c 20 61 6e 64 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 73 20 77 -macro-face',.and.;;.functions.w
88e0 69 74 68 20 63 6f 6d 70 69 6c 65 72 20 6d 61 63 72 6f 73 20 75 73 69 6e 67 20 60 6d 61 63 72 6f ith.compiler.macros.using.`macro
8900 73 74 65 70 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 61 63 65 27 2e 0a 3b 3b 20 55 6e step-compiler-macro-face'..;;.Un
8920 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f 6c 73 20 28 67 65 6e 73 79 6d 73 29 20 61 72 65 20 66 interned.symbols.(gensyms).are.f
8940 6f 6e 74 69 66 69 65 64 20 62 61 73 65 64 20 6f 6e 20 77 68 69 63 68 20 73 74 65 70 20 69 6e 20 ontified.based.on.which.step.in.
8960 74 68 65 0a 3b 3b 20 65 78 70 61 6e 73 69 6f 6e 20 63 72 65 61 74 65 64 20 74 68 65 6d 2c 20 74 the.;;.expansion.created.them,.t
8980 6f 20 64 69 73 74 69 6e 67 75 69 73 68 20 74 68 65 6d 20 62 6f 74 68 20 66 72 6f 6d 20 6e 6f 72 o.distinguish.them.both.from.nor
89a0 6d 61 6c 20 73 79 6d 62 6f 6c 73 20 61 6e 64 0a 3b 3b 20 66 72 6f 6d 20 6f 74 68 65 72 20 67 65 mal.symbols.and.;;.from.other.ge
89c0 6e 73 79 6d 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 70 72 69 6e 74 20 6e 61 6d 65 2e 0a nsyms.with.the.same.print.name..
89e0 0a 3b 3b 20 41 73 20 6f 66 20 76 65 72 73 69 6f 6e 20 30 2e 39 2c 20 69 74 20 69 73 20 61 6c 73 .;;.As.of.version.0.9,.it.is.als
8a00 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 78 74 65 6e 64 20 60 6d 61 63 72 6f 73 74 65 70 27 o.possible.to.extend.`macrostep'
8a20 20 74 6f 20 77 6f 72 6b 0a 3b 3b 20 77 69 74 68 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 .to.work.;;.with.other.languages
8a40 20 77 69 74 68 20 6d 61 63 72 6f 20 73 79 73 74 65 6d 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 .with.macro.systems.in.addition.
8a60 74 6f 20 45 6d 61 63 73 20 4c 69 73 70 2e 20 20 41 6e 0a 3b 3b 20 65 78 74 65 6e 73 69 6f 6e 20 to.Emacs.Lisp...An.;;.extension.
8a80 66 6f 72 20 43 6f 6d 6d 6f 6e 20 4c 69 73 70 20 28 76 69 61 20 53 4c 49 4d 45 29 20 69 73 20 69 for.Common.Lisp.(via.SLIME).is.i
8aa0 6e 20 74 68 65 20 77 6f 72 6b 73 3b 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 66 6f 72 0a 3b n.the.works;.contributions.for.;
8ac0 3b 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 61 72 65 20 77 65 6c 63 6f 6d 65 2e 20 20 ;.other.languages.are.welcome...
8ae0 53 65 65 20 22 45 78 74 65 6e 64 69 6e 67 20 6d 61 63 72 6f 73 74 65 70 22 20 62 65 6c 6f 77 20 See."Extending.macrostep".below.
8b00 66 6f 72 0a 3b 3b 20 64 65 74 61 69 6c 73 2e 0a 0a 0a 3b 3b 20 31 20 4b 65 79 2d 62 69 6e 64 69 for.;;.details....;;.1.Key-bindi
8b20 6e 67 73 20 61 6e 64 20 75 73 61 67 65 0a 3b 3b 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ngs.and.usage.;;.===============
8b40 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 3b 3b 20 20 20 54 68 65 20 73 74 61 6e 64 61 72 64 20 6b 65 79 =========..;;...The.standard.key
8b60 62 69 6e 64 69 6e 67 73 20 69 6e 20 60 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 27 20 61 72 65 bindings.in.`macrostep-mode'.are
8b80 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 3b 3b 20 20 20 65 2c 20 3d 2c 20 52 45 54 20 .the.following:..;;...e,.=,.RET.
8ba0 3a 20 65 78 70 61 6e 64 20 74 68 65 20 6d 61 63 72 6f 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e :.expand.the.macro.form.followin
8bc0 67 20 70 6f 69 6e 74 20 6f 6e 65 20 73 74 65 70 0a 3b 3b 20 20 20 63 2c 20 75 2c 20 44 45 4c 20 g.point.one.step.;;...c,.u,.DEL.
8be0 3a 20 63 6f 6c 6c 61 70 73 65 20 74 68 65 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 6f :.collapse.the.form.following.po
8c00 69 6e 74 0a 3b 3b 20 20 20 71 2c 20 43 2d 63 20 43 2d 63 3a 20 63 6f 6c 6c 61 70 73 65 20 61 6c int.;;...q,.C-c.C-c:.collapse.al
8c20 6c 20 65 78 70 61 6e 64 65 64 20 66 6f 72 6d 73 20 61 6e 64 20 65 78 69 74 20 6d 61 63 72 6f 73 l.expanded.forms.and.exit.macros
8c40 74 65 70 2d 6d 6f 64 65 0a 3b 3b 20 20 20 6e 2c 20 54 41 42 20 20 20 20 3a 20 6a 75 6d 70 20 74 tep-mode.;;...n,.TAB....:.jump.t
8c60 6f 20 74 68 65 20 6e 65 78 74 20 6d 61 63 72 6f 20 66 6f 72 6d 20 69 6e 20 74 68 65 20 65 78 70 o.the.next.macro.form.in.the.exp
8c80 61 6e 73 69 6f 6e 0a 3b 3b 20 20 20 70 2c 20 4d 2d 54 41 42 20 20 3a 20 6a 75 6d 70 20 74 6f 20 ansion.;;...p,.M-TAB..:.jump.to.
8ca0 74 68 65 20 70 72 65 76 69 6f 75 73 20 6d 61 63 72 6f 20 66 6f 72 6d 20 69 6e 20 74 68 65 20 65 the.previous.macro.form.in.the.e
8cc0 78 70 61 6e 73 69 6f 6e 0a 0a 3b 3b 20 20 20 49 74 27 73 20 6e 6f 74 20 76 65 72 79 20 75 73 65 xpansion..;;...It's.not.very.use
8ce0 66 75 6c 20 74 6f 20 65 6e 61 62 6c 65 20 61 6e 64 20 64 69 73 61 62 6c 65 20 6d 61 63 72 6f 73 ful.to.enable.and.disable.macros
8d00 74 65 70 2d 6d 6f 64 65 20 64 69 72 65 63 74 6c 79 2e 0a 3b 3b 20 20 20 49 6e 73 74 65 61 64 2c tep-mode.directly..;;...Instead,
8d20 20 62 69 6e 64 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 27 20 74 6f 20 61 20 6b 65 .bind.`macrostep-expand'.to.a.ke
8d40 79 20 69 6e 20 60 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 2d 6d 61 70 27 2c 0a 3b 3b 20 20 y.in.`emacs-lisp-mode-map',.;;..
8d60 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 43 2d 63 20 65 3a 0a 0a 3b 3b 20 20 20 2c 2d 2d 2d 2d 0a .for.example.C-c.e:..;;...,----.
8d80 3b 3b 20 20 20 7c 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f ;;...|.(define-key.emacs-lisp-mo
8da0 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 65 22 29 20 27 6d 61 63 72 6f 73 74 65 70 2d de-map.(kbd."C-c.e").'macrostep-
8dc0 65 78 70 61 6e 64 29 0a 3b 3b 20 20 20 60 2d 2d 2d 2d 0a 0a 3b 3b 20 20 20 59 6f 75 20 63 61 6e expand).;;...`----..;;...You.can
8de0 20 74 68 65 6e 20 65 6e 74 65 72 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 61 6e 64 20 65 .then.enter.macrostep-mode.and.e
8e00 78 70 61 6e 64 20 61 20 6d 61 63 72 6f 20 66 6f 72 6d 20 63 6f 6d 70 6c 65 74 65 6c 79 0a 3b 3b xpand.a.macro.form.completely.;;
8e20 20 20 20 62 79 20 74 79 70 69 6e 67 20 60 43 2d 63 20 65 20 65 20 65 20 2e 2e 2e 27 20 61 73 20 ...by.typing.`C-c.e.e.e....'.as.
8e40 6d 61 6e 79 20 74 69 6d 65 73 20 61 73 20 6e 65 63 65 73 73 61 72 79 2e 0a 0a 3b 3b 20 20 20 45 many.times.as.necessary...;;...E
8e60 78 69 74 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 62 79 20 74 79 70 69 6e 67 20 60 71 27 xit.macrostep-mode.by.typing.`q'
8e80 20 6f 72 20 60 43 2d 63 20 43 2d 63 27 2c 20 6f 72 20 62 79 20 73 75 63 63 65 73 73 69 76 65 6c .or.`C-c.C-c',.or.by.successivel
8ea0 79 0a 3b 3b 20 20 20 74 79 70 69 6e 67 20 60 63 27 20 74 6f 20 63 6f 6c 6c 61 70 73 65 20 61 6c y.;;...typing.`c'.to.collapse.al
8ec0 6c 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 65 78 70 61 6e 73 69 6f 6e 73 2e 0a 0a 0a 3b 3b 20 32 l.surrounding.expansions....;;.2
8ee0 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 0a 3b 3b 20 3d 3d 3d 3d 3d 3d .Customization.options.;;.======
8f00 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 3b 3b 20 20 20 54 79 70 65 20 60 4d 2d =================..;;...Type.`M-
8f20 78 20 63 75 73 74 6f 6d 69 7a 65 2d 67 72 6f 75 70 20 52 45 54 20 6d 61 63 72 6f 73 74 65 70 20 x.customize-group.RET.macrostep.
8f40 52 45 54 27 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 6f 70 74 69 6f 6e 73 20 61 6e 64 0a 3b 3b RET'.to.customize.options.and.;;
8f60 20 20 20 66 61 63 65 73 2e 0a 0a 3b 3b 20 20 20 54 6f 20 64 69 73 70 6c 61 79 20 6d 61 63 72 6f ...faces...;;...To.display.macro
8f80 20 65 78 70 61 6e 73 69 6f 6e 73 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 20 77 69 6e 64 6f 77 .expansions.in.a.separate.window
8fa0 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 69 6e 6c 69 6e 65 20 69 6e 0a 3b 3b 20 20 20 74 68 65 20 ,.instead.of.inline.in.;;...the.
8fc0 73 6f 75 72 63 65 20 62 75 66 66 65 72 2c 20 63 75 73 74 6f 6d 69 7a 65 20 60 6d 61 63 72 6f 73 source.buffer,.customize.`macros
8fe0 74 65 70 2d 65 78 70 61 6e 64 2d 69 6e 2d 73 65 70 61 72 61 74 65 2d 62 75 66 66 65 72 27 20 74 tep-expand-in-separate-buffer'.t
9000 6f 0a 3b 3b 20 20 20 60 74 27 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 60 6e 69 6c o.;;...`t'...The.default.is.`nil
9020 27 2e 20 20 57 68 69 63 68 65 76 65 72 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 20 69 '...Whichever.default.behavior.i
9040 73 20 73 65 6c 65 63 74 65 64 2c 0a 3b 3b 20 20 20 74 68 65 20 61 6c 74 65 72 6e 61 74 69 76 65 s.selected,.;;...the.alternative
9060 20 62 65 68 61 76 69 6f 72 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 74 65 6d 70 6f 72 .behavior.can.be.obtained.tempor
9080 61 72 69 6c 79 20 62 79 20 67 69 76 69 6e 67 20 61 0a 3b 3b 20 20 20 70 72 65 66 69 78 20 61 72 arily.by.giving.a.;;...prefix.ar
90a0 67 75 6d 65 6e 74 20 74 6f 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 27 2e 0a 0a 3b gument.to.`macrostep-expand'...;
90c0 3b 20 20 20 54 6f 20 68 61 76 65 20 60 6d 61 63 72 6f 73 74 65 70 27 20 69 67 6e 6f 72 65 20 63 ;...To.have.`macrostep'.ignore.c
90e0 6f 6d 70 69 6c 65 72 20 6d 61 63 72 6f 73 2c 20 63 75 73 74 6f 6d 69 7a 65 0a 3b 3b 20 20 20 60 ompiler.macros,.customize.;;...`
9100 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 73 macrostep-expand-compiler-macros
9120 27 20 74 6f 20 60 6e 69 6c 27 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 60 74 27 2e '.to.`nil'...The.default.is.`t'.
9140 0a 0a 3b 3b 20 20 20 43 75 73 74 6f 6d 69 7a 65 20 74 68 65 20 66 61 63 65 73 20 60 6d 61 63 72 ..;;...Customize.the.faces.`macr
9160 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 61 63 65 27 2c 0a 3b 3b 20 20 20 60 6d 61 63 72 6f 73 74 ostep-macro-face',.;;...`macrost
9180 65 70 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 61 63 65 27 2c 20 61 6e 64 20 60 6d 61 ep-compiler-macro-face',.and.`ma
91a0 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 31 27 20 74 68 72 6f 75 67 68 0a 3b 3b 20 20 20 60 crostep-gensym-1'.through.;;...`
91c0 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 35 27 20 74 6f 20 61 6c 74 65 72 20 74 68 65 macrostep-gensym-5'.to.alter.the
91e0 20 61 70 70 65 61 72 61 6e 63 65 20 6f 66 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 2e .appearance.of.macro.expansions.
9200 0a 0a 0a 3b 3b 20 33 20 4c 6f 63 61 6c 6c 79 2d 62 6f 75 6e 64 20 6d 61 63 72 6f 73 0a 3b 3b 20 ...;;.3.Locally-bound.macros.;;.
9220 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 3b 3b 20 20 20 41 73 20 ======================..;;...As.
9240 6f 66 20 76 65 72 73 69 6f 6e 20 30 2e 39 2c 20 60 6d 61 63 72 6f 73 74 65 70 27 20 63 61 6e 20 of.version.0.9,.`macrostep'.can.
9260 65 78 70 61 6e 64 20 63 61 6c 6c 73 20 74 6f 20 61 20 6c 6f 63 61 6c 6c 79 2d 62 6f 75 6e 64 0a expand.calls.to.a.locally-bound.
9280 3b 3b 20 20 20 6d 61 63 72 6f 2c 20 77 68 65 74 68 65 72 20 64 65 66 69 6e 65 64 20 62 79 20 61 ;;...macro,.whether.defined.by.a
92a0 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 60 28 63 6c 2d 29 6d 61 63 72 6f 6c 65 74 27 20 66 6f 72 .surrounding.`(cl-)macrolet'.for
92c0 6d 2c 20 6f 72 20 62 79 0a 3b 3b 20 20 20 61 6e 6f 74 68 65 72 20 6d 61 63 72 6f 2d 64 65 66 69 m,.or.by.;;...another.macro-defi
92e0 6e 69 6e 67 20 6d 61 63 72 6f 2e 20 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 69 74 20 ning.macro...In.other.words,.it.
9300 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 0a 3b 3b 20 20 20 65 78 70 61 6e 64 20 74 68 65 20 69 is.possible.to.;;...expand.the.i
9320 6e 6e 65 72 20 60 6c 6f 63 61 6c 2d 6d 61 63 72 6f 27 20 66 6f 72 6d 73 20 69 6e 20 62 6f 74 68 nner.`local-macro'.forms.in.both
9340 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 61 6d 70 6c 65 73 2c 0a 3b 3b 20 20 20 77 68 .the.following.examples,.;;...wh
9360 65 74 68 65 72 20 60 6c 6f 63 61 6c 2d 6d 61 63 72 6f 27 20 69 73 20 64 65 66 69 6e 65 64 20 62 ether.`local-macro'.is.defined.b
9380 79 20 61 6e 20 65 6e 63 6c 6f 73 69 6e 67 20 60 63 6c 2d 6d 61 63 72 6f 6c 65 74 27 20 2d 2d 0a y.an.enclosing.`cl-macrolet'.--.
93a0 0a 3b 3b 20 20 20 2c 2d 2d 2d 2d 0a 3b 3b 20 20 20 7c 20 28 63 6c 2d 6d 61 63 72 6f 6c 65 74 20 .;;...,----.;;...|.(cl-macrolet.
93c0 28 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 3b 3b 20 20 20 ((local-macro.(&rest.args).;;...
93e0 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 65 78 70 61 6e 73 69 6f 6e 20 6f 66 |.................`(expansion.of
9400 20 2c 61 72 67 73 29 29 29 0a 3b 3b 20 20 20 7c 20 20 20 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 .,args))).;;...|...(local-macro.
9420 28 64 6f 2d 73 6f 6d 65 74 68 69 6e 67 29 29 29 0a 3b 3b 20 20 20 60 2d 2d 2d 2d 0a 0a 3b 3b 20 (do-something))).;;...`----..;;.
9440 20 20 2d 2d 20 6f 72 20 62 79 20 61 20 6d 61 63 72 6f 20 77 68 69 63 68 20 65 78 70 61 6e 64 73 ..--.or.by.a.macro.which.expands
9460 20 69 6e 74 6f 20 60 63 6c 2d 6d 61 63 72 6f 6c 65 74 27 2c 20 70 72 6f 76 69 64 65 64 20 74 68 .into.`cl-macrolet',.provided.th
9480 61 74 20 69 74 73 0a 3b 3b 20 20 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 6d 61 63 72 6f 20 at.its.;;...definition.of.macro.
94a0 69 73 20 65 76 61 6c 75 61 74 65 64 20 70 72 69 6f 72 20 74 6f 20 63 61 6c 6c 69 6e 67 20 60 6d is.evaluated.prior.to.calling.`m
94c0 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 27 3a 0a 0a 3b 3b 20 20 20 2c 2d 2d 2d 2d 0a 3b 3b acrostep-expand':..;;...,----.;;
94e0 20 20 20 7c 20 28 64 65 66 6d 61 63 72 6f 20 77 69 74 68 2d 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 ...|.(defmacro.with-local-macro.
9500 28 26 72 65 73 74 20 62 6f 64 79 29 0a 3b 3b 20 20 20 7c 20 20 20 60 28 63 6c 2d 6d 61 63 72 6f (&rest.body).;;...|...`(cl-macro
9520 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 3b let.((local-macro.(&rest.args).;
9540 3b 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 65 78 70 61 6e ;...|....................`(expan
9560 73 69 6f 6e 20 6f 66 20 2c 61 72 67 73 29 29 29 0a 3b 3b 20 20 20 7c 20 20 20 20 20 20 2c 40 62 sion.of.,args))).;;...|......,@b
9580 6f 64 79 29 29 0a 3b 3b 20 20 20 7c 0a 3b 3b 20 20 20 7c 20 28 77 69 74 68 2d 6c 6f 63 61 6c 2d ody)).;;...|.;;...|.(with-local-
95a0 6d 61 63 72 6f 0a 3b 3b 20 20 20 7c 20 20 20 20 20 28 6c 6f 63 61 6c 2d 6d 61 63 72 6f 20 28 64 macro.;;...|.....(local-macro.(d
95c0 6f 20 73 6f 6d 65 74 68 69 6e 67 20 28 65 6c 73 65 29 29 29 0a 3b 3b 20 20 20 60 2d 2d 2d 2d 0a o.something.(else))).;;...`----.
95e0 0a 3b 3b 20 20 20 53 65 65 20 74 68 65 20 60 77 69 74 68 2d 6a 73 27 20 6d 61 63 72 6f 20 69 6e .;;...See.the.`with-js'.macro.in
9600 20 45 6d 61 63 73 27 73 20 60 6a 73 2e 65 6c 27 20 66 6f 72 20 61 20 72 65 61 6c 20 65 78 61 6d .Emacs's.`js.el'.for.a.real.exam
9620 70 6c 65 20 6f 66 20 74 68 65 0a 3b 3b 20 20 20 6c 61 74 74 65 72 20 6b 69 6e 64 20 6f 66 20 6d ple.of.the.;;...latter.kind.of.m
9640 61 63 72 6f 2e 0a 0a 3b 3b 20 20 20 45 78 70 61 6e 73 69 6f 6e 20 6f 66 20 6c 6f 63 61 6c 6c 79 acro...;;...Expansion.of.locally
9660 2d 62 6f 75 6e 64 20 6d 61 63 72 6f 73 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79 20 -bound.macros.is.implemented.by.
9680 69 6e 73 74 72 75 6d 65 6e 74 69 6e 67 0a 3b 3b 20 20 20 45 6d 61 63 73 20 4c 69 73 70 27 73 20 instrumenting.;;...Emacs.Lisp's.
96a0 6d 61 63 72 6f 2d 65 78 70 61 6e 64 65 72 20 74 6f 20 63 61 70 74 75 72 65 20 74 68 65 20 65 6e macro-expander.to.capture.the.en
96c0 76 69 72 6f 6e 6d 65 6e 74 20 61 74 20 70 6f 69 6e 74 2e 20 20 41 0a 3b 3b 20 20 20 73 69 6d 69 vironment.at.point...A.;;...simi
96e0 6c 61 72 20 74 72 69 63 6b 20 69 73 20 75 73 65 64 20 74 6f 20 64 65 74 65 63 74 20 6d 61 63 72 lar.trick.is.used.to.detect.macr
9700 6f 2d 20 61 6e 64 20 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 20 63 61 6c 6c 73 20 77 69 74 68 o-.and.compiler-macro.calls.with
9720 69 6e 0a 3b 3b 20 20 20 65 78 70 61 6e 64 65 64 20 74 65 78 74 20 73 6f 20 74 68 61 74 20 74 68 in.;;...expanded.text.so.that.th
9740 65 79 20 63 61 6e 20 62 65 20 66 6f 6e 74 69 66 69 65 64 20 61 63 63 75 72 61 74 65 6c 79 2e 0a ey.can.be.fontified.accurately..
9760 0a 0a 3b 3b 20 34 20 45 78 70 61 6e 64 69 6e 67 20 73 75 62 2d 66 6f 72 6d 73 0a 3b 3b 20 3d 3d ..;;.4.Expanding.sub-forms.;;.==
9780 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 3b 3b 20 20 20 42 79 20 6d 6f 76 ===================..;;...By.mov
97a0 69 6e 67 20 70 6f 69 6e 74 20 61 72 6f 75 6e 64 20 69 6e 20 74 68 65 20 6d 61 63 72 6f 20 65 78 ing.point.around.in.the.macro.ex
97c0 70 61 6e 73 69 6f 6e 20 75 73 69 6e 67 0a 3b 3b 20 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 6e 65 pansion.using.;;...`macrostep-ne
97e0 78 74 2d 6d 61 63 72 6f 27 20 61 6e 64 20 60 6d 61 63 72 6f 73 74 65 70 2d 70 72 65 76 2d 6d 61 xt-macro'.and.`macrostep-prev-ma
9800 63 72 6f 27 20 28 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 60 6e 27 0a 3b 3b 20 20 20 61 6e 64 20 cro'.(bound.to.the.`n'.;;...and.
9820 60 70 27 20 6b 65 79 73 29 2c 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 78 70 `p'.keys),.it.is.possible.to.exp
9840 61 6e 64 20 6f 74 68 65 72 20 6d 61 63 72 6f 20 63 61 6c 6c 73 20 77 69 74 68 69 6e 20 74 68 65 and.other.macro.calls.within.the
9860 0a 3b 3b 20 20 20 65 78 70 61 6e 73 69 6f 6e 20 62 65 66 6f 72 65 20 65 78 70 61 6e 64 69 6e 67 .;;...expansion.before.expanding
9880 20 74 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 66 6f 72 6d 2e 20 20 54 68 69 73 20 63 61 6e 20 73 .the.outermost.form...This.can.s
98a0 6f 6d 65 74 69 6d 65 73 20 62 65 0a 3b 3b 20 20 20 75 73 65 66 75 6c 2c 20 61 6c 74 68 6f 75 67 ometimes.be.;;...useful,.althoug
98c0 68 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 74 68 65 20 h.it.does.not.correspond.to.the.
98e0 72 65 61 6c 20 6f 72 64 65 72 20 6f 66 20 6d 61 63 72 6f 0a 3b 3b 20 20 20 65 78 70 61 6e 73 69 real.order.of.macro.;;...expansi
9900 6f 6e 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 2c 20 77 68 69 63 68 20 70 72 6f 63 65 65 64 73 on.in.Emacs.Lisp,.which.proceeds
9920 20 62 79 20 66 75 6c 6c 79 20 65 78 70 61 6e 64 69 6e 67 20 74 68 65 20 6f 75 74 65 72 0a 3b 3b .by.fully.expanding.the.outer.;;
9940 20 20 20 66 6f 72 6d 20 74 6f 20 61 20 6e 6f 6e 2d 6d 61 63 72 6f 20 66 6f 72 6d 20 62 65 66 6f ...form.to.a.non-macro.form.befo
9960 72 65 20 65 78 70 61 6e 64 69 6e 67 20 73 75 62 2d 66 6f 72 6d 73 2e 0a 0a 3b 3b 20 20 20 54 68 re.expanding.sub-forms...;;...Th
9980 65 20 6d 61 69 6e 20 72 65 61 73 6f 6e 20 74 6f 20 65 78 70 61 6e 64 20 73 75 62 2d 66 6f 72 6d e.main.reason.to.expand.sub-form
99a0 73 20 6f 75 74 20 6f 66 20 6f 72 64 65 72 20 69 73 20 74 6f 20 68 65 6c 70 20 77 69 74 68 0a 3b s.out.of.order.is.to.help.with.;
99c0 3b 20 20 20 64 65 62 75 67 67 69 6e 67 20 6d 61 63 72 6f 73 20 77 68 69 63 68 20 70 72 6f 67 72 ;...debugging.macros.which.progr
99e0 61 6d 6d 61 74 69 63 61 6c 6c 79 20 65 78 70 61 6e 64 20 74 68 65 69 72 20 61 72 67 75 6d 65 6e ammatically.expand.their.argumen
9a00 74 73 20 69 6e 0a 3b 3b 20 20 20 6f 72 64 65 72 20 74 6f 20 72 65 77 72 69 74 65 20 74 68 65 6d ts.in.;;...order.to.rewrite.them
9a20 2e 20 20 45 78 70 61 6e 64 69 6e 67 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 6f 66 20 73 75 ...Expanding.the.arguments.of.su
9a40 63 68 20 61 20 6d 61 63 72 6f 20 6c 65 74 73 0a 3b 3b 20 20 20 79 6f 75 20 76 69 73 75 61 6c 69 ch.a.macro.lets.;;...you.visuali
9a60 73 65 20 77 68 61 74 20 74 68 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 6f 75 se.what.the.macro.definition.wou
9a80 6c 64 20 63 6f 6d 70 75 74 65 20 76 69 61 0a 3b 3b 20 20 20 60 6d 61 63 72 6f 65 78 70 61 6e 64 ld.compute.via.;;...`macroexpand
9aa0 2d 61 6c 6c 27 2e 0a 0a 0a 3b 3b 20 35 20 45 78 74 65 6e 64 69 6e 67 20 6d 61 63 72 6f 73 74 65 -all'....;;.5.Extending.macroste
9ac0 70 20 66 6f 72 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 0a 3b 3b 20 3d 3d 3d 3d 3d 3d 3d p.for.other.languages.;;.=======
9ae0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================================
9b00 3d 3d 0a 0a 3b 3b 20 20 20 53 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 30 2e 39 2c 20 69 74 20 69 ==..;;...Since.version.0.9,.it.i
9b20 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 78 74 65 6e 64 20 6d 61 63 72 6f 73 74 65 70 20 74 s.possible.to.extend.macrostep.t
9b40 6f 20 77 6f 72 6b 20 77 69 74 68 0a 3b 3b 20 20 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 o.work.with.;;...other.languages
9b60 20 62 65 73 69 64 65 73 20 45 6d 61 63 73 20 4c 69 73 70 2e 20 20 49 6e 20 74 79 70 69 63 61 6c .besides.Emacs.Lisp...In.typical
9b80 20 45 6d 61 63 73 20 66 61 73 68 69 6f 6e 2c 20 74 68 69 73 20 69 73 0a 3b 3b 20 20 20 69 6d 70 .Emacs.fashion,.this.is.;;...imp
9ba0 6c 65 6d 65 6e 74 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c lemented.by.setting.buffer-local
9bc0 20 76 61 72 69 61 62 6c 65 73 20 74 6f 20 64 69 66 66 65 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e .variables.to.different.function
9be0 0a 3b 3b 20 20 20 76 61 6c 75 65 73 2e 20 20 53 69 78 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 .;;...values...Six.buffer-local.
9c00 76 61 72 69 61 62 6c 65 73 20 64 65 66 69 6e 65 20 74 68 65 20 6c 61 6e 67 75 61 67 65 2d 73 70 variables.define.the.language-sp
9c20 65 63 69 66 69 63 20 70 61 72 74 0a 3b 3b 20 20 20 6f 66 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e ecific.part.;;...of.the.implemen
9c40 74 61 74 69 6f 6e 3a 0a 0a 3b 3b 20 20 20 2d 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d tation:..;;...-.`macrostep-sexp-
9c60 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 27 0a 3b 3b 20 20 20 2d 20 60 6d 61 63 72 6f 73 74 bounds-function'.;;...-.`macrost
9c80 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 0a 3b 3b 20 20 20 ep-sexp-at-point-function'.;;...
9ca0 2d 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e -.`macrostep-environment-at-poin
9cc0 74 2d 66 75 6e 63 74 69 6f 6e 27 0a 3b 3b 20 20 20 2d 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 t-function'.;;...-.`macrostep-ex
9ce0 70 61 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 27 0a 3b 3b 20 20 20 2d 20 60 6d 61 63 72 6f 73 74 pand-1-function'.;;...-.`macrost
9d00 65 70 2d 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 0a 3b 3b 20 20 20 2d 20 60 6d 61 63 72 6f ep-print-function'.;;...-.`macro
9d20 73 74 65 70 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 27 0a 0a 3b 3b 20 step-macro-form-p-function'..;;.
9d40 20 20 54 79 70 69 63 61 6c 6c 79 2c 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 ..Typically,.an.implementation.f
9d60 6f 72 20 61 6e 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 20 77 6f 75 6c 64 20 73 65 74 20 74 68 or.another.language.would.set.th
9d80 65 73 65 0a 3b 3b 20 20 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20 61 20 6d 61 6a 6f 72 2d 6d 6f ese.;;...variables.in.a.major-mo
9da0 64 65 20 68 6f 6f 6b 2e 20 20 53 65 65 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 73 20 6f 66 20 de.hook...See.the.docstrings.of.
9dc0 65 61 63 68 20 76 61 72 69 61 62 6c 65 0a 3b 3b 20 20 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f each.variable.;;...for.details.o
9de0 6e 20 68 6f 77 20 65 61 63 68 20 6f 6e 65 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 64 20 77 68 61 n.how.each.one.is.called.and.wha
9e00 74 20 69 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 2e 20 20 41 74 20 61 0a 3b 3b 20 20 20 6d t.it.should.return...At.a.;;...m
9e20 69 6e 69 6d 75 6d 2c 20 61 6e 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 20 69 6d 70 6c 65 6d 65 inimum,.another.language.impleme
9e40 6e 74 61 74 69 6f 6e 20 6e 65 65 64 73 20 74 6f 20 70 72 6f 76 69 64 65 0a 3b 3b 20 20 20 60 6d ntation.needs.to.provide.;;...`m
9e60 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 acrostep-sexp-at-point-function'
9e80 2c 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 27 2c ,.`macrostep-expand-1-function',
9ea0 20 61 6e 64 0a 3b 3b 20 20 20 60 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 66 75 6e 63 74 .and.;;...`macrostep-print-funct
9ec0 69 6f 6e 27 2e 20 20 4c 69 73 70 2d 6c 69 6b 65 20 6c 61 6e 67 75 61 67 65 73 20 6d 61 79 20 62 ion'...Lisp-like.languages.may.b
9ee0 65 20 61 62 6c 65 20 74 6f 20 72 65 75 73 65 0a 3b 3b 20 20 20 74 68 65 20 64 65 66 61 75 6c 74 e.able.to.reuse.;;...the.default
9f00 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e .`macrostep-sexp-bounds-function
9f20 27 20 69 66 20 74 68 65 79 20 70 72 6f 76 69 64 65 20 61 6e 6f 74 68 65 72 0a 3b 3b 20 20 20 69 '.if.they.provide.another.;;...i
9f40 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 60 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 mplementation.of.`macrostep-macr
9f60 6f 2d 66 6f 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 27 2e 20 20 4c 61 6e 67 75 61 67 65 73 20 77 o-form-p-function'...Languages.w
9f80 68 69 63 68 0a 3b 3b 20 20 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 20 6c 6f 63 61 6c hich.;;...do.not.implement.local
9fa0 6c 79 2d 64 65 66 69 6e 65 64 20 6d 61 63 72 6f 73 20 63 61 6e 20 73 65 74 0a 3b 3b 20 20 20 60 ly-defined.macros.can.set.;;...`
9fc0 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 2d 66 macrostep-environment-at-point-f
9fe0 75 6e 63 74 69 6f 6e 27 20 74 6f 20 60 69 67 6e 6f 72 65 27 2e 0a 0a 3b 3b 20 20 20 4e 6f 74 65 unction'.to.`ignore'...;;...Note
a000 20 74 68 61 74 20 74 68 65 20 63 6f 72 65 20 60 6d 61 63 72 6f 73 74 65 70 27 20 6d 61 63 68 69 .that.the.core.`macrostep'.machi
a020 6e 65 72 79 20 6f 6e 6c 79 20 69 6e 74 65 72 70 72 65 74 73 20 74 68 65 20 72 65 74 75 72 6e 0a nery.only.interprets.the.return.
a040 3b 3b 20 20 20 76 61 6c 75 65 20 6f 66 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f ;;...value.of.`macrostep-sexp-bo
a060 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 73 6f 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f unds-function',.so.implementatio
a080 6e 73 20 66 6f 72 0a 3b 3b 20 20 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 63 61 6e 20 ns.for.;;...other.languages.can.
a0a0 75 73 65 20 61 6e 79 20 69 6e 74 65 72 6e 61 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 use.any.internal.representations
a0c0 20 6f 66 20 63 6f 64 65 20 61 6e 64 0a 3b 3b 20 20 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 20 77 .of.code.and.;;...environments.w
a0e0 68 69 63 68 20 69 73 20 63 6f 6e 76 65 6e 69 65 6e 74 2e 20 20 41 6c 74 68 6f 75 67 68 20 74 68 hich.is.convenient...Although.th
a100 65 20 74 65 72 6d 69 6e 6f 6c 6f 67 79 20 69 73 0a 3b 3b 20 20 20 4c 69 73 70 2d 73 70 65 63 69 e.terminology.is.;;...Lisp-speci
a120 66 69 63 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 72 65 61 73 6f 6e 20 74 68 61 74 20 69 6d 70 fic,.there.is.no.reason.that.imp
a140 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 0a 3b 3b 20 20 20 70 lementations.could.not.be.;;...p
a160 72 6f 76 69 64 65 64 20 66 6f 72 20 6e 6f 6e 2d 4c 69 73 70 20 6c 61 6e 67 75 61 67 65 73 20 77 rovided.for.non-Lisp.languages.w
a180 69 74 68 20 6d 61 63 72 6f 20 73 79 73 74 65 6d 73 2c 20 70 72 6f 76 69 64 65 64 20 74 68 65 72 ith.macro.systems,.provided.ther
a1a0 65 20 69 73 0a 3b 3b 20 20 20 73 6f 6d 65 20 77 61 79 20 6f 66 20 69 64 65 6e 74 69 66 79 69 6e e.is.;;...some.way.of.identifyin
a1c0 67 20 6d 61 63 72 6f 20 63 61 6c 6c 73 20 61 6e 64 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 63 6f g.macro.calls.and.calling.the.co
a1e0 6d 70 69 6c 65 72 20 2f 0a 3b 3b 20 20 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 74 6f 20 6f 62 mpiler./.;;...preprocessor.to.ob
a200 74 61 69 6e 20 74 68 65 69 72 20 65 78 70 61 6e 73 69 6f 6e 73 2e 0a 0a 0a 3b 3b 20 36 20 42 75 tain.their.expansions....;;.6.Bu
a220 67 73 20 61 6e 64 20 6b 6e 6f 77 6e 20 6c 69 6d 69 74 61 74 69 6f 6e 73 0a 3b 3b 20 3d 3d 3d 3d gs.and.known.limitations.;;.====
a240 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 3b 3b 20 20 20 59 ========================..;;...Y
a260 6f 75 20 63 61 6e 20 65 76 61 6c 75 61 74 65 20 61 6e 64 20 65 64 65 62 75 67 20 6d 61 63 72 6f ou.can.evaluate.and.edebug.macro
a280 2d 65 78 70 61 6e 64 65 64 20 66 6f 72 6d 73 20 61 6e 64 20 73 74 65 70 20 74 68 72 6f 75 67 68 -expanded.forms.and.step.through
a2a0 20 74 68 65 0a 3b 3b 20 20 20 6d 61 63 72 6f 2d 65 78 70 61 6e 64 65 64 20 76 65 72 73 69 6f 6e .the.;;...macro-expanded.version
a2c0 2c 20 62 75 74 20 74 68 65 20 66 6f 72 6d 20 74 68 61 74 20 60 65 76 61 6c 2d 64 65 66 75 6e 27 ,.but.the.form.that.`eval-defun'
a2e0 20 61 6e 64 20 66 72 69 65 6e 64 73 0a 3b 3b 20 20 20 72 65 61 64 20 66 72 6f 6d 20 74 68 65 20 .and.friends.;;...read.from.the.
a300 62 75 66 66 65 72 20 77 6f 6e 27 74 20 68 61 76 65 20 74 68 65 20 75 6e 69 6e 74 65 72 6e 65 64 buffer.won't.have.the.uninterned
a320 20 73 79 6d 62 6f 6c 73 20 6f 66 20 74 68 65 20 72 65 61 6c 0a 3b 3b 20 20 20 6d 61 63 72 6f 20 .symbols.of.the.real.;;...macro.
a340 65 78 70 61 6e 73 69 6f 6e 2e 20 20 54 68 69 73 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 77 expansion...This.will.probably.w
a360 6f 72 6b 20 4f 4b 20 77 69 74 68 20 43 4c 2d 73 74 79 6c 65 20 67 65 6e 73 79 6d 73 2c 0a 3b 3b ork.OK.with.CL-style.gensyms,.;;
a380 20 20 20 62 75 74 20 6d 61 79 20 63 61 75 73 65 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 60 ...but.may.cause.problems.with.`
a3a0 6d 61 6b 65 2d 73 79 6d 62 6f 6c 27 20 73 79 6d 62 6f 6c 73 20 69 66 20 74 68 65 79 20 68 61 76 make-symbol'.symbols.if.they.hav
a3c0 65 20 74 68 65 0a 3b 3b 20 20 20 73 61 6d 65 20 70 72 69 6e 74 20 6e 61 6d 65 20 61 73 20 61 6e e.the.;;...same.print.name.as.an
a3e0 6f 74 68 65 72 20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 2e 20 20 other.symbol.in.the.expansion...
a400 49 74 27 73 20 70 6f 73 73 69 62 6c 65 20 74 68 61 74 0a 3b 3b 20 20 20 75 73 69 6e 67 20 60 70 It's.possible.that.;;...using.`p
a420 72 69 6e 74 2d 63 69 72 63 6c 65 27 20 61 6e 64 20 60 70 72 69 6e 74 2d 67 65 6e 73 79 6d 27 20 rint-circle'.and.`print-gensym'.
a440 63 6f 75 6c 64 20 67 65 74 20 61 72 6f 75 6e 64 20 74 68 69 73 2e 0a 0a 3b 3b 20 20 20 50 6c 65 could.get.around.this...;;...Ple
a460 61 73 65 20 73 65 6e 64 20 6f 74 68 65 72 20 62 75 67 20 72 65 70 6f 72 74 73 20 61 6e 64 20 66 ase.send.other.bug.reports.and.f
a480 65 61 74 75 72 65 20 72 65 71 75 65 73 74 73 20 74 6f 20 74 68 65 20 61 75 74 68 6f 72 2e 0a 0a eature.requests.to.the.author...
a4a0 0a 3b 3b 20 37 20 41 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 73 0a 3b 3b 20 3d 3d 3d 3d 3d 3d .;;.7.Acknowledgements.;;.======
a4c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 3b 3b 20 20 20 54 68 61 6e 6b 73 20 74 6f 3a 0a 3b 3b ============..;;...Thanks.to:.;;
a4e0 20 20 20 2d 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 66 6f 72 20 66 69 78 69 6e 67 20 61 20 62 ...-.John.Wiegley.for.fixing.a.b
a500 75 67 20 77 69 74 68 20 74 68 65 20 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 75 6e 64 ug.with.the.face.definitions.und
a520 65 72 20 45 6d 61 63 73 0a 3b 3b 20 20 20 20 20 32 34 20 26 20 66 6f 72 20 70 6c 75 67 67 69 6e er.Emacs.;;.....24.&.for.pluggin
a540 67 20 6d 61 63 72 6f 73 74 65 70 20 69 6e 20 68 69 73 20 5b 45 6d 61 63 73 43 6f 6e 66 20 70 72 g.macrostep.in.his.[EmacsConf.pr
a560 65 73 65 6e 74 61 74 69 6f 6e 5d 21 0a 3b 3b 20 20 20 2d 20 47 65 6f 72 67 65 20 4b 65 74 74 6c esentation]!.;;...-.George.Kettl
a580 65 62 6f 72 6f 75 67 68 20 66 6f 72 20 62 75 67 20 72 65 70 6f 72 74 73 2c 20 61 6e 64 20 70 61 eborough.for.bug.reports,.and.pa
a5a0 74 63 68 65 73 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 74 68 65 0a 3b 3b 20 20 20 20 20 65 78 tches.to.highlight.the.;;.....ex
a5c0 70 61 6e 64 65 64 20 72 65 67 69 6f 6e 20 61 6e 64 20 70 72 6f 70 65 72 6c 79 20 68 61 6e 64 6c panded.region.and.properly.handl
a5e0 65 20 62 61 63 6b 71 75 6f 74 65 73 2e 0a 3b 3b 20 20 20 2d 20 4e 69 63 20 46 65 72 72 69 65 72 e.backquotes..;;...-.Nic.Ferrier
a600 20 66 6f 72 20 73 75 67 67 65 73 74 69 6e 67 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6c 6f 63 61 .for.suggesting.support.for.loca
a620 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 77 69 74 68 69 6e 0a 3b 3b 20 20 20 20 20 6d 61 63 72 l.definitions.within.;;.....macr
a640 6f 6c 65 74 20 66 6f 72 6d 73 0a 3b 3b 20 20 20 2d 20 4c 75 c3 ad 73 20 4f 6c 69 76 65 69 72 61 olet.forms.;;...-.Lu..s.Oliveira
a660 20 66 6f 72 20 73 75 67 67 65 73 74 69 6e 67 20 61 6e 64 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 .for.suggesting.and.implementing
a680 20 53 4c 49 4d 45 20 73 75 70 70 6f 72 74 0a 0a 3b 3b 20 20 20 60 6d 61 63 72 6f 73 74 65 70 27 .SLIME.support..;;...`macrostep'
a6a0 20 77 61 73 20 6f 72 69 67 69 6e 61 6c 6c 79 20 69 6e 73 70 69 72 65 64 20 62 79 20 4a 2e 20 56 .was.originally.inspired.by.J..V
a6c0 2e 20 54 6f 75 70 73 27 73 20 27 44 65 65 70 20 45 6d 61 63 73 20 4c 69 73 70 27 0a 3b 3b 20 20 ..Toups's.'Deep.Emacs.Lisp'.;;..
a6e0 20 61 72 74 69 63 6c 65 73 20 28 5b 70 61 72 74 20 31 5d 2c 20 5b 70 61 72 74 20 32 5d 2c 20 5b .articles.([part.1],.[part.2],.[
a700 73 63 72 65 65 6e 63 61 73 74 5d 29 2e 0a 0a 3b 3b 20 20 20 5b 45 6d 61 63 73 43 6f 6e 66 20 70 screencast])...;;...[EmacsConf.p
a720 72 65 73 65 6e 74 61 74 69 6f 6e 5d 20 68 74 74 70 3a 2f 2f 79 6f 75 74 75 2e 62 65 2f 52 76 50 resentation].http://youtu.be/RvP
a740 46 5a 4c 36 4e 4a 4e 51 0a 0a 3b 3b 20 20 20 5b 70 61 72 74 20 31 5d 0a 3b 3b 20 20 20 68 74 74 FZL6NJNQ..;;...[part.1].;;...htt
a760 70 3a 2f 2f 64 6f 72 6f 70 68 6f 6e 65 2e 62 6c 6f 67 73 70 6f 74 2e 63 6f 2e 75 6b 2f 32 30 31 p://dorophone.blogspot.co.uk/201
a780 31 2f 30 34 2f 64 65 65 70 2d 65 6d 61 63 73 2d 70 61 72 74 2d 31 2e 68 74 6d 6c 0a 0a 3b 3b 20 1/04/deep-emacs-part-1.html..;;.
a7a0 20 20 5b 70 61 72 74 20 32 5d 0a 3b 3b 20 20 20 68 74 74 70 3a 2f 2f 64 6f 72 6f 70 68 6f 6e 65 ..[part.2].;;...http://dorophone
a7c0 2e 62 6c 6f 67 73 70 6f 74 2e 63 6f 2e 75 6b 2f 32 30 31 31 2f 30 34 2f 64 65 65 70 2d 65 6d 61 .blogspot.co.uk/2011/04/deep-ema
a7e0 63 73 2d 6c 69 73 70 2d 70 61 72 74 2d 32 2e 68 74 6d 6c 0a 0a 3b 3b 20 20 20 5b 73 63 72 65 65 cs-lisp-part-2.html..;;...[scree
a800 6e 63 61 73 74 5d 0a 3b 3b 20 20 20 68 74 74 70 3a 2f 2f 64 6f 72 6f 70 68 6f 6e 65 2e 62 6c 6f ncast].;;...http://dorophone.blo
a820 67 73 70 6f 74 2e 63 6f 2e 75 6b 2f 32 30 31 31 2f 30 35 2f 6d 6f 6e 61 64 69 63 2d 70 61 72 73 gspot.co.uk/2011/05/monadic-pars
a840 65 72 2d 63 6f 6d 62 69 6e 61 74 6f 72 73 2d 69 6e 2d 65 6c 69 73 70 2e 68 74 6d 6c 0a 0a 0a 3b er-combinators-in-elisp.html...;
a860 3b 3b 20 4e 65 77 73 3a 0a 0a 3b 3b 20 20 20 2d 20 76 30 2e 39 2e 35 2c 20 32 30 32 34 2d 30 32 ;;.News:..;;...-.v0.9.5,.2024-02
a880 2d 30 31 3a 0a 3b 3b 20 20 20 20 20 2d 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 69 6d 70 72 -01:.;;.....-.documentation.impr
a8a0 6f 76 65 6d 65 6e 74 73 0a 3b 3b 20 20 20 2d 20 76 30 2e 39 2e 34 2c 20 32 30 32 34 2d 30 35 2d ovements.;;...-.v0.9.4,.2024-05-
a8c0 30 39 3a 0a 3b 3b 20 20 20 20 20 2d 20 61 64 64 20 63 6f 6d 70 61 74 20 64 65 70 65 6e 64 65 6e 09:.;;.....-.add.compat.dependen
a8e0 63 79 20 66 6f 72 20 64 65 66 76 61 72 2d 6b 65 79 6d 61 70 0a 3b 3b 20 20 20 2d 20 76 30 2e 39 cy.for.defvar-keymap.;;...-.v0.9
a900 2e 33 2c 20 32 30 32 34 2d 30 34 2d 33 30 3a 0a 3b 3b 20 20 20 20 20 2d 20 63 6f 64 65 20 73 69 .3,.2024-04-30:.;;.....-.code.si
a920 6d 70 6c 69 66 69 63 61 74 69 6f 6e 73 2c 20 63 68 65 63 6b 64 6f 63 20 66 69 78 65 73 2e 0a 3b mplifications,.checkdoc.fixes..;
a940 3b 20 20 20 2d 20 76 30 2e 39 2e 32 2c 20 32 30 32 33 2d 30 35 2d 31 32 3a 0a 3b 3b 20 20 20 20 ;...-.v0.9.2,.2023-05-12:.;;....
a960 20 2d 20 6e 61 6d 65 20 74 68 65 20 6b 65 79 6d 61 70 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 .-.name.the.keymap.macrostep-mod
a980 65 2d 6d 61 70 2c 20 66 69 78 69 6e 67 20 61 20 72 65 67 72 65 73 73 69 6f 6e 20 69 6e 20 76 30 e-map,.fixing.a.regression.in.v0
a9a0 2e 39 2e 31 0a 3b 3b 20 20 20 2d 20 76 30 2e 39 2e 31 2c 20 32 30 32 33 2d 30 33 2d 31 32 3a 0a .9.1.;;...-.v0.9.1,.2023-03-12:.
a9c0 3b 3b 20 20 20 20 20 2d 20 62 75 67 20 66 69 78 65 73 2c 20 63 6c 65 61 6e 75 70 20 61 6e 64 20 ;;.....-.bug.fixes,.cleanup.and.
a9e0 6d 6f 64 65 72 6e 69 7a 61 74 69 6f 6e 0a 3b 3b 20 20 20 2d 20 76 30 2e 39 2c 20 32 30 31 35 2d modernization.;;...-.v0.9,.2015-
aa00 31 30 2d 30 31 3a 0a 3b 3b 20 20 20 20 20 2d 20 73 65 70 61 72 61 74 65 20 69 6e 74 6f 20 45 6c 10-01:.;;.....-.separate.into.El
aa20 69 73 70 2d 73 70 65 63 69 66 69 63 20 61 6e 64 20 67 65 6e 65 72 69 63 20 63 6f 6d 70 6f 6e 65 isp-specific.and.generic.compone
aa40 6e 74 73 0a 3b 3b 20 20 20 20 20 2d 20 68 69 67 68 6c 69 67 68 74 20 61 6e 64 20 65 78 70 61 6e nts.;;.....-.highlight.and.expan
aa60 64 20 63 6f 6d 70 69 6c 65 72 20 6d 61 63 72 6f 73 0a 3b 3b 20 20 20 20 20 2d 20 69 6d 70 72 6f d.compiler.macros.;;.....-.impro
aa80 76 65 20 6c 6f 63 61 6c 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 20 61 6e 64 20 6d 61 63 ve.local.macro.expansion.and.mac
aaa0 72 6f 20 66 6f 72 6d 20 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 62 79 0a 3b 3b 20 20 20 20 ro.form.identification.by.;;....
aac0 20 20 20 69 6e 73 74 72 75 6d 65 6e 74 69 6e 67 20 60 6d 61 63 72 6f 65 78 70 61 6e 64 28 2d 61 ...instrumenting.`macroexpand(-a
aae0 6c 6c 29 27 0a 3b 3b 20 20 20 2d 20 76 30 2e 38 2c 20 32 30 31 34 2d 30 35 2d 32 39 3a 20 66 69 ll)'.;;...-.v0.8,.2014-05-29:.fi
ab00 78 20 61 20 62 75 67 20 77 69 74 68 20 70 72 69 6e 74 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 x.a.bug.with.printing.the.first.
ab20 65 6c 65 6d 65 6e 74 20 6f 66 20 6c 69 73 74 73 0a 3b 3b 20 20 20 2d 20 76 30 2e 37 2c 20 32 30 element.of.lists.;;...-.v0.7,.20
ab40 31 34 2d 30 35 2d 31 31 3a 20 65 78 70 61 6e 64 20 6c 6f 63 61 6c 6c 79 2d 64 65 66 69 6e 65 64 14-05-11:.expand.locally-defined
ab60 20 6d 61 63 72 6f 73 20 77 69 74 68 69 6e 0a 3b 3b 20 20 20 20 20 60 28 63 6c 2d 29 6d 61 63 72 .macros.within.;;.....`(cl-)macr
ab80 6f 6c 65 74 27 20 66 6f 72 6d 73 0a 3b 3b 20 20 20 2d 20 76 30 2e 36 2c 20 32 30 31 33 2d 30 35 olet'.forms.;;...-.v0.6,.2013-05
aba0 2d 30 34 3a 20 62 65 74 74 65 72 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 71 75 6f 74 65 20 61 6e -04:.better.handling.of.quote.an
abc0 64 20 62 61 63 6b 71 75 6f 74 65 0a 3b 3b 20 20 20 2d 20 76 30 2e 35 2c 20 32 30 31 33 2d 30 34 d.backquote.;;...-.v0.5,.2013-04
abe0 2d 31 36 3a 20 68 69 67 68 6c 69 67 68 74 20 72 65 67 69 6f 6e 2c 20 6d 61 69 6e 74 61 69 6e 20 -16:.highlight.region,.maintain.
ac00 63 6c 65 61 6e 65 72 20 62 75 66 66 65 72 20 73 74 61 74 65 0a 3b 3b 20 20 20 2d 20 76 30 2e 34 cleaner.buffer.state.;;...-.v0.4
ac20 2c 20 32 30 31 33 2d 30 34 2d 30 37 3a 20 6f 6e 6c 79 20 65 6e 74 65 72 20 6d 61 63 72 6f 73 74 ,.2013-04-07:.only.enter.macrost
ac40 65 70 2d 6d 6f 64 65 20 6f 6e 20 73 75 63 63 65 73 73 66 75 6c 0a 3b 3b 20 20 20 20 20 6d 61 63 ep-mode.on.successful.;;.....mac
ac60 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 0a 3b 3b 20 20 20 2d 20 76 30 2e 33 2c 20 32 30 31 32 2d 31 ro-expansion.;;...-.v0.3,.2012-1
ac80 30 2d 33 30 3a 20 70 72 69 6e 74 20 64 6f 74 74 65 64 20 6c 69 73 74 73 20 63 6f 72 72 65 63 74 0-30:.print.dotted.lists.correct
aca0 6c 79 2e 20 20 61 75 74 6f 6c 6f 61 64 0a 3b 3b 20 20 20 20 20 64 65 66 69 6e 69 74 69 6f 6e 73 ly...autoload.;;.....definitions
acc0 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6f 6d 70 61 74 29 0a ...;;;.Code:..(require.'compat).
ace0 0a 28 72 65 71 75 69 72 65 20 27 70 70 29 0a 28 72 65 71 75 69 72 65 20 27 72 69 6e 67 29 0a 28 .(require.'pp).(require.'ring).(
ad00 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 0c 0a 3b 3b 3b 20 43 6f 6e 73 74 61 6e 74 require.'cl-lib)....;;;.Constant
ad20 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 62 6f 75 6e 64 20 76 61 72 69 61 62 6c 65 s.and.dynamically.bound.variable
ad40 73 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6d 61 63 72 6f 73 74 65 70 2d 6f 76 65 72 6c 61 s.(defvar-local.macrostep-overla
ad60 79 73 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 6c 6c 20 6d 61 63 72 6f 20 73 74 65 70 ys.nil..."List.of.all.macro.step
ad80 70 65 72 20 6f 76 65 72 6c 61 79 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 per.overlays.in.the.current.buff
ada0 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6d 61 63 72 6f 73 74 65 70 2d 67 er.")..(defvar-local.macrostep-g
adc0 65 6e 73 79 6d 2d 64 65 70 74 68 20 6e 69 6c 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 6d 61 63 ensym-depth.nil..."Number.of.mac
ade0 72 6f 20 65 78 70 61 6e 73 69 6f 6e 20 6c 65 76 65 6c 73 20 74 68 61 74 20 68 61 76 65 20 69 6e ro.expansion.levels.that.have.in
ae00 74 72 6f 64 75 63 65 64 20 67 65 6e 73 79 6d 73 20 73 6f 20 66 61 72 2e 22 29 0a 0a 28 64 65 66 troduced.gensyms.so.far.")..(def
ae20 76 61 72 2d 6c 6f 63 61 6c 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 73 2d 74 68 69 73 var-local.macrostep-gensyms-this
ae40 2d 6c 65 76 65 6c 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 67 65 6e 73 79 6d 73 -level.nil..."Non-nil.if.gensyms
ae60 20 77 65 72 65 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 64 75 72 69 6e 67 20 63 75 72 72 65 6e 74 .were.encountered.during.current
ae80 20 6c 65 76 65 6c 20 6f 66 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 22 29 0a 0a 28 64 .level.of.macro.expansion.")..(d
aea0 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6d 61 63 72 6f 73 74 65 70 2d 73 61 76 65 64 2d 75 6e 64 6f efvar-local.macrostep-saved-undo
aec0 2d 6c 69 73 74 20 6e 69 6c 0a 20 20 22 53 61 76 65 64 20 76 61 6c 75 65 20 6f 66 20 60 62 75 66 -list.nil..."Saved.value.of.`buf
aee0 66 65 72 2d 75 6e 64 6f 2d 6c 69 73 74 27 20 75 70 6f 6e 20 65 6e 74 65 72 69 6e 67 20 6d 61 63 fer-undo-list'.upon.entering.mac
af00 72 6f 73 74 65 70 20 6d 6f 64 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6d 61 rostep.mode.")..(defvar-local.ma
af20 63 72 6f 73 74 65 70 2d 73 61 76 65 64 2d 72 65 61 64 2d 6f 6e 6c 79 20 6e 69 6c 0a 20 20 22 53 crostep-saved-read-only.nil..."S
af40 61 76 65 64 20 76 61 6c 75 65 20 6f 66 20 60 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 27 aved.value.of.`buffer-read-only'
af60 20 75 70 6f 6e 20 65 6e 74 65 72 69 6e 67 20 6d 61 63 72 6f 73 74 65 70 20 6d 6f 64 65 2e 22 29 .upon.entering.macrostep.mode.")
af80 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 73 ..(defvar-local.macrostep-expans
afa0 69 6f 6e 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 ion-buffer.nil..."Non-nil.if.the
afc0 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 61 20 6d 61 63 72 6f 2d 65 78 70 61 6e .current.buffer.is.a.macro-expan
afe0 73 69 6f 6e 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6d 61 sion.buffer.")..(defvar-local.ma
b000 63 72 6f 73 74 65 70 2d 6f 75 74 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6e 69 6c 0a 20 20 crostep-outer-environment.nil...
b020 22 4f 75 74 65 72 6d 6f 73 74 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 20 65 6e 76 69 72 "Outermost.macro-expansion.envir
b040 6f 6e 6d 65 6e 74 20 74 6f 20 75 73 65 20 69 6e 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e onment.to.use.in.macro-expansion
b060 20 62 75 66 66 65 72 73 2e 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 75 73 65 64 .buffers...This.variable.is.used
b080 20 74 6f 20 73 61 76 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 6e 79 20 65 .to.save.information.about.any.e
b0a0 6e 63 6c 6f 73 69 6e 67 0a 60 63 6c 2d 6d 61 63 72 6f 6c 65 74 27 20 63 6f 6e 74 65 78 74 20 77 nclosing.`cl-macrolet'.context.w
b0c0 68 65 6e 20 61 20 6d 61 63 72 6f 20 66 6f 72 6d 20 69 73 20 65 78 70 61 6e 64 65 64 20 69 6e 20 hen.a.macro.form.is.expanded.in.
b0e0 61 20 73 65 70 61 72 61 74 65 0a 62 75 66 66 65 72 2e 22 29 0a 0a 3b 3b 3b 20 43 75 73 74 6f 6d a.separate.buffer.")..;;;.Custom
b100 69 7a 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 66 61 63 65 73 0a 28 64 65 66 67 72 ization.options.and.faces.(defgr
b120 6f 75 70 20 6d 61 63 72 6f 73 74 65 70 20 6e 69 6c 0a 20 20 22 49 6e 74 65 72 61 63 74 69 76 65 oup.macrostep.nil..."Interactive
b140 20 6d 61 63 72 6f 20 73 74 65 70 70 65 72 20 66 6f 72 20 45 6d 61 63 73 20 4c 69 73 70 2e 22 0a .macro.stepper.for.Emacs.Lisp.".
b160 20 20 3a 67 72 6f 75 70 20 27 6c 69 73 70 0a 20 20 3a 6c 69 6e 6b 20 27 28 65 6d 61 63 73 2d 63 ..:group.'lisp...:link.'(emacs-c
b180 6f 6d 6d 65 6e 74 61 72 79 2d 6c 69 6e 6b 20 3a 74 61 67 20 22 63 6f 6d 6d 65 6e 74 61 72 79 22 ommentary-link.:tag."commentary"
b1a0 20 22 6d 61 63 72 6f 73 74 65 70 2e 65 6c 22 29 0a 20 20 3a 6c 69 6e 6b 20 27 28 65 6d 61 63 73 ."macrostep.el")...:link.'(emacs
b1c0 2d 6c 69 62 72 61 72 79 2d 6c 69 6e 6b 20 3a 74 61 67 20 22 6c 69 73 70 20 66 69 6c 65 22 20 22 -library-link.:tag."lisp.file"."
b1e0 6d 61 63 72 6f 73 74 65 70 2e 65 6c 22 29 0a 20 20 3a 6c 69 6e 6b 20 27 28 75 72 6c 2d 6c 69 6e macrostep.el")...:link.'(url-lin
b200 6b 20 3a 74 61 67 20 22 77 65 62 20 70 61 67 65 22 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 k.:tag."web.page"."https://githu
b220 62 2e 63 6f 6d 2f 65 6d 61 63 73 6f 72 70 68 61 6e 61 67 65 2f 6d 61 63 72 6f 73 74 65 70 22 29 b.com/emacsorphanage/macrostep")
b240 29 0a 0a 28 64 65 66 66 61 63 65 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 31 0a 20 )..(defface.macrostep-gensym-1..
b260 20 27 28 28 28 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 31 36 35 38 31 33 37 35 29 29 20 3a 66 6f 72 .'((((min-colors.16581375)).:for
b280 65 67 72 6f 75 6e 64 20 22 23 38 30 38 30 63 30 22 20 3a 62 6f 78 20 74 20 3a 62 6f 6c 64 20 74 eground."#8080c0".:box.t.:bold.t
b2a0 29 0a 20 20 20 20 28 28 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 29 20 3a 62 61 63 6b 67 72 6f ).....(((min-colors.8)).:backgro
b2c0 75 6e 64 20 22 63 79 61 6e 22 29 0a 20 20 20 20 28 74 20 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 und."cyan").....(t.:inverse-vide
b2e0 6f 20 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 67 65 6e 73 79 6d 73 20 63 72 65 61 74 65 o.t))..."Face.for.gensyms.create
b300 64 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 6c 65 76 65 6c 20 6f 66 20 6d 61 63 72 6f 20 65 78 d.in.the.first.level.of.macro.ex
b320 70 61 6e 73 69 6f 6e 2e 22 0a 20 20 3a 76 65 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 pansion."...:version."1.0")..(de
b340 66 66 61 63 65 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 32 0a 20 20 27 28 28 28 28 fface.macrostep-gensym-2...'((((
b360 6d 69 6e 2d 63 6f 6c 6f 72 73 20 31 36 35 38 31 33 37 35 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e min-colors.16581375)).:foregroun
b380 64 20 22 23 38 66 62 63 38 66 22 20 3a 62 6f 78 20 74 20 3a 62 6f 6c 64 20 74 29 0a 20 20 20 20 d."#8fbc8f".:box.t.:bold.t).....
b3a0 28 28 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 29 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 (((min-colors.8)).:background."#
b3c0 30 30 63 64 30 30 22 29 0a 20 20 20 20 28 74 20 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 6f 20 74 00cd00").....(t.:inverse-video.t
b3e0 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 67 65 6e 73 79 6d 73 20 63 72 65 61 74 65 64 20 69 ))..."Face.for.gensyms.created.i
b400 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 6c 65 76 65 6c 20 6f 66 20 6d 61 63 72 6f 20 65 78 70 61 n.the.second.level.of.macro.expa
b420 6e 73 69 6f 6e 2e 22 0a 20 20 3a 76 65 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 66 nsion."...:version."1.0")..(deff
b440 61 63 65 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 33 0a 20 20 27 28 28 28 28 6d 69 ace.macrostep-gensym-3...'((((mi
b460 6e 2d 63 6f 6c 6f 72 73 20 31 36 35 38 31 33 37 35 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 n-colors.16581375)).:foreground.
b480 22 23 64 61 61 35 32 30 22 20 3a 62 6f 78 20 74 20 3a 62 6f 6c 64 20 74 29 0a 20 20 20 20 28 28 "#daa520".:box.t.:bold.t).....((
b4a0 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 29 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 79 65 6c (min-colors.8)).:background."yel
b4c0 6c 6f 77 22 29 0a 20 20 20 20 28 74 20 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 6f 20 74 29 29 0a low").....(t.:inverse-video.t)).
b4e0 20 20 22 46 61 63 65 20 66 6f 72 20 67 65 6e 73 79 6d 73 20 63 72 65 61 74 65 64 20 69 6e 20 74 .."Face.for.gensyms.created.in.t
b500 68 65 20 74 68 69 72 64 20 6c 65 76 65 6c 20 6f 66 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f he.third.level.of.macro.expansio
b520 6e 2e 22 0a 20 20 3a 76 65 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 66 61 63 65 20 n."...:version."1.0")..(defface.
b540 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 34 0a 20 20 27 28 28 28 28 6d 69 6e 2d 63 6f macrostep-gensym-4...'((((min-co
b560 6c 6f 72 73 20 31 36 35 38 31 33 37 35 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 63 64 lors.16581375)).:foreground."#cd
b580 35 63 35 63 22 20 3a 62 6f 78 20 74 20 3a 62 6f 6c 64 20 74 29 0a 20 20 20 20 28 28 28 6d 69 6e 5c5c".:box.t.:bold.t).....(((min
b5a0 2d 63 6f 6c 6f 72 73 20 38 29 29 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 72 65 64 22 29 0a 20 -colors.8)).:background."red")..
b5c0 20 20 20 28 74 20 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 6f 20 74 29 29 0a 20 20 22 46 61 63 65 ...(t.:inverse-video.t))..."Face
b5e0 20 66 6f 72 20 67 65 6e 73 79 6d 73 20 63 72 65 61 74 65 64 20 69 6e 20 74 68 65 20 66 6f 75 72 .for.gensyms.created.in.the.four
b600 74 68 20 6c 65 76 65 6c 20 6f 66 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 22 0a 20 20 th.level.of.macro.expansion."...
b620 3a 76 65 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 66 61 63 65 20 6d 61 63 72 6f 73 :version."1.0")..(defface.macros
b640 74 65 70 2d 67 65 6e 73 79 6d 2d 35 0a 20 20 27 28 28 28 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 31 tep-gensym-5...'((((min-colors.1
b660 36 35 38 31 33 37 35 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 64 61 37 30 64 36 22 20 6581375)).:foreground."#da70d6".
b680 3a 62 6f 78 20 74 20 3a 62 6f 6c 64 20 74 29 0a 20 20 20 20 28 28 28 6d 69 6e 2d 63 6f 6c 6f 72 :box.t.:bold.t).....(((min-color
b6a0 73 20 38 29 29 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 6d 61 67 65 6e 74 61 22 29 0a 20 20 20 s.8)).:background."magenta")....
b6c0 20 28 74 20 3a 69 6e 76 65 72 73 65 2d 76 69 64 65 6f 20 74 29 29 0a 20 20 22 46 61 63 65 20 66 .(t.:inverse-video.t))..."Face.f
b6e0 6f 72 20 67 65 6e 73 79 6d 73 20 63 72 65 61 74 65 64 20 69 6e 20 74 68 65 20 66 69 66 74 68 20 or.gensyms.created.in.the.fifth.
b700 6c 65 76 65 6c 20 6f 66 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 22 0a 20 20 3a 76 65 level.of.macro.expansion."...:ve
b720 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 66 61 63 65 20 6d 61 63 72 6f 73 74 65 70 rsion."1.0")..(defface.macrostep
b740 2d 65 78 70 61 6e 73 69 6f 6e 2d 68 69 67 68 6c 69 67 68 74 2d 66 61 63 65 0a 20 20 60 28 28 28 -expansion-highlight-face...`(((
b760 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 31 36 35 38 31 33 37 35 29 20 28 62 61 63 6b 67 72 6f 75 6e (min-colors.16581375).(backgroun
b780 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 20 2c 40 28 61 6e 64 20 28 3e 3d 20 65 6d 61 63 73 2d d.light))......,@(and.(>=.emacs-
b7a0 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 37 29 20 27 28 3a 65 78 74 65 6e 64 20 74 29 29 0a major-version.27).'(:extend.t)).
b7c0 20 20 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 65 65 65 38 64 35 22 29 0a 20 20 20 20 .....:background."#eee8d5").....
b7e0 28 28 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 31 36 35 38 31 33 37 35 29 20 28 62 61 63 6b 67 72 6f (((min-colors.16581375).(backgro
b800 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20 2c 40 28 61 6e 64 20 28 3e 3d 20 65 6d 61 63 73 und.dark))......,@(and.(>=.emacs
b820 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 37 29 20 27 28 3a 65 78 74 65 6e 64 20 74 29 29 -major-version.27).'(:extend.t))
b840 0a 20 20 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 32 32 32 32 32 32 22 29 29 0a 20 20 ......:background."#222222"))...
b860 22 46 61 63 65 20 66 6f 72 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 20 68 69 67 68 6c 69 "Face.for.macro-expansion.highli
b880 67 68 74 2e 22 0a 20 20 3a 76 65 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 66 61 63 ght."...:version."1.0")..(deffac
b8a0 65 20 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 61 63 65 0a 20 20 27 28 28 74 20 3a 75 e.macrostep-macro-face...'((t.:u
b8c0 6e 64 65 72 6c 69 6e 65 20 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 6d 61 63 72 6f 73 20 nderline.t))..."Face.for.macros.
b8e0 69 6e 20 6d 61 63 72 6f 2d 65 78 70 61 6e 64 65 64 20 63 6f 64 65 2e 22 0a 20 20 3a 76 65 72 73 in.macro-expanded.code."...:vers
b900 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 66 61 63 65 20 6d 61 63 72 6f 73 74 65 70 2d 63 ion."1.0")..(defface.macrostep-c
b920 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 61 63 65 0a 20 20 27 28 28 74 20 3a 73 6c 61 6e 74 ompiler-macro-face...'((t.:slant
b940 20 69 74 61 6c 69 63 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 63 6f 6d 70 69 6c 65 72 20 6d .italic))..."Face.for.compiler.m
b960 61 63 72 6f 73 20 69 6e 20 6d 61 63 72 6f 2d 65 78 70 61 6e 64 65 64 20 63 6f 64 65 2e 22 0a 20 acros.in.macro-expanded.code."..
b980 20 3a 76 65 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6d 61 63 .:version."1.0")..(defcustom.mac
b9a0 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 69 6e 2d 73 65 70 61 72 61 74 65 2d 62 75 66 66 65 72 rostep-expand-in-separate-buffer
b9c0 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 68 6f 77 20 65 78 70 61 6e .nil..."When.non-nil,.show.expan
b9e0 73 69 6f 6e 73 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 20 62 75 66 66 65 72 20 69 6e 73 74 65 sions.in.a.separate.buffer.inste
ba00 61 64 20 6f 66 20 69 6e 6c 69 6e 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a ad.of.inline."...:type.'boolean.
ba20 20 20 3a 76 65 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6d 61 ..:version."1.0")..(defcustom.ma
ba40 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 73 20 74 crostep-expand-compiler-macros.t
ba60 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 6c 73 6f 20 65 78 70 61 6e 64 20 63 6f ..."When.non-nil,.also.expand.co
ba80 6d 70 69 6c 65 72 20 6d 61 63 72 6f 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e mpiler.macros."...:type.'boolean
baa0 0a 20 20 3a 76 65 72 73 69 6f 6e 20 22 31 2e 30 22 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 63 72 ...:version."1.0")..(defvar.macr
bac0 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 66 61 63 65 73 0a 20 20 28 72 69 6e 67 2d 63 6f 6e 76 65 ostep-gensym-faces...(ring-conve
bae0 72 74 2d 73 65 71 75 65 6e 63 65 2d 74 6f 2d 72 69 6e 67 0a 20 20 20 28 6c 69 73 74 20 27 6d 61 rt-sequence-to-ring....(list.'ma
bb00 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 31 20 27 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 crostep-gensym-1.'macrostep-gens
bb20 79 6d 2d 32 20 27 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 33 0a 09 20 27 6d 61 63 72 ym-2.'macrostep-gensym-3...'macr
bb40 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 34 20 27 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d ostep-gensym-4.'macrostep-gensym
bb60 2d 35 29 29 0a 20 20 22 52 69 6e 67 20 6f 66 20 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 70 65 72 -5))..."Ring.of.all.macrostepper
bb80 20 66 61 63 65 73 20 66 6f 72 20 66 6f 6e 74 69 66 79 69 6e 67 20 67 65 6e 73 79 6d 73 2e 22 29 .faces.for.fontifying.gensyms.")
bba0 0a 0a 3b 3b 20 4f 74 68 65 72 20 6d 6f 64 65 73 20 63 61 6e 20 65 6e 61 62 6c 65 20 6d 61 63 72 ..;;.Other.modes.can.enable.macr
bbc0 6f 73 74 65 70 20 62 79 20 72 65 64 65 66 69 6e 69 6e 67 20 74 68 65 73 65 20 66 75 6e 63 74 69 ostep.by.redefining.these.functi
bbe0 6f 6e 73 20 74 6f 0a 3b 3b 20 6c 61 6e 67 75 61 67 65 2d 73 70 65 63 69 66 69 63 20 76 65 72 73 ons.to.;;.language-specific.vers
bc00 69 6f 6e 73 2e 0a 28 64 65 66 76 61 72 20 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 ions..(defvar.macrostep-sexp-bou
bc20 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d nds-function...#'macrostep-sexp-
bc40 62 6f 75 6e 64 73 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 bounds..."Function.to.return.the
bc60 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 65 20 6d 61 63 72 6f 20 66 6f 72 6d 20 6e 65 61 72 65 73 .bounds.of.the.macro.form.neares
bc80 74 20 70 6f 69 6e 74 2e 0a 0a 49 74 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 t.point...It.will.be.called.with
bca0 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 .no.arguments.and.should.return.
bcc0 61 20 63 6f 6e 73 20 6f 66 0a 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 73 2c 20 28 53 54 41 a.cons.of.buffer.positions,.(STA
bce0 52 54 20 2e 20 45 4e 44 29 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 75 73 65 20 60 73 61 76 65 2d RT...END)...It.should.use.`save-
bd00 65 78 63 75 72 73 69 6f 6e 27 0a 74 6f 20 61 76 6f 69 64 20 63 68 61 6e 67 69 6e 67 20 74 68 65 excursion'.to.avoid.changing.the
bd20 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 70 6f 69 6e 74 2e 0a 0a 54 68 65 20 64 65 66 61 75 6c 74 .position.of.point...The.default
bd40 20 76 61 6c 75 65 2c 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 27 2c .value,.`macrostep-sexp-bounds',
bd60 20 69 6d 70 6c 65 6d 65 6e 74 73 20 74 68 69 73 20 66 6f 72 0a 45 6d 61 63 73 20 4c 69 73 70 2c .implements.this.for.Emacs.Lisp,
bd80 20 61 6e 64 20 6d 61 79 20 62 65 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 6f 74 68 65 72 20 4c .and.may.be.suitable.for.other.L
bda0 69 73 70 2d 6c 69 6b 65 20 6c 61 6e 67 75 61 67 65 73 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 69 isp-like.languages.").(make-vari
bdc0 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 able-buffer-local.'macrostep-sex
bde0 70 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 63 72 p-bounds-function)..(defvar.macr
be00 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 ostep-sexp-at-point-function...#
be20 27 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 0a 20 20 22 46 75 6e 63 'macrostep-sexp-at-point..."Func
be40 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 6d 61 63 72 6f 20 66 6f 72 6d 20 61 74 tion.to.return.the.macro.form.at
be60 20 70 6f 69 6e 74 20 66 6f 72 20 65 78 70 61 6e 73 69 6f 6e 2e 0a 0a 49 74 20 77 69 6c 6c 20 62 .point.for.expansion...It.will.b
be80 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 74 68 65 e.called.with.two.arguments,.the
bea0 20 76 61 6c 75 65 73 20 6f 66 20 53 54 41 52 54 20 61 6e 64 20 45 4e 44 0a 72 65 74 75 72 6e 65 .values.of.START.and.END.returne
bec0 64 20 62 79 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 d.by.`macrostep-sexp-bounds-func
bee0 74 69 6f 6e 27 2c 20 61 6e 64 20 77 69 74 68 20 70 6f 69 6e 74 0a 70 6f 73 69 74 69 6f 6e 65 64 tion',.and.with.point.positioned
bf00 20 61 74 20 53 54 41 52 54 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 20 76 .at.START...It.should.return.a.v
bf20 61 6c 75 65 20 73 75 69 74 61 62 6c 65 20 66 6f 72 0a 70 61 73 73 69 6e 67 20 61 73 20 74 68 65 alue.suitable.for.passing.as.the
bf40 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 .first.argument.to.`macrostep-ex
bf60 70 61 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 27 2e 0a 0a 54 68 65 20 64 65 66 61 75 6c 74 20 76 pand-1-function'...The.default.v
bf80 61 6c 75 65 2c 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 27 2c alue,.`macrostep-sexp-at-point',
bfa0 20 69 6d 70 6c 65 6d 65 6e 74 73 20 74 68 69 73 20 66 6f 72 0a 45 6d 61 63 73 20 4c 69 73 70 2c .implements.this.for.Emacs.Lisp,
bfc0 20 61 6e 64 20 6d 61 79 20 62 65 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 6f 74 68 65 72 20 4c .and.may.be.suitable.for.other.L
bfe0 69 73 70 2d 6c 69 6b 65 20 6c 61 6e 67 75 61 67 65 73 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 69 isp-like.languages.").(make-vari
c000 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 able-buffer-local.'macrostep-sex
c020 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 p-at-point-function)..(defvar.ma
c040 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e crostep-environment-at-point-fun
c060 63 74 69 6f 6e 0a 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d ction...#'macrostep-environment-
c080 61 74 2d 70 6f 69 6e 74 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20 74 at-point..."Function.to.return.t
c0a0 68 65 20 6c 6f 63 61 6c 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 20 65 6e 76 69 72 6f 6e he.local.macro-expansion.environ
c0c0 6d 65 6e 74 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 49 74 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 ment.at.point...It.will.be.calle
c0e0 64 20 77 69 74 68 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 61 6e 64 20 73 68 6f 75 6c 64 20 d.with.no.arguments,.and.should.
c100 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 0a 73 75 69 74 61 62 6c 65 20 66 6f 72 20 70 61 73 73 return.a.value.suitable.for.pass
c120 69 6e 67 20 61 73 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 74 6f 0a 60 6d ing.as.the.second.argument.to.`m
c140 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 27 2e 0a 0a 54 68 acrostep-expand-1-function'...Th
c160 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2c 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 e.default.value,.`macrostep-envi
c180 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 27 2c 20 69 73 20 73 70 65 63 69 66 69 63 0a 74 ronment-at-point',.is.specific.t
c1a0 6f 20 45 6d 61 63 73 20 4c 69 73 70 2e 20 20 46 6f 72 20 6c 61 6e 67 75 61 67 65 73 20 77 68 69 o.Emacs.Lisp...For.languages.whi
c1c0 63 68 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 20 6c 6f 63 61 6c 0a 6d 61 63 72 6f 2d ch.do.not.implement.local.macro-
c1e0 65 78 70 61 6e 73 69 6f 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 2c 20 74 68 69 73 20 73 68 6f expansion.environments,.this.sho
c200 75 6c 64 20 62 65 20 73 65 74 20 74 6f 20 60 69 67 6e 6f 72 65 27 0a 6f 72 20 60 28 6c 61 6d 62 uld.be.set.to.`ignore'.or.`(lamb
c220 64 61 20 28 29 20 6e 69 6c 29 27 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 da.().nil)'.").(make-variable-bu
c240 66 66 65 72 2d 6c 6f 63 61 6c 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e ffer-local.'macrostep-environmen
c260 74 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 t-at-point-function)..(defvar.ma
c280 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 6d 61 crostep-expand-1-function...#'ma
c2a0 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 31 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 crostep-expand-1..."Function.to.
c2c0 70 65 72 66 6f 72 6d 20 6f 6e 65 20 73 74 65 70 20 6f 66 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 perform.one.step.of.macro-expans
c2e0 69 6f 6e 2e 0a 0a 49 74 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f ion...It.will.be.called.with.two
c300 20 61 72 67 75 6d 65 6e 74 73 2c 20 46 4f 52 4d 20 61 6e 64 20 45 4e 56 49 52 4f 4e 4d 45 4e 54 .arguments,.FORM.and.ENVIRONMENT
c320 2c 20 74 68 65 0a 72 65 74 75 72 6e 20 76 61 6c 75 65 73 20 6f 66 20 60 6d 61 63 72 6f 73 74 65 ,.the.return.values.of.`macroste
c340 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 20 61 6e 64 0a 60 6d p-sexp-at-point-function'.and.`m
c360 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 acrostep-environment-at-point-fu
c380 6e 63 74 69 6f 6e 27 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 20 49 74 0a 73 68 6f 75 6c 64 nction'.respectively...It.should
c3a0 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 65 78 70 61 6e 64 69 6e 67 20 .return.the.result.of.expanding.
c3c0 46 4f 52 4d 20 62 79 20 6f 6e 65 20 73 74 65 70 20 61 73 20 61 20 76 61 6c 75 65 0a 77 68 69 63 FORM.by.one.step.as.a.value.whic
c3e0 68 20 69 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 70 61 73 73 69 6e 67 20 61 73 20 74 68 65 h.is.suitable.for.passing.as.the
c400 20 61 72 67 75 6d 65 6e 74 20 74 6f 0a 60 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 66 75 .argument.to.`macrostep-print-fu
c420 6e 63 74 69 6f 6e 27 2e 0a 0a 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2c 20 60 6d 61 nction'...The.default.value,.`ma
c440 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 31 27 2c 20 69 73 20 73 70 65 63 69 66 69 63 20 74 crostep-expand-1',.is.specific.t
c460 6f 20 45 6d 61 63 73 20 4c 69 73 70 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 o.Emacs.Lisp.").(make-variable-b
c480 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 31 2d uffer-local.'macrostep-expand-1-
c4a0 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 function)..(defvar.macrostep-pri
c4c0 6e 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 70 70 0a 20 20 22 nt-function...#'macrostep-pp..."
c4e0 46 75 6e 63 74 69 6f 6e 20 74 6f 20 70 72 65 74 74 79 2d 70 72 69 6e 74 20 6d 61 63 72 6f 20 65 Function.to.pretty-print.macro.e
c500 78 70 61 6e 73 69 6f 6e 73 2e 0a 0a 49 74 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 69 xpansions...It.will.be.called.wi
c520 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 46 4f 52 4d 20 61 6e 64 20 45 4e 56 49 52 th.two.arguments,.FORM.and.ENVIR
c540 4f 4e 4d 45 4e 54 2c 20 74 68 65 0a 72 65 74 75 72 6e 20 76 61 6c 75 65 73 20 6f 66 20 60 6d 61 ONMENT,.the.return.values.of.`ma
c560 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 20 crostep-sexp-at-point-function'.
c580 61 6e 64 0a 60 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f and.`macrostep-environment-at-po
c5a0 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 20 49 74 0a int-function'.respectively...It.
c5c0 73 68 6f 75 6c 64 20 69 6e 73 65 72 74 20 61 20 70 72 65 74 74 79 2d 70 72 69 6e 74 65 64 20 72 should.insert.a.pretty-printed.r
c5e0 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 61 74 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 0a 63 75 epresentation.at.point.in.the.cu
c600 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 6c 65 61 76 69 6e 67 20 70 6f 69 6e 74 20 6a 75 73 74 rrent.buffer,.leaving.point.just
c620 20 61 66 74 65 72 20 74 68 65 20 69 6e 73 65 72 74 65 64 0a 72 65 70 72 65 73 65 6e 74 61 74 69 .after.the.inserted.representati
c640 6f 6e 2c 20 77 69 74 68 6f 75 74 20 61 6c 74 65 72 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 74 on,.without.altering.any.other.t
c660 65 78 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 2e 0a 0a 54 68 65 20 ext.in.the.current.buffer...The.
c680 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2c 20 60 6d 61 63 72 6f 73 74 65 70 2d 70 70 27 2c 20 69 default.value,.`macrostep-pp',.i
c6a0 73 20 73 70 65 63 69 66 69 63 20 74 6f 20 45 6d 61 63 73 20 4c 69 73 70 2e 22 29 0a 28 6d 61 6b s.specific.to.Emacs.Lisp.").(mak
c6c0 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 6d 61 63 72 6f 73 74 e-variable-buffer-local.'macrost
c6e0 65 70 2d 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 63 72 ep-print-function)..(defvar.macr
c700 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 ostep-macro-form-p-function...#'
c720 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 70 0a 20 20 22 46 75 6e 63 74 69 macrostep-macro-form-p..."Functi
c740 6f 6e 20 74 6f 20 63 68 65 63 6b 20 77 68 65 74 68 65 72 20 61 20 66 6f 72 6d 20 69 73 20 61 20 on.to.check.whether.a.form.is.a.
c760 6d 61 63 72 6f 20 63 61 6c 6c 2e 0a 0a 49 74 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 macro.call...It.will.be.called.w
c780 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 46 4f 52 4d 20 61 6e 64 20 45 4e 56 49 ith.two.arguments,.FORM.and.ENVI
c7a0 52 4f 4e 4d 45 4e 54 20 2d 2d 20 74 68 65 0a 72 65 74 75 72 6e 20 76 61 6c 75 65 73 20 6f 66 20 RONMENT.--.the.return.values.of.
c7c0 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f `macrostep-sexp-at-point-functio
c7e0 6e 27 20 61 6e 64 0a 60 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 n'.and.`macrostep-environment-at
c800 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 27 20 72 65 73 70 65 63 74 69 76 65 6c 79 20 2d 2d -point-function'.respectively.--
c820 20 61 6e 64 0a 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 46 4f .and.should.return.non-nil.if.FO
c840 52 4d 20 77 6f 75 6c 64 20 75 6e 64 65 72 67 6f 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e RM.would.undergo.macro-expansion
c860 20 69 6e 0a 45 4e 56 49 52 4f 4e 4d 45 4e 54 2e 0a 0a 54 68 69 73 20 69 73 20 63 61 6c 6c 65 64 .in.ENVIRONMENT...This.is.called
c880 20 6f 6e 6c 79 20 66 72 6f 6d 20 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 .only.from.`macrostep-sexp-bound
c8a0 73 27 2c 20 73 6f 20 69 74 20 6e 65 65 64 20 6e 6f 74 0a 62 65 20 70 72 6f 76 69 64 65 64 20 69 s',.so.it.need.not.be.provided.i
c8c0 66 20 61 20 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 20 69 73 20 75 73 65 64 20 66 6f 72 0a f.a.different.value.is.used.for.
c8e0 60 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 27 `macrostep-sexp-bounds-function'
c900 2e 0a 0a 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2c 20 60 6d 61 63 72 6f 73 74 65 70 ...The.default.value,.`macrostep
c920 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 70 27 2c 20 69 73 20 73 70 65 63 69 66 69 63 20 74 6f 20 45 -macro-form-p',.is.specific.to.E
c940 6d 61 63 73 20 4c 69 73 70 2e 22 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 macs.Lisp.").(make-variable-buff
c960 65 72 2d 6c 6f 63 61 6c 20 27 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 70 er-local.'macrostep-macro-form-p
c980 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 0c 0a 3b 3b 3b 20 44 65 66 69 6e 65 20 6b 65 79 6d 61 70 20 -function)....;;;.Define.keymap.
c9a0 61 6e 64 20 6d 69 6e 6f 72 20 6d 6f 64 65 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d and.minor.mode.(define-obsolete-
c9c0 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 20 27 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 2d 6b variable-alias.'macrostep-mode-k
c9e0 65 79 6d 61 70 20 27 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 2d 6d 61 70 20 22 32 30 32 33 22 eymap.'macrostep-mode-map."2023"
ca00 29 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 ).(define-obsolete-variable-alia
ca20 73 20 27 6d 61 63 72 6f 73 74 65 70 2d 6b 65 79 6d 61 70 20 27 6d 61 63 72 6f 73 74 65 70 2d 6d s.'macrostep-keymap.'macrostep-m
ca40 6f 64 65 2d 6d 61 70 20 22 32 30 32 32 22 29 0a 28 64 65 66 76 61 72 2d 6b 65 79 6d 61 70 20 6d ode-map."2022").(defvar-keymap.m
ca60 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 3a 64 6f 63 20 22 4b 65 79 6d 61 70 acrostep-mode-map...:doc."Keymap
ca80 20 66 6f 72 20 60 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 27 2e 22 0a 20 20 22 52 45 54 22 20 .for.`macrostep-mode'."..."RET".
caa0 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 0a 20 20 22 3d 22 20 20 20 20 ....#'macrostep-expand..."="....
cac0 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 0a 20 20 22 65 22 20 20 20 20 20 ...#'macrostep-expand..."e".....
cae0 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 0a 0a 20 20 22 44 45 4c 22 20 20 20 ..#'macrostep-expand...."DEL"...
cb00 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 0a 20 20 22 75 22 20 20 20 20 ..#'macrostep-collapse..."u"....
cb20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 0a 20 20 22 63 22 20 20 20 ...#'macrostep-collapse..."c"...
cb40 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 0a 0a 20 20 22 54 41 42 ....#'macrostep-collapse...."TAB
cb60 22 20 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 6e 65 78 74 2d 6d 61 63 72 6f 0a 20 20 22 ".....#'macrostep-next-macro..."
cb80 6e 22 20 20 20 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 6e 65 78 74 2d 6d 61 63 72 6f 0a n".......#'macrostep-next-macro.
cba0 20 20 22 4d 2d 54 41 42 22 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 70 72 65 76 2d 6d 61 63 .."M-TAB"...#'macrostep-prev-mac
cbc0 72 6f 0a 20 20 22 70 22 20 20 20 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 70 72 65 76 2d ro..."p".......#'macrostep-prev-
cbe0 6d 61 63 72 6f 0a 20 20 0a 20 20 22 71 22 20 20 20 20 20 20 20 23 27 6d 61 63 72 6f 73 74 65 70 macro......"q".......#'macrostep
cc00 2d 63 6f 6c 6c 61 70 73 65 2d 61 6c 6c 0a 20 20 22 43 2d 63 20 43 2d 63 22 20 23 27 6d 61 63 72 -collapse-all..."C-c.C-c".#'macr
cc20 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 2d 61 6c 6c 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c ostep-collapse-all)..;;;###autol
cc40 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 6d 61 63 72 6f 73 74 65 70 oad.(define-minor-mode.macrostep
cc60 2d 6d 6f 64 65 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 66 6f 72 20 69 6e 6c 69 6e 65 20 65 -mode..."Minor.mode.for.inline.e
cc80 78 70 61 6e 73 69 6f 6e 20 6f 66 20 6d 61 63 72 6f 73 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 xpansion.of.macros.in.Emacs.Lisp
cca0 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 73 2e 0a 0a 5c 5c 3c 6d 61 63 72 6f 73 74 65 70 2d 6d .source.buffers...\\<macrostep-m
ccc0 6f 64 65 2d 6d 61 70 3e 50 72 6f 67 72 65 73 73 69 76 65 6c 79 20 65 78 70 61 6e 64 20 6d 61 63 ode-map>Progressively.expand.mac
cce0 72 6f 20 66 6f 72 6d 73 20 77 69 74 68 20 5c 0a 5c 5c 5b 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 ro.forms.with.\.\\[macrostep-exp
cd00 61 6e 64 5d 2c 20 63 6f 6c 6c 61 70 73 65 20 74 68 65 6d 20 77 69 74 68 20 5c 5c 5b 6d 61 63 72 and],.collapse.them.with.\\[macr
cd20 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 5d 2c 0a 61 6e 64 20 6d 6f 76 65 20 62 61 63 6b 20 61 ostep-collapse],.and.move.back.a
cd40 6e 64 20 66 6f 72 74 68 20 77 69 74 68 20 5c 5c 5b 6d 61 63 72 6f 73 74 65 70 2d 6e 65 78 74 2d nd.forth.with.\\[macrostep-next-
cd60 6d 61 63 72 6f 5d 20 61 6e 64 20 5c 0a 5c 5c 5b 6d 61 63 72 6f 73 74 65 70 2d 70 72 65 76 2d 6d macro].and.\.\\[macrostep-prev-m
cd80 61 63 72 6f 5d 2e 20 20 55 73 65 20 5c 5c 5b 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 acro]...Use.\\[macrostep-collaps
cda0 65 2d 61 6c 6c 5d 20 6f 72 20 63 6f 6c 6c 61 70 73 65 20 61 6c 6c 0a 76 69 73 69 62 6c 65 20 65 e-all].or.collapse.all.visible.e
cdc0 78 70 61 6e 73 69 6f 6e 73 20 74 6f 20 71 75 69 74 20 61 6e 64 20 72 65 74 75 72 6e 20 74 6f 20 xpansions.to.quit.and.return.to.
cde0 6e 6f 72 6d 61 6c 20 65 64 69 74 69 6e 67 2e 0a 0a 5c 5c 7b 6d 61 63 72 6f 73 74 65 70 2d 6d 6f normal.editing...\\{macrostep-mo
ce00 64 65 2d 6d 61 70 7d 22 0a 20 20 3a 6c 69 67 68 74 65 72 20 22 20 4d 61 63 72 6f 2d 53 74 65 70 de-map}"...:lighter.".Macro-Step
ce20 70 65 72 22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 61 63 72 6f 73 74 65 70 0a 20 20 28 69 66 20 6d per"...:group.'macrostep...(if.m
ce40 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 acrostep-mode.......(progn......
ce60 20 20 20 3b 3b 20 44 69 73 61 62 6c 65 20 72 65 63 6f 72 64 69 6e 67 20 6f 66 20 75 6e 64 6f 20 ...;;.Disable.recording.of.undo.
ce80 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 63 72 6f 73 information.........(setq.macros
cea0 74 65 70 2d 73 61 76 65 64 2d 75 6e 64 6f 2d 6c 69 73 74 20 62 75 66 66 65 72 2d 75 6e 64 6f 2d tep-saved-undo-list.buffer-undo-
cec0 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 2d 75 6e 64 6f 2d 6c list...............buffer-undo-l
cee0 69 73 74 20 74 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 65 6d 62 65 72 20 77 68 65 74 68 ist.t).........;;.Remember.wheth
cf00 65 72 20 62 75 66 66 65 72 20 77 61 73 20 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 er.buffer.was.read-only.........
cf20 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 70 2d 73 61 76 65 64 2d 72 65 61 64 2d 6f 6e 6c 79 20 (setq.macrostep-saved-read-only.
cf40 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 buffer-read-only...............b
cf60 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 65 uffer-read-only.t).........;;.Se
cf80 74 20 75 70 20 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 20 68 6f 6f 6b 20 74 6f 20 62 61 69 6c 20 6f t.up.post-command.hook.to.bail.o
cfa0 75 74 20 6f 6e 20 6c 65 61 76 69 6e 67 20 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 ut.on.leaving.read-only.........
cfc0 28 61 64 64 2d 68 6f 6f 6b 20 27 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 2d 68 6f 6f 6b 20 23 27 6d (add-hook.'post-command-hook.#'m
cfe0 61 63 72 6f 73 74 65 70 2d 63 6f 6d 6d 61 6e 64 2d 68 6f 6f 6b 20 6e 69 6c 20 74 29 0a 20 20 20 acrostep-command-hook.nil.t)....
d000 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e .....(message.(substitute-comman
d020 64 2d 6b 65 79 73 20 22 5c 0a 5c 5c 3c 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 2d 6d 61 70 3e d-keys."\.\\<macrostep-mode-map>
d040 45 6e 74 65 72 69 6e 67 20 6d 61 63 72 6f 20 73 74 65 70 70 65 72 20 6d 6f 64 65 2e 20 5c 0a 55 Entering.macro.stepper.mode..\.U
d060 73 65 20 5c 5c 5b 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 5d 20 74 6f 20 65 78 70 61 6e se.\\[macrostep-expand].to.expan
d080 64 2c 20 5c 5c 5b 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 5d 20 74 6f 20 63 6f 6c d,.\\[macrostep-collapse].to.col
d0a0 6c 61 70 73 65 2c 20 5c 0a 5c 5c 5b 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 2d 61 lapse,.\.\\[macrostep-collapse-a
d0c0 6c 6c 5d 20 74 6f 20 65 78 69 74 2e 22 29 29 29 0a 0a 20 20 20 20 3b 3b 20 45 78 69 74 69 6e 67 ll].to.exit.")))......;;.Exiting
d0e0 20 6d 6f 64 65 0a 20 20 20 20 28 69 66 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 73 69 6f .mode.....(if.macrostep-expansio
d100 6e 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 3b 3b 20 4b 69 6c 6c 20 64 65 64 69 63 61 74 n-buffer.........;;.Kill.dedicat
d120 65 64 20 65 78 70 61 6e 73 69 6f 6e 20 62 75 66 66 65 72 73 0a 20 20 20 20 20 20 20 20 28 71 75 ed.expansion.buffers.........(qu
d140 69 74 2d 77 69 6e 64 6f 77 20 74 29 0a 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 61 70 73 65 20 61 it-window.t).......;;.Collapse.a
d160 6e 79 20 72 65 6d 61 69 6e 69 6e 67 20 6f 76 65 72 6c 61 79 73 0a 20 20 20 20 20 20 28 77 68 65 ny.remaining.overlays.......(whe
d180 6e 20 6d 61 63 72 6f 73 74 65 70 2d 6f 76 65 72 6c 61 79 73 20 28 6d 61 63 72 6f 73 74 65 70 2d n.macrostep-overlays.(macrostep-
d1a0 63 6f 6c 6c 61 70 73 65 2d 61 6c 6c 29 29 0a 20 20 20 20 20 20 3b 3b 20 52 65 73 74 6f 72 65 20 collapse-all)).......;;.Restore.
d1c0 75 6e 64 6f 20 69 6e 66 6f 20 26 20 72 65 61 64 2d 6f 6e 6c 79 20 73 74 61 74 65 0a 20 20 20 20 undo.info.&.read-only.state.....
d1e0 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e 64 6f 2d 6c 69 73 74 20 6d 61 63 72 6f 73 74 ..(setq.buffer-undo-list.macrost
d200 65 70 2d 73 61 76 65 64 2d 75 6e 64 6f 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 ep-saved-undo-list.............b
d220 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 6d 61 63 72 6f 73 74 65 70 2d 73 61 76 65 64 2d uffer-read-only.macrostep-saved-
d240 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 63 72 6f 73 74 65 70 2d read-only.............macrostep-
d260 73 61 76 65 64 2d 75 6e 64 6f 2d 6c 69 73 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 3b 3b 20 52 65 saved-undo-list.nil).......;;.Re
d280 6d 6f 76 65 20 6f 75 72 20 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 20 68 6f 6f 6b 0a 20 20 20 20 20 move.our.post-command.hook......
d2a0 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 2d 68 6f 6f 6b .(remove-hook.'post-command-hook
d2c0 20 23 27 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6d 6d 61 6e 64 2d 68 6f 6f 6b 20 74 29 29 29 29 0a .#'macrostep-command-hook.t)))).
d2e0 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6d 6d 61 6e 64 2d 68 6f 6f 6b 20 28 .(defun.macrostep-command-hook.(
d300 29 0a 20 20 22 48 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 75 73 65 20 62 79 20 60 70 )..."Hook.function.for.use.by.`p
d320 6f 73 74 2d 63 6f 6d 6d 61 6e 64 20 68 6f 6f 6b 27 2e 0a 42 61 69 6c 20 6f 75 74 20 6f 66 20 60 ost-command.hook'..Bail.out.of.`
d340 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 27 20 69 66 20 74 68 65 20 75 73 65 72 20 74 79 70 65 macrostep-mode'.if.the.user.type
d360 73 0a 60 5c 5c 5b 72 65 61 64 2d 6f 6e 6c 79 2d 6d 6f 64 65 5d 27 20 74 6f 20 6d 61 6b 65 20 74 s.`\\[read-only-mode]'.to.make.t
d380 68 65 20 62 75 66 66 65 72 20 77 72 69 74 61 62 6c 65 20 61 67 61 69 6e 2e 22 0a 20 20 28 69 66 he.buffer.writable.again."...(if
d3a0 20 28 6e 6f 74 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 29 0a 20 20 20 20 20 20 28 6d .(not.buffer-read-only).......(m
d3c0 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 30 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 49 6e 74 65 72 61 acrostep-mode.0)))....;;;.Intera
d3e0 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 ctive.functions.;;;###autoload.(
d400 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 20 28 26 6f 70 74 69 6f 6e 61 defun.macrostep-expand.(&optiona
d420 6c 20 74 6f 67 67 6c 65 2d 73 65 70 61 72 61 74 65 2d 62 75 66 66 65 72 29 0a 20 20 22 45 78 70 l.toggle-separate-buffer)..."Exp
d440 61 6e 64 20 74 68 65 20 6d 61 63 72 6f 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 6f 69 and.the.macro.form.following.poi
d460 6e 74 20 62 79 20 6f 6e 65 20 73 74 65 70 2e 0a 0a 45 6e 74 65 72 73 20 60 6d 61 63 72 6f 73 74 nt.by.one.step...Enters.`macrost
d480 65 70 2d 6d 6f 64 65 27 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 61 63 ep-mode'.if.it.is.not.already.ac
d4a0 74 69 76 65 2c 20 6d 61 6b 69 6e 67 20 74 68 65 0a 62 75 66 66 65 72 20 74 65 6d 70 6f 72 61 72 tive,.making.the.buffer.temporar
d4c0 69 6c 79 20 72 65 61 64 2d 6f 6e 6c 79 2e 20 20 49 66 20 60 6d 61 63 72 6f 73 74 65 70 2d 6d 6f ily.read-only...If.`macrostep-mo
d4e0 64 65 27 20 69 73 20 61 63 74 69 76 65 20 61 6e 64 0a 74 68 65 20 66 6f 72 6d 20 66 6f 6c 6c 6f de'.is.active.and.the.form.follo
d500 77 69 6e 67 20 70 6f 69 6e 74 20 69 73 20 6e 6f 74 20 61 20 6d 61 63 72 6f 20 66 6f 72 6d 2c 20 wing.point.is.not.a.macro.form,.
d520 73 65 61 72 63 68 20 66 6f 72 77 61 72 64 20 69 6e 0a 74 68 65 20 62 75 66 66 65 72 20 61 6e 64 search.forward.in.the.buffer.and
d540 20 65 78 70 61 6e 64 20 74 68 65 20 6e 65 78 74 20 6d 61 63 72 6f 20 66 6f 72 6d 20 66 6f 75 6e .expand.the.next.macro.form.foun
d560 64 2c 20 69 66 20 61 6e 79 2e 0a 0a 49 66 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 d,.if.any...If.optional.argument
d580 20 54 4f 47 47 4c 45 2d 53 45 50 41 52 41 54 45 2d 42 55 46 46 45 52 20 69 73 20 6e 6f 6e 2d 6e .TOGGLE-SEPARATE-BUFFER.is.non-n
d5a0 69 6c 20 28 6f 72 20 73 65 74 0a 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 il.(or.set..with.a.prefix.argume
d5c0 6e 74 29 2c 20 74 68 65 20 65 78 70 61 6e 73 69 6f 6e 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 nt),.the.expansion.is.displayed.
d5e0 69 6e 20 61 0a 20 73 65 70 61 72 61 74 65 20 62 75 66 66 65 72 20 69 6e 73 74 65 61 64 20 6f 66 in.a..separate.buffer.instead.of
d600 20 69 6e 6c 69 6e 65 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 20 .inline.in.the.current.buffer...
d620 53 65 74 74 69 6e 67 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 69 6e 2d 73 65 70 Setting.`macrostep-expand-in-sep
d640 61 72 61 74 65 2d 62 75 66 66 65 72 27 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 20 73 77 61 70 73 0a 20 arate-buffer'.to.non-nil.swaps..
d660 74 68 65 73 65 20 74 77 6f 20 62 65 68 61 76 69 6f 72 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 these.two.behaviors."...(interac
d680 74 69 76 65 20 22 50 22 29 0a 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 tive."P")...(cl-destructuring-bi
d6a0 6e 64 20 28 73 74 61 72 74 20 2e 20 65 6e 64 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 nd.(start...end).......(funcall.
d6c0 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 2d 66 75 6e 63 74 69 6f 6e 29 0a macrostep-sexp-bounds-function).
d6e0 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 29 0a 20 20 20 20 28 6c 65 74 2a 20 ....(goto-char.start).....(let*.
d700 28 28 73 65 78 70 20 28 66 75 6e 63 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 ((sexp.(funcall.macrostep-sexp-a
d720 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 20 65 6e 64 29 29 0a 20 20 20 t-point-function.start.end))....
d740 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 20 65 6e 64 29 29 0a ........(end.(copy-marker.end)).
d760 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 ...........(text.(buffer-substri
d780 6e 67 20 73 74 61 72 74 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 76 20 28 ng.start.end))............(env.(
d7a0 66 75 6e 63 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 funcall.macrostep-environment-at
d7c0 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 78 -point-function))............(ex
d7e0 70 61 6e 73 69 6f 6e 20 28 66 75 6e 63 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e pansion.(funcall.macrostep-expan
d800 64 2d 31 2d 66 75 6e 63 74 69 6f 6e 20 73 65 78 70 20 65 6e 76 29 29 29 0a 0a 20 20 20 20 20 20 d-1-function.sexp.env)))........
d820 3b 3b 20 43 72 65 61 74 65 20 61 20 64 65 64 69 63 61 74 65 64 20 6d 61 63 72 6f 2d 65 78 70 61 ;;.Create.a.dedicated.macro-expa
d840 6e 73 69 6f 6e 20 62 75 66 66 65 72 20 61 6e 64 20 63 6f 70 79 20 74 68 65 20 74 65 78 74 20 74 nsion.buffer.and.copy.the.text.t
d860 6f 0a 20 20 20 20 20 20 3b 3b 20 62 65 20 65 78 70 61 6e 64 65 64 20 69 6e 74 6f 20 69 74 2c 20 o.......;;.be.expanded.into.it,.
d880 69 66 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 65 70 61 72 61 74 if.required.......(let.((separat
d8a0 65 2d 62 75 66 66 65 72 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 74 6f 67 67 e-buffer-p..............(if.togg
d8c0 6c 65 2d 73 65 70 61 72 61 74 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 le-separate-buffer..............
d8e0 20 20 20 20 28 6e 6f 74 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 69 6e 2d 73 65 70 ....(not.macrostep-expand-in-sep
d900 61 72 61 74 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 63 arate-buffer)................mac
d920 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 69 6e 2d 73 65 70 61 72 61 74 65 2d 62 75 66 66 65 72 rostep-expand-in-separate-buffer
d940 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 65 70 61 72 61 74 65 2d ))).........(when.(and.separate-
d960 62 75 66 66 65 72 2d 70 20 28 6e 6f 74 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 73 69 6f buffer-p.(not.macrostep-expansio
d980 6e 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 6f 64 65 n-buffer))...........(let.((mode
d9a0 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 .major-mode).................(bu
d9c0 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 ffer..................(get-buffe
d9e0 72 2d 63 72 65 61 74 65 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 2d 6e 61 r-create.(generate-new-buffer-na
da00 6d 65 20 22 2a 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2a 22 29 29 29 29 0a 20 20 20 20 20 me."*macro.expansion*"))))......
da20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 .......(set-buffer.buffer)......
da40 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 .......(funcall.mode)...........
da60 20 20 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 73 69 6f 6e 2d 62 75 66 66 ..(setq.macrostep-expansion-buff
da80 65 72 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 er.t).............(setq.macroste
daa0 70 2d 6f 75 74 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 65 6e 76 29 0a 20 20 20 20 20 20 20 p-outer-environment.env)........
dac0 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 .....(save-excursion............
dae0 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 ...(setq.start.(point)).........
db00 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......(insert.text).............
db20 20 20 28 73 65 74 71 20 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 ..(setq.end.(point-marker)))....
db40 20 20 20 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 .........(pop-to-buffer.buffer))
db60 29 29 0a 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 ))........(unless.macrostep-mode
db80 20 28 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 74 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 .(macrostep-mode.t)).......(let.
dba0 28 28 65 78 69 73 74 69 6e 67 2d 6f 76 65 72 6c 61 79 20 28 6d 61 63 72 6f 73 74 65 70 2d 6f 76 ((existing-overlay.(macrostep-ov
dbc0 65 72 6c 61 79 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 erlay-at-point)).............(ma
dbe0 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 64 65 70 74 68 20 6d 61 63 72 6f 73 74 65 70 2d 67 crostep-gensym-depth.macrostep-g
dc00 65 6e 73 79 6d 2d 64 65 70 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 ensym-depth).............(macros
dc20 74 65 70 2d 67 65 6e 73 79 6d 73 2d 74 68 69 73 2d 6c 65 76 65 6c 20 6e 69 6c 29 0a 20 20 20 20 tep-gensyms-this-level.nil).....
dc40 20 20 20 20 20 20 20 20 70 72 69 6f 72 69 74 79 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 65 78 ........priority).........(if.ex
dc60 69 73 74 69 6e 67 2d 6f 76 65 72 6c 61 79 20 20 3b 20 45 78 70 61 6e 64 69 6e 67 20 70 61 72 74 isting-overlay..;.Expanding.part
dc80 20 6f 66 20 61 20 70 72 65 76 69 6f 75 73 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 0a 20 .of.a.previous.macro-expansion..
dca0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 69 6f 72 69 74 79 20 28 31 2b 20 28 6f ...........(setq.priority.(1+.(o
dcc0 76 65 72 6c 61 79 2d 67 65 74 20 65 78 69 73 74 69 6e 67 2d 6f 76 65 72 6c 61 79 20 27 70 72 69 verlay-get.existing-overlay.'pri
dce0 6f 72 69 74 79 29 29 0a 09 09 20 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 64 65 70 ority)).....macrostep-gensym-dep
dd00 74 68 0a 09 09 20 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 65 78 69 73 74 69 6e 67 2d 6f 76 65 th.....(overlay-get.existing-ove
dd20 72 6c 61 79 20 27 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 64 65 70 74 68 29 29 0a 20 rlay.'macrostep-gensym-depth))..
dd40 20 20 20 20 20 20 20 20 20 3b 3b 20 45 78 70 61 6e 64 69 6e 67 20 73 6f 75 72 63 65 20 62 75 66 .........;;.Expanding.source.buf
dd60 66 65 72 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 69 6f 72 69 74 fer.text...........(setq.priorit
dd80 79 20 31 0a 09 09 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 64 65 70 74 68 20 2d 31 29 y.1...macrostep-gensym-depth.-1)
dda0 29 0a 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 )..........(with-silent-modifica
ddc0 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 28 61 74 6f 6d 69 63 2d 63 68 61 6e 67 65 2d 67 tions...........(atomic-change-g
dde0 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d roup.............(let.((inhibit-
de00 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 read-only.t))...............(sav
de20 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 e-excursion.................;;.I
de40 6e 73 65 72 74 20 65 78 70 61 6e 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nsert.expansion.................
de60 28 66 75 6e 63 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f (funcall.macrostep-print-functio
de80 6e 20 65 78 70 61 6e 73 69 6f 6e 20 65 6e 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.expansion.env)................
dea0 20 3b 3b 20 44 65 6c 65 74 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 66 6f 72 6d 0a 20 20 20 .;;.Delete.the.original.form....
dec0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 .............(macrostep-collapse
dee0 2d 6f 76 65 72 6c 61 79 73 2d 69 6e 20 28 70 6f 69 6e 74 29 20 65 6e 64 29 0a 20 20 20 20 20 20 -overlays-in.(point).end).......
df00 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 ..........(delete-region.(point)
df20 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 72 65 61 74 65 20 .end).................;;.Create.
df40 61 20 6e 65 77 20 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c a.new.overlay.................(l
df60 65 74 2a 20 28 28 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et*.((overlay...................
df80 20 20 20 20 20 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 73 74 61 72 74 0a 20 20 20 20 20 20 ......(make-overlay.start.......
dfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
dfc0 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 (if.(looking-at."\n")...........
dfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
e000 28 31 2b 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (1+.(point))....................
e020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a .....................(point)))).
e040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 69 67 68 6c 69 67 68 .......................(highligh
e060 74 2d 6f 76 65 72 6c 61 79 20 28 75 6e 6c 65 73 73 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 t-overlay.(unless.macrostep-expa
e080 6e 73 69 6f 6e 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nsion-buffer....................
e0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 6f .........................(copy-o
e0c0 76 65 72 6c 61 79 20 6f 76 65 72 6c 61 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 verlay.overlay))))..............
e0e0 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 73 69 6f 6e .....(unless.macrostep-expansion
e100 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 -buffer.....................;;.H
e120 69 67 68 6c 69 67 68 74 20 74 68 65 20 6f 76 65 72 6c 61 79 20 69 6e 20 6f 72 69 67 69 6e 61 6c ighlight.the.overlay.in.original
e140 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 73 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 .source.buffers.only............
e160 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 68 69 67 68 6c 69 67 68 74 2d .........(overlay-put.highlight-
e180 6f 76 65 72 6c 61 79 20 27 66 61 63 65 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 73 69 overlay.'face.'macrostep-expansi
e1a0 6f 6e 2d 68 69 67 68 6c 69 67 68 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 on-highlight-face)..............
e1c0 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 68 69 67 68 6c 69 67 68 74 2d 6f 76 .......(overlay-put.highlight-ov
e1e0 65 72 6c 61 79 20 27 70 72 69 6f 72 69 74 79 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 erlay.'priority.-1).............
e200 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 6d 61 ........(overlay-put.overlay.'ma
e220 63 72 6f 73 74 65 70 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 20 68 69 67 68 6c 69 crostep-highlight-overlay.highli
e240 67 68 74 2d 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ght-overlay))...................
e260 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 70 72 69 6f 72 69 74 79 20 70 (overlay-put.overlay.'priority.p
e280 72 69 6f 72 69 74 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 riority)...................(over
e2a0 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 6d 61 63 72 6f 73 74 65 70 2d 6f 72 69 67 69 lay-put.overlay.'macrostep-origi
e2c0 6e 61 6c 2d 74 65 78 74 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nal-text.text)..................
e2e0 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 6d 61 63 72 6f 73 74 65 70 .(overlay-put.overlay.'macrostep
e300 2d 67 65 6e 73 79 6d 2d 64 65 70 74 68 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 64 -gensym-depth.macrostep-gensym-d
e320 65 70 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6f 76 epth)...................(push.ov
e340 65 72 6c 61 79 20 6d 61 63 72 6f 73 74 65 70 2d 6f 76 65 72 6c 61 79 73 29 29 29 29 29 29 29 29 erlay.macrostep-overlays))))))))
e360 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 20 28 29 ))..(defun.macrostep-collapse.()
e380 0a 20 20 22 43 6f 6c 6c 61 70 73 65 20 74 68 65 20 69 6e 6e 65 72 6d 6f 73 74 20 6d 61 63 72 6f ..."Collapse.the.innermost.macro
e3a0 20 65 78 70 61 6e 73 69 6f 6e 20 6e 65 61 72 20 70 6f 69 6e 74 20 74 6f 20 69 74 73 20 73 6f 75 .expansion.near.point.to.its.sou
e3c0 72 63 65 20 74 65 78 74 2e 0a 0a 49 66 20 6e 6f 20 6d 6f 72 65 20 6d 61 63 72 6f 20 65 78 70 61 rce.text...If.no.more.macro.expa
e3e0 6e 73 69 6f 6e 73 20 61 72 65 20 76 69 73 69 62 6c 65 20 61 66 74 65 72 20 74 68 69 73 2c 20 65 nsions.are.visible.after.this,.e
e400 78 69 74 0a 60 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 xit.`macrostep-mode'."...(intera
e420 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6f 76 65 72 6c 61 79 20 28 6d 61 63 72 6f 73 74 ctive)...(let.((overlay.(macrost
e440 65 70 2d 6f 76 65 72 6c 61 79 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e ep-overlay-at-point))).....(when
e460 20 28 6e 6f 74 20 6f 76 65 72 6c 61 79 29 20 28 65 72 72 6f 72 20 22 4e 6f 20 6d 61 63 72 6f 20 .(not.overlay).(error."No.macro.
e480 65 78 70 61 6e 73 69 6f 6e 20 61 74 20 70 6f 69 6e 74 22 29 29 0a 20 20 20 20 28 6c 65 74 20 28 expansion.at.point")).....(let.(
e4a0 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 28 77 69 (inhibit-read-only.t)).......(wi
e4c0 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 th-silent-modifications.........
e4e0 28 61 74 6f 6d 69 63 2d 63 68 61 6e 67 65 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 28 (atomic-change-group...........(
e500 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 2d 6f 76 65 72 6c 61 79 20 6f 76 65 72 6c macrostep-collapse-overlay.overl
e520 61 79 29 29 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 6d 61 63 72 6f 73 74 65 70 2d 6f 76 65 72 ay)))))...(unless.macrostep-over
e540 6c 61 79 73 0a 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 30 29 29 29 0a 0a 28 lays.....(macrostep-mode.0)))..(
e560 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 2d 61 6c 6c 20 28 29 0a defun.macrostep-collapse-all.().
e580 20 20 22 43 6f 6c 6c 61 70 73 65 20 61 6c 6c 20 76 69 73 69 62 6c 65 20 6d 61 63 72 6f 20 65 78 .."Collapse.all.visible.macro.ex
e5a0 70 61 6e 73 69 6f 6e 73 20 61 6e 64 20 65 78 69 74 20 60 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 pansions.and.exit.`macrostep-mod
e5c0 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 69 6e e'."...(interactive)...(let.((in
e5e0 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 28 77 69 74 68 2d 73 69 hibit-read-only.t)).....(with-si
e600 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 lent-modifications.......(dolist
e620 20 28 6f 76 65 72 6c 61 79 20 6d 61 63 72 6f 73 74 65 70 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 .(overlay.macrostep-overlays)...
e640 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 75 74 65 72 6d 6f 73 74 20 28 3d 20 28 6f 76 65 72 6c ......(let.((outermost.(=.(overl
e660 61 79 2d 67 65 74 20 6f 76 65 72 6c 61 79 20 27 70 72 69 6f 72 69 74 79 29 20 31 29 29 29 0a 20 ay-get.overlay.'priority).1)))..
e680 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 6f 6e 6c 79 20 6e 65 65 64 20 72 65 73 74 6f 72 65 .........;;.We.only.need.restore
e6a0 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 74 65 78 74 20 66 6f 72 20 74 68 65 20 6f 75 74 65 72 .the.original.text.for.the.outer
e6c0 6d 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 76 65 72 6c 61 79 73 0a 20 20 20 20 20 most...........;;.overlays......
e6e0 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 2d 6f 76 65 72 6c 61 79 .....(macrostep-collapse-overlay
e700 20 6f 76 65 72 6c 61 79 20 28 6e 6f 74 20 6f 75 74 65 72 6d 6f 73 74 29 29 29 29 29 29 0a 20 20 .overlay.(not.outermost))))))...
e720 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 70 2d 6f 76 65 72 6c 61 79 73 20 6e 69 6c 29 0a 20 20 (setq.macrostep-overlays.nil)...
e740 28 6d 61 63 72 6f 73 74 65 70 2d 6d 6f 64 65 20 30 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 (macrostep-mode.0))..(defun.macr
e760 6f 73 74 65 70 2d 6e 65 78 74 2d 6d 61 63 72 6f 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e ostep-next-macro.()..."Move.poin
e780 74 20 66 6f 72 77 61 72 64 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6d 61 63 72 6f 20 66 6f 72 6d t.forward.to.the.next.macro.form
e7a0 20 69 6e 20 6d 61 63 72 6f 2d 65 78 70 61 6e 64 65 64 20 74 65 78 74 2e 22 0a 20 20 28 69 6e 74 .in.macro-expanded.text."...(int
e7c0 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 20 28 69 66 20 28 67 eractive)...(let*.((start.(if.(g
e7e0 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 6d 61 63 72 6f 73 et-text-property.(point).'macros
e800 74 65 70 2d 6d 61 63 72 6f 2d 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tep-macro-start)................
e820 20 20 20 20 20 28 31 2b 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(1+.(point))...............
e840 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 65 78 74 20 28 6e 65 ....(point)))..........(next.(ne
e860 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 73 74 61 72 74 20 xt-single-property-change.start.
e880 27 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 73 74 61 72 74 29 29 29 0a 20 20 20 20 28 69 'macrostep-macro-start))).....(i
e8a0 66 20 6e 65 78 74 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6e 65 78 74 29 0a f.next.........(goto-char.next).
e8c0 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6d 6f 72 65 20 6d 61 63 72 6f 20 66 6f 72 6d ......(error."No.more.macro.form
e8e0 73 20 66 6f 75 6e 64 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 70 s.found"))))..(defun.macrostep-p
e900 72 65 76 2d 6d 61 63 72 6f 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 62 61 63 6b 20 rev-macro.()..."Move.point.back.
e920 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6d 61 63 72 6f 20 66 6f 72 6d 20 69 6e 20 6d 61 to.the.previous.macro.form.in.ma
e940 63 72 6f 2d 65 78 70 61 6e 64 65 64 20 74 65 78 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 cro-expanded.text."...(interacti
e960 76 65 29 0a 20 20 28 6c 65 74 20 28 70 72 65 76 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 ve)...(let.(prev).....(save-excu
e980 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 rsion.......(while...........(pr
e9a0 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 20 28 70 72 65 76 ogn.............(setq.prev.(prev
e9c0 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 ious-single-property-change.....
e9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 6d 61 63 ....................(point).'mac
ea00 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 73 74 61 72 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 rostep-macro-start))............
ea20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 70 72 65 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(if.(or.(not.prev).............
ea40 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 31 2d 20 70 ........(get-text-property.(1-.p
ea60 72 65 76 29 20 27 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 73 74 61 72 74 29 29 0a 20 20 rev).'macrostep-macro-start))...
ea80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............nil...............
eaa0 28 70 72 6f 67 31 20 74 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 72 65 76 29 29 29 29 29 29 0a 20 (prog1.t.(goto-char.prev))))))..
eac0 20 20 20 28 69 66 20 70 72 65 76 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 ...(if.prev.........(goto-char.(
eae0 31 2d 20 70 72 65 76 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 70 72 65 76 69 1-.prev)).......(error."No.previ
eb00 6f 75 73 20 6d 61 63 72 6f 20 66 6f 72 6d 20 66 6f 75 6e 64 22 29 29 29 29 0a 0a 0c 0a 3b 3b 3b ous.macro.form.found"))))....;;;
eb20 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 20 28 6e 6f 74 20 6c 61 6e 67 75 61 67 65 .Utility.functions.(not.language
eb40 2d 73 70 65 63 69 66 69 63 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 6f 76 65 -specific)..(defun.macrostep-ove
eb60 72 6c 61 79 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 69 rlay-at-point.()..."Return.the.i
eb80 6e 6e 65 72 6d 6f 73 74 20 6d 61 63 72 6f 20 73 74 65 70 70 65 72 20 6f 76 65 72 6c 61 79 20 61 nnermost.macro.stepper.overlay.a
eba0 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 63 64 72 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 t.point."...(cdr.(get-char-prope
ebc0 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 20 28 70 6f 69 6e 74 29 20 27 6d 61 63 72 6f 73 74 rty-and-overlay.(point).'macrost
ebe0 65 70 2d 6f 72 69 67 69 6e 61 6c 2d 74 65 78 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 ep-original-text)))..(defun.macr
ec00 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 2d 6f 76 65 72 6c 61 79 20 28 6f 76 65 72 6c 61 79 20 ostep-collapse-overlay.(overlay.
ec20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 72 65 73 74 6f 72 65 2d 70 29 0a 20 20 22 43 6f 6c 6c 61 &optional.no-restore-p)..."Colla
ec40 70 73 65 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 20 62 75 66 66 65 72 20 4f 56 45 52 4c pse.macro-expansion.buffer.OVERL
ec60 41 59 20 61 6e 64 20 72 65 73 74 6f 72 65 20 74 68 65 20 75 6e 65 78 70 61 6e 64 65 64 20 73 6f AY.and.restore.the.unexpanded.so
ec80 75 72 63 65 20 74 65 78 74 2e 0a 0a 41 73 20 61 20 6d 69 6e 6f 72 20 6f 70 74 69 6d 69 7a 61 74 urce.text...As.a.minor.optimizat
eca0 69 6f 6e 2c 20 64 6f 65 73 20 6e 6f 74 20 72 65 73 74 6f 72 65 20 74 68 65 20 6f 72 69 67 69 6e ion,.does.not.restore.the.origin
ecc0 61 6c 20 73 6f 75 72 63 65 0a 74 65 78 74 20 69 66 20 4e 4f 2d 52 45 53 54 4f 52 45 2d 50 20 69 al.source.text.if.NO-RESTORE-P.i
ece0 73 20 6e 6f 6e 2d 6e 69 6c 2e 20 20 54 68 69 73 20 69 73 20 73 61 66 65 20 74 6f 20 64 6f 20 77 s.non-nil...This.is.safe.to.do.w
ed00 68 65 6e 0a 63 6f 6c 6c 61 70 73 69 6e 67 20 61 6c 6c 20 74 68 65 20 73 75 62 2d 65 78 70 61 6e hen.collapsing.all.the.sub-expan
ed20 73 69 6f 6e 73 20 6f 66 20 61 6e 20 6f 75 74 65 72 20 6f 76 65 72 6c 61 79 2c 20 73 69 6e 63 65 sions.of.an.outer.overlay,.since
ed40 20 74 68 65 0a 6f 75 74 65 72 20 6f 76 65 72 6c 61 79 20 77 69 6c 6c 20 72 65 73 74 6f 72 65 20 .the.outer.overlay.will.restore.
ed60 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 73 6f 75 72 63 65 20 69 74 73 65 6c 66 2e 0a 0a 41 6c 73 the.original.source.itself...Als
ed80 6f 20 72 65 6d 6f 76 65 73 20 74 68 65 20 6f 76 65 72 6c 61 79 20 66 72 6f 6d 20 60 6d 61 63 72 o.removes.the.overlay.from.`macr
eda0 6f 73 74 65 70 2d 6f 76 65 72 6c 61 79 73 27 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e ostep-overlays'."...(with-curren
edc0 74 2d 62 75 66 66 65 72 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 6f 76 65 72 6c 61 79 t-buffer.(overlay-buffer.overlay
ede0 29 0a 20 20 20 20 3b 3b 20 49 66 20 77 65 27 72 65 20 63 6c 65 61 6e 69 6e 67 20 75 70 20 77 65 ).....;;.If.we're.cleaning.up.we
ee00 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 62 6f 74 68 65 72 20 72 65 73 74 6f 72 69 6e 67 20 .don't.need.to.bother.restoring.
ee20 74 65 78 74 0a 20 20 20 20 3b 3b 20 6f 72 20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 69 6e 6e 65 text.....;;.or.checking.for.inne
ee40 72 20 6f 76 65 72 6c 61 79 73 20 74 6f 20 64 65 6c 65 74 65 0a 20 20 20 20 28 75 6e 6c 65 73 73 r.overlays.to.delete.....(unless
ee60 20 6e 6f 2d 72 65 73 74 6f 72 65 2d 70 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 .no-restore-p.......(let*.((star
ee80 74 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 20 t.(overlay-start.overlay))......
eea0 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 65 72 6c 61 ........(end.(overlay-end.overla
eec0 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 20 28 6f 76 65 72 6c 61 79 2d y))..............(text.(overlay-
eee0 67 65 74 20 6f 76 65 72 6c 61 79 20 27 6d 61 63 72 6f 73 74 65 70 2d 6f 72 69 67 69 6e 61 6c 2d get.overlay.'macrostep-original-
ef00 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 78 70 2d 65 6e 64 0a 20 20 text))..............(sexp-end...
ef20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 ............(copy-marker........
ef40 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 63 68 61 72 2d 62 65 66 6f 72 65 20 ........(if.(equal.(char-before.
ef60 65 6e 64 29 20 3f 5c 6e 29 20 28 31 2d 20 65 6e 64 29 20 65 6e 64 29 29 29 29 0a 20 20 20 20 20 end).?\n).(1-.end).end))))......
ef80 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 73 65 2d 6f 76 65 72 6c 61 79 73 2d ...(macrostep-collapse-overlays-
efa0 69 6e 20 73 74 61 72 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 in.start.end).........(goto-char
efc0 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 20 20 .(overlay-start.overlay)).......
efe0 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 ..(save-excursion...........(ins
f000 65 72 74 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 ert.text)...........(delete-regi
f020 6f 6e 20 28 70 6f 69 6e 74 29 20 73 65 78 70 2d 65 6e 64 29 29 29 29 0a 20 20 20 20 3b 3b 20 52 on.(point).sexp-end)))).....;;.R
f040 65 6d 6f 76 65 20 6f 76 65 72 6c 61 79 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 61 6e 64 20 emove.overlay.from.the.list.and.
f060 64 65 6c 65 74 65 20 69 74 0a 20 20 20 20 28 73 65 74 71 20 6d 61 63 72 6f 73 74 65 70 2d 6f 76 delete.it.....(setq.macrostep-ov
f080 65 72 6c 61 79 73 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 71 20 6f 76 65 72 6c 61 79 20 6d erlays...........(delq.overlay.m
f0a0 61 63 72 6f 73 74 65 70 2d 6f 76 65 72 6c 61 79 73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 68 acrostep-overlays)).....(let.((h
f0c0 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 ighlight-overlay.(overlay-get.ov
f0e0 65 72 6c 61 79 20 27 6d 61 63 72 6f 73 74 65 70 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c erlay.'macrostep-highlight-overl
f100 61 79 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 ay))).......(when.highlight-over
f120 6c 61 79 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 68 69 67 68 6c 69 67 68 74 2d 6f 76 lay.(delete-overlay.highlight-ov
f140 65 72 6c 61 79 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 65 erlay))).....(delete-overlay.ove
f160 72 6c 61 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 61 70 rlay)))..(defun.macrostep-collap
f180 73 65 2d 6f 76 65 72 6c 61 79 73 2d 69 6e 20 28 73 74 61 72 74 20 65 6e 64 29 0a 20 20 22 43 6f se-overlays-in.(start.end)..."Co
f1a0 6c 6c 61 70 73 65 20 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 70 65 72 20 6f 76 65 72 6c 61 79 73 llapse.all.macrostepper.overlays
f1c0 20 74 68 61 74 20 61 72 65 20 73 74 72 69 63 74 6c 79 20 62 65 74 77 65 65 6e 20 53 54 41 52 54 .that.are.strictly.between.START
f1e0 20 61 6e 64 20 45 4e 44 2e 0a 0a 57 69 6c 6c 20 6e 6f 74 20 63 6f 6c 6c 61 70 73 65 20 6f 76 65 .and.END...Will.not.collapse.ove
f200 72 6c 61 79 73 20 74 68 61 74 20 62 65 67 69 6e 20 61 74 20 53 54 41 52 54 20 61 6e 64 20 65 6e rlays.that.begin.at.START.and.en
f220 64 20 61 74 20 45 4e 44 2e 22 0a 20 20 28 64 6f 6c 69 73 74 20 28 6f 6c 20 28 6f 76 65 72 6c 61 d.at.END."...(dolist.(ol.(overla
f240 79 73 2d 69 6e 20 73 74 61 72 74 20 65 6e 64 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 ys-in.start.end)).....(when.(and
f260 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 6f 6c 29 20 20 20 20 20 20 20 20 3b 20 63 6f .(overlay-buffer.ol)........;.co
f280 6c 6c 61 70 73 69 6e 67 20 6d 61 79 20 64 65 6c 65 74 65 20 6f 74 68 65 72 20 6f 76 65 72 6c 61 llapsing.may.delete.other.overla
f2a0 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28 6f 76 65 72 6c 61 79 2d 73 74 ys................(>.(overlay-st
f2c0 61 72 74 20 6f 6c 29 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c art.ol).start)................(<
f2e0 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 6c 29 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 .(overlay-end.ol).end)..........
f300 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 6c 20 27 6d 61 63 72 6f 73 74 65 70 ......(overlay-get.ol.'macrostep
f320 2d 6f 72 69 67 69 6e 61 6c 2d 74 65 78 74 29 29 0a 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 -original-text)).......(macroste
f340 70 2d 63 6f 6c 6c 61 70 73 65 2d 6f 76 65 72 6c 61 79 20 6f 6c 20 74 29 29 29 29 0a 0a 0c 0a 3b p-collapse-overlay.ol.t))))....;
f360 3b 3b 20 45 6d 61 63 73 20 4c 69 73 70 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 28 64 ;;.Emacs.Lisp.implementation..(d
f380 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 62 6f 75 6e 64 73 20 28 29 0a 20 20 efun.macrostep-sexp-bounds.()...
f3a0 22 46 69 6e 64 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 65 20 6d 61 63 72 6f 20 66 6f "Find.the.bounds.of.the.macro.fo
f3c0 72 6d 20 6e 65 61 72 65 73 74 20 70 6f 69 6e 74 2e 0a 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 6e rm.nearest.point...If.point.is.n
f3e0 6f 74 20 62 65 66 6f 72 65 20 61 6e 20 6f 70 65 6e 2d 70 61 72 65 6e 2c 20 6d 6f 76 65 73 20 75 ot.before.an.open-paren,.moves.u
f400 70 20 74 6f 20 74 68 65 20 6e 65 61 72 65 73 74 0a 65 6e 63 6c 6f 73 69 6e 67 20 6c 69 73 74 2e p.to.the.nearest.enclosing.list.
f420 20 20 49 66 20 74 68 65 20 66 6f 72 6d 20 61 74 20 70 6f 69 6e 74 20 69 73 20 6e 6f 74 20 61 20 ..If.the.form.at.point.is.not.a.
f440 6d 61 63 72 6f 20 63 61 6c 6c 2c 0a 61 74 74 65 6d 70 74 73 20 74 6f 20 6d 6f 76 65 20 66 6f 72 macro.call,.attempts.to.move.for
f460 77 61 72 64 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6d 61 63 72 6f 20 66 6f 72 6d 20 61 73 20 64 ward.to.the.next.macro.form.as.d
f480 65 74 65 72 6d 69 6e 65 64 20 62 79 0a 60 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 6f etermined.by.`macrostep-macro-fo
f4a0 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 27 2e 0a 0a 52 65 74 75 72 6e 73 20 61 20 63 6f 6e 73 20 rm-p-function'...Returns.a.cons.
f4c0 6f 66 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 73 2c 20 28 53 54 41 52 54 20 2e 20 45 4e of.buffer.positions,.(START...EN
f4e0 44 29 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 69 66 20 28 D)."...(save-excursion.....(if.(
f500 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 28 60 5d 22 29 29 0a 20 20 20 20 20 20 20 not.(looking-at."[(`]"))........
f520 20 28 62 61 63 6b 77 61 72 64 2d 75 70 2d 6c 69 73 74 20 31 29 29 0a 20 20 20 20 28 69 66 20 28 .(backward-up-list.1)).....(if.(
f540 65 71 75 61 6c 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 60 29 0a 20 20 20 20 20 20 20 20 equal.(char-before).?`).........
f560 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 65 78 70 (backward-char)).....(let.((sexp
f580 20 28 66 75 6e 63 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e .(funcall.macrostep-sexp-at-poin
f5a0 74 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 76 20 28 66 75 6e t-function))...........(env.(fun
f5c0 63 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f call.macrostep-environment-at-po
f5e0 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 int-function))).......;;.If.this
f600 20 69 73 6e 27 74 20 61 20 6d 61 63 72 6f 20 66 6f 72 6d 2c 20 74 72 79 20 74 6f 20 66 69 6e 64 .isn't.a.macro.form,.try.to.find
f620 20 74 68 65 20 6e 65 78 74 20 6f 6e 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 0a 20 20 20 20 .the.next.one.in.the.buffer.....
f640 20 20 28 75 6e 6c 65 73 73 20 28 66 75 6e 63 61 6c 6c 20 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 ..(unless.(funcall.macrostep-mac
f660 72 6f 2d 66 6f 72 6d 2d 70 2d 66 75 6e 63 74 69 6f 6e 20 73 65 78 70 20 65 6e 76 29 0a 20 20 20 ro-form-p-function.sexp.env)....
f680 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 .....(condition-case.nil........
f6a0 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 6e 65 78 74 2d 6d 61 63 72 6f 29 0a 20 20 20 20 .....(macrostep-next-macro).....
f6c0 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e ......(error............(if.(con
f6e0 73 70 20 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 sp.sexp)................(error."
f700 28 25 73 20 2e 2e 2e 29 20 69 73 20 6e 6f 74 20 61 20 6d 61 63 72 6f 20 66 6f 72 6d 22 20 28 63 (%s....).is.not.a.macro.form".(c
f720 61 72 20 73 65 78 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 ar.sexp))..............(error."T
f740 65 78 74 20 61 74 20 70 6f 69 6e 74 20 69 73 20 6e 6f 74 20 61 20 6d 61 63 72 6f 20 66 6f 72 6d ext.at.point.is.not.a.macro.form
f760 22 29 29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 70 6f 69 6e 74 29 20 28 73 63 61 6e 2d ")))))).....(cons.(point).(scan-
f780 73 65 78 70 73 20 28 70 6f 69 6e 74 29 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 sexps.(point).1))))..(defun.macr
f7a0 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 20 28 26 72 65 73 74 20 5f 69 67 6e 6f ostep-sexp-at-point.(&rest._igno
f7c0 72 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 65 78 70 20 6e 65 61 72 20 70 6f 69 6e re)..."Return.the.sexp.near.poin
f7e0 74 20 66 6f 72 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6d 61 63 72 6f 2d 73 74 65 70 70 65 72 20 t.for.purposes.of.macro-stepper.
f800 65 78 70 61 6e 73 69 6f 6e 2e 0a 0a 49 66 20 74 68 65 20 73 65 78 70 20 6e 65 61 72 20 70 6f 69 expansion...If.the.sexp.near.poi
f820 6e 74 20 69 73 20 70 61 72 74 20 6f 66 20 61 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2c nt.is.part.of.a.macro.expansion,
f840 20 72 65 74 75 72 6e 73 20 74 68 65 0a 73 61 76 65 64 20 74 65 78 74 20 6f 66 20 74 68 65 20 6d .returns.the.saved.text.of.the.m
f860 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2c 20 61 6e 64 20 64 6f 65 73 20 6e 6f 74 20 72 65 61 acro.expansion,.and.does.not.rea
f880 64 20 66 72 6f 6d 20 74 68 65 0a 62 75 66 66 65 72 2e 20 20 54 68 69 73 20 70 72 65 73 65 72 76 d.from.the.buffer...This.preserv
f8a0 65 73 20 75 6e 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f 6c 73 20 69 6e 20 74 68 65 20 6d 61 63 es.uninterned.symbols.in.the.mac
f8c0 72 6f 0a 65 78 70 61 6e 73 69 6f 6e 2c 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 63 61 6e 20 62 ro.expansion,.so.that.they.can.b
f8e0 65 20 66 6f 6e 74 69 66 69 65 64 20 63 6f 6e 73 69 73 74 65 6e 74 6c 79 2e 20 20 28 53 65 65 0a e.fontified.consistently...(See.
f900 60 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 27 2e 29 22 0a 20 20 28 6f 72 20 `macrostep-print-sexp'.)"...(or.
f920 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 6d 61 63 72 (get-text-property.(point).'macr
f940 6f 73 74 65 70 2d 65 78 70 61 6e 64 65 64 2d 74 65 78 74 29 0a 20 20 20 20 20 20 28 73 65 78 70 ostep-expanded-text).......(sexp
f960 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 6d -at-point)))..(defun.macrostep-m
f980 61 63 72 6f 2d 66 6f 72 6d 2d 70 20 28 66 6f 72 6d 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 0a 20 acro-form-p.(form.environment)..
f9a0 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 46 4f 52 4d 20 77 6f 75 6c 64 20 62 ."Return.non-nil.if.FORM.would.b
f9c0 65 20 65 76 61 6c 75 61 74 65 64 20 76 69 61 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2e e.evaluated.via.macro.expansion.
f9e0 0a 54 68 69 73 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 77 69 74 68 69 6e 20 45 4e 56 49 52 .This.is.considered.within.ENVIR
fa00 4f 4e 4d 45 4e 54 2e 0a 0a 49 66 20 46 4f 52 4d 20 69 73 20 61 6e 20 69 6e 76 6f 63 61 74 69 6f ONMENT...If.FORM.is.an.invocatio
fa20 6e 20 6f 66 20 61 20 6d 61 63 72 6f 20 64 65 66 69 6e 65 64 20 62 79 20 60 64 65 66 6d 61 63 72 n.of.a.macro.defined.by.`defmacr
fa40 6f 27 20 6f 72 20 61 6e 0a 65 6e 63 6c 6f 73 69 6e 67 20 60 63 6c 2d 6d 61 63 72 6f 6c 65 74 27 o'.or.an.enclosing.`cl-macrolet'
fa60 20 66 6f 72 6d 2c 20 72 65 74 75 72 6e 20 74 68 65 20 73 79 6d 62 6f 6c 20 60 6d 61 63 72 6f 27 .form,.return.the.symbol.`macro'
fa80 2e 0a 0a 49 66 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 63 6f 6d 70 69 6c 65 72 ...If.`macrostep-expand-compiler
faa0 2d 6d 61 63 72 6f 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 61 6e 64 20 46 4f 52 4d 20 69 73 20 -macros'.is.non-nil.and.FORM.is.
fac0 61 0a 63 61 6c 6c 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 61 20 63 6f 6d 70 a.call.to.a.function.with.a.comp
fae0 69 6c 65 72 20 6d 61 63 72 6f 2c 20 72 65 74 75 72 6e 20 74 68 65 20 73 79 6d 62 6f 6c 0a 60 63 iler.macro,.return.the.symbol.`c
fb00 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 27 2e 0a 0a 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 ompiler-macro'...Otherwise,.retu
fb20 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 63 61 72 20 28 6d 61 63 72 6f 73 74 65 70 2d 2d 6d 61 63 72 rn.nil."...(car.(macrostep--macr
fb40 6f 2d 66 6f 72 6d 2d 69 6e 66 6f 20 66 6f 72 6d 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 74 29 29 o-form-info.form.environment.t))
fb60 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d )..(defun.macrostep--macro-form-
fb80 69 6e 66 6f 20 28 66 6f 72 6d 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 26 6f 70 74 69 6f 6e 61 6c info.(form.environment.&optional
fba0 20 69 6e 68 69 62 69 74 2d 61 75 74 6f 6c 6f 61 64 29 0a 20 20 22 52 65 74 75 72 6e 20 69 6e 66 .inhibit-autoload)..."Return.inf
fbc0 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 73 ormation.about.macro.definitions
fbe0 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 46 4f 52 4d 2e 0a 0a 49 66 20 6e 6f 20 6d 61 63 72 .that.apply.to.FORM...If.no.macr
fc00 6f 73 20 61 72 65 20 69 6e 76 6f 6c 76 65 64 20 69 6e 20 74 68 65 20 65 76 61 6c 75 61 74 69 6f os.are.involved.in.the.evaluatio
fc20 6e 20 6f 66 20 46 4f 52 4d 20 77 69 74 68 69 6e 0a 45 4e 56 49 52 4f 4e 4d 45 4e 54 2c 20 72 65 n.of.FORM.within.ENVIRONMENT,.re
fc40 74 75 72 6e 73 20 6e 69 6c 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 72 6e 73 20 61 turns.nil...Otherwise,.returns.a
fc60 20 63 6f 6e 73 20 28 54 59 50 45 0a 2e 20 44 45 46 49 4e 49 54 49 4f 4e 29 2e 0a 0a 49 66 20 46 .cons.(TYPE...DEFINITION)...If.F
fc80 4f 52 4d 20 77 6f 75 6c 64 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 62 79 20 61 20 6d 61 63 72 ORM.would.be.evaluated.by.a.macr
fca0 6f 20 64 65 66 69 6e 65 64 20 62 79 20 60 64 65 66 6d 61 63 72 6f 27 2c 0a 60 63 6c 2d 6d 61 63 o.defined.by.`defmacro',.`cl-mac
fcc0 72 6f 6c 65 74 27 2c 20 65 74 63 2e 2c 20 54 59 50 45 20 69 73 20 74 68 65 20 73 79 6d 62 6f 6c rolet',.etc.,.TYPE.is.the.symbol
fce0 20 60 6d 61 63 72 6f 27 20 61 6e 64 20 44 45 46 49 4e 49 54 49 4f 4e 20 69 73 0a 74 68 65 20 6d .`macro'.and.DEFINITION.is.the.m
fd00 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 73 20 61 20 66 75 6e 63 74 69 6f 6e 2e 0a acro.definition,.as.a.function..
fd20 0a 49 66 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d .If.`macrostep-expand-compiler-m
fd40 61 63 72 6f 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 61 6e 64 20 46 4f 52 4d 20 77 6f 75 6c 64 acros'.is.non-nil.and.FORM.would
fd60 0a 62 65 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 61 20 63 6f 6d 70 69 6c 65 72 20 6d 61 .be.compiled.using.a.compiler.ma
fd80 63 72 6f 2c 20 54 59 50 45 20 69 73 20 74 68 65 20 73 79 6d 62 6f 6c 0a 60 63 6f 6d 70 69 6c 65 cro,.TYPE.is.the.symbol.`compile
fda0 72 2d 6d 61 63 72 6f 27 20 61 6e 64 20 44 45 46 49 4e 49 54 49 4f 4e 20 69 73 20 74 68 65 20 66 r-macro'.and.DEFINITION.is.the.f
fdc0 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e 74 73 0a 74 68 65 20 63 6f 6d 70 unction.that.implements.the.comp
fde0 69 6c 65 72 20 6d 61 63 72 6f 2e 0a 0a 49 66 20 46 4f 52 4d 20 69 73 20 61 6e 20 69 6e 76 6f 63 iler.macro...If.FORM.is.an.invoc
fe00 61 74 69 6f 6e 20 6f 66 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 64 20 6d 61 63 72 6f 2c 20 74 68 ation.of.an.autoloaded.macro,.th
fe20 65 20 62 65 68 61 76 69 6f 72 0a 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 e.behavior.depends.on.the.value.
fe40 6f 66 20 49 4e 48 49 42 49 54 2d 41 55 54 4f 4c 4f 41 44 2e 20 20 49 66 20 49 4e 48 49 42 49 54 of.INHIBIT-AUTOLOAD...If.INHIBIT
fe60 2d 41 55 54 4f 4c 4f 41 44 20 69 73 0a 6e 69 6c 2c 20 74 68 65 20 66 69 6c 65 20 63 6f 6e 74 61 -AUTOLOAD.is.nil,.the.file.conta
fe80 69 6e 69 6e 67 20 74 68 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 6c 6c 20 ining.the.macro.definition.will.
fea0 62 65 20 6c 6f 61 64 65 64 0a 75 73 69 6e 67 20 60 6c 6f 61 64 2d 6c 69 62 72 61 72 79 27 20 61 be.loaded.using.`load-library'.a
fec0 6e 64 20 74 68 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 20 72 65 74 75 72 6e 65 64 nd.the.macro.definition.returned
fee0 20 61 73 20 6e 6f 72 6d 61 6c 2e 0a 49 66 20 49 4e 48 49 42 49 54 2d 41 55 54 4f 4c 4f 41 44 20 .as.normal..If.INHIBIT-AUTOLOAD.
ff00 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 6e 6f 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 6c 6f 61 is.non-nil,.no.files.will.be.loa
ff20 64 65 64 2c 20 61 6e 64 20 74 68 65 0a 76 61 6c 75 65 20 6f 66 20 44 45 46 49 4e 49 54 49 4f 4e ded,.and.the.value.of.DEFINITION
ff40 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 20 77 69 6c 6c 20 62 65 20 6e 69 6c 2e 22 0a 20 20 28 .in.the.result.will.be.nil."...(
ff60 69 66 20 28 6e 6f 74 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 66 6f 72 6d 29 0a 20 20 20 20 20 20 if.(not.(and.(consp.form).......
ff80 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 28 63 61 72 20 66 6f 72 6d 29 29 29 29 ..........(symbolp.(car.form))))
ffa0 0a 20 20 20 20 20 20 60 28 6e 69 6c 20 2e 20 6e 69 6c 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 .......`(nil...nil).....(let*.((
ffc0 68 65 61 64 20 28 63 61 72 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 head.(car.form))............(loc
ffe0 61 6c 2d 64 65 66 69 6e 69 74 69 6f 6e 20 28 61 73 73 6f 63 2d 64 65 66 61 75 6c 74 20 68 65 61 al-definition.(assoc-default.hea
10000 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 23 27 65 71 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 d.environment.#'eq))).......(if.
10020 6c 6f 63 61 6c 2d 64 65 66 69 6e 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 60 28 6d 61 63 local-definition...........`(mac
10040 72 6f 20 2e 20 2c 6c 6f 63 61 6c 2d 64 65 66 69 6e 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 ro...,local-definition).........
10060 28 6c 65 74 20 28 28 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 64 65 66 69 6e 69 74 69 6f 6e (let.((compiler-macro-definition
10080 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6d 61 63 72 6f 73 74 65 70 2d 65 ................(and.macrostep-e
100a0 78 70 61 6e 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 73 0a 20 20 20 20 20 20 20 20 20 20 xpand-compiler-macros...........
100c0 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 67 65 74 20 68 65 61 64 20 27 63 6f 6d 70 69 6c 65 ..........(or.(get.head.'compile
100e0 72 2d 6d 61 63 72 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-macro)........................
10100 20 28 67 65 74 20 68 65 61 64 20 27 63 6c 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 29 29 29 .(get.head.'cl-compiler-macro)))
10120 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 63 6f 6d 70 69 6c 65 72 2d 6d ))...........(if.(and.compiler-m
10140 61 63 72 6f 2d 64 65 66 69 6e 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 acro-definition.................
10160 20 20 20 28 6e 6f 74 20 28 65 71 20 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(not.(eq.form................
10180 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 .............(apply.compiler-mac
101a0 72 6f 2d 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 6d 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 ro-definition.form.(cdr.form))))
101c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f )...............`(compiler-macro
101e0 20 2e 20 2c 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 64 65 66 69 6e 69 74 69 6f 6e 29 0a 20 ...,compiler-macro-definition)..
10200 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 ...........(condition-case.nil..
10220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75 6e 20 28 69 6e 64 69 72 ...............(let.((fun.(indir
10240 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 68 65 61 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ect-function.head)))............
10260 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73 65 20 28 63 61 72 2d 73 61 66 65 20 66 75 6e 29 0a 20 .......(cl-case.(car-safe.fun)..
10280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 61 63 72 6f 29 0a 20 20 20 20 ...................((macro).....
102a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6d 61 63 72 6f 20 2e 20 2c 28 63 64 72 .................`(macro...,(cdr
102c0 20 66 75 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 75 .fun))).....................((au
102e0 74 6f 6c 6f 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 toload)......................(wh
10300 65 6e 20 28 6d 65 6d 71 20 28 6e 74 68 20 34 20 66 75 6e 29 20 27 28 6d 61 63 72 6f 20 74 29 29 en.(memq.(nth.4.fun).'(macro.t))
10320 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 68 69 ........................(if.inhi
10340 62 69 74 2d 61 75 74 6f 6c 6f 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bit-autoload....................
10360 20 20 20 20 20 20 20 20 60 28 6d 61 63 72 6f 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 ........`(macro...nil)..........
10380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 61 64 2d 6c 69 62 72 61 72 79 20 28 6e ................(load-library.(n
103a0 74 68 20 31 20 66 75 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th.1.fun))......................
103c0 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 69 6e 66 6f 20 ....(macrostep--macro-form-info.
103e0 66 6f 72 6d 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 form.nil))))....................
10400 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6e 69 6c 20 2e .(t......................`(nil..
10420 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 6f 69 64 2d 66 75 6e .nil))))...............(void-fun
10440 63 74 69 6f 6e 20 6e 69 6c 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 ction.nil))))))))..(defun.macros
10460 74 65 70 2d 65 78 70 61 6e 64 2d 31 20 28 66 6f 72 6d 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 0a tep-expand-1.(form.environment).
10480 20 20 22 52 65 74 75 72 6e 20 72 65 73 75 6c 74 20 6f 66 20 6d 61 63 72 6f 2d 65 78 70 61 6e 64 .."Return.result.of.macro-expand
104a0 69 6e 67 20 62 79 20 65 78 61 63 74 6c 79 20 6f 6e 65 20 73 74 65 70 20 74 68 65 20 74 6f 70 20 ing.by.exactly.one.step.the.top.
104c0 6c 65 76 65 6c 20 6f 66 20 46 4f 52 4d 2e 0a 54 68 69 73 20 69 73 20 64 6f 6e 65 20 77 69 74 68 level.of.FORM..This.is.done.with
104e0 69 6e 20 45 4e 56 49 52 4f 4e 4d 45 4e 54 2e 0a 0a 55 6e 6c 69 6b 65 20 60 6d 61 63 72 6f 65 78 in.ENVIRONMENT...Unlike.`macroex
10500 70 61 6e 64 27 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 63 6f pand',.this.function.does.not.co
10520 6e 74 69 6e 75 65 20 6d 61 63 72 6f 0a 65 78 70 61 6e 73 69 6f 6e 20 75 6e 74 69 6c 20 61 20 6e ntinue.macro.expansion.until.a.n
10540 6f 6e 2d 6d 61 63 72 6f 2d 63 61 6c 6c 20 72 65 73 75 6c 74 73 2e 22 0a 20 20 28 63 6c 2d 64 65 on-macro-call.results."...(cl-de
10560 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 74 79 70 65 20 2e 20 64 65 66 69 6e 69 74 structuring-bind.(type...definit
10580 69 6f 6e 29 0a 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 2d 6d 61 63 72 6f 2d 66 6f 72 ion).......(macrostep--macro-for
105a0 6d 2d 69 6e 66 6f 20 66 6f 72 6d 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 0a 20 20 20 20 28 63 6c m-info.form.environment).....(cl
105c0 2d 65 63 61 73 65 20 74 79 70 65 0a 20 20 20 20 20 20 28 28 6e 69 6c 29 0a 20 20 20 20 20 20 20 -ecase.type.......((nil)........
105e0 66 6f 72 6d 29 0a 20 20 20 20 20 20 28 28 6d 61 63 72 6f 29 0a 20 20 20 20 20 20 20 28 61 70 70 form).......((macro)........(app
10600 6c 79 20 64 65 66 69 6e 69 74 69 6f 6e 20 28 63 64 72 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 ly.definition.(cdr.form)))......
10620 20 28 28 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 .((compiler-macro)........(let.(
10640 28 65 78 70 61 6e 73 69 6f 6e 20 28 61 70 70 6c 79 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 (expansion.(apply.definition.for
10660 6d 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 m.(cdr.form))))..........(if.(eq
10680 75 61 6c 20 66 6f 72 6d 20 65 78 70 61 6e 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ual.form.expansion).............
106a0 20 28 65 72 72 6f 72 20 22 46 6f 72 6d 20 6c 65 66 74 20 75 6e 63 68 61 6e 67 65 64 20 62 79 20 .(error."Form.left.unchanged.by.
106c0 63 6f 6d 70 69 6c 65 72 20 6d 61 63 72 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 compiler.macro")............expa
106e0 6e 73 69 6f 6e 29 29 29 29 29 29 0a 0a 28 70 75 74 20 27 6d 61 63 72 6f 73 74 65 70 2d 67 72 61 nsion))))))..(put.'macrostep-gra
10700 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 66 61 69 6c 65 64 20 27 65 72 72 6f 72 2d 63 6f 6e 64 b-environment-failed.'error-cond
10720 69 74 69 6f 6e 73 0a 20 20 20 20 20 27 28 6d 61 63 72 6f 73 74 65 70 2d 67 72 61 62 2d 65 6e 76 itions......'(macrostep-grab-env
10740 69 72 6f 6e 6d 65 6e 74 2d 66 61 69 6c 65 64 20 65 72 72 6f 72 29 29 0a 0a 28 64 65 66 75 6e 20 ironment-failed.error))..(defun.
10760 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 20 28 macrostep-environment-at-point.(
10780 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 6f 63 61 6c 20 6d 61 63 72 6f 2d 65 78 70 61 )..."Return.the.local.macro-expa
107a0 6e 73 69 6f 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 20 61 nsion.environment.at.point,.if.a
107c0 6e 79 2e 0a 0a 54 68 65 20 6c 6f 63 61 6c 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 69 6e 63 6c 75 ny...The.local.environment.inclu
107e0 64 65 73 20 6d 61 63 72 6f 73 20 64 65 63 6c 61 72 65 64 20 62 79 20 61 6e 79 20 60 6d 61 63 72 des.macros.declared.by.any.`macr
10800 6f 6c 65 74 27 0a 6f 72 20 60 63 6c 2d 6d 61 63 72 6f 6c 65 74 27 20 66 6f 72 6d 73 20 73 75 72 olet'.or.`cl-macrolet'.forms.sur
10820 72 6f 75 6e 64 69 6e 67 20 70 6f 69 6e 74 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 62 79 20 61 6e rounding.point,.as.well.as.by.an
10840 79 20 6d 61 63 72 6f 0a 66 6f 72 6d 73 20 77 68 69 63 68 20 65 78 70 61 6e 64 20 69 6e 74 6f 20 y.macro.forms.which.expand.into.
10860 61 20 60 6d 61 63 72 6f 6c 65 74 27 2e 0a 0a 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 a.`macrolet'...The.return.value.
10880 69 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 28 4e 41 4d 45 20 2e 20 is.an.alist.of.elements.(NAME...
108a0 46 55 4e 43 54 49 4f 4e 29 2c 20 77 68 65 72 65 0a 4e 41 4d 45 20 69 73 20 74 68 65 20 73 79 6d FUNCTION),.where.NAME.is.the.sym
108c0 62 6f 6c 20 6c 6f 63 61 6c 6c 79 20 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 6d 61 63 72 6f 20 61 bol.locally.bound.to.the.macro.a
108e0 6e 64 20 46 55 4e 43 54 49 4f 4e 20 69 73 20 74 68 65 0a 6c 61 6d 62 64 61 20 65 78 70 72 65 73 nd.FUNCTION.is.the.lambda.expres
10900 73 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 69 74 73 20 65 78 70 61 6e 73 69 6f 6e 2e sion.that.returns.its.expansion.
10920 22 0a 20 20 3b 3b 20 49 66 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 20 6d 61 63 72 6f 20 66 6f "...;;.If.point.is.on.a.macro.fo
10940 72 6d 20 77 69 74 68 69 6e 20 61 6e 20 65 78 70 61 6e 73 69 6f 6e 20 69 6e 73 65 72 74 65 64 20 rm.within.an.expansion.inserted.
10960 62 79 0a 20 20 3b 3b 20 60 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 27 2c 20 by...;;.`macrostep-print-sexp',.
10980 61 20 6c 6f 63 61 6c 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 79 20 68 61 76 65 20 62 65 65 a.local.environment.may.have.bee
109a0 6e 0a 20 20 3b 3b 20 70 72 65 76 69 6f 75 73 6c 79 20 73 61 76 65 64 20 61 73 20 61 20 74 65 78 n...;;.previously.saved.as.a.tex
109c0 74 20 70 72 6f 70 65 72 74 79 2e 0a 20 20 28 6c 65 74 20 28 28 73 61 76 65 64 2d 65 6e 76 69 72 t.property....(let.((saved-envir
109e0 6f 6e 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 onment..........(get-text-proper
10a00 74 79 20 28 70 6f 69 6e 74 29 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e ty.(point).'macrostep-environmen
10a20 74 29 29 29 0a 20 20 20 20 28 69 66 20 73 61 76 65 64 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 20 t))).....(if.saved-environment..
10a40 20 20 20 20 20 20 20 73 61 76 65 64 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 20 20 20 20 20 20 3b .......saved-environment.......;
10a60 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 77 65 20 28 61 62 29 75 73 65 20 74 68 65 20 6d 61 63 72 ;.Otherwise,.we.(ab)use.the.macr
10a80 6f 2d 65 78 70 61 6e 64 65 72 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 0a 20 20 20 20 20 20 3b o-expander.to.return.the.......;
10aa0 3b 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 61 74 20 70 6f 69 6e 74 2e 20 20 49 66 20 70 6f 69 6e ;.environment.at.point...If.poin
10ac0 74 20 69 73 20 6e 6f 74 20 61 74 20 61 6e 20 65 76 61 6c 75 61 74 65 64 0a 20 20 20 20 20 20 3b t.is.not.at.an.evaluated.......;
10ae0 3b 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 66 6f 72 ;.position.in.the.containing.for
10b00 6d 2c 0a 20 20 20 20 20 20 3b 3b 20 60 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 m,.......;;.`macrostep-environme
10b20 6e 74 2d 61 74 2d 70 6f 69 6e 74 2d 31 27 20 77 69 6c 6c 20 72 61 69 73 65 20 61 6e 20 65 72 72 nt-at-point-1'.will.raise.an.err
10b40 6f 72 2c 20 61 6e 64 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 62 61 63 6b 20 75 70 20 70 72 6f 67 or,.and.......;;.we.back.up.prog
10b60 72 65 73 73 69 76 65 6c 79 20 74 68 72 6f 75 67 68 20 74 68 65 20 63 6f 6e 74 61 69 6e 69 6e 67 ressively.through.the.containing
10b80 20 66 6f 72 6d 73 20 75 6e 74 69 6c 0a 20 20 20 20 20 20 3b 3b 20 69 74 20 73 75 63 63 65 65 64 .forms.until.......;;.it.succeed
10ba0 73 2e 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 s........(save-excursion........
10bc0 20 28 63 61 74 63 68 20 27 64 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 74 .(catch.'done...........(while.t
10be0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c .............(condition-case.nil
10c00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 64 6f 6e 65 20 28 6d .................(throw.'done.(m
10c20 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 2d 31 29 acrostep-environment-at-point-1)
10c40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 67 72 61 62 2d )...............(macrostep-grab-
10c60 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 66 61 69 6c 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 environment-failed..............
10c80 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 ..(condition-case.nil...........
10ca0 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 73 65 78 70 29 0a 20 20 20 20 20 20 20 .........(backward-sexp)........
10cc0 20 20 20 20 20 20 20 20 20 20 28 73 63 61 6e 2d 65 72 72 6f 72 20 28 62 61 63 6b 77 61 72 64 2d ..........(scan-error.(backward-
10ce0 75 70 2d 6c 69 73 74 29 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f up-list)))))))))))..(defun.macro
10d00 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 2d 31 20 28 29 0a 20 step-environment-at-point-1.()..
10d20 20 22 41 74 74 65 6d 70 74 20 74 6f 20 65 78 74 72 61 63 74 20 74 68 65 20 6d 61 63 72 6f 20 65 ."Attempt.to.extract.the.macro.e
10d40 6e 76 69 72 6f 6e 6d 65 6e 74 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 61 63 74 69 76 65 20 nvironment.that.would.be.active.
10d60 61 74 20 70 6f 69 6e 74 2e 0a 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 6e 6f 74 20 61 74 20 61 6e at.point...If.point.is.not.at.an
10d80 20 65 76 61 6c 75 61 74 65 64 20 70 6f 73 69 74 69 6f 6e 20 77 69 74 68 69 6e 20 74 68 65 20 63 .evaluated.position.within.the.c
10da0 6f 6e 74 61 69 6e 69 6e 67 0a 66 6f 72 6d 2c 20 72 61 69 73 65 20 61 6e 20 65 72 72 6f 72 2e 22 ontaining.form,.raise.an.error."
10dc0 0a 20 20 3b 3b 20 4d 61 63 72 6f 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 20 61 72 65 20 65 78 74 ...;;.Macro.environments.are.ext
10de0 72 61 63 74 65 64 20 75 73 69 6e 67 20 45 6d 61 63 73 20 4c 69 73 70 27 73 20 62 75 69 6c 74 69 racted.using.Emacs.Lisp's.builti
10e00 6e 0a 20 20 3b 3b 20 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 20 6d 61 63 68 69 6e 65 72 79 n...;;.macro-expansion.machinery
10e20 2e 20 20 54 68 65 20 66 6f 72 6d 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 69 73 20 ...The.form.containing.point.is.
10e40 63 6f 70 69 65 64 0a 20 20 3b 3b 20 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 copied...;;.to.a.temporary.buffe
10e60 72 2c 20 61 6e 64 20 61 20 63 61 6c 6c 20 74 6f 0a 20 20 3b 3b 20 60 2d 2d 6d 61 63 72 6f 73 74 r,.and.a.call.to...;;.`--macrost
10e80 65 70 2d 67 72 61 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 2d 27 20 69 73 20 69 6e 73 65 72 74 ep-grab-environment--'.is.insert
10ea0 65 64 20 61 74 20 70 6f 69 6e 74 2e 20 20 54 68 69 73 0a 20 20 3b 3b 20 61 6c 74 65 72 65 64 20 ed.at.point...This...;;.altered.
10ec0 66 6f 72 6d 20 69 73 20 74 68 65 6e 20 66 75 6c 6c 79 20 6d 61 63 72 6f 2d 65 78 70 61 6e 64 65 form.is.then.fully.macro-expande
10ee0 64 2c 20 69 6e 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 20 20 3b 3b 20 77 68 65 72 65 20 d,.in.an.environment...;;.where.
10f00 60 2d 2d 6d 61 63 72 6f 73 74 65 70 2d 67 72 61 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 2d 27 `--macrostep-grab-environment--'
10f20 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 61 20 6d 61 63 72 6f 0a 20 20 3b 3b 20 77 68 69 63 .is.defined.as.a.macro...;;.whic
10f40 68 20 74 68 72 6f 77 73 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 74 6f 20 61 20 75 6e h.throws.the.environment.to.a.un
10f60 69 71 75 65 6c 79 2d 67 65 6e 65 72 61 74 65 64 20 74 61 67 2e 0a 20 20 28 6c 65 74 2a 20 28 28 iquely-generated.tag....(let*.((
10f80 70 6f 69 6e 74 2d 61 74 2d 74 6f 70 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 point-at-top-level...........(sa
10fa0 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 ve-excursion.............(while.
10fc0 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 62 61 63 6b 77 61 72 64 2d 75 70 2d 6c 69 73 74 (ignore-errors.(backward-up-list
10fe0 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 ).t)).............(point))).....
11000 20 20 20 20 20 28 65 6e 63 6c 6f 73 69 6e 67 2d 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 28 .....(enclosing-form...........(
11020 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 70 6f 69 6e 74 2d 61 74 2d 74 6f 70 2d 6c 65 buffer-substring.point-at-top-le
11040 76 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 vel.............................
11060 28 73 63 61 6e 2d 73 65 78 70 73 20 70 6f 69 6e 74 2d 61 74 2d 74 6f 70 2d 6c 65 76 65 6c 20 31 (scan-sexps.point-at-top-level.1
11080 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 20 28 2d 20 28 70 6f 69 6e 74 )))..........(position.(-.(point
110a0 29 20 70 6f 69 6e 74 2d 61 74 2d 74 6f 70 2d 6c 65 76 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 ).point-at-top-level))..........
110c0 28 74 61 67 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6d 61 63 72 6f 73 74 65 70 2d 67 72 61 (tag.(make-symbol."macrostep-gra
110e0 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 74 61 67 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 67 b-environment-tag"))..........(g
11100 72 61 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 27 2d 2d 6d 61 63 72 6f 73 74 65 70 2d 67 72 61 rab-environment.'--macrostep-gra
11120 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 2d 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 70 6f 73 b-environment--)).....(if.(=.pos
11140 69 74 69 6f 6e 20 30 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 28 77 69 74 68 ition.0).........nil.......(with
11160 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 2d 6c 69 73 70 -temp-buffer.........(emacs-lisp
11180 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 65 6e 63 6c 6f 73 69 6e 67 -mode).........(insert.enclosing
111a0 2d 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 70 6f -form).........(goto-char.(+.(po
111c0 69 6e 74 2d 6d 69 6e 29 20 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 69 int-min).position)).........(pri
111e0 6e 31 20 60 28 2c 67 72 61 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 20 28 63 75 72 72 65 6e 74 n1.`(,grab-environment).(current
11200 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 6f 72 6d 20 28 72 -buffer)).........(let.((form.(r
11220 65 61 64 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 ead.(copy-marker.(point-min)))))
11240 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 74 61 67 0a 20 20 20 20 20 20 20 20 20 20 ...........(catch.tag...........
11260 20 20 28 63 6c 2d 6c 65 74 66 20 28 28 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 23 27 ..(cl-letf.(((symbol-function.#'
11280 6d 65 73 73 61 67 65 29 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 23 27 66 6f 72 6d message).(symbol-function.#'form
112a0 61 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 72 at)))...............(with-no-war
112c0 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 nings.................(ignore-er
112e0 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 65 78 70 rors...................(macroexp
11300 61 6e 64 2d 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 63 6c 2d and-all....................`(cl-
11320 6d 61 63 72 6f 6c 65 74 20 28 28 2c 67 72 61 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 28 26 65 macrolet.((,grab-environment.(&e
11340 6e 76 69 72 6f 6e 6d 65 6e 74 20 65 6e 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nvironment.env).................
11360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 2c 74 61 67 ....................(throw.',tag
11380 20 65 6e 76 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 66 .env))).......................,f
113a0 6f 72 6d 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 6d 61 orm))))).............(signal.'ma
113c0 63 72 6f 73 74 65 70 2d 67 72 61 62 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 66 61 69 6c 65 64 20 crostep-grab-environment-failed.
113e0 6e 69 6c 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c nil)))))))..(defun.macrostep-col
11400 6c 65 63 74 2d 6d 61 63 72 6f 2d 66 6f 72 6d 73 20 28 66 6f 72 6d 20 26 6f 70 74 69 6f 6e 61 6c lect-macro-forms.(form.&optional
11420 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 0a 20 20 22 49 64 65 6e 74 69 66 79 20 73 75 62 2d 66 6f .environment)..."Identify.sub-fo
11440 72 6d 73 20 6f 66 20 46 4f 52 4d 20 77 68 69 63 68 20 75 6e 64 65 72 67 6f 20 6d 61 63 72 6f 2d rms.of.FORM.which.undergo.macro-
11460 65 78 70 61 6e 73 69 6f 6e 2e 0a 0a 46 4f 52 4d 20 69 73 20 61 6e 20 45 6d 61 63 73 20 4c 69 73 expansion...FORM.is.an.Emacs.Lis
11480 70 20 66 6f 72 6d 2e 20 20 45 4e 56 49 52 4f 4e 4d 45 4e 54 20 69 73 20 61 20 6c 6f 63 61 6c 20 p.form...ENVIRONMENT.is.a.local.
114a0 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6f 66 0a 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 73 environment.of.macro.definitions
114c0 2e 0a 0a 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 61 20 6c 69 73 74 20 6f 66 ...The.return.value.is.a.list.of
114e0 20 74 77 6f 20 65 6c 65 6d 65 6e 74 73 2c 20 28 4d 41 43 52 4f 2d 46 4f 52 4d 2d 41 4c 49 53 54 .two.elements,.(MACRO-FORM-ALIST
11500 0a 43 4f 4d 50 49 4c 45 52 2d 4d 41 43 52 4f 2d 46 4f 52 4d 53 29 2e 0a 0a 4d 41 43 52 4f 2d 46 .COMPILER-MACRO-FORMS)...MACRO-F
11520 4f 52 4d 2d 41 4c 49 53 54 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 65 6c 65 6d 65 6e 74 ORM-ALIST.is.an.alist.of.element
11540 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 53 55 42 46 4f 52 4d 0a 2e 20 45 4e 56 49 52 4f 4e s.of.the.form.(SUBFORM...ENVIRON
11560 4d 45 4e 54 29 2c 20 77 68 65 72 65 20 53 55 42 46 4f 52 4d 20 69 73 20 61 20 66 6f 72 6d 20 77 MENT),.where.SUBFORM.is.a.form.w
11580 68 69 63 68 20 75 6e 64 65 72 67 6f 65 73 0a 6d 61 63 72 6f 2d 65 78 70 61 6e 73 69 6f 6e 20 69 hich.undergoes.macro-expansion.i
115a0 6e 20 74 68 65 20 63 6f 75 72 73 65 20 6f 66 20 65 78 70 61 6e 64 69 6e 67 20 46 4f 52 4d 2c 20 n.the.course.of.expanding.FORM,.
115c0 61 6e 64 20 45 4e 56 49 52 4f 4e 4d 45 4e 54 0a 69 73 20 74 68 65 20 6c 6f 63 61 6c 20 6d 61 63 and.ENVIRONMENT.is.the.local.mac
115e0 72 6f 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 69 6e 20 66 6f 72 63 65 20 77 68 65 6e 20 69 74 20 ro.environment.in.force.when.it.
11600 69 73 20 65 78 70 61 6e 64 65 64 2e 0a 0a 43 4f 4d 50 49 4c 45 52 2d 4d 41 43 52 4f 2d 46 4f 52 is.expanded...COMPILER-MACRO-FOR
11620 4d 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 73 75 62 66 6f 72 6d 73 20 77 68 69 63 68 20 77 MS.is.a.list.of.subforms.which.w
11640 6f 75 6c 64 20 62 65 0a 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 61 20 63 6f 6d 70 69 6c 65 ould.be.compiled.using.a.compile
11660 72 20 6d 61 63 72 6f 2e 20 20 53 69 6e 63 65 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 74 61 6e r.macro...Since.there.is.no.stan
11680 64 61 72 64 20 77 61 79 0a 74 6f 20 70 72 6f 76 69 64 65 20 61 20 6c 6f 63 61 6c 20 63 6f 6d 70 dard.way.to.provide.a.local.comp
116a0 69 6c 65 72 2d 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 20 45 6d 61 63 73 20 4c iler-macro.definition.in.Emacs.L
116c0 69 73 70 2c 20 6e 6f 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 6c 6f 63 61 6c 20 65 6e 76 69 isp,.no.corresponding.local.envi
116e0 72 6f 6e 6d 65 6e 74 73 20 61 72 65 20 63 6f 6c 6c 65 63 74 65 64 20 66 6f 72 20 74 68 65 73 65 ronments.are.collected.for.these
11700 2e 0a 0a 46 6f 72 6d 73 20 61 6e 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 20 61 72 65 20 65 78 ...Forms.and.environments.are.ex
11720 74 72 61 63 74 65 64 20 66 72 6f 6d 20 46 4f 52 4d 20 62 79 20 69 6e 73 74 72 75 6d 65 6e 74 69 tracted.from.FORM.by.instrumenti
11740 6e 67 0a 45 6d 61 63 73 27 73 20 62 75 69 6c 74 69 6e 20 60 6d 61 63 72 6f 65 78 70 61 6e 64 27 ng.Emacs's.builtin.`macroexpand'
11760 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 63 61 6c 6c 69 6e 67 0a 60 6d 61 63 72 6f 65 78 70 61 .function.and.calling.`macroexpa
11780 6e 64 2d 61 6c 6c 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6d 61 63 72 6f 2d 66 6f 72 6d 2d 61 nd-all'."...(let*.((macro-form-a
117a0 6c 69 73 74 20 27 28 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 list.'())..........(compiler-mac
117c0 72 6f 2d 66 6f 72 6d 73 20 27 28 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 72 69 64 65 ro-forms.'())..........(override
117e0 20 28 6c 61 6d 62 64 61 20 28 72 65 61 6c 2d 6d 61 63 72 6f 65 78 70 61 6e 64 20 66 6f 72 6d 20 .(lambda.(real-macroexpand.form.
11800 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 environment.&rest.args).........
11820 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 78 70 61 6e 73 69 6f 6e 0a 20 20 .............(let.((expansion...
11840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 ..........................(apply
11860 20 72 65 61 6c 2d 6d 61 63 72 6f 65 78 70 61 6e 64 20 66 6f 72 6d 20 65 6e 76 69 72 6f 6e 6d 65 .real-macroexpand.form.environme
11880 6e 74 20 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.args)))......................
118a0 20 20 28 63 6f 6e 64 20 28 28 6e 6f 74 20 28 65 71 20 65 78 70 61 6e 73 69 6f 6e 20 66 6f 72 6d ..(cond.((not.(eq.expansion.form
118c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))..............................
118e0 20 28 73 65 74 71 20 6d 61 63 72 6f 2d 66 6f 72 6d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 .(setq.macro-form-alist.........
11900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e ............................(con
11920 73 20 28 63 6f 6e 73 20 66 6f 72 6d 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 0a 20 20 20 20 20 20 s.(cons.form.environment).......
11940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11960 20 20 20 20 6d 61 63 72 6f 2d 66 6f 72 6d 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 ....macro-form-alist))).........
11980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 63 6f 6e 73 .....................((and.(cons
119a0 70 20 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.form).........................
119c0 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 28 63 61 72 20 66 6f 72 6d 29 29 0a ...........(symbolp.(car.form)).
119e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11a00 20 20 20 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 ...macrostep-expand-compiler-mac
11a20 72 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ros.............................
11a40 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 .......(not.(eq.form............
11a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11a80 20 28 63 6c 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 65 78 70 61 6e 64 20 66 6f 72 6d 29 29 .(cl-compiler-macroexpand.form))
11aa0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))..............................
11ac0 20 28 73 65 74 71 20 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 6f 72 6d 73 0a 20 20 20 20 .(setq.compiler-macro-forms.....
11ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11b00 28 63 6f 6e 73 20 66 6f 72 6d 20 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 6f 72 6d 73 29 (cons.form.compiler-macro-forms)
11b20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 6e )))........................expan
11b40 73 69 6f 6e 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 6d 61 63 72 6f 6c 65 74 20 28 28 77 69 74 68 sion)))).....(cl-macrolet.((with
11b60 2d 6f 76 65 72 72 69 64 65 20 28 66 6e 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 20 20 20 20 -override.(fn.&rest.body).......
11b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 63 6c 2d 6c 65 74 66 20 28 28 28 73 79 6d 62 6f ..............`(cl-letf.(((symbo
11ba0 6c 2d 66 75 6e 63 74 69 6f 6e 20 2c 66 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l-function.,fn).................
11bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 ................(apply-partially
11be0 20 6f 76 65 72 72 69 64 65 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 2c 66 6e .override.(indirect-function.,fn
11c00 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 62 6f ))))........................,@bo
11c20 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6d 61 63 dy))...................(with-mac
11c40 72 6f 65 78 70 61 6e 64 2d 31 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 roexpand-1.(&rest.body).........
11c60 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 ............(if.(<.emacs-major-v
11c80 65 72 73 69 6f 6e 20 33 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ersion.30)......................
11ca0 20 20 20 60 28 70 72 6f 67 6e 20 2c 40 62 6f 64 79 29 20 60 28 77 69 74 68 2d 6f 76 65 72 72 69 ...`(progn.,@body).`(with-overri
11cc0 64 65 20 23 27 6d 61 63 72 6f 65 78 70 61 6e 64 2d 31 20 2c 40 62 6f 64 79 29 29 29 0a 20 20 20 de.#'macroexpand-1.,@body)))....
11ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6d 61 63 72 6f 65 78 70 61 6e 64 ...............(with-macroexpand
11d00 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(&rest.body)...................
11d20 20 20 60 28 77 69 74 68 2d 6f 76 65 72 72 69 64 65 20 23 27 6d 61 63 72 6f 65 78 70 61 6e 64 20 ..`(with-override.#'macroexpand.
11d40 2c 40 62 6f 64 79 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 6d 61 63 72 6f 65 78 70 61 6e ,@body))).......(with-macroexpan
11d60 64 2d 31 0a 20 20 20 20 20 20 20 28 77 69 74 68 2d 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 d-1........(with-macroexpand....
11d80 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 28 6d .....(ignore-errors...........(m
11da0 61 63 72 6f 65 78 70 61 6e 64 2d 61 6c 6c 20 66 6f 72 6d 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 acroexpand-all.form.environment)
11dc0 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 6d 61 63 72 6f 2d 66 6f 72 6d 2d 61 6c 69 73 74 20 )))).....(list.macro-form-alist.
11de0 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 6f 72 6d 73 29 29 29 0a 0a 28 64 65 66 76 61 72 compiler-macro-forms)))..(defvar
11e00 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 65 63 74 65 64 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d .macrostep-collected-macro-form-
11e20 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 6f 66 20 6d 61 63 72 6f 20 66 alist.nil..."An.alist.of.macro.f
11e40 6f 72 6d 73 20 61 6e 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 2e 0a 43 6f 6e 74 72 6f 6c 73 20 orms.and.environments..Controls.
11e60 74 68 65 20 70 72 69 6e 74 69 6e 67 20 6f 66 20 73 75 62 2d 66 6f 72 6d 73 20 69 6e 20 60 6d 61 the.printing.of.sub-forms.in.`ma
11e80 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 crostep-print-sexp'.")..(defvar.
11ea0 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 65 63 74 65 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 macrostep-collected-compiler-mac
11ec0 72 6f 2d 66 6f 72 6d 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 63 6f 6d 70 69 6c ro-forms.nil..."A.list.of.compil
11ee0 65 72 2d 6d 61 63 72 6f 20 66 6f 72 6d 73 20 74 6f 20 62 65 20 68 69 67 68 6c 69 67 68 74 65 64 er-macro.forms.to.be.highlighted
11f00 20 69 6e 20 60 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 27 2e 22 29 0a 0a 28 .in.`macrostep-print-sexp'.")..(
11f20 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 70 70 20 28 73 65 78 70 20 65 6e 76 69 72 6f 6e defun.macrostep-pp.(sexp.environ
11f40 6d 65 6e 74 29 0a 20 20 22 50 72 65 74 74 79 2d 70 72 69 6e 74 20 53 45 58 50 2c 20 66 6f 6e 74 ment)..."Pretty-print.SEXP,.font
11f60 69 66 79 69 6e 67 20 6d 61 63 72 6f 20 66 6f 72 6d 73 20 61 6e 64 20 75 6e 69 6e 74 65 72 6e 65 ifying.macro.forms.and.uninterne
11f80 64 20 73 79 6d 62 6f 6c 73 2e 0a 54 68 69 73 20 69 73 20 64 6f 6e 65 20 77 69 74 68 69 6e 20 45 d.symbols..This.is.done.within.E
11fa0 4e 56 49 52 4f 4e 4d 45 4e 54 2e 22 0a 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 NVIRONMENT."...(cl-destructuring
11fc0 2d 62 69 6e 64 0a 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 65 63 74 65 64 -bind.......(macrostep-collected
11fe0 2d 6d 61 63 72 6f 2d 66 6f 72 6d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 6d 61 63 72 6f 73 74 -macro-form-alist........macrost
12000 65 70 2d 63 6f 6c 6c 65 63 74 65 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 6f 72 6d ep-collected-compiler-macro-form
12020 73 29 0a 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 65 63 74 2d 6d 61 63 72 s).......(macrostep-collect-macr
12040 6f 2d 66 6f 72 6d 73 20 73 65 78 70 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 29 0a 20 20 20 20 28 6c o-forms.sexp.environment).....(l
12060 65 74 20 28 28 70 72 69 6e 74 2d 71 75 6f 74 65 64 20 74 29 29 0a 20 20 20 20 20 20 28 6d 61 63 et.((print-quoted.t)).......(mac
12080 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 20 73 65 78 70 29 0a 20 20 20 20 20 20 3b 3b rostep-print-sexp.sexp).......;;
120a0 20 50 6f 69 6e 74 20 69 73 20 6e 6f 77 20 61 66 74 65 72 20 74 68 65 20 65 78 70 61 6e 64 65 64 .Point.is.now.after.the.expanded
120c0 20 66 6f 72 6d 3b 20 70 72 65 74 74 79 2d 70 72 69 6e 74 20 69 74 0a 20 20 20 20 20 20 28 73 61 .form;.pretty-print.it.......(sa
120e0 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 ve-restriction.........(narrow-t
12100 6f 2d 72 65 67 69 6f 6e 20 28 73 63 61 6e 2d 73 65 78 70 73 20 28 70 6f 69 6e 74 29 20 2d 31 29 o-region.(scan-sexps.(point).-1)
12120 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f .(point)).........(save-excursio
12140 6e 0a 20 20 20 20 20 20 20 20 20 20 28 70 70 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 n...........(pp-buffer).........
12160 20 20 3b 3b 20 52 65 6d 6f 76 65 20 74 68 65 20 65 78 74 72 61 20 6e 65 77 6c 69 6e 65 20 69 6e ..;;.Remove.the.extra.newline.in
12180 73 65 72 74 65 64 20 62 79 20 70 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 67 serted.by.pp-buffer...........(g
121a0 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 oto-char.(point-max))...........
121c0 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 (delete-region............(point
121e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 73 6b )............(save-excursion.(sk
12200 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 20 5c 74 5c 6e 22 29 20 28 70 6f 69 6e ip-chars-backward.".\t\n").(poin
12220 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 64 65 6e 74 20 74 68 65 20 6e 65 77 6c t)))).........;;.Indent.the.newl
12240 79 2d 69 6e 73 65 72 74 65 64 20 66 6f 72 6d 20 69 6e 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 y-inserted.form.in.context......
12260 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 ...(widen).........(save-excursi
12280 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 73 65 78 70 29 0a 20 20 20 on...........(backward-sexp)....
122a0 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 73 65 78 70 29 29 29 29 29 29 0a 0a 3b 3b 20 54 68 .......(indent-sexp))))))..;;.Th
122c0 69 73 20 6d 75 73 74 20 62 65 20 64 65 66 69 6e 65 64 20 62 65 66 6f 72 65 20 60 6d 61 63 72 6f is.must.be.defined.before.`macro
122e0 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 27 3a 0a 28 64 65 66 6d 61 63 72 6f 20 6d 61 63 72 step-print-sexp':.(defmacro.macr
12300 6f 73 74 65 70 2d 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 20 26 72 65 73 74 20 70 6c 69 ostep-propertize.(form.&rest.pli
12320 73 74 29 0a 20 20 22 45 76 61 6c 75 61 74 65 20 46 4f 52 4d 2c 20 61 70 70 6c 79 69 6e 67 20 73 st)..."Evaluate.FORM,.applying.s
12340 79 6e 74 61 78 20 70 72 6f 70 65 72 74 69 65 73 20 69 6e 20 50 4c 49 53 54 20 74 6f 20 61 6e 79 yntax.properties.in.PLIST.to.any
12360 20 69 6e 73 65 72 74 65 64 20 74 65 78 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 .inserted.text."...(declare.(ind
12380 65 6e 74 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 62 75 67 20 28 26 72 65 73 74 20 ent.1)............(debug.(&rest.
123a0 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 6d 61 6b 65 2d 73 79 6d form)))...(let.((start.(make-sym
123c0 62 6f 6c 20 22 73 74 61 72 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 73 74 61 72 bol."start"))).....`(let.((,star
123e0 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 t.(point)))........(prog1.......
12400 20 20 20 20 20 2c 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 2c 40 28 63 6c 2d 6c 6f 6f 70 20 66 .....,form..........,@(cl-loop.f
12420 6f 72 20 28 6b 65 79 20 76 61 6c 75 65 29 20 6f 6e 20 70 6c 69 73 74 20 62 79 20 23 27 63 64 64 or.(key.value).on.plist.by.#'cdd
12440 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 60 28 r.....................collect.`(
12460 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 2c 73 74 61 72 74 20 28 70 6f 69 6e 74 29 put-text-property.,start.(point)
12480 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
124a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 6b 65 79 20 2c 76 61 6c 75 65 29 29 29 29 .................,key.,value))))
124c0 29 29 0a 0a 28 64 65 66 75 6e 20 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 20 ))..(defun.macrostep-print-sexp.
124e0 28 73 65 78 70 29 0a 20 20 22 49 6e 73 65 72 74 20 53 45 58 50 20 6c 69 6b 65 20 60 70 72 69 6e (sexp)..."Insert.SEXP.like.`prin
12500 74 27 2c 20 66 6f 6e 74 69 66 79 69 6e 67 20 6d 61 63 72 6f 20 66 6f 72 6d 73 20 61 6e 64 20 75 t',.fontifying.macro.forms.and.u
12520 6e 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f 6c 73 2e 0a 0a 46 6f 6e 74 69 66 69 65 73 20 75 6e ninterned.symbols...Fontifies.un
12540 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f 6c 73 20 61 6e 64 20 6d 61 63 72 6f 20 66 6f 72 6d 73 interned.symbols.and.macro.forms
12560 20 75 73 69 6e 67 0a 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 27 20 70 72 6f 70 65 72 74 79 .using.`font-lock-face'.property
12580 2c 20 61 6e 64 20 73 61 76 65 73 20 74 68 65 20 61 63 74 75 61 6c 20 74 65 78 74 20 6f 66 20 53 ,.and.saves.the.actual.text.of.S
125a0 45 58 50 27 73 0a 73 75 62 2d 66 6f 72 6d 73 20 61 73 20 74 68 65 20 60 6d 61 63 72 6f 73 74 65 EXP's.sub-forms.as.the.`macroste
125c0 70 2d 65 78 70 61 6e 64 65 64 2d 74 65 78 74 27 20 74 65 78 74 20 70 72 6f 70 65 72 74 79 20 73 p-expanded-text'.text.property.s
125e0 6f 20 74 68 61 74 0a 61 6e 79 20 75 6e 69 6e 74 65 72 6e 65 64 20 73 79 6d 62 6f 6c 73 20 63 61 o.that.any.uninterned.symbols.ca
12600 6e 20 62 65 20 72 65 75 73 65 64 20 69 6e 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 73 20 n.be.reused.in.macro.expansions.
12620 6f 66 20 74 68 65 0a 73 75 62 2d 66 6f 72 6d 73 2e 20 20 53 65 65 20 61 6c 73 6f 20 60 6d 61 63 of.the.sub-forms...See.also.`mac
12640 72 6f 73 74 65 70 2d 73 65 78 70 2d 61 74 2d 70 6f 69 6e 74 27 2e 0a 0a 4d 61 63 72 6f 20 61 6e rostep-sexp-at-point'...Macro.an
12660 64 20 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 20 66 6f 72 6d 73 20 77 69 74 68 69 6e 20 53 45 d.compiler-macro.forms.within.SE
12680 58 50 20 61 72 65 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 0a 63 6f 6d 70 61 72 69 73 6f 6e 20 XP.are.identified.by.comparison.
126a0 77 69 74 68 20 74 68 65 20 60 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 65 63 74 65 64 2d 6d 61 with.the.`macrostep-collected-ma
126c0 63 72 6f 2d 66 6f 72 6d 2d 61 6c 69 73 74 27 20 61 6e 64 0a 60 6d 61 63 72 6f 73 74 65 70 2d 63 cro-form-alist'.and.`macrostep-c
126e0 6f 6c 6c 65 63 74 65 64 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 6f 72 6d 73 27 20 76 ollected-compiler-macro-forms'.v
12700 61 72 69 61 62 6c 65 73 2c 20 77 68 69 63 68 0a 73 68 6f 75 6c 64 20 62 65 20 64 79 6e 61 6d 69 ariables,.which.should.be.dynami
12720 63 61 6c 6c 79 20 6c 65 74 2d 62 6f 75 6e 64 20 61 72 6f 75 6e 64 20 63 61 6c 6c 73 20 74 6f 20 cally.let-bound.around.calls.to.
12740 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 73 79 6d this.function."...(cond....((sym
12760 62 6f 6c 70 20 73 65 78 70 29 0a 20 20 20 20 3b 3b 20 46 6f 6e 74 69 66 79 20 67 65 6e 73 79 6d bolp.sexp).....;;.Fontify.gensym
12780 73 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 65 71 20 73 65 78 70 20 28 69 6e 74 65 72 6e 2d s.....(if.(not.(eq.sexp.(intern-
127a0 73 6f 66 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 65 78 70 29 29 29 29 0a 20 20 20 20 20 soft.(symbol-name.sexp))))......
127c0 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 ...(macrostep-propertize........
127e0 20 20 20 20 20 28 70 72 69 6e 31 20 73 65 78 70 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 .....(prin1.sexp.(current-buffer
12800 29 29 0a 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 28 6d 61 ))...........'font-lock-face.(ma
12820 63 72 6f 73 74 65 70 2d 67 65 74 2d 67 65 6e 73 79 6d 2d 66 61 63 65 20 73 65 78 70 29 29 0a 20 crostep-get-gensym-face.sexp))..
12840 20 20 20 20 20 3b 3b 20 50 72 69 6e 74 20 6f 74 68 65 72 20 73 79 6d 62 6f 6c 73 20 61 73 20 6e .....;;.Print.other.symbols.as.n
12860 6f 72 6d 61 6c 0a 20 20 20 20 20 20 28 70 72 69 6e 31 20 73 65 78 70 20 28 63 75 72 72 65 6e 74 ormal.......(prin1.sexp.(current
12880 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 20 20 20 28 28 6c 69 73 74 70 20 73 65 78 70 29 0a 20 20 -buffer)))).....((listp.sexp)...
128a0 20 20 3b 3b 20 50 72 69 6e 74 20 71 75 6f 74 65 64 20 61 6e 64 20 71 75 61 73 69 71 75 6f 74 65 ..;;.Print.quoted.and.quasiquote
128c0 64 20 66 6f 72 6d 73 20 6e 69 63 65 6c 79 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 68 65 61 64 20 d.forms.nicely......(let.((head.
128e0 28 63 61 72 20 73 65 78 70 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 28 (car.sexp))).......(cond.((and.(
12900 65 71 20 68 65 61 64 20 27 71 75 6f 74 65 29 20 20 20 20 20 20 3b 20 71 75 6f 74 65 0a 20 20 20 eq.head.'quote)......;.quote....
12920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6c 65 6e 67 74 68 20 73 65 78 70 29 20 ...............(=.(length.sexp).
12940 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 27 22 29 0a 20 20 2))..............(insert."'")...
12960 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 ...........(macrostep-print-sexp
12980 20 28 63 61 64 72 20 73 65 78 70 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e .(cadr.sexp)))..............((an
129a0 64 20 28 65 71 20 68 65 61 64 20 27 5c 60 29 20 20 20 20 20 20 20 20 20 3b 20 62 61 63 6b 71 75 d.(eq.head.'\`).........;.backqu
129c0 6f 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6c 65 6e 67 74 68 ote...................(=.(length
129e0 20 73 65 78 70 29 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 73 73 .sexp).2))..............(if.(ass
12a00 71 20 73 65 78 70 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 65 63 74 65 64 2d 6d 61 63 72 6f q.sexp.macrostep-collected-macro
12a20 2d 66 6f 72 6d 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d -form-alist)..................(m
12a40 61 63 72 6f 73 74 65 70 2d 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 acrostep-propertize.............
12a60 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 60 22 29 0a 20 20 20 20 20 20 20 20 20 20 .........(insert."`")...........
12a80 20 20 20 20 20 20 20 20 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 6e 64 65 64 2d 74 65 78 .........'macrostep-expanded-tex
12aa0 74 20 73 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 63 72 6f t.sexp....................'macro
12ac0 73 74 65 70 2d 6d 61 63 72 6f 2d 73 74 61 72 74 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 step-macro-start.t..............
12ae0 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 6d 61 63 72 6f 73 74 65 70 ......'font-lock-face.'macrostep
12b00 2d 6d 61 63 72 6f 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 -macro-face)................(ins
12b20 65 72 74 20 22 60 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 ert."`"))..............(macroste
12b40 70 2d 70 72 69 6e 74 2d 73 65 78 70 20 28 63 61 64 72 20 73 65 78 70 29 29 29 0a 0a 20 20 20 20 p-print-sexp.(cadr.sexp)))......
12b60 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6d 65 6d 71 20 68 65 61 64 20 27 28 5c 2c 20 5c 2c ........((and.(memq.head.'(\,.\,
12b80 40 29 29 20 3b 20 75 6e 71 75 6f 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 @)).;.unquote...................
12ba0 28 3d 20 28 6c 65 6e 67 74 68 20 73 65 78 70 29 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (=.(length.sexp).2))............
12bc0 20 20 28 70 72 69 6e 63 20 68 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a ..(princ.head.(current-buffer)).
12be0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 .............(macrostep-print-se
12c00 78 70 20 28 63 61 64 72 20 73 65 78 70 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 xp.(cadr.sexp)))..............(t
12c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6f 74 68 65 ..........................;.othe
12c40 72 20 6c 69 73 74 20 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 73 r.list.form..............(cl-des
12c60 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 6d 61 63 72 6f 3f 20 2e 20 65 6e 76 69 72 6f tructuring-bind.(macro?...enviro
12c80 6e 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 73 73 nment)..................(or.(ass
12ca0 71 20 73 65 78 70 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 65 63 74 65 64 2d 6d 61 63 72 6f q.sexp.macrostep-collected-macro
12cc0 2d 66 6f 72 6d 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -form-alist)....................
12ce0 20 20 27 28 6e 69 6c 20 2e 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ..'(nil...nil))................(
12d00 6c 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 63 6f 6d 70 69 6c 65 let....................((compile
12d20 72 2d 6d 61 63 72 6f 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d r-macro?......................(m
12d40 65 6d 71 20 73 65 78 70 20 6d 61 63 72 6f 73 74 65 70 2d 63 6f 6c 6c 65 63 74 65 64 2d 63 6f 6d emq.sexp.macrostep-collected-com
12d60 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 6f 72 6d 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 piler-macro-forms)))............
12d80 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 6d 61 63 72 6f 3f 20 63 6f 6d 70 69 6c 65 72 2d 6d 61 ......(if.(or.macro?.compiler-ma
12da0 63 72 6f 3f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 cro?)......................(prog
12dc0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 61 76 65 n........................;;.Save
12de0 20 74 68 65 20 72 65 61 6c 20 65 78 70 61 6e 73 69 6f 6e 20 61 73 20 61 20 74 65 78 74 20 70 72 .the.real.expansion.as.a.text.pr
12e00 6f 70 65 72 74 79 20 6f 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 operty.on.the...................
12e20 20 20 20 20 20 3b 3b 20 6f 70 65 6e 69 6e 67 20 70 61 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 .....;;.opening.paren...........
12e40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 70 72 6f 70 65 72 74 69 .............(macrostep-properti
12e60 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 ze.........................(inse
12e80 72 74 20 22 28 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rt."(").........................
12ea0 27 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 73 74 61 72 74 20 74 0a 20 20 20 20 20 20 20 'macrostep-macro-start.t........
12ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 78 70 61 .................'macrostep-expa
12ee0 6e 64 65 64 2d 74 65 78 74 20 73 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nded-text.sexp..................
12f00 20 20 20 20 20 20 20 27 6d 61 63 72 6f 73 74 65 70 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 65 6e .......'macrostep-environment.en
12f20 76 69 72 6f 6e 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 vironment)......................
12f40 20 20 3b 3b 20 46 6f 6e 74 69 66 79 20 74 68 65 20 68 65 61 64 20 6f 66 20 74 68 65 20 6d 61 63 ..;;.Fontify.the.head.of.the.mac
12f60 72 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f ro........................(macro
12f80 73 74 65 70 2d 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 step-propertize.................
12fa0 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 20 68 65 ........(macrostep-print-sexp.he
12fc0 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e ad).........................'fon
12fe0 74 2d 6c 6f 63 6b 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-lock-face.....................
13000 20 20 20 20 28 69 66 20 6d 61 63 72 6f 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(if.macro?..................
13020 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 63 72 6f 73 74 65 70 2d 6d 61 63 72 6f 2d 66 61 63 65 ...........'macrostep-macro-face
13040 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 63 72 ...........................'macr
13060 6f 73 74 65 70 2d 63 6f 6d 70 69 6c 65 72 2d 6d 61 63 72 6f 2d 66 61 63 65 29 29 29 0a 20 20 20 ostep-compiler-macro-face)))....
13080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 6f 74 20 61 20 6d 61 63 72 6f 20 66 ................;;.Not.a.macro.f
130a0 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 orm....................(insert."
130c0 28 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 (")....................(macroste
130e0 70 2d 70 72 69 6e 74 2d 73 65 78 70 20 68 65 61 64 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 p-print-sexp.head))))...........
13100 20 20 20 20 3b 3b 20 50 72 69 6e 74 20 72 65 6d 61 69 6e 69 6e 67 20 6c 69 73 74 20 65 6c 65 6d ....;;.Print.remaining.list.elem
13120 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 65 78 70 20 28 63 64 ents..............(setq.sexp.(cd
13140 72 20 73 65 78 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 65 78 70 r.sexp))..............(when.sexp
13160 20 28 69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 .(insert."."))..............(whi
13180 6c 65 20 73 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6c 69 73 74 le.sexp................(if.(list
131a0 70 20 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 p.sexp)....................(prog
131c0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 65 n......................(macroste
131e0 70 2d 70 72 69 6e 74 2d 73 65 78 70 20 28 63 61 72 20 73 65 78 70 29 29 0a 20 20 20 20 20 20 20 p-print-sexp.(car.sexp))........
13200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 64 72 20 73 65 78 70 29 20 28 ..............(when.(cdr.sexp).(
13220 69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 insert."."))....................
13240 20 20 28 73 65 74 71 20 73 65 78 70 20 28 63 64 72 20 73 65 78 70 29 29 29 0a 20 20 20 20 20 20 ..(setq.sexp.(cdr.sexp))).......
13260 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 72 69 6e 74 20 74 61 69 6c 20 6f 66 20 64 6f 74 74 ...........;;.Print.tail.of.dott
13280 65 64 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 ed.list..................(insert
132a0 20 22 2e 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 73 74 ."..")..................(macrost
132c0 65 70 2d 70 72 69 6e 74 2d 73 65 78 70 20 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ep-print-sexp.sexp).............
132e0 20 20 20 20 20 28 73 65 74 71 20 73 65 78 70 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 .....(setq.sexp.nil)))..........
13300 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 22 29 29 29 29 29 0a 0a 20 20 20 3b 3b 20 50 72 69 6e ....(insert.")"))))).....;;.Prin
13320 74 20 65 76 65 72 79 74 68 69 6e 67 20 65 78 63 65 70 74 20 73 79 6d 62 6f 6c 73 20 61 6e 64 20 t.everything.except.symbols.and.
13340 6c 69 73 74 73 20 61 73 20 6e 6f 72 6d 61 6c 0a 20 20 20 28 74 20 28 70 72 69 6e 31 20 73 65 78 lists.as.normal....(t.(prin1.sex
13360 70 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6d p.(current-buffer)))))..(defun.m
13380 61 63 72 6f 73 74 65 70 2d 67 65 74 2d 67 65 6e 73 79 6d 2d 66 61 63 65 20 28 73 79 6d 62 6f 6c acrostep-get-gensym-face.(symbol
133a0 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 66 61 63 65 20 74 6f 20 75 73 65 20 69 6e 20 66 )..."Return.the.face.to.use.in.f
133c0 6f 6e 74 69 66 79 69 6e 67 20 53 59 4d 42 4f 4c 20 69 6e 20 70 72 69 6e 74 65 64 20 6d 61 63 72 ontifying.SYMBOL.in.printed.macr
133e0 6f 20 65 78 70 61 6e 73 69 6f 6e 73 2e 0a 0a 41 6c 6c 20 73 79 6d 62 6f 6c 73 20 69 6e 74 72 6f o.expansions...All.symbols.intro
13400 64 75 63 65 64 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6c 65 76 65 6c 20 6f 66 20 6d 61 63 72 6f duced.in.the.same.level.of.macro
13420 20 65 78 70 61 6e 73 69 6f 6e 20 61 72 65 0a 66 6f 6e 74 69 66 69 65 64 20 75 73 69 6e 67 20 74 .expansion.are.fontified.using.t
13440 68 65 20 73 61 6d 65 20 66 61 63 65 20 28 6d 6f 64 75 6c 6f 20 74 68 65 20 6e 75 6d 62 65 72 20 he.same.face.(modulo.the.number.
13460 6f 66 20 66 61 63 65 73 3b 20 73 65 65 0a 60 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d of.faces;.see.`macrostep-gensym-
13480 66 61 63 65 73 27 29 2e 22 0a 20 20 28 6f 72 20 28 67 65 74 20 73 79 6d 62 6f 6c 20 27 6d 61 63 faces')."...(or.(get.symbol.'mac
134a0 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 66 61 63 65 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e rostep-gensym-face).......(progn
134c0 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 .........(if.(not.macrostep-gens
134e0 79 6d 73 2d 74 68 69 73 2d 6c 65 76 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 yms-this-level).............(set
13500 71 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 64 65 70 74 68 20 28 31 2b 20 6d 61 63 q.macrostep-gensym-depth.(1+.mac
13520 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 64 65 70 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 rostep-gensym-depth)............
13540 20 20 20 20 20 20 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 73 2d 74 68 69 73 2d 6c 65 .......macrostep-gensyms-this-le
13560 76 65 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 61 63 65 20 28 72 69 6e vel.t)).........(let.((face.(rin
13580 67 2d 72 65 66 20 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 66 61 63 65 73 20 6d 61 63 g-ref.macrostep-gensym-faces.mac
135a0 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 64 65 70 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 rostep-gensym-depth)))..........
135c0 20 28 70 75 74 20 73 79 6d 62 6f 6c 20 27 6d 61 63 72 6f 73 74 65 70 2d 67 65 6e 73 79 6d 2d 66 .(put.symbol.'macrostep-gensym-f
135e0 61 63 65 20 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 66 61 63 65 29 29 29 29 0a 0a 0c 0a ace.face)...........face))))....
13600 28 70 72 6f 76 69 64 65 20 27 6d 61 63 72 6f 73 74 65 70 29 0a 3b 3b 3b 20 6d 61 63 72 6f 73 74 (provide.'macrostep).;;;.macrost
13620 65 70 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ep.el.ends.here.................
13640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
136a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
136c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
136e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
137a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
137c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
137e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13800 6d 61 63 72 6f 73 74 65 70 2d 30 2e 39 2e 35 2f 6d 61 63 72 6f 73 74 65 70 2d 70 6b 67 2e 65 6c macrostep-0.9.5/macrostep-pkg.el
13820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
13880 30 30 30 30 36 36 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 32 36 35 00 20 30 00 00 00 0000664.00000000000.015265..0...
138a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
138c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
138e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
13920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
13940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a00 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e ;;.Generated.package.description
13a20 20 66 72 6f 6d 20 6d 61 63 72 6f 73 74 65 70 2e 65 6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d .from.macrostep.el..-*-.no-byte-
13a40 63 6f 6d 70 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 compile:.t.-*-.(define-package."
13a60 6d 61 63 72 6f 73 74 65 70 22 20 22 30 2e 39 2e 35 22 20 22 49 6e 74 65 72 61 63 74 69 76 65 20 macrostep"."0.9.5"."Interactive.
13a80 6d 61 63 72 6f 20 65 78 70 61 6e 64 65 72 22 20 27 28 28 63 6c 2d 6c 69 62 20 22 30 2e 35 22 29 macro.expander".'((cl-lib."0.5")
13aa0 20 28 63 6f 6d 70 61 74 20 22 32 39 22 29 29 20 3a 63 6f 6d 6d 69 74 20 22 38 65 38 34 38 37 37 .(compat."29")).:commit."8e84877
13ac0 31 32 64 31 35 30 31 37 38 62 65 37 32 39 37 36 30 34 64 30 66 34 37 66 64 30 33 36 61 36 64 38 12d150178be7297604d0f47fd036a6d8
13ae0 64 22 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 4a 6f 6e 20 4f 64 64 69 65 22 20 2e 20 22 6a 2e d".:authors.'(("Jon.Oddie"..."j.
13b00 6a 2e 6f 64 64 69 65 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 20 3a 6d 61 69 6e 74 61 69 6e 65 72 j.oddie@gmail.com")).:maintainer
13b20 20 27 28 22 4a 65 72 65 6d 79 20 42 72 79 61 6e 74 22 20 2e 20 22 6a 62 40 6a 65 72 65 6d 79 62 .'("Jeremy.Bryant"..."jb@jeremyb
13b40 72 79 61 6e 74 2e 6e 65 74 22 29 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 6c 69 73 70 22 20 22 ryant.net").:keywords.'("lisp"."
13b60 6c 61 6e 67 75 61 67 65 73 22 20 22 6d 61 63 72 6f 22 20 22 64 65 62 75 67 67 69 6e 67 22 29 20 languages"."macro"."debugging").
13b80 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 65 6d 61 63 73 6f 72 :url."https://github.com/emacsor
13ba0 70 68 61 6e 61 67 65 2f 6d 61 63 72 6f 73 74 65 70 22 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 phanage/macrostep").............
13bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c00 6d 61 63 72 6f 73 74 65 70 2d 30 2e 39 2e 35 2f 2e 65 6c 70 61 69 67 6e 6f 72 65 00 00 00 00 00 macrostep-0.9.5/.elpaignore.....
13c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
13c80 30 30 30 30 30 32 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 30 33 00 20 30 00 00 00 0000024.00000000000.014303..0...
13ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
13d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
13d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e00 2e 74 72 61 76 69 73 2e 79 6d 6c 0a 4c 49 43 45 4e 53 45 0a 00 00 00 00 00 00 00 00 00 00 00 00 .travis.yml.LICENSE.............
13e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
140a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
140c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
140e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
141a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
141c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
141e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
142e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
143a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
143c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
143e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
148a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
148c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
148e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
149a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
149c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
149e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
150a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
150c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
150e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
152a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
152c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
152e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
159a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
159c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
159e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
160a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
160c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
160e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
165a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
165c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
165e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................