summaryrefslogtreecommitdiff
path: root/localrepo/helpful-20231028.516.tar
blob: 10cb6d234f4669feabecfd14ec29ca98415710a4 (plain)
ofshex dumpascii
0000 68 65 6c 70 66 75 6c 2d 32 30 32 33 31 30 32 38 2e 35 31 36 2f 00 00 00 00 00 00 00 00 00 00 00 helpful-20231028.516/...........
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 33 36 35 00 20 35 00 00 00 0000000.00000000000.012365..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 68 65 6c 70 66 75 6c 2d 32 30 32 33 31 30 32 38 2e 35 31 36 2f 68 65 6c 70 66 75 6c 2d 70 6b 67 helpful-20231028.516/helpful-pkg
0220 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .el.............................
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 30 30 37 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 34 30 00 20 30 00 00 00 0000777.00000000000.015140..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 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 68 65 6c 70 66 75 6c 22 20 22 32 30 32 33 31 (define-package."helpful"."20231
0420 30 32 38 2e 35 31 36 22 20 22 41 20 62 65 74 74 65 72 20 2a 68 65 6c 70 2a 20 62 75 66 66 65 72 028.516"."A.better.*help*.buffer
0440 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 22 29 0a 20 20 20 20 28 64 61 73 68 20 22 32 2e "...'((emacs."25").....(dash."2.
0460 31 38 2e 30 22 29 0a 20 20 20 20 28 73 20 22 31 2e 31 31 2e 30 22 29 0a 20 20 20 20 28 66 20 22 18.0").....(s."1.11.0").....(f."
0480 30 2e 32 30 2e 30 22 29 0a 20 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 20 22 31 2e 32 22 29 29 0.20.0").....(elisp-refs."1.2"))
04a0 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 61 33 32 61 35 62 33 64 39 35 39 61 37 66 63 63 66 30 39 61 ...:commit."a32a5b3d959a7fccf09a
04c0 37 31 64 39 37 62 33 64 37 63 38 38 38 61 63 33 31 63 36 39 22 20 3a 61 75 74 68 6f 72 73 0a 20 71d97b3d7c888ac31c69".:authors..
04e0 20 27 28 28 22 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 22 20 2e 20 22 6d 65 40 77 69 6c 66 72 .'(("Wilfred.Hughes"..."me@wilfr
0500 65 64 2e 6d 65 2e 75 6b 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 ed.me.uk"))...:maintainers...'((
0520 22 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 22 20 2e 20 22 6d 65 40 77 69 6c 66 72 65 64 2e 6d "Wilfred.Hughes"..."me@wilfred.m
0540 65 2e 75 6b 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 57 69 6c 66 72 e.uk"))...:maintainer...'("Wilfr
0560 65 64 20 48 75 67 68 65 73 22 20 2e 20 22 6d 65 40 77 69 6c 66 72 65 64 2e 6d 65 2e 75 6b 22 29 ed.Hughes"..."me@wilfred.me.uk")
0580 0a 20 20 3a 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 22 68 65 6c 70 22 20 22 6c 69 73 70 22 29 0a ...:keywords...'("help"."lisp").
05a0 20 20 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 57 69 6c 66 72 ..:url."https://github.com/Wilfr
05c0 65 64 2f 68 65 6c 70 66 75 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a ed/helpful").;;.Local.Variables:
05e0 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 6e 64 3a 0a 00 .;;.no-byte-compile:.t.;;.End:..
0600 68 65 6c 70 66 75 6c 2d 32 30 32 33 31 30 32 38 2e 35 31 36 2f 68 65 6c 70 66 75 6c 2e 65 6c 00 helpful-20231028.516/helpful.el.
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 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
0680 30 33 32 37 35 34 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 36 33 00 20 30 00 00 00 0327542.00000000000.014363..0...
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 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...................
0720 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...................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 3b 3b 3b 20 68 65 6c 70 66 75 6c 2e 65 6c 20 2d 2d 2d 20 41 20 62 65 74 74 65 72 20 2a 68 65 6c ;;;.helpful.el.---.A.better.*hel
0820 70 2a 20 62 75 66 66 65 72 20 20 20 20 20 20 20 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c p*.buffer............-*-.lexical
0840 2d 62 69 6e 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 -binding:.t;.-*-..;;.Copyright.(
0860 43 29 20 32 30 31 37 2d 32 30 32 32 20 20 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 0a 0a 3b 3b C).2017-2022..Wilfred.Hughes..;;
0880 20 41 75 74 68 6f 72 3a 20 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 20 3c 6d 65 40 77 69 6c 66 .Author:.Wilfred.Hughes.<me@wilf
08a0 72 65 64 2e 6d 65 2e 75 6b 3e 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 red.me.uk>.;;.URL:.https://githu
08c0 62 2e 63 6f 6d 2f 57 69 6c 66 72 65 64 2f 68 65 6c 70 66 75 6c 0a 3b 3b 20 4b 65 79 77 6f 72 64 b.com/Wilfred/helpful.;;.Keyword
08e0 73 3a 20 68 65 6c 70 2c 20 6c 69 73 70 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 32 32 0a 3b s:.help,.lisp.;;.Version:.0.22.;
0900 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 35 22 ;.Package-Requires:.((emacs."25"
0920 29 20 28 64 61 73 68 20 22 32 2e 31 38 2e 30 22 29 20 28 73 20 22 31 2e 31 31 2e 30 22 29 20 28 ).(dash."2.18.0").(s."1.11.0").(
0940 66 20 22 30 2e 32 30 2e 30 22 29 20 28 65 6c 69 73 70 2d 72 65 66 73 20 22 31 2e 32 22 29 29 0a f."0.20.0").(elisp-refs."1.2")).
0960 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 .;;.This.program.is.free.softwar
0980 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f e;.you.can.redistribute.it.and/o
09a0 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f r.modify.;;.it.under.the.terms.o
09c0 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 6e 73 65 f.the.GNU.General.Public.License
09e0 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 .as.published.by.;;.the.Free.Sof
0a00 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e tware.Foundation,.either.version
0a20 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 .3.of.the.License,.or.;;.(at.you
0a40 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b r.option).any.later.version...;;
0a60 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 .This.program.is.distributed.in.
0a80 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c the.hope.that.it.will.be.useful,
0aa0 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 .;;.but.WITHOUT.ANY.WARRANTY;.wi
0ac0 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 thout.even.the.implied.warranty.
0ae0 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 of.;;.MERCHANTABILITY.or.FITNESS
0b00 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 .FOR.A.PARTICULAR.PURPOSE...See.
0b20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 the.;;.GNU.General.Public.Licens
0b40 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 e.for.more.details...;;.You.shou
0b60 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
0b80 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
0ba0 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 ng.with.this.program...If.not,.s
0bc0 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f ee.<http://www.gnu.org/licenses/
0be0 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 48 65 6c 70 66 75 6c 20 >...;;;.Commentary:..;;.Helpful.
0c00 69 73 20 61 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 66 6f 72 20 2a 68 65 6c 70 2a 20 62 75 66 66 is.a.replacement.for.*help*.buff
0c20 65 72 73 20 74 68 61 74 20 70 72 6f 76 69 64 65 73 20 6d 75 63 68 20 6d 6f 72 65 0a 3b 3b 20 63 ers.that.provides.much.more.;;.c
0c40 6f 6e 74 65 78 74 75 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 54 6f 20 67 65 74 20 73 ontextual.information...To.get.s
0c60 74 61 72 74 65 64 2c 20 74 72 79 3a 0a 3b 3b 20 60 4d 2d 78 20 68 65 6c 70 66 75 6c 2d 66 75 6e tarted,.try:.;;.`M-x.helpful-fun
0c80 63 74 69 6f 6e 20 52 45 54 20 68 65 6c 70 66 75 6c 2d 66 75 6e 63 74 69 6f 6e 0a 3b 3b 0a 3b 3b ction.RET.helpful-function.;;.;;
0ca0 20 54 68 65 20 66 75 6c 6c 20 73 65 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 79 6f 75 20 63 61 .The.full.set.of.commands.you.ca
0cc0 6e 20 74 72 79 20 69 73 3a 0a 3b 3b 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 66 75 6e 63 74 69 n.try.is:.;;.;;.*.helpful-functi
0ce0 6f 6e 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 63 6f 6d 6d 61 6e 64 0a 3b 3b 20 2a 20 68 65 6c on.;;.*.helpful-command.;;.*.hel
0d00 70 66 75 6c 2d 6b 65 79 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 6d 61 63 72 6f 0a 3b 3b 20 2a pful-key.;;.*.helpful-macro.;;.*
0d20 20 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 76 .helpful-callable.;;.*.helpful-v
0d40 61 72 69 61 62 6c 65 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 61 74 2d 70 6f 69 6e 74 0a 3b 3b ariable.;;.*.helpful-at-point.;;
0d60 0a 3b 3b 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 73 63 72 .;;.For.more.information.and.scr
0d80 65 65 6e 73 68 6f 74 73 2c 20 73 65 65 0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e eenshots,.see.;;.https://github.
0da0 63 6f 6d 2f 77 69 6c 66 72 65 64 2f 68 65 6c 70 66 75 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a com/wilfred/helpful..;;;.Code:..
0dc0 28 72 65 71 75 69 72 65 20 27 65 6c 69 73 70 2d 72 65 66 73 29 0a 28 72 65 71 75 69 72 65 20 27 (require.'elisp-refs).(require.'
0de0 68 65 6c 70 29 0a 28 72 65 71 75 69 72 65 20 27 68 65 6c 70 2d 66 6e 73 29 0a 28 72 65 71 75 69 help).(require.'help-fns).(requi
0e00 72 65 20 27 64 61 73 68 29 0a 28 72 65 71 75 69 72 65 20 27 73 29 0a 28 72 65 71 75 69 72 65 20 re.'dash).(require.'s).(require.
0e20 27 66 29 0a 28 72 65 71 75 69 72 65 20 27 66 69 6e 64 2d 66 75 6e 63 29 0a 28 72 65 71 75 69 72 'f).(require.'find-func).(requir
0e40 65 20 27 6e 61 64 76 69 63 65 29 0a 28 72 65 71 75 69 72 65 20 27 69 6e 66 6f 2d 6c 6f 6f 6b 29 e.'nadvice).(require.'info-look)
0e60 0a 28 72 65 71 75 69 72 65 20 27 65 64 65 62 75 67 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 61 .(require.'edebug).(require.'tra
0e80 63 65 29 0a 28 72 65 71 75 69 72 65 20 27 69 6d 65 6e 75 29 0a 28 72 65 71 75 69 72 65 20 27 63 ce).(require.'imenu).(require.'c
0ea0 63 2d 6c 61 6e 67 73 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d c-langs)..(declare-function.org-
0ec0 6c 69 6e 6b 2d 74 79 70 65 73 20 22 6f 6c 22 20 28 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e link-types."ol".()).(declare-fun
0ee0 63 74 69 6f 6e 20 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 2d 70 72 6f 70 73 20 22 6f 6c 22 20 ction.org-link-store-props."ol".
0f00 28 26 72 65 73 74 20 70 6c 69 73 74 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e (&rest.plist)).(declare-function
0f20 20 6f 72 67 2d 6c 69 6e 6b 2d 67 65 74 2d 70 61 72 61 6d 65 74 65 72 20 22 6f 6c 22 20 28 74 79 .org-link-get-parameter."ol".(ty
0f40 70 65 20 6b 65 79 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d pe.key))..(defvar-local.helpful-
0f60 2d 73 79 6d 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d -sym.nil).(defvar-local.helpful-
0f80 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 -callable-p.nil).(defvar-local.h
0fa0 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 elpful--associated-buffer.nil...
0fc0 22 54 68 65 20 62 75 66 66 65 72 20 62 65 69 6e 67 20 75 73 65 64 20 77 68 65 6e 20 73 68 6f 77 "The.buffer.being.used.when.show
0fe0 69 6e 67 20 69 6e 73 70 65 63 74 69 6e 67 0a 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 ing.inspecting.buffer-local.vari
1000 61 62 6c 65 73 2e 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d 2d ables.").(defvar-local.helpful--
1020 73 74 61 72 74 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 62 75 66 66 65 72 20 77 start-buffer.nil..."The.buffer.w
1040 65 20 77 65 72 65 20 6f 72 69 67 69 6e 61 6c 6c 79 20 63 61 6c 6c 65 64 20 66 72 6f 6d 2e 22 29 e.were.originally.called.from.")
1060 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 .(defvar-local.helpful--view-lit
1080 65 72 61 6c 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 73 68 6f 77 20 61 20 76 61 eral.nil..."Whether.to.show.a.va
10a0 6c 75 65 20 61 73 20 61 20 6c 69 74 65 72 61 6c 2c 20 6f 72 20 61 20 70 72 65 74 74 79 20 69 6e lue.as.a.literal,.or.a.pretty.in
10c0 74 65 72 61 63 74 69 76 65 0a 76 69 65 77 2e 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 teractive.view.").(defvar-local.
10e0 68 65 6c 70 66 75 6c 2d 2d 66 69 72 73 74 2d 64 69 73 70 6c 61 79 20 74 0a 20 20 22 57 68 65 74 helpful--first-display.t..."Whet
1100 68 65 72 20 74 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 74 68 69 73 20 her.this.is.the.first.time.this.
1120 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 20 68 61 73 20 62 65 65 6e 0a 64 69 73 70 6c 61 79 65 results.buffer.has.been.displaye
1140 64 2e 0a 0a 4e 69 6c 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 27 72 65 20 72 65 66 72 65 73 68 d...Nil.means.that.we're.refresh
1160 69 6e 67 2c 20 73 6f 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 63 6c 6f 62 62 65 72 ing,.so.we.don't.want.to.clobber
1180 20 61 6e 79 0a 73 65 74 74 69 6e 67 73 20 63 68 61 6e 67 65 64 20 62 79 20 74 68 65 20 75 73 65 .any.settings.changed.by.the.use
11a0 72 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 68 65 6c 70 66 75 6c 20 6e 69 6c 0a 20 20 22 41 r.")..(defgroup.helpful.nil..."A
11c0 20 72 69 63 68 20 68 65 6c 70 20 73 79 73 74 65 6d 20 77 69 74 68 20 63 6f 6e 74 65 78 74 75 61 .rich.help.system.with.contextua
11e0 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 3a 6c 69 6e 6b 20 27 28 75 72 6c 2d 6c 69 l.information."...:link.'(url-li
1200 6e 6b 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 57 69 6c 66 72 65 64 2f 68 nk."https://github.com/Wilfred/h
1220 65 6c 70 66 75 6c 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 68 65 6c 70 29 0a 0a 28 64 65 66 63 75 elpful")...:group.'help)..(defcu
1240 73 74 6f 6d 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 0a 20 20 35 0a 20 20 22 stom.helpful-max-buffers...5..."
1260 48 65 6c 70 66 75 6c 20 77 69 6c 6c 20 6b 69 6c 6c 20 74 68 65 20 6c 65 61 73 74 20 72 65 63 65 Helpful.will.kill.the.least.rece
1280 6e 74 6c 79 20 75 73 65 64 20 48 65 6c 70 66 75 6c 20 62 75 66 66 65 72 0a 69 66 20 74 68 65 72 ntly.used.Helpful.buffer.if.ther
12a0 65 20 61 72 65 20 6d 6f 72 65 20 74 68 61 6e 20 74 68 69 73 20 6d 61 6e 79 2e 0a 0a 54 6f 20 64 e.are.more.than.this.many...To.d
12c0 69 73 61 62 6c 65 20 63 6c 65 61 6e 75 70 20 65 6e 74 69 72 65 6c 79 2c 20 73 65 74 20 74 68 69 isable.cleanup.entirely,.set.thi
12e0 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 6e 69 6c 2e 20 53 65 65 20 61 6c 73 6f 0a 60 68 65 6c s.variable.to.nil..See.also.`hel
1300 70 66 75 6c 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 27 20 66 6f 72 20 61 20 6f 6e 65 2d 6f 66 66 pful-kill-buffers'.for.a.one-off
1320 20 63 6c 65 61 6e 75 70 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e .cleanup."...:type.'(choice.(con
1340 73 74 20 6e 69 6c 29 20 6e 75 6d 62 65 72 29 0a 20 20 3a 67 72 6f 75 70 20 27 68 65 6c 70 66 75 st.nil).number)...:group.'helpfu
1360 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 65 6c 70 66 75 6c 2d 73 77 69 74 63 68 2d 62 75 l)..(defcustom.helpful-switch-bu
1380 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 0a ffer-function...#'pop-to-buffer.
13a0 20 20 22 46 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 .."Function.called.to.display.th
13c0 65 20 2a 48 65 6c 70 66 75 6c 2a 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 e.*Helpful*.buffer."...:type.'fu
13e0 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 68 65 6c 70 66 75 6c 29 0a 0a 28 64 65 66 63 nction...:group.'helpful)..(defc
1400 75 73 74 6f 6d 20 68 65 6c 70 66 75 6c 2d 73 65 74 2d 76 61 72 69 61 62 6c 65 2d 66 75 6e 63 74 ustom.helpful-set-variable-funct
1420 69 6f 6e 0a 20 20 28 69 66 20 28 3c 20 32 39 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 ion...(if.(<.29.emacs-major-vers
1440 69 6f 6e 29 20 23 27 73 65 74 6f 70 74 20 23 27 73 65 74 71 29 0a 20 20 22 46 75 6e 63 74 69 6f ion).#'setopt.#'setq)..."Functio
1460 6e 20 75 73 65 64 20 62 79 20 60 68 65 6c 70 66 75 6c 2d 2d 73 65 74 27 20 74 6f 20 69 6e 74 65 n.used.by.`helpful--set'.to.inte
1480 72 61 63 74 69 76 65 6c 79 20 73 65 74 20 76 61 72 69 61 62 6c 65 73 2e 22 0a 20 20 3a 74 79 70 ractively.set.variables."...:typ
14a0 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 68 65 6c 70 66 75 6c 29 0a 0a e.'function...:group.'helpful)..
14c0 3b 3b 20 54 4f 44 4f 3a 20 65 78 70 6c 6f 72 65 20 77 68 65 74 68 65 72 20 6d 6f 72 65 20 62 61 ;;.TODO:.explore.whether.more.ba
14e0 73 69 63 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 69 73 20 66 61 73 74 20 65 6e 6f 75 67 68 20 sic.highlighting.is.fast.enough.
1500 74 6f 0a 3b 3b 20 68 61 6e 64 6c 65 20 6c 61 72 67 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 20 53 to.;;.handle.larger.functions..S
1520 65 65 20 60 63 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 69 6e 69 74 27 20 61 6e 64 20 69 74 73 20 75 73 ee.`c-font-lock-init'.and.its.us
1540 65 20 6f 66 0a 3b 3b 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 2d 31 2e 0a 28 64 e.of.;;.font-lock-keywords-1..(d
1560 65 66 63 6f 6e 73 74 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 67 68 74 20 35 30 efconst.helpful-max-highlight.50
1580 30 30 0a 20 20 22 44 6f 6e 27 74 20 68 69 67 68 6c 69 67 68 74 20 63 6f 64 65 20 77 69 74 68 20 00..."Don't.highlight.code.with.
15a0 6d 6f 72 65 20 74 68 61 6e 20 74 68 69 73 20 6d 61 6e 79 20 63 68 61 72 61 63 74 65 72 73 2e 0a more.than.this.many.characters..
15c0 0a 54 68 69 73 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 75 73 65 64 20 66 6f 72 .This.is.currently.only.used.for
15e0 20 43 20 63 6f 64 65 2c 20 61 73 20 6c 69 73 70 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 73 65 .C.code,.as.lisp.highlighting.se
1600 65 6d 73 20 74 6f 20 62 65 20 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 2e 20 54 68 69 73 20 6d ems.to.be.more.efficient..This.m
1620 61 79 20 63 68 61 6e 67 65 20 61 67 61 69 6e 20 69 6e 20 66 75 74 75 72 65 2e 0a 0a 53 65 65 20 ay.change.again.in.future...See.
1640 60 74 68 69 73 2d 63 6f 6d 6d 61 6e 64 27 20 61 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 `this-command'.as.an.example.of.
1660 61 20 6c 61 72 67 65 20 70 69 65 63 65 20 6f 66 20 43 20 63 6f 64 65 20 74 68 61 74 0a 63 61 6e a.large.piece.of.C.code.that.can
1680 20 6d 61 6b 65 20 48 65 6c 70 66 75 6c 20 76 65 72 79 20 73 6c 6f 77 2e 22 29 0a 0a 28 64 65 66 .make.Helpful.very.slow.")..(def
16a0 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e 64 2d 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 20 63 61 un.helpful--kind-name.(symbol.ca
16c0 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 77 68 61 74 20 6b 69 6e 64 20 llable-p)..."Describe.what.kind.
16e0 6f 66 20 73 79 6d 62 6f 6c 20 74 68 69 73 20 69 73 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 of.symbol.this.is."...(cond....(
1700 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 22 76 61 72 69 61 62 6c 65 22 29 0a 20 20 20 (not.callable-p)."variable")....
1720 28 28 63 6f 6d 6d 61 6e 64 70 20 73 79 6d 62 6f 6c 29 20 22 63 6f 6d 6d 61 6e 64 22 29 0a 20 20 ((commandp.symbol)."command")...
1740 20 28 28 6d 61 63 72 6f 70 20 73 79 6d 62 6f 6c 29 20 22 6d 61 63 72 6f 22 29 0a 20 20 20 28 28 .((macrop.symbol)."macro")....((
1760 66 75 6e 63 74 69 6f 6e 70 20 73 79 6d 62 6f 6c 29 20 22 66 75 6e 63 74 69 6f 6e 22 29 0a 20 20 functionp.symbol)."function")...
1780 20 28 28 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 70 20 73 79 6d 62 6f 6c 29 20 22 73 70 65 63 69 .((special-form-p.symbol)."speci
17a0 61 6c 20 66 6f 72 6d 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 75 66 al.form")))..(defun.helpful--buf
17c0 66 65 72 20 28 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 52 65 74 75 72 fer.(symbol.callable-p)..."Retur
17e0 6e 20 61 20 62 75 66 66 65 72 20 74 6f 20 73 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 53 59 4d 42 n.a.buffer.to.show.help.for.SYMB
1800 4f 4c 20 69 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 OL.in."...(let*.((current-buffer
1820 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 .(current-buffer))..........(buf
1840 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2a 68 65 6c 70 66 75 -name...........(format."*helpfu
1860 6c 20 25 73 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 l.%s*"...................(if.(sy
1880 6d 62 6f 6c 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mbolp.symbol)...................
18a0 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 ....(format."%s:.%s"............
18c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e ...................(helpful--kin
18e0 64 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 d-name.symbol.callable-p).......
1900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 62 6f 6c 29 0a ........................symbol).
1920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6c 61 6d 62 64 61 22 29 29 29 0a ...................."lambda"))).
1940 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 2d 6e 61 .........(buf.(get-buffer.buf-na
1960 6d 65 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 62 75 66 0a 20 20 20 20 20 20 3b 3b 20 49 me))).....(unless.buf.......;;.I
1980 66 20 77 65 20 6e 65 65 64 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 62 75 66 66 65 72 2c 20 f.we.need.to.create.the.buffer,.
19a0 65 6e 73 75 72 65 20 77 65 20 64 6f 6e 27 74 20 65 78 63 65 65 64 0a 20 20 20 20 20 20 3b 3b 20 ensure.we.don't.exceed.......;;.
19c0 60 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 27 20 62 79 20 6b 69 6c 6c 69 6e 67 `helpful-max-buffers'.by.killing
19e0 20 74 68 65 20 6c 65 61 73 74 20 72 65 63 65 6e 74 6c 79 20 75 73 65 64 2e 0a 20 20 20 20 20 20 .the.least.recently.used........
1a00 28 77 68 65 6e 20 28 6e 75 6d 62 65 72 70 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 (when.(numberp.helpful-max-buffe
1a20 72 73 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 75 66 66 65 72 73 20 28 62 75 66 rs).........(let*.((buffers.(buf
1a40 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 fer-list))................(helpf
1a60 75 6c 2d 62 75 66 73 20 28 2d 2d 66 69 6c 74 65 72 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d ul-bufs.(--filter.(with-current-
1a80 62 75 66 66 65 72 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 buffer.it.......................
1aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 ...................(eq.major-mod
1ac0 65 20 27 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.'helpful-mode))...............
1ae0 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 62 75 66 66 65 72 73 .........................buffers
1b00 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 62 75 66 66 65 72 2d 6c 69 73 ))................;;.`buffer-lis
1b20 74 27 20 73 65 65 6d 73 20 74 6f 20 62 65 20 6f 72 64 65 72 65 64 20 62 79 20 6d 6f 73 74 20 72 t'.seems.to.be.ordered.by.most.r
1b40 65 63 65 6e 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 76 69 73 69 74 65 ecently................;;.visite
1b60 64 20 66 69 72 73 74 2c 20 73 6f 20 6b 65 65 70 20 74 68 6f 73 65 2e 0a 20 20 20 20 20 20 20 20 d.first,.so.keep.those..........
1b80 20 20 20 20 20 20 20 28 65 78 63 65 73 73 2d 62 75 66 66 65 72 73 20 28 2d 64 72 6f 70 20 28 31 .......(excess-buffers.(-drop.(1
1ba0 2d 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 29 20 68 65 6c 70 66 75 6c 2d 62 -.helpful-max-buffers).helpful-b
1bc0 75 66 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4b 69 6c 6c 20 62 75 66 66 65 72 73 ufs)))...........;;.Kill.buffers
1be0 20 73 6f 20 77 65 20 68 61 76 65 20 6f 6e 65 20 62 75 66 66 65 72 20 6c 65 73 73 20 74 68 61 6e .so.we.have.one.buffer.less.than
1c00 20 74 68 65 20 6d 61 78 69 6d 75 6d 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 66 6f 72 65 .the.maximum...........;;.before
1c20 20 77 65 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 2e 0a 20 20 20 20 20 20 20 20 20 20 .we.create.a.new.one............
1c40 28 2d 65 61 63 68 20 65 78 63 65 73 73 2d 62 75 66 66 65 72 73 20 23 27 6b 69 6c 6c 2d 62 75 66 (-each.excess-buffers.#'kill-buf
1c60 66 65 72 29 29 29 0a 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 28 67 65 74 2d 62 75 66 fer)))........(setq.buf.(get-buf
1c80 66 65 72 2d 63 72 65 61 74 65 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 20 20 3b 3b 20 49 fer-create.buf-name)))......;;.I
1ca0 6e 69 74 69 61 6c 69 73 65 20 74 68 65 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 73 79 nitialise.the.buffer.with.the.sy
1cc0 6d 62 6f 6c 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 61 74 61 2e 0a 20 20 20 20 28 77 mbol.and.associated.data......(w
1ce0 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 68 65 ith-current-buffer.buf.......(he
1d00 6c 70 66 75 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d lpful-mode).......(setq.helpful-
1d20 2d 73 79 6d 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c -sym.symbol).......(setq.helpful
1d40 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 28 --callable-p.callable-p).......(
1d60 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 73 74 61 72 74 2d 62 75 66 66 65 72 20 63 75 72 72 65 setq.helpful--start-buffer.curre
1d80 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d nt-buffer).......(setq.helpful--
1da0 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 20 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 associated-buffer.current-buffer
1dc0 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 73 74 2d 62 75 66 66 65 72 73 2d 64 69 72 65 63 ).......(setq.list-buffers-direc
1de0 74 6f 72 79 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 62 6f 6c tory.........(if.(symbolp.symbol
1e00 29 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 20 25 73 22 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e ).(format."%s:.%s".(helpful--kin
1e20 64 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 73 79 6d 62 6f 6c d-name.symbol.callable-p).symbol
1e40 29 20 22 6c 61 6d 62 64 61 22 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 68 65 6c 70 66 75 6c 2d )."lambda")).......(if.(helpful-
1e60 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a -primitive-p.symbol.callable-p).
1e80 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 63 6f 6d 6d 65 6e 74 2d 73 74 ..........(setq-local.comment-st
1ea0 61 72 74 20 22 2f 2f 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 63 6f art."//").........(setq-local.co
1ec0 6d 6d 65 6e 74 2d 73 74 61 72 74 20 22 3b 22 29 29 29 0a 20 20 20 20 62 75 66 29 29 0a 0a 28 64 mment-start.";"))).....buf))..(d
1ee0 65 66 66 61 63 65 20 68 65 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 0a 20 20 27 28 28 74 20 28 3a efface.helpful-heading...'((t.(:
1f00 77 65 69 67 68 74 20 62 6f 6c 64 29 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 weight.bold)))..."Face.used.for.
1f20 68 65 61 64 69 6e 67 73 20 69 6e 20 48 65 6c 70 66 75 6c 20 62 75 66 66 65 72 73 2e 22 29 0a 0a headings.in.Helpful.buffers.")..
1f40 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 28 74 65 78 74 29 0a 20 (defun.helpful--heading.(text)..
1f60 20 22 50 72 6f 70 65 72 74 69 7a 65 20 54 45 58 54 20 61 73 20 61 20 68 65 61 64 69 6e 67 2e 22 ."Propertize.TEXT.as.a.heading."
1f80 0a 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 74 65 78 74 20 22 5c 6e 22 ...(propertize.(concat.text."\n"
1fa0 29 20 27 66 61 63 65 20 27 68 65 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 29 29 0a 0a 28 64 65 66 ).'face.'helpful-heading))..(def
1fc0 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6c 6f 73 75 72 65 20 28 73 79 6d 20 un.helpful--format-closure.(sym.
1fe0 66 6f 72 6d 29 0a 20 20 22 47 69 76 65 6e 20 61 20 63 6c 6f 73 75 72 65 2c 20 72 65 74 75 72 6e form)..."Given.a.closure,.return
2000 20 61 6e 20 65 71 75 69 76 61 6c 65 6e 74 20 64 65 66 75 6e 20 66 6f 72 6d 2e 22 0a 20 20 28 2d .an.equivalent.defun.form."...(-
2020 6c 65 74 20 28 28 28 5f 6b 65 79 77 6f 72 64 20 5f 65 6e 76 20 61 72 67 73 20 2e 20 62 6f 64 79 let.(((_keyword._env.args...body
2040 29 20 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 28 64 6f 63 73 74 72 69 6e 67 20 6e 69 6c 29 ).form)..........(docstring.nil)
2060 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 62 6f 64 79 29 29 ).....(when.(stringp.(car.body))
2080 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 63 73 74 72 69 6e 67 20 28 63 61 72 20 62 6f 64 79 .......(setq.docstring.(car.body
20a0 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 6f 64 79 20 28 63 64 72 20 62 6f 64 79 29 29 0a )).......(setq.body.(cdr.body)).
20c0 20 20 20 20 20 20 3b 3b 20 45 6e 73 75 72 65 20 74 68 61 74 20 74 68 65 20 64 6f 63 73 74 72 69 ......;;.Ensure.that.the.docstri
20e0 6e 67 20 64 6f 65 73 6e 27 74 20 68 61 76 65 20 6c 69 6e 65 73 20 73 74 61 72 74 69 6e 67 20 77 ng.doesn't.have.lines.starting.w
2100 69 74 68 20 28 2c 0a 20 20 20 20 20 20 3b 3b 20 6f 72 20 69 74 20 62 72 65 61 6b 73 20 69 6e 64 ith.(,.......;;.or.it.breaks.ind
2120 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 63 73 74 72 69 6e 67 0a entation........(setq.docstring.
2140 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 72 65 70 6c 61 63 65 20 22 5c 6e 28 22 20 22 5c 6e ............(s-replace."\n("."\n
2160 5c 5c 28 22 20 64 6f 63 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 28 69 66 20 64 6f 63 73 74 72 \\(".docstring))).....(if.docstr
2180 69 6e 67 0a 20 20 20 20 20 20 20 20 60 28 64 65 66 75 6e 20 2c 73 79 6d 20 2c 61 72 67 73 20 2c ing.........`(defun.,sym.,args.,
21a0 64 6f 63 73 74 72 69 6e 67 20 2c 40 62 6f 64 79 29 0a 20 20 20 20 20 20 60 28 64 65 66 75 6e 20 docstring.,@body).......`(defun.
21c0 2c 73 79 6d 20 2c 61 72 67 73 20 2c 40 62 6f 64 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 ,sym.,args.,@body))))..(defun.he
21e0 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 28 76 61 6c 75 65 29 0a 20 20 22 50 lpful--pretty-print.(value)..."P
2200 72 65 74 74 79 2d 70 72 69 6e 74 20 56 41 4c 55 45 2e 0a 0a 49 66 20 56 41 4c 55 45 20 69 73 20 retty-print.VALUE...If.VALUE.is.
2220 76 65 72 79 20 62 69 67 2c 20 74 68 65 20 75 73 65 72 20 6d 61 79 20 70 72 65 73 73 20 5c 5c 5b very.big,.the.user.may.press.\\[
2240 6b 65 79 62 6f 61 72 64 2d 71 75 69 74 5d 20 74 6f 0a 67 72 61 63 65 66 75 6c 6c 79 20 73 74 6f keyboard-quit].to.gracefully.sto
2260 70 20 74 68 65 20 70 72 69 6e 74 69 6e 67 2e 20 49 66 20 56 41 4c 55 45 20 69 73 20 73 65 6c 66 p.the.printing..If.VALUE.is.self
2280 2d 72 65 66 65 72 65 6e 74 69 61 6c 2c 20 74 68 65 0a 65 72 72 6f 72 20 77 69 6c 6c 20 62 65 20 -referential,.the.error.will.be.
22a0 63 61 75 67 68 74 20 61 6e 64 20 64 69 73 70 6c 61 79 65 64 2e 22 0a 20 20 3b 3b 20 49 6e 73 70 caught.and.displayed."...;;.Insp
22c0 69 72 65 64 20 62 79 20 60 69 65 6c 6d 2d 65 76 61 6c 2d 69 6e 70 75 74 27 2e 0a 20 20 28 63 6f ired.by.`ielm-eval-input'....(co
22e0 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 28 73 2d 74 72 69 6d 2d 72 ndition-case.err.......(s-trim-r
2300 69 67 68 74 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 ight.(pp-to-string.value)).....(
2320 65 72 72 6f 72 0a 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 error......(propertize.(format."
2340 28 44 69 73 70 6c 61 79 20 65 72 72 6f 72 3a 20 25 73 29 22 20 28 63 61 64 72 20 65 72 72 29 29 (Display.error:.%s)".(cadr.err))
2360 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f ..................'face.'font-lo
2380 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 0a 20 20 20 20 28 71 75 69 74 0a 20 20 20 20 ck-comment-face)).....(quit.....
23a0 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 28 55 73 65 72 20 71 75 69 74 20 64 75 72 69 6e 67 20 .(propertize."(User.quit.during.
23c0 70 72 65 74 74 79 2d 70 72 69 6e 74 69 6e 67 2e 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pretty-printing.)"..............
23e0 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 ....'face.'font-lock-comment-fac
2400 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 6f 72 74 2d 73 79 6d 62 e))))..(defun.helpful--sort-symb
2420 6f 6c 73 20 28 73 79 6d 2d 6c 69 73 74 29 0a 20 20 22 53 6f 72 74 20 73 79 6d 62 6f 6c 73 20 69 ols.(sym-list)..."Sort.symbols.i
2440 6e 20 53 59 4d 2d 4c 49 53 54 20 61 6c 70 68 61 62 65 74 69 63 61 6c 6c 79 2e 22 0a 20 20 28 2d n.SYM-LIST.alphabetically."...(-
2460 2d 73 6f 72 74 0a 20 20 20 28 73 74 72 69 6e 67 3c 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 69 -sort....(string<.(symbol-name.i
2480 74 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6f 74 68 65 72 29 29 0a 20 20 20 73 79 6d 2d 6c t).(symbol-name.other))....sym-l
24a0 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 20 28 74 ist))..(defun.helpful--button.(t
24c0 65 78 74 20 74 79 70 65 20 26 72 65 73 74 20 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 3b 3b 20 ext.type.&rest.properties)...;;.
24e0 60 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 27 20 6d 75 74 61 74 65 73 20 6f 75 72 20 73 `make-text-button'.mutates.our.s
2500 74 72 69 6e 67 20 74 6f 20 61 64 64 20 70 72 6f 70 65 72 74 69 65 73 2e 20 43 6f 70 79 0a 20 20 tring.to.add.properties..Copy...
2520 3b 3b 20 54 45 58 54 20 74 6f 20 70 72 65 76 65 6e 74 20 6d 75 74 61 74 69 6e 67 20 6f 75 72 20 ;;.TEXT.to.prevent.mutating.our.
2540 61 72 67 75 6d 65 6e 74 73 2c 20 61 6e 64 20 74 6f 20 73 75 70 70 6f 72 74 20 27 70 75 72 65 27 arguments,.and.to.support.'pure'
2560 0a 20 20 3b 3b 20 73 74 72 69 6e 67 73 2c 20 77 68 69 63 68 20 61 72 65 20 72 65 61 64 2d 6f 6e ...;;.strings,.which.are.read-on
2580 6c 79 2e 0a 20 20 28 73 65 74 71 20 74 65 78 74 20 28 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 ly....(setq.text.(substring-no-p
25a0 72 6f 70 65 72 74 69 65 73 20 74 65 78 74 29 29 0a 20 20 28 61 70 70 6c 79 20 23 27 6d 61 6b 65 roperties.text))...(apply.#'make
25c0 2d 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 74 65 78 74 20 6e 69 6c 0a 20 -text-button..........text.nil..
25e0 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 70 72 6f 70 ........:type.type..........prop
2600 65 72 74 69 65 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 erties))..(defun.helpful--canoni
2620 63 61 6c 2d 73 79 6d 62 6f 6c 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 49 cal-symbol.(sym.callable-p)..."I
2640 66 20 53 59 4d 20 69 73 20 61 6e 20 61 6c 69 61 73 2c 20 72 65 74 75 72 6e 20 74 68 65 20 75 6e f.SYM.is.an.alias,.return.the.un
2660 64 65 72 6c 79 69 6e 67 20 73 79 6d 62 6f 6c 2e 0a 52 65 74 75 72 6e 20 53 59 4d 20 6f 74 68 65 derlying.symbol..Return.SYM.othe
2680 72 77 69 73 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 70 74 68 20 30 29 29 0a 20 20 20 20 28 rwise."...(let.((depth.0)).....(
26a0 69 66 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 20 63 61 6c 6c 61 62 6c 65 2d 70 if.(and.(symbolp.sym).callable-p
26c0 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 6f ).........(progn...........;;.Fo
26e0 6c 6c 6f 77 20 74 68 65 20 63 68 61 69 6e 20 6f 66 20 73 79 6d 62 6f 6c 73 20 75 6e 74 69 6c 20 llow.the.chain.of.symbols.until.
2700 77 65 20 66 69 6e 64 20 61 20 73 79 6d 62 6f 6c 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 we.find.a.symbol.that...........
2720 3b 3b 20 69 73 6e 27 74 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 61 20 73 79 6d 62 6f 6c 2e 0a 20 ;;.isn't.pointing.to.a.symbol...
2740 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 28 73 .........(while.(and.(symbolp.(s
2760 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ymbol-function.sym))............
2780 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 64 65 70 74 68 20 31 30 29 29 0a 20 20 20 20 20 20 20 ...........(<.depth.10))........
27a0 20 20 20 20 20 28 73 65 74 71 20 73 79 6d 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 .....(setq.sym.(symbol-function.
27c0 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 70 74 68 20 28 31 sym)).............(setq.depth.(1
27e0 2b 20 64 65 70 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 +.depth)))...........;;.If.this.
2800 69 73 20 61 6e 20 61 6c 69 61 73 20 74 6f 20 61 20 70 72 69 6d 69 74 69 76 65 2c 20 72 65 74 75 is.an.alias.to.a.primitive,.retu
2820 72 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 69 6d 69 74 69 76 65 27 73 20 rn.the...........;;.primitive's.
2840 73 79 6d 62 6f 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 75 62 72 70 20 28 symbol............(when.(subrp.(
2860 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 symbol-function.sym))...........
2880 20 20 28 73 65 74 71 20 73 79 6d 20 28 69 6e 74 65 72 6e 20 28 73 75 62 72 2d 6e 61 6d 65 20 28 ..(setq.sym.(intern.(subr-name.(
28a0 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 29 29 29 0a 20 20 20 20 20 20 symbol-function.sym)))))).......
28c0 28 73 65 74 71 20 73 79 6d 20 28 69 6e 64 69 72 65 63 74 2d 76 61 72 69 61 62 6c 65 20 73 79 6d (setq.sym.(indirect-variable.sym
28e0 29 29 29 29 0a 20 20 73 79 6d 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 6c 69 ))))...sym)..(defun.helpful--ali
2900 61 73 65 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 ases.(sym.callable-p)..."Return.
2920 61 6c 6c 20 74 68 65 20 61 6c 69 61 73 65 73 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 6c 65 74 all.the.aliases.for.SYM."...(let
2940 20 28 28 63 61 6e 6f 6e 69 63 61 6c 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 63 61 6c .((canonical.(helpful--canonical
2960 2d 73 79 6d 62 6f 6c 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 -symbol.sym.callable-p))........
2980 20 61 6c 69 61 73 65 73 29 0a 20 20 20 20 28 6d 61 70 61 74 6f 6d 73 0a 20 20 20 20 20 28 6c 61 .aliases).....(mapatoms......(la
29a0 6d 62 64 61 20 28 73 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 mbda.(s)........(when.(and......
29c0 20 20 20 20 20 20 20 20 20 3b 3b 20 53 6b 69 70 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 .........;;.Skip.variables.that.
29e0 61 72 65 6e 27 74 20 62 6f 75 6e 64 2c 20 73 6f 20 77 65 27 72 65 20 66 61 73 74 65 72 2e 0a 20 aren't.bound,.so.we're.faster...
2a00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 66 62 6f .............(if.callable-p.(fbo
2a20 75 6e 64 70 20 73 29 20 28 62 6f 75 6e 64 70 20 73 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 undp.s).(boundp.s)).............
2a40 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 73 79 6d 62 6f 6c 20 69 73 20 61 20 6e 65 77 20 61 6c ...;;.If.this.symbol.is.a.new.al
2a60 69 61 73 20 66 6f 72 20 6f 75 72 20 74 61 72 67 65 74 20 73 79 6d 2c 0a 20 20 20 20 20 20 20 20 ias.for.our.target.sym,.........
2a80 20 20 20 20 20 20 3b 3b 20 61 64 64 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ......;;.add.it................(
2aa0 65 71 20 63 61 6e 6f 6e 69 63 61 6c 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 63 61 6c eq.canonical.(helpful--canonical
2ac0 2d 73 79 6d 62 6f 6c 20 73 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 0a 20 20 20 20 20 20 20 20 -symbol.s.callable-p))..........
2ae0 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 69 6e 63 6c 75 64 65 20 53 59 4d 2e 0a 20 20 20 20 ......;;.Don't.include.SYM......
2b00 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 73 79 6d 20 73 29 29 29 0a 20 20 20 20 ..........(not.(eq.sym.s))).....
2b20 20 20 20 20 20 28 70 75 73 68 20 73 20 61 6c 69 61 73 65 73 29 29 29 29 0a 20 20 20 20 28 68 65 .....(push.s.aliases)))).....(he
2b40 6c 70 66 75 6c 2d 2d 73 6f 72 74 2d 73 79 6d 62 6f 6c 73 20 61 6c 69 61 73 65 73 29 29 29 0a 0a lpful--sort-symbols.aliases)))..
2b60 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 28 73 (defun.helpful--obsolete-info.(s
2b80 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 ym.callable-p)...(when.(symbolp.
2ba0 73 79 6d 29 0a 20 20 20 20 28 67 65 74 20 73 79 6d 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 sym).....(get.sym.(if.callable-p
2bc0 20 27 62 79 74 65 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 27 62 79 74 65 2d 6f 62 73 6f 6c .'byte-obsolete-info.'byte-obsol
2be0 65 74 65 2d 76 61 72 69 61 62 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c ete-variable))))..(defun.helpful
2c00 2d 2d 66 6f 72 6d 61 74 2d 61 6c 69 61 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a --format-alias.(sym.callable-p).
2c20 20 20 28 6c 65 74 20 28 28 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 28 68 65 6c 70 66 75 6c 2d ..(let.((obsolete-info.(helpful-
2c40 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a -obsolete-info.sym.callable-p)).
2c60 20 20 20 20 20 20 20 20 28 73 79 6d 2d 62 75 74 74 6f 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 ........(sym-button.(helpful--bu
2c80 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f tton......................(symbo
2ca0 6c 2d 6e 61 6d 65 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l-name.sym).....................
2cc0 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f .'helpful-describe-exactly-butto
2ce0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 n......................'symbol.s
2d00 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c ym......................'callabl
2d20 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 e-p.callable-p))).....(cond.....
2d40 20 28 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 0a 20 20 20 20 20 20 28 2d 69 66 2d 6c 65 74 20 28 .(obsolete-info.......(-if-let.(
2d60 76 65 72 73 69 6f 6e 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 version.(-last-item.obsolete-inf
2d80 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 28 6f 62 73 6f 6c o))...........(format."%s.(obsol
2da0 65 74 65 20 73 69 6e 63 65 20 25 73 29 22 20 73 79 6d 2d 62 75 74 74 6f 6e 20 76 65 72 73 69 6f ete.since.%s)".sym-button.versio
2dc0 6e 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 28 6f 62 73 6f 6c 65 74 65 n).........(format."%s.(obsolete
2de0 29 22 20 73 79 6d 2d 62 75 74 74 6f 6e 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 73 )".sym-button)))......(t.......s
2e00 79 6d 2d 62 75 74 74 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 ym-button))))..(defun.helpful--i
2e20 6e 64 65 6e 74 2d 72 69 67 69 64 6c 79 20 28 73 20 61 6d 6f 75 6e 74 29 0a 20 20 22 49 6e 64 65 ndent-rigidly.(s.amount)..."Inde
2e40 6e 74 20 73 74 72 69 6e 67 20 53 20 62 79 20 61 64 64 69 6e 67 20 41 4d 4f 55 4e 54 20 73 70 61 nt.string.S.by.adding.AMOUNT.spa
2e60 63 65 73 20 74 6f 20 65 61 63 68 20 6c 69 6e 65 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d ces.to.each.line."...(with-temp-
2e80 62 75 66 66 65 72 0a 20 20 20 20 28 69 6e 73 65 72 74 20 73 29 0a 20 20 20 20 28 69 6e 64 65 6e buffer.....(insert.s).....(inden
2ea0 74 2d 72 69 67 69 64 6c 79 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 t-rigidly.(point-min).(point-max
2ec0 29 20 61 6d 6f 75 6e 74 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a ).amount).....(buffer-string))).
2ee0 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 6f 70 65 72 74 69 .(defun.helpful--format-properti
2f00 65 73 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 64 es.(symbol)..."Return.a.string.d
2f20 65 73 63 72 69 62 69 6e 67 20 61 6c 6c 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 escribing.all.the.properties.of.
2f40 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 SYMBOL."...(let*.((syms-and-vals
2f60 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 20 32 20 28 61 6e 64 20 28 73 ...........(-partition.2.(and.(s
2f80 79 6d 62 6f 6c 70 20 73 79 6d 62 6f 6c 29 20 28 73 79 6d 62 6f 6c 2d 70 6c 69 73 74 20 73 79 6d ymbolp.symbol).(symbol-plist.sym
2fa0 62 6f 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 0a bol))))..........(syms-and-vals.
2fc0 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 2d 6c 61 6d 62 64 61 20 28 28 73 79 6d 31 ..........(-sort.(-lambda.((sym1
2fe0 20 5f 29 20 28 73 79 6d 32 20 5f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ._).(sym2._))...................
3000 20 28 73 74 72 69 6e 67 2d 6c 65 73 73 70 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 31 .(string-lessp.(symbol-name.sym1
3020 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 ).(symbol-name.sym2)))..........
3040 20 20 20 20 20 20 20 20 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 29 29 0a 20 20 20 20 20 20 20 20 ........syms-and-vals)).........
3060 20 28 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 .(lines...........(--map........
3080 20 20 20 20 28 2d 6c 65 74 2a 20 28 28 28 73 79 6d 20 76 61 6c 29 20 69 74 29 0a 20 20 20 20 20 ....(-let*.(((sym.val).it)......
30a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 74 74 79 2d 76 61 6c 0a 20 20 20 20 20 20 ..............(pretty-val.......
30c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 ..............(helpful--pretty-p
30e0 72 69 6e 74 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 rint.val)))..............(format
3100 20 22 25 73 5c 6e 25 73 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."%s\n%s%s".....................
3120 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 0a 20 .(propertize.(symbol-name.sym)..
3140 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 ................................
3160 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 'face.'font-lock-constant-face).
3180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 .....................(helpful--i
31a0 6e 64 65 6e 74 2d 72 69 67 69 64 6c 79 20 70 72 65 74 74 79 2d 76 61 6c 20 32 29 0a 20 20 20 20 ndent-rigidly.pretty-val.2).....
31c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 .................(cond..........
31e0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 6c 73 6f 20 6f 66 66 65 72 20 74 6f 20 64 69 .............;;.Also.offer.to.di
3200 73 61 73 73 65 6d 62 6c 65 20 62 79 74 65 2d 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 sassemble.byte-code.............
3220 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 20 20 20 20 20 20 20 ..........;;.properties.........
3240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 ...............((byte-code-funct
3260 69 6f 6e 2d 70 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion-p.val)......................
3280 20 20 28 66 6f 72 6d 61 74 20 22 5c 6e 20 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(format."\n..%s"..............
32a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 ..................(helpful--make
32c0 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 20 76 61 6c 29 29 29 0a 20 20 20 20 20 -disassemble-button.val)))......
32e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 73 79 6d 20 27 65 72 74 2d 2d .................((eq.sym.'ert--
3300 74 65 73 74 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 28 66 6f test)........................(fo
3320 72 6d 61 74 20 22 5c 6e 20 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rmat."\n..%s"...................
3340 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 75 6e 2d .............(helpful--make-run-
3360 74 65 73 74 2d 62 75 74 74 6f 6e 20 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 test-button.symbol)))...........
3380 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............(t..................
33a0 20 20 20 20 20 20 22 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 73 2d 61 6e 64 ......""))))............syms-and
33c0 2d 76 61 6c 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6c 69 6e 65 73 0a 20 20 20 20 20 20 28 -vals))).....(when.lines.......(
33e0 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 6c 69 6e 65 73 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 s-join."\n".lines))))..(define-b
3400 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 66 6f 72 67 65 74 2d 62 75 74 74 6f utton-type.'helpful-forget-butto
3420 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 67 65 74 0a 20 20 n...'action.#'helpful--forget...
3440 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 6c 0a 20 20 'symbol.nil...'callable-p.nil...
3460 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 55 6e 62 'follow-link.t...'help-echo."Unb
3480 69 6e 64 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 22 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 69 74 ind.this.function")..;;.TODO:.it
34a0 20 77 6f 75 6c 64 20 62 65 20 6e 69 63 65 20 74 6f 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 64 65 6c .would.be.nice.to.optionally.del
34c0 65 74 65 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 74 6f 6f 2e 0a 28 64 65 66 75 6e 20 ete.the.source.code.too..(defun.
34e0 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 67 65 74 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 55 6e 62 69 helpful--forget.(button)..."Unbi
3500 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 6c 65 74 2a 20 nd.the.current.symbol."...(let*.
3520 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c ((sym.(button-get.button.'symbol
3540 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 20 28 62 75 74 74 6f 6e 2d ))..........(callable-p.(button-
3560 67 65 74 20 62 75 74 74 6f 6e 20 27 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 get.button.'callable-p))........
3580 20 20 28 6b 69 6e 64 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e 64 2d 6e 61 6d 65 20 73 79 6d 20 ..(kind.(helpful--kind-name.sym.
35a0 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 79 65 73 2d 6f 72 2d callable-p))).....(when.(yes-or-
35c0 6e 6f 2d 70 20 28 66 6f 72 6d 61 74 20 22 46 6f 72 67 65 74 20 25 73 20 25 73 3f 22 20 6b 69 6e no-p.(format."Forget.%s.%s?".kin
35e0 64 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 d.sym)).......(if.callable-p....
3600 20 20 20 20 20 20 20 28 66 6d 61 6b 75 6e 62 6f 75 6e 64 20 73 79 6d 29 0a 20 20 20 20 20 20 20 .......(fmakunbound.sym)........
3620 20 28 6d 61 6b 75 6e 62 6f 75 6e 64 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 .(makunbound.sym)).......(messag
3640 65 20 22 46 6f 72 67 6f 74 20 25 73 20 25 73 2e 22 20 6b 69 6e 64 20 73 79 6d 29 0a 20 20 20 20 e."Forgot.%s.%s.".kind.sym).....
3660 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 ..(kill-buffer.(current-buffer))
3680 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 )))..(define-button-type.'helpfu
36a0 6c 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 27 61 63 74 69 6f 6e 20 23 l-c-source-directory...'action.#
36c0 27 68 65 6c 70 66 75 6c 2d 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 27 'helpful--c-source-directory...'
36e0 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 53 65 74 20 follow-link.t...'help-echo."Set.
3700 64 69 72 65 63 74 6f 72 79 20 74 6f 20 45 6d 61 63 73 20 43 20 73 6f 75 72 63 65 20 63 6f 64 65 directory.to.Emacs.C.source.code
3720 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 ")..(defun.helpful--c-source-dir
3740 65 63 74 6f 72 79 20 28 5f 62 75 74 74 6f 6e 29 0a 20 20 22 53 65 74 20 60 66 69 6e 64 2d 66 75 ectory.(_button)..."Set.`find-fu
3760 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 27 20 73 6f 20 77 65 nction-C-source-directory'.so.we
3780 20 63 61 6e 20 73 68 6f 77 20 74 68 65 0a 73 6f 75 72 63 65 20 63 6f 64 65 20 74 6f 20 70 72 69 .can.show.the.source.code.to.pri
37a0 6d 69 74 69 76 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 mitives."...(let.((emacs-src-dir
37c0 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 50 61 74 68 20 74 6f 20 45 .(read-directory-name."Path.to.E
37e0 6d 61 63 73 20 73 6f 75 72 63 65 20 63 6f 64 65 3a 20 22 29 29 29 0a 20 20 20 20 3b 3b 20 4c 65 macs.source.code:."))).....;;.Le
3800 74 20 74 68 65 20 75 73 65 72 20 73 70 65 63 69 66 79 20 74 68 65 20 73 6f 75 72 63 65 20 70 61 t.the.user.specify.the.source.pa
3820 74 68 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 73 72 63 2f 2c 0a 20 20 20 20 3b 3b 20 th.with.or.without.src/,.....;;.
3840 77 68 69 63 68 20 69 73 20 61 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 69 6e 20 74 68 65 20 45 which.is.a.subdirectory.in.the.E
3860 6d 61 63 73 20 74 72 65 65 2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 66 macs.tree......(unless.(equal.(f
3880 2d 66 69 6c 65 6e 61 6d 65 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 29 20 22 73 72 63 22 29 0a -filename.emacs-src-dir)."src").
38a0 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 20 28 66 2d 6a 6f 69 ......(setq.emacs-src-dir.(f-joi
38c0 6e 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 20 22 73 72 63 22 29 29 29 0a 20 20 20 20 28 73 65 n.emacs-src-dir."src"))).....(se
38e0 74 71 20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 tq.find-function-C-source-direct
3900 6f 72 79 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 75 ory.emacs-src-dir))...(helpful-u
3920 70 64 61 74 65 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 pdate))..(define-button-type.'he
3940 6c 70 66 75 6c 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 lpful-disassemble-button...'acti
3960 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 20 27 66 6f 6c on.#'helpful--disassemble...'fol
3980 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 6f 62 6a 65 63 74 20 6e 69 6c 0a 20 20 27 68 65 6c 70 low-link.t...'object.nil...'help
39a0 2d 65 63 68 6f 20 22 53 68 6f 77 20 64 69 73 61 73 73 65 6d 62 6c 65 64 20 62 79 74 65 63 6f 64 -echo."Show.disassembled.bytecod
39c0 65 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 69 73 61 73 73 65 6d 62 6c 65 e")..(defun.helpful--disassemble
39e0 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 44 69 73 61 73 73 65 6d 62 6c 65 20 74 68 65 20 63 75 72 .(button)..."Disassemble.the.cur
3a00 72 65 6e 74 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 3b 3b 20 60 64 69 73 61 73 73 65 6d 62 6c 65 27 rent.symbol."...;;.`disassemble'
3a20 20 63 61 6e 20 68 61 6e 64 6c 65 20 62 6f 74 68 20 73 79 6d 62 6f 6c 73 20 28 65 2e 67 2e 20 27 .can.handle.both.symbols.(e.g..'
3a40 77 68 65 6e 29 20 61 6e 64 20 72 61 77 0a 20 20 3b 3b 20 62 79 74 65 2d 63 6f 64 65 20 6f 62 6a when).and.raw...;;.byte-code.obj
3a60 65 63 74 73 2e 0a 20 20 28 64 69 73 61 73 73 65 6d 62 6c 65 20 28 62 75 74 74 6f 6e 2d 67 65 74 ects....(disassemble.(button-get
3a80 20 62 75 74 74 6f 6e 20 27 6f 62 6a 65 63 74 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 .button.'object)))..(define-butt
3aa0 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 6f 6e on-type.'helpful-run-test-button
3ac0 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 72 75 6e 2d 74 65 73 74 0a 20 ...'action.#'helpful--run-test..
3ae0 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 .'follow-link.t...'symbol.nil...
3b00 27 68 65 6c 70 2d 65 63 68 6f 20 22 52 75 6e 20 45 52 54 20 74 65 73 74 22 29 0a 0a 28 64 65 66 'help-echo."Run.ERT.test")..(def
3b20 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 72 75 6e 2d 74 65 73 74 20 28 62 75 74 74 6f 6e 29 0a 20 20 un.helpful--run-test.(button)...
3b40 22 44 69 73 61 73 73 65 6d 62 6c 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 6f 6c 2e "Disassemble.the.current.symbol.
3b60 22 0a 20 20 28 65 72 74 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d "...(ert.(button-get.button.'sym
3b80 62 6f 6c 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c bol)))..(define-button-type.'hel
3ba0 70 66 75 6c 2d 65 64 65 62 75 67 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 pful-edebug-button...'action.#'h
3bc0 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a elpful--edebug...'follow-link.t.
3be0 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 54 6f 67 67 ..'symbol.nil...'help-echo."Togg
3c00 6c 65 20 65 64 65 62 75 67 20 28 72 65 2d 65 76 61 6c 75 61 74 65 73 20 64 65 66 69 6e 69 74 69 le.edebug.(re-evaluates.definiti
3c20 6f 6e 29 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d 6d 61 63 72 6f on)")..(defun.helpful--kbd-macro
3c40 2d 70 20 28 73 79 6d 29 0a 20 20 22 49 73 20 53 59 4d 20 61 20 6b 65 79 62 6f 61 72 64 20 6d 61 -p.(sym)..."Is.SYM.a.keyboard.ma
3c60 63 72 6f 3f 22 0a 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 cro?"...(and.(symbolp.sym)......
3c80 20 20 28 6c 65 74 20 28 28 66 75 6e 63 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 ..(let.((func.(symbol-function.s
3ca0 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 70 20 66 75 6e 63 ym)))..........(or.(stringp.func
3cc0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 70 20 66 75 6e 63 29 29 29 29 )..............(vectorp.func))))
3ce0 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 2d 70 20 28 73 79 6d )..(defun.helpful--edebug-p.(sym
3d00 29 0a 20 20 22 44 6f 65 73 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 20 68 61 76 65 20 69 74 73 20 )..."Does.function.SYM.have.its.
3d20 64 65 66 69 6e 69 74 69 6f 6e 20 70 61 74 63 68 65 64 20 62 79 20 65 64 65 62 75 67 3f 22 0a 20 definition.patched.by.edebug?"..
3d40 20 28 6c 65 74 20 28 28 66 6e 2d 64 65 66 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f .(let.((fn-def.(indirect-functio
3d60 6e 20 73 79 6d 29 29 29 0a 20 20 20 20 3b 3b 20 45 64 65 62 75 67 20 72 65 70 6c 61 63 65 73 20 n.sym))).....;;.Edebug.replaces.
3d80 66 75 6e 63 74 69 6f 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 77 69 74 68 20 61 20 73 65 78 70 function.source.code.with.a.sexp
3da0 20 74 68 61 74 20 68 61 73 0a 20 20 20 20 3b 3b 20 60 65 64 65 62 75 67 2d 65 6e 74 65 72 27 2c .that.has.....;;.`edebug-enter',
3dc0 20 60 65 64 65 62 75 67 2d 61 66 74 65 72 27 20 65 74 63 20 69 6e 74 65 72 6c 65 61 76 65 64 2e .`edebug-after'.etc.interleaved.
3de0 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 65 0a 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 .This.means.the.....;;.function.
3e00 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 2c 20 73 6f 20 60 69 6e 64 69 72 65 63 74 2d 66 75 6e is.interpreted,.so.`indirect-fun
3e20 63 74 69 6f 6e 27 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 2e 0a 20 20 20 20 28 77 68 65 6e ction'.returns.a.list......(when
3e40 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 66 6e 2d 64 65 66 29 20 28 63 6f 6e 73 70 20 28 63 64 72 .(and.(consp.fn-def).(consp.(cdr
3e60 20 66 6e 2d 64 65 66 29 29 29 0a 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 66 6e 2d 65 6e 64 20 28 .fn-def))).......(-let.[fn-end.(
3e80 2d 6c 61 73 74 2d 69 74 65 6d 20 66 6e 2d 64 65 66 29 5d 0a 20 20 20 20 20 20 20 20 28 61 6e 64 -last-item.fn-def)].........(and
3ea0 20 28 63 6f 6e 73 70 20 66 6e 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 .(consp.fn-end)..............(eq
3ec0 20 28 63 61 72 20 66 6e 2d 65 6e 64 29 20 27 65 64 65 62 75 67 2d 65 6e 74 65 72 29 29 29 29 29 .(car.fn-end).'edebug-enter)))))
3ee0 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 2d 65 64 65 62 75 67 2d 70 20 )..(defun.helpful--can-edebug-p.
3f00 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 29 0a 20 20 22 43 61 6e 20 (sym.callable-p.buf.pos)..."Can.
3f20 77 65 20 75 73 65 20 65 64 65 62 75 67 20 77 69 74 68 20 53 59 4d 3f 22 0a 20 20 28 61 6e 64 0a we.use.edebug.with.SYM?"...(and.
3f40 20 20 20 3b 3b 20 53 59 4d 20 6d 75 73 74 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 ...;;.SYM.must.be.a.function....
3f60 20 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 3b 3b 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 .callable-p....;;.The.function.c
3f80 61 6e 6e 6f 74 20 62 65 20 61 20 70 72 69 6d 69 74 69 76 65 2c 20 69 74 20 6d 75 73 74 20 62 65 annot.be.a.primitive,.it.must.be
3fa0 20 64 65 66 69 6e 65 64 20 69 6e 20 65 6c 69 73 70 2e 0a 20 20 20 28 6e 6f 74 20 28 68 65 6c 70 .defined.in.elisp.....(not.(help
3fc0 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 ful--primitive-p.sym.callable-p)
3fe0 29 0a 20 20 20 3b 3b 20 57 65 20 6e 65 65 64 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 66 69 )....;;.We.need.to.be.able.to.fi
4000 6e 64 20 69 74 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 6f 72 20 77 65 20 63 61 6e 27 74 20 73 nd.its.definition,.or.we.can't.s
4020 74 65 70 0a 20 20 20 3b 3b 20 74 68 72 6f 75 67 68 20 74 68 65 20 73 6f 75 72 63 65 2e 0a 20 20 tep....;;.through.the.source....
4040 20 62 75 66 20 70 6f 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 6f 67 67 .buf.pos))..(defun.helpful--togg
4060 6c 65 2d 65 64 65 62 75 67 20 28 73 79 6d 29 0a 20 20 22 45 6e 61 62 6c 65 20 65 64 65 62 75 67 le-edebug.(sym)..."Enable.edebug
4080 20 77 68 65 6e 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 20 69 73 20 63 61 6c 6c 65 64 2c 0a 6f 72 .when.function.SYM.is.called,.or
40a0 20 64 69 73 61 62 6c 65 20 69 66 20 61 6c 72 65 61 64 79 20 65 6e 61 62 6c 65 64 2e 22 0a 20 20 .disable.if.already.enabled."...
40c0 28 2d 6c 65 74 20 28 28 73 68 6f 75 6c 64 2d 65 64 65 62 75 67 20 28 6e 6f 74 20 28 68 65 6c 70 (-let.((should-edebug.(not.(help
40e0 66 75 6c 2d 2d 65 64 65 62 75 67 2d 70 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 ful--edebug-p.sym)))..........((
4100 62 75 66 20 70 6f 73 20 63 72 65 61 74 65 64 29 20 28 68 65 6c 70 66 75 6c 2d 2d 64 65 66 69 6e buf.pos.created).(helpful--defin
4120 69 74 69 6f 6e 20 73 79 6d 20 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 62 75 66 20 ition.sym.t))).....(if.(and.buf.
4140 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 77 pos).........(progn...........(w
4160 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 ith-current-buffer.buf..........
4180 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 20 20 ...(save-excursion..............
41a0 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(save-restriction..............
41c0 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f ...(widen).................(goto
41e0 2d 63 68 61 72 20 70 6f 73 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 -char.pos)..................(let
4200 2a 20 28 28 65 64 65 62 75 67 2d 61 6c 6c 2d 66 6f 72 6d 73 20 73 68 6f 75 6c 64 2d 65 64 65 62 *.((edebug-all-forms.should-edeb
4220 75 67 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 28 65 64 65 62 ug)........................(edeb
4240 75 67 2d 61 6c 6c 2d 64 65 66 73 20 73 68 6f 75 6c 64 2d 65 64 65 62 75 67 29 0a 20 20 20 20 20 ug-all-defs.should-edebug)......
4260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 20 28 65 64 65 62 75 67 2d ..................(form.(edebug-
4280 72 65 61 64 2d 74 6f 70 2d 6c 65 76 65 6c 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 read-top-level-form)))..........
42a0 20 20 20 20 20 20 20 20 20 3b 3b 20 42 61 73 65 64 20 6f 6e 20 60 65 64 65 62 75 67 2d 65 76 61 .........;;.Based.on.`edebug-eva
42c0 6c 2d 64 65 66 75 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 76 61 l-defun'....................(eva
42e0 6c 20 28 65 76 61 6c 2d 73 65 78 70 2d 61 64 64 2d 64 65 66 76 61 72 73 20 66 6f 72 6d 29 20 6c l.(eval-sexp-add-defvars.form).l
4300 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b exical-binding)))))...........;;
4320 20 49 66 20 77 65 27 72 65 20 65 6e 61 62 6c 69 6e 67 20 65 64 65 62 75 67 2c 20 77 65 20 6e 65 .If.we're.enabling.edebug,.we.ne
4340 65 64 20 74 68 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 20 74 6f 0a 20 20 20 20 20 20 20 20 ed.the.source.buffer.to.........
4360 20 20 3b 3b 20 65 78 69 73 74 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 77 65 20 63 61 6e 20 63 6c ..;;.exist..Otherwise,.we.can.cl
4380 65 61 6e 20 69 74 20 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 ean.it.up............(when.(and.
43a0 63 72 65 61 74 65 64 20 28 6e 6f 74 20 73 68 6f 75 6c 64 2d 65 64 65 62 75 67 29 29 0a 20 20 20 created.(not.should-edebug))....
43c0 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 29 29 0a 0a 20 20 .........(kill-buffer.buf)))....
43e0 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 ....(user-error."Could.not.find.
4400 73 6f 75 72 63 65 20 66 6f 72 20 65 64 65 62 75 67 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 source.for.edebug"))))..(defun.h
4420 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 6f 67 67 6c elpful--edebug.(button)..."Toggl
4440 65 20 65 64 65 62 75 67 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 6f 6c 2e e.edebug.for.the.current.symbol.
4460 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 74 6f 67 67 6c 65 2d 65 64 65 62 75 67 20 28 62 75 74 "...(helpful--toggle-edebug.(but
4480 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 0a 20 20 28 68 65 6c 70 ton-get.button.'symbol))...(help
44a0 66 75 6c 2d 75 70 64 61 74 65 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 ful-update))..(define-button-typ
44c0 65 20 27 68 65 6c 70 66 75 6c 2d 74 72 61 63 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f e.'helpful-trace-button...'actio
44e0 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 74 72 61 63 65 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e n.#'helpful--trace...'follow-lin
4500 6b 20 74 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 k.t...'symbol.nil...'help-echo."
4520 54 6f 67 67 6c 65 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 69 6e 67 22 29 0a 0a 28 64 65 66 75 Toggle.function.tracing")..(defu
4540 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 72 61 63 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 6f 67 n.helpful--trace.(button)..."Tog
4560 67 6c 65 20 74 72 61 63 69 6e 67 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 gle.tracing.for.the.current.symb
4580 6f 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 ol."...(let.((sym.(button-get.bu
45a0 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 28 69 66 20 28 74 72 61 63 65 2d 69 tton.'symbol))).....(if.(trace-i
45c0 73 2d 74 72 61 63 65 64 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 28 75 6e 74 72 61 63 65 2d 66 s-traced.sym).........(untrace-f
45e0 75 6e 63 74 69 6f 6e 20 73 79 6d 29 0a 20 20 20 20 20 20 28 74 72 61 63 65 2d 66 75 6e 63 74 69 unction.sym).......(trace-functi
4600 6f 6e 20 73 79 6d 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 29 0a 0a 28 on.sym)))...(helpful-update))..(
4620 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 6e 61 76 69 define-button-type.'helpful-navi
4640 67 61 74 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d gate-button...'action.#'helpful-
4660 2d 6e 61 76 69 67 61 74 65 0a 20 20 27 70 61 74 68 20 6e 69 6c 0a 20 20 27 70 6f 73 69 74 69 6f -navigate...'path.nil...'positio
4680 6e 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 n.nil...'follow-link.t...'help-e
46a0 63 68 6f 20 22 4e 61 76 69 67 61 74 65 20 74 6f 20 64 65 66 69 6e 69 74 69 6f 6e 22 29 0a 0a 28 cho."Navigate.to.definition")..(
46c0 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 28 defun.helpful--goto-char-widen.(
46e0 70 6f 73 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 50 4f 53 20 69 6e 20 74 68 65 pos)..."Move.point.to.POS.in.the
4700 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 49 66 20 6e 61 72 72 6f 77 69 6e 67 20 69 73 .current.buffer..If.narrowing.is
4720 20 69 6e 20 65 66 66 65 63 74 2c 20 77 69 64 65 6e 20 69 66 20 50 4f 53 20 69 73 6e 27 74 20 69 .in.effect,.widen.if.POS.isn't.i
4740 6e 20 74 68 65 20 6e 61 72 72 6f 77 65 64 20 61 72 65 61 2e 22 0a 20 20 28 77 68 65 6e 20 28 6f n.the.narrowed.area."...(when.(o
4760 72 20 28 3c 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 r.(<.pos.(point-min))...........
4780 20 20 28 3e 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 28 77 69 64 65 ..(>.pos.(point-max))).....(wide
47a0 6e 29 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 n))...(goto-char.pos))..(defun.h
47c0 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 61 74 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 4e 61 76 elpful--navigate.(button)..."Nav
47e0 69 67 61 74 65 20 74 6f 20 74 68 65 20 70 61 74 68 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 igate.to.the.path.this.BUTTON.re
4800 70 72 65 73 65 6e 74 73 2e 22 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 28 73 75 62 73 74 72 69 presents."...(find-file.(substri
4820 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 ng-no-properties.(button-get.but
4840 74 6f 6e 20 27 70 61 74 68 29 29 29 0a 20 20 3b 3b 20 57 65 20 75 73 65 20 60 67 65 74 2d 74 65 ton.'path)))...;;.We.use.`get-te
4860 78 74 2d 70 72 6f 70 65 72 74 79 27 20 74 6f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 61 6e 20 45 xt-property'.to.work.around.an.E
4880 6d 61 63 73 20 32 35 20 62 75 67 3a 0a 20 20 3b 3b 20 68 74 74 70 3a 2f 2f 67 69 74 2e 73 61 76 macs.25.bug:...;;.http://git.sav
48a0 61 6e 6e 61 68 2e 67 6e 75 2e 6f 72 67 2f 63 67 69 74 2f 65 6d 61 63 73 2e 67 69 74 2f 63 6f 6d annah.gnu.org/cgit/emacs.git/com
48c0 6d 69 74 2f 3f 69 64 3d 66 37 63 34 62 61 64 31 37 64 38 33 32 39 37 65 65 39 61 31 62 35 37 35 mit/?id=f7c4bad17d83297ee9a1b575
48e0 35 32 62 31 39 34 34 30 32 30 66 32 33 61 65 61 0a 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 70 52b1944020f23aea...(-when-let.(p
4900 6f 73 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 75 74 74 6f 6e 20 27 70 6f os.(get-text-property.button.'po
4920 73 69 74 69 6f 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 20 20 sition..........................
4940 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 62 75 74 74 6f ............(marker-buffer.butto
4960 6e 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 n))).....(helpful--goto-char-wid
4980 65 6e 20 70 6f 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 en.pos)))..(defun.helpful--navig
49a0 61 74 65 2d 62 75 74 74 6f 6e 20 28 74 65 78 74 20 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 ate-button.(text.path.&optional.
49c0 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 75 74 74 6f 6e 20 74 68 61 74 20 6f 70 65 pos)..."Return.a.button.that.ope
49e0 6e 73 20 50 41 54 48 20 61 6e 64 20 70 75 74 73 20 70 6f 69 6e 74 20 61 74 20 50 4f 53 2e 22 0a ns.PATH.and.puts.point.at.POS.".
4a00 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 74 65 78 74 0a 20 20 20 27 68 ..(helpful--button....text....'h
4a20 65 6c 70 66 75 6c 2d 6e 61 76 69 67 61 74 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 70 61 74 68 20 elpful-navigate-button....'path.
4a40 70 61 74 68 0a 20 20 20 27 70 6f 73 69 74 69 6f 6e 20 70 6f 73 29 29 0a 0a 28 64 65 66 69 6e 65 path....'position.pos))..(define
4a60 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 75 74 -button-type.'helpful-buffer-but
4a80 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 73 77 69 74 63 68 2d ton...'action.#'helpful--switch-
4aa0 74 6f 2d 62 75 66 66 65 72 0a 20 20 27 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 27 70 6f 73 69 74 to-buffer...'buffer.nil...'posit
4ac0 69 6f 6e 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 ion.nil...'follow-link.t...'help
4ae0 2d 65 63 68 6f 20 22 53 77 69 74 63 68 20 74 6f 20 74 68 69 73 20 62 75 66 66 65 72 22 29 0a 0a -echo."Switch.to.this.buffer")..
4b00 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 (defun.helpful--switch-to-buffer
4b20 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 4e 61 76 69 67 61 74 65 20 74 6f 20 74 68 65 20 62 75 66 .(button)..."Navigate.to.the.buf
4b40 66 65 72 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 0a 20 20 28 fer.this.BUTTON.represents."...(
4b60 6c 65 74 20 28 28 62 75 66 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 62 75 let.((buf.(button-get.button.'bu
4b80 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 ffer)).........(pos.(button-get.
4ba0 62 75 74 74 6f 6e 20 27 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 73 77 69 74 63 68 2d button.'position))).....(switch-
4bc0 74 6f 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 28 77 68 65 6e 20 70 6f 73 0a 20 20 20 to-buffer.buf).....(when.pos....
4be0 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 70 6f 73 ...(helpful--goto-char-widen.pos
4c00 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 75 66 66 65 72 2d 62 75 74 ))))..(defun.helpful--buffer-but
4c20 74 6f 6e 20 28 62 75 66 66 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20 20 22 52 65 ton.(buffer.&optional.pos)..."Re
4c40 74 75 72 6e 20 61 20 62 75 74 74 6f 6e 20 74 68 61 74 20 73 77 69 74 63 68 65 73 20 74 6f 20 42 turn.a.button.that.switches.to.B
4c60 55 46 46 45 52 20 61 6e 64 20 70 75 74 73 20 70 6f 69 6e 74 20 61 74 20 50 4f 53 2e 22 0a 20 20 UFFER.and.puts.point.at.POS."...
4c80 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 (helpful--button....(buffer-name
4ca0 20 62 75 66 66 65 72 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 75 74 74 .buffer)....'helpful-buffer-butt
4cc0 6f 6e 0a 20 20 20 27 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 27 70 6f 73 69 74 69 6f on....'buffer.buffer....'positio
4ce0 6e 20 70 6f 73 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 n.pos))..(define-button-type.'he
4d00 6c 70 66 75 6c 2d 63 75 73 74 6f 6d 69 7a 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e lpful-customize-button...'action
4d20 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 75 73 74 6f 6d 69 7a 65 0a 20 20 27 73 79 6d 62 6f 6c 20 .#'helpful--customize...'symbol.
4d40 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 nil...'follow-link.t...'help-ech
4d60 6f 20 22 4f 70 65 6e 20 43 75 73 74 6f 6d 69 7a 65 20 66 6f 72 20 74 68 69 73 20 73 79 6d 62 6f o."Open.Customize.for.this.symbo
4d80 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 75 73 74 6f 6d 69 7a 65 20 28 l")..(defun.helpful--customize.(
4da0 62 75 74 74 6f 6e 29 0a 20 20 22 4f 70 65 6e 20 43 75 73 74 6f 6d 69 7a 65 20 66 6f 72 20 74 68 button)..."Open.Customize.for.th
4dc0 69 73 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 63 75 73 74 6f 6d 69 7a 65 2d 76 61 72 69 61 62 6c is.symbol."...(customize-variabl
4de0 65 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a e.(button-get.button.'symbol))).
4e00 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 61 73 .(define-button-type.'helpful-as
4e20 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e sociated-buffer-button...'action
4e40 20 23 27 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 0a 20 20 .#'helpful--associated-buffer...
4e60 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 70 72 6f 6d 70 74 2d 70 20 6e 69 6c 0a 20 20 27 66 'symbol.nil...'prompt-p.nil...'f
4e80 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 43 68 61 6e 67 ollow-link.t...'help-echo."Chang
4ea0 65 20 61 73 73 6f 63 69 61 74 65 64 20 62 75 66 66 65 72 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 e.associated.buffer")..(defun.he
4ec0 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 6c 69 76 65 2d 62 75 66 66 65 72 20 28 70 72 6f 6d 70 74 20 lpful--read-live-buffer.(prompt.
4ee0 70 72 65 64 69 63 61 74 65 29 0a 20 20 22 52 65 61 64 20 61 20 6c 69 76 65 20 62 75 66 66 65 72 predicate)..."Read.a.live.buffer
4f00 20 6e 61 6d 65 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 62 75 66 66 65 72 20 6f 62 6a .name,.and.return.the.buffer.obj
4f20 65 63 74 2e 0a 0a 54 68 69 73 20 69 73 20 6c 61 72 67 65 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 ect...This.is.largely.equivalent
4f40 20 74 6f 20 60 72 65 61 64 2d 62 75 66 66 65 72 27 2c 20 62 75 74 20 63 6f 75 6e 73 65 6c 2e 65 .to.`read-buffer',.but.counsel.e
4f60 6c 0a 6f 76 65 72 72 69 64 65 73 20 74 68 61 74 20 74 6f 20 69 6e 63 6c 75 64 65 20 70 72 65 76 l.overrides.that.to.include.prev
4f80 69 6f 75 73 6c 79 20 6f 70 65 6e 65 64 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 6c 65 74 2a 20 iously.opened.buffers."...(let*.
4fa0 28 28 6e 61 6d 65 73 20 28 2d 6d 61 70 20 23 27 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 62 75 66 ((names.(-map.#'buffer-name.(buf
4fc0 66 65 72 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 0a 20 20 fer-list)))..........(default...
4fe0 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 .........(cond.............;;.If
5000 20 77 65 27 72 65 20 61 6c 72 65 61 64 79 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 61 20 62 75 66 66 .we're.already.looking.at.a.buff
5020 65 72 2d 6c 6f 63 61 6c 20 76 61 6c 75 65 2c 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 er-local.value,.start...........
5040 20 20 3b 3b 20 74 68 65 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 74 68 65 20 72 65 6c 65 76 61 6e ..;;.the.prompt.from.the.relevan
5060 74 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 68 65 6c 70 t.buffer..............((and.help
5080 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 ful--associated-buffer..........
50a0 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d .........(buffer-live-p.helpful-
50c0 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 -associated-buffer))............
50e0 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 ..(buffer-name.helpful--associat
5100 65 64 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 ed-buffer)).............;;.If.we
5120 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2c 're.looking.at.the.global.value,
5140 20 6f 66 66 65 72 20 74 68 65 20 69 6e 69 74 69 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b .offer.the.initial.............;
5160 3b 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 68 65 6c 70 ;.buffer..............((and.help
5180 66 75 6c 2d 2d 73 74 61 72 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ful--start-buffer...............
51a0 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 74 61 72 ....(buffer-live-p.helpful--star
51c0 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d t-buffer))..............(buffer-
51e0 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 2d 73 74 61 72 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 name.helpful--start-buffer))....
5200 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 .........;;.If.we're.looking.at.
5220 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 6c 75 65 20 61 6e 64 20 68 61 76 65 20 6e 6f 20 69 6e 69 the.global.value.and.have.no.ini
5240 74 69 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2c 20 63 68 6f 6f tial.............;;.buffer,.choo
5260 73 65 20 74 68 65 20 66 69 72 73 74 20 6e 6f 72 6d 61 6c 20 62 75 66 66 65 72 2e 0a 20 20 20 20 se.the.first.normal.buffer......
5280 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 72 73 74 ........(t..............(--first
52a0 20 28 61 6e 64 20 28 6e 6f 74 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 20 22 20 .(and.(not.(s-starts-with-p.".".
52c0 69 74 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 it))............................
52e0 28 6e 6f 74 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 2a 22 20 69 74 29 29 29 0a (not.(s-starts-with-p."*".it))).
5300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 73 29 29 0a 20 20 ......................names))...
5320 20 20 20 20 20 20 20 20 20 20 29 29 29 0a 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 0a 20 20 ..........))).....(get-buffer...
5340 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 70 72 6f 6d 70 74 ...(completing-read.......prompt
5360 0a 20 20 20 20 20 20 6e 61 6d 65 73 0a 20 20 20 20 20 20 70 72 65 64 69 63 61 74 65 0a 20 20 20 .......names.......predicate....
5380 20 20 20 74 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 64 ...t.......nil.......nil.......d
53a0 65 66 61 75 6c 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f efault))))..(defun.helpful--asso
53c0 63 69 61 74 65 64 2d 62 75 66 66 65 72 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 43 68 61 6e 67 65 ciated-buffer.(button)..."Change
53e0 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 64 20 62 75 66 66 65 72 2c 20 73 6f 20 77 65 20 63 61 .the.associated.buffer,.so.we.ca
5400 6e 20 73 65 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 6c 75 65 73 2e 22 0a 20 20 28 6c n.see.buffer-local.values."...(l
5420 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d et.((sym.(button-get.button.'sym
5440 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 2d 70 20 28 62 75 74 74 6f 6e 2d bol)).........(prompt-p.(button-
5460 67 65 74 20 62 75 74 74 6f 6e 20 27 70 72 6f 6d 70 74 2d 70 29 29 29 0a 20 20 20 20 28 69 66 20 get.button.'prompt-p))).....(if.
5480 70 72 6f 6d 70 74 2d 70 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d prompt-p.........(setq.helpful--
54a0 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 associated-buffer...............
54c0 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 6c 69 76 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 (helpful--read-live-buffer......
54e0 20 20 20 20 20 20 20 20 20 20 22 56 69 65 77 20 76 61 72 69 61 62 6c 65 20 69 6e 3a 20 22 0a 20 .........."View.variable.in:."..
5500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 75 66 2d 6e 61 6d 65 29 ..............(lambda.(buf-name)
5520 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c ..................(local-variabl
5540 65 2d 70 20 73 79 6d 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 29 e-p.sym.(get-buffer.buf-name))))
5560 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 ).......(setq.helpful--associate
5580 64 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 d-buffer.nil)))...(helpful-updat
55a0 65 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 e))..(define-button-type.'helpfu
55c0 6c 2d 74 6f 67 67 6c 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 l-toggle-button...'action.#'help
55e0 66 75 6c 2d 2d 74 6f 67 67 6c 65 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 62 75 66 ful--toggle...'symbol.nil...'buf
5600 66 65 72 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 fer.nil...'follow-link.t...'help
5620 2d 65 63 68 6f 20 22 54 6f 67 67 6c 65 20 74 68 69 73 20 73 79 6d 62 6f 6c 20 62 65 74 77 65 65 -echo."Toggle.this.symbol.betwee
5640 6e 20 74 20 61 6e 64 20 6e 69 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 n.t.and.nil")..(defun.helpful--t
5660 6f 67 67 6c 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 6f 67 67 6c 65 20 74 68 65 20 73 79 6d oggle.(button)..."Toggle.the.sym
5680 62 6f 6c 20 62 65 74 77 65 65 6e 20 6e 69 6c 20 61 6e 64 20 74 2e 22 0a 20 20 28 6c 65 74 20 28 bol.between.nil.and.t."...(let.(
56a0 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 (sym.(button-get.button.'symbol)
56c0 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f ).........(buf.(button-get.butto
56e0 6e 20 27 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 62 n.'buffer))).....(save-current-b
5700 75 66 66 65 72 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 69 73 20 61 20 62 75 66 66 uffer.......;;.If.this.is.a.buff
5720 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2c 20 65 6e 73 75 72 65 20 77 65 27 72 65 20 er-local.variable,.ensure.we're.
5740 69 6e 20 74 68 65 20 72 69 67 68 74 0a 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2e 0a 20 20 in.the.right.......;;.buffer....
5760 20 20 20 20 28 77 68 65 6e 20 62 75 66 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 ....(when.buf.........(set-buffe
5780 72 20 62 75 66 29 29 0a 20 20 20 20 20 20 28 73 65 74 20 73 79 6d 20 28 6e 6f 74 20 28 73 79 6d r.buf)).......(set.sym.(not.(sym
57a0 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 75 bol-value.sym)))).....(helpful-u
57c0 70 64 61 74 65 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 pdate)))..(define-button-type.'h
57e0 65 6c 70 66 75 6c 2d 73 65 74 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 elpful-set-button...'action.#'he
5800 6c 70 66 75 6c 2d 2d 73 65 74 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 62 75 66 66 lpful--set...'symbol.nil...'buff
5820 65 72 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d er.nil...'follow-link.t...'help-
5840 65 63 68 6f 20 22 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 73 79 6d 62 echo."Set.the.value.of.this.symb
5860 6f 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 65 74 20 28 62 75 74 74 6f ol")..(defun.helpful--set.(butto
5880 6e 29 0a 20 20 22 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 73 79 6d 62 n)..."Set.the.value.of.this.symb
58a0 6f 6c 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 ol."...(let*.((sym.(button-get.b
58c0 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 62 utton.'symbol))..........(buf.(b
58e0 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 utton-get.button.'buffer))......
5900 20 20 20 20 28 73 79 6d 2d 76 61 6c 75 65 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d 76 61 6c ....(sym-value.(helpful--sym-val
5920 75 65 20 73 79 6d 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 66 75 6e 63 20 ue.sym.buf))..........(set-func.
5940 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 73 65 74 2d 76 61 72 69 61 62 6c (symbol-name.helpful-set-variabl
5960 65 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 70 69 72 65 e-function))..........;;.Inspire
5980 64 20 62 79 20 60 63 6f 75 6e 73 65 6c 2d 72 65 61 64 2d 73 65 74 71 2d 65 78 70 72 65 73 73 69 d.by.`counsel-read-setq-expressi
59a0 6f 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 28 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 28 6d on'...........(expr...........(m
59c0 69 6e 69 62 75 66 66 65 72 2d 77 69 74 68 2d 73 65 74 75 70 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 inibuffer-with-setup-hook.......
59e0 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(lambda.()..............
5a00 20 20 20 28 61 64 64 2d 66 75 6e 63 74 69 6f 6e 20 3a 62 65 66 6f 72 65 2d 75 6e 74 69 6c 20 28 ...(add-function.:before-until.(
5a20 6c 6f 63 61 6c 20 27 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 75 6e 63 74 local.'eldoc-documentation-funct
5a40 69 6f 6e 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 ion)............................
5a60 20 20 20 23 27 65 6c 69 73 70 2d 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 ...#'elisp-eldoc-documentation-f
5a80 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f unction).................(run-ho
5aa0 6f 6b 73 20 27 65 76 61 6c 2d 65 78 70 72 65 73 73 69 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 2d oks.'eval-expression-minibuffer-
5ac0 73 65 74 75 70 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 setup-hook).................(got
5ae0 6f 2d 63 68 61 72 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a o-char.(minibuffer-prompt-end)).
5b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 28 6c ................(forward-char.(l
5b20 65 6e 67 74 68 20 28 66 6f 72 6d 61 74 20 22 28 25 73 20 25 53 20 22 20 73 65 74 2d 66 75 6e 63 ength.(format."(%s.%S.".set-func
5b40 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d .sym)))).............(read-from-
5b60 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 45 76 61 6c 3a 20 22 minibuffer.............."Eval:."
5b80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 ..............(format...........
5ba0 20 20 20 20 28 69 66 20 28 6f 72 20 28 63 6f 6e 73 70 20 73 79 6d 2d 76 61 6c 75 65 29 0a 20 20 ....(if.(or.(consp.sym-value)...
5bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c ....................(and.(symbol
5be0 70 20 73 79 6d 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.sym-value)....................
5c00 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 73 79 6d 2d 76 61 6c 75 65 29 29 0a 20 ........(not.(null.sym-value))..
5c20 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 6e 6f 74 20 28 ..........................(not.(
5c40 6b 65 79 77 6f 72 64 70 20 73 79 6d 2d 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 keywordp.sym-value))))..........
5c60 20 20 20 20 20 20 20 20 20 22 28 25 73 20 25 73 20 27 25 53 29 22 0a 20 20 20 20 20 20 20 20 20 ........."(%s.%s.'%S)"..........
5c80 20 20 20 20 20 20 20 22 28 25 73 20 25 73 20 25 53 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......."(%s.%s.%S)")............
5ca0 20 20 20 73 65 74 2d 66 75 6e 63 20 73 79 6d 20 73 79 6d 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 ...set-func.sym.sym-value)......
5cc0 20 20 20 20 20 20 20 20 72 65 61 64 2d 65 78 70 72 65 73 73 69 6f 6e 2d 6d 61 70 20 74 0a 20 20 ........read-expression-map.t...
5ce0 20 20 20 20 20 20 20 20 20 20 20 27 72 65 61 64 2d 65 78 70 72 65 73 73 69 6f 6e 2d 68 69 73 74 ...........'read-expression-hist
5d00 6f 72 79 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ory)))).....(save-current-buffer
5d20 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 69 73 20 61 20 62 75 66 66 65 72 2d 6c 6f .......;;.If.this.is.a.buffer-lo
5d40 63 61 6c 20 76 61 72 69 61 62 6c 65 2c 20 65 6e 73 75 72 65 20 77 65 27 72 65 20 69 6e 20 74 68 cal.variable,.ensure.we're.in.th
5d60 65 20 72 69 67 68 74 0a 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 28 e.right.......;;.buffer........(
5d80 77 68 65 6e 20 62 75 66 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 when.buf.........(set-buffer.buf
5da0 29 29 0a 20 20 20 20 20 20 28 65 76 61 6c 2d 65 78 70 72 65 73 73 69 6f 6e 20 65 78 70 72 29 29 )).......(eval-expression.expr))
5dc0 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 29 29 0a 0a 28 64 65 66 69 6e 65 .....(helpful-update)))..(define
5de0 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 76 69 65 77 2d 6c 69 74 65 72 -button-type.'helpful-view-liter
5e00 61 6c 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 76 al-button...'action.#'helpful--v
5e20 69 65 77 2d 6c 69 74 65 72 61 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 54 6f 67 67 6c 65 iew-literal...'help-echo."Toggle
5e40 20 76 69 65 77 69 6e 67 20 61 73 20 61 20 6c 69 74 65 72 61 6c 22 29 0a 0a 28 64 65 66 75 6e 20 .viewing.as.a.literal")..(defun.
5e60 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 20 28 5f 62 75 74 74 6f 6e 29 0a helpful--view-literal.(_button).
5e80 20 20 22 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 73 79 6d 62 6f 6c 2e .."Set.the.value.of.this.symbol.
5ea0 22 0a 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 0a "...(setq.helpful--view-literal.
5ec0 20 20 20 20 20 20 20 20 28 6e 6f 74 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 ........(not.helpful--view-liter
5ee0 61 6c 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 29 0a 0a 28 64 65 66 69 6e al))...(helpful-update))..(defin
5f00 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 61 6c 6c 2d 72 65 66 65 72 e-button-type.'helpful-all-refer
5f20 65 6e 63 65 73 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c ences-button...'action.#'helpful
5f40 2d 2d 61 6c 6c 2d 72 65 66 65 72 65 6e 63 65 73 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 --all-references...'symbol.nil..
5f60 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 .'callable-p.nil...'follow-link.
5f80 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 46 69 6e 64 20 61 6c 6c 20 72 65 66 65 72 65 6e t...'help-echo."Find.all.referen
5fa0 63 65 73 20 74 6f 20 74 68 69 73 20 73 79 6d 62 6f 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c ces.to.this.symbol")..(defun.hel
5fc0 70 66 75 6c 2d 2d 61 6c 6c 2d 72 65 66 65 72 65 6e 63 65 73 20 28 62 75 74 74 6f 6e 29 0a 20 20 pful--all-references.(button)...
5fe0 22 46 69 6e 64 20 61 6c 6c 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 74 68 65 20 "Find.all.the.references.to.the.
6000 73 79 6d 62 6f 6c 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e symbol.that.this.BUTTON.represen
6020 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 ts."...(let.((sym.(button-get.bu
6040 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 63 61 6c 6c 61 62 6c 65 tton.'symbol)).........(callable
6060 2d 70 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 63 61 6c 6c 61 62 6c 65 2d -p.(button-get.button.'callable-
6080 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6e 6f 74 20 63 61 6c 6c 61 62 p))).....(cond......((not.callab
60a0 6c 65 2d 70 29 0a 20 20 20 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 76 61 72 69 61 62 6c 65 le-p).......(elisp-refs-variable
60c0 20 73 79 6d 29 29 0a 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 73 79 6d 29 0a 20 20 20 .sym))......((functionp.sym)....
60e0 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 0a 20 20 ...(elisp-refs-function.sym))...
6100 20 20 20 28 28 6d 61 63 72 6f 70 20 73 79 6d 29 0a 20 20 20 20 20 20 28 65 6c 69 73 70 2d 72 65 ...((macrop.sym).......(elisp-re
6120 66 73 2d 6d 61 63 72 6f 20 73 79 6d 29 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f fs-macro.sym)))))..(define-butto
6140 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 65 65 73 2d 62 75 74 74 6f 6e 0a 20 n-type.'helpful-callees-button..
6160 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 73 68 6f 77 2d 63 61 6c 6c 65 65 73 .'action.#'helpful--show-callees
6180 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 73 6f 75 72 63 65 20 6e 69 6c 0a 20 20 27 ...'symbol.nil...'source.nil...'
61a0 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 46 69 6e 64 follow-link.t...'help-echo."Find
61c0 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 62 79 20 74 68 69 73 20 66 75 .the.functions.called.by.this.fu
61e0 6e 63 74 69 6f 6e 2f 6d 61 63 72 6f 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d nction/macro")..(defun.helpful--
6200 64 69 73 70 6c 61 79 2d 63 61 6c 6c 65 65 2d 67 72 6f 75 70 20 28 63 61 6c 6c 65 65 73 29 0a 20 display-callee-group.(callees)..
6220 20 22 49 6e 73 65 72 74 20 65 76 65 72 79 20 65 6e 74 72 79 20 69 6e 20 43 41 4c 4c 45 45 53 2e ."Insert.every.entry.in.CALLEES.
6240 22 0a 20 20 28 64 6f 6c 69 73 74 20 28 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 73 6f 72 74 2d "...(dolist.(sym.(helpful--sort-
6260 73 79 6d 62 6f 6c 73 20 63 61 6c 6c 65 65 73 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 symbols.callees)).....(insert.".
6280 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a .".............(helpful--button.
62a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 0a 20 .............(symbol-name.sym)..
62c0 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 ............'helpful-describe-ex
62e0 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f actly-button..............'symbo
6300 6c 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 74 l.sym..............'callable-p.t
6320 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 )............."\n")))..(defun.he
6340 6c 70 66 75 6c 2d 2d 73 68 6f 77 2d 63 61 6c 6c 65 65 73 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 lpful--show-callees.(button)..."
6360 46 69 6e 64 20 61 6c 6c 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 74 68 65 20 73 Find.all.the.references.to.the.s
6380 79 6d 62 6f 6c 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 ymbol.that.this.BUTTON.represent
63a0 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 s."...(let*.((buf.(get-buffer-cr
63c0 65 61 74 65 20 22 2a 68 65 6c 70 66 75 6c 20 63 61 6c 6c 65 65 73 2a 22 29 29 0a 20 20 20 20 20 eate."*helpful.callees*"))......
63e0 20 20 20 20 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d ....(sym.(button-get.button.'sym
6400 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 61 77 2d 73 6f 75 72 63 65 20 28 62 75 74 74 bol))..........(raw-source.(butt
6420 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 on-get.button.'source)).........
6440 20 28 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 .(source...........(if.(stringp.
6460 72 61 77 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 20 raw-source)...............(read.
6480 72 61 77 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77 2d 73 6f 75 72 raw-source).............raw-sour
64a0 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 6d 73 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 ce))..........(syms.(helpful--ca
64c0 6c 6c 65 65 73 20 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 69 6d 69 74 69 llees.source))..........(primiti
64e0 76 65 73 20 28 2d 66 69 6c 74 65 72 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 29 20 28 68 65 6c 70 ves.(-filter.(lambda.(sym).(help
6500 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 74 29 29 20 73 79 6d 73 29 29 0a ful--primitive-p.sym.t)).syms)).
6520 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6f 75 6e 64 73 20 28 2d 72 65 6d 6f 76 65 20 28 6c 61 .........(compounds.(-remove.(la
6540 6d 62 64 61 20 28 73 79 6d 29 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 mbda.(sym).(helpful--primitive-p
6560 20 73 79 6d 20 74 29 29 20 73 79 6d 73 29 29 29 0a 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 .sym.t)).syms)))......(pop-to-bu
6580 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 ffer.buf).....(let.((inhibit-rea
65a0 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a d-only.t)).......(erase-buffer).
65c0 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 4d 61 63 72 6f 73 20 75 73 65 64 2c 20 73 70 65 .......;;.TODO:.Macros.used,.spe
65e0 63 69 61 6c 20 66 6f 72 6d 73 20 75 73 65 64 2c 20 67 6c 6f 62 61 6c 20 76 61 72 73 20 75 73 65 cial.forms.used,.global.vars.use
6600 64 2e 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 46 75 6e 63 74 69 d........(insert.(format."Functi
6620 6f 6e 73 20 63 61 6c 6c 65 64 20 62 79 20 25 73 3a 5c 6e 5c 6e 22 20 73 79 6d 29 29 0a 20 20 20 ons.called.by.%s:\n\n".sym))....
6640 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 64 69 73 70 6c 61 79 2d 63 61 6c 6c 65 65 2d 67 72 6f 75 ...(helpful--display-callee-grou
6660 70 20 63 6f 6d 70 6f 75 6e 64 73 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 69 6d 69 74 p.compounds)........(when.primit
6680 69 76 65 73 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 ives.........(insert."\n")......
66a0 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 50 72 69 6d 69 74 69 76 65 73 20 63 ...(insert.(format."Primitives.c
66c0 61 6c 6c 65 64 20 62 79 20 25 73 3a 5c 6e 5c 6e 22 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 alled.by.%s:\n\n".sym)).........
66e0 28 68 65 6c 70 66 75 6c 2d 2d 64 69 73 70 6c 61 79 2d 63 61 6c 6c 65 65 2d 67 72 6f 75 70 20 70 (helpful--display-callee-group.p
6700 72 69 6d 69 74 69 76 65 73 29 29 0a 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 rimitives))........(goto-char.(p
6720 6f 69 6e 74 2d 6d 69 6e 29 29 0a 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 oint-min))........(helpful-mode)
6740 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 )))..(define-button-type.'helpfu
6760 6c 2d 6d 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 l-manual-button...'action.#'help
6780 66 75 6c 2d 2d 6d 61 6e 75 61 6c 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 66 6f 6c ful--manual...'symbol.nil...'fol
67a0 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 56 69 65 77 20 74 68 low-link.t...'help-echo."View.th
67c0 69 73 20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 65 20 45 6d 61 63 73 20 6d 61 6e 75 61 6c 22 29 0a is.symbol.in.the.Emacs.manual").
67e0 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6e 75 61 6c 20 28 62 75 74 74 6f 6e 29 .(defun.helpful--manual.(button)
6800 0a 20 20 22 4f 70 65 6e 20 74 68 65 20 6d 61 6e 75 61 6c 20 66 6f 72 20 74 68 65 20 73 79 73 74 ..."Open.the.manual.for.the.syst
6820 65 6d 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 em.that.this.BUTTON.represents."
6840 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e ...(let.((sym.(button-get.button
6860 20 27 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 28 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 20 27 73 79 .'symbol))).....(info-lookup.'sy
6880 6d 62 6f 6c 20 73 79 6d 20 23 27 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 29 29 29 0a 0a 28 mbol.sym.#'emacs-lisp-mode)))..(
68a0 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 define-button-type.'helpful-desc
68c0 72 69 62 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d ribe-button...'action.#'helpful-
68e0 2d 64 65 73 63 72 69 62 65 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f -describe...'symbol.nil...'follo
6900 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 44 65 73 63 72 69 62 65 20 w-link.t...'help-echo."Describe.
6920 74 68 69 73 20 73 79 6d 62 6f 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 this.symbol")..(defun.helpful--d
6940 65 73 63 72 69 62 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 escribe.(button)..."Describe.the
6960 20 73 79 6d 62 6f 6c 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 .symbol.that.this.BUTTON.represe
6980 6e 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 nts."...(let.((sym.(button-get.b
69a0 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 73 79 utton.'symbol))).....(helpful-sy
69c0 6d 62 6f 6c 20 73 79 6d 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 mbol.sym)))..(define-button-type
69e0 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f .'helpful-describe-exactly-butto
6a00 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 64 65 73 63 72 69 62 65 2d n...'action.#'helpful--describe-
6a20 65 78 61 63 74 6c 79 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 63 61 6c 6c 61 62 6c exactly...'symbol.nil...'callabl
6a40 65 2d 70 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 e-p.nil...'follow-link.t...'help
6a60 2d 65 63 68 6f 20 22 44 65 73 63 72 69 62 65 20 74 68 69 73 20 73 79 6d 62 6f 6c 22 29 0a 0a 28 -echo."Describe.this.symbol")..(
6a80 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 20 defun.helpful--describe-exactly.
6aa0 28 62 75 74 74 6f 6e 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 73 79 6d 62 6f 6c 20 (button)..."Describe.the.symbol.
6ac0 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 0a 54 68 69 that.this.BUTTON.represents..Thi
6ae0 73 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 60 68 65 6c 70 66 75 6c 2d 2d 64 65 73 63 72 69 62 s.differs.from.`helpful--describ
6b00 65 27 20 62 65 63 61 75 73 65 20 68 65 72 65 20 77 65 20 6b 6e 6f 77 0a 77 68 65 74 68 65 72 20 e'.because.here.we.know.whether.
6b20 74 68 65 20 73 79 6d 62 6f 6c 20 72 65 70 72 65 73 65 6e 74 73 20 61 20 76 61 72 69 61 62 6c 65 the.symbol.represents.a.variable
6b40 20 6f 72 20 61 20 63 61 6c 6c 61 62 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 .or.a.callable."...(let.((sym.(b
6b60 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 utton-get.button.'symbol))......
6b80 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f ...(callable-p.(button-get.butto
6ba0 6e 20 27 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c n.'callable-p))).....(if.callabl
6bc0 65 2d 70 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 20 73 79 e-p.........(helpful-callable.sy
6be0 6d 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 29 m).......(helpful-variable.sym))
6c00 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c ))..(define-button-type.'helpful
6c20 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c -info-button...'action.#'helpful
6c40 2d 2d 69 6e 66 6f 0a 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f --info...'info-node.nil...'follo
6c60 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 56 69 65 77 20 74 68 69 73 w-link.t...'help-echo."View.this
6c80 20 49 6e 66 6f 20 6e 6f 64 65 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6e .Info.node")..(defun.helpful--in
6ca0 66 6f 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 73 79 6d 62 fo.(button)..."Describe.the.symb
6cc0 6f 6c 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 ol.that.this.BUTTON.represents."
6ce0 0a 20 20 28 69 6e 66 6f 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 69 6e 66 ...(info.(button-get.button.'inf
6d00 6f 2d 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 o-node)))..(define-button-type.'
6d20 68 65 6c 70 66 75 6c 2d 73 68 6f 72 74 64 6f 63 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f helpful-shortdoc-button...'actio
6d40 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 73 68 6f 72 74 64 6f 63 0a 20 20 27 69 6e 66 6f 2d 6e 6f n.#'helpful--shortdoc...'info-no
6d60 64 65 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d de.nil...'follow-link.t...'help-
6d80 65 63 68 6f 20 22 56 69 65 77 20 74 68 69 73 20 53 68 6f 72 74 64 6f 63 20 67 72 6f 75 70 22 29 echo."View.this.Shortdoc.group")
6da0 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 68 6f 72 74 64 6f 63 20 28 62 75 74 74 ..(defun.helpful--shortdoc.(butt
6dc0 6f 6e 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 73 79 6d 62 6f 6c 20 74 68 61 74 20 on)..."Describe.the.symbol.that.
6de0 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 0a 20 20 28 73 68 6f 72 this.BUTTON.represents."...(shor
6e00 74 64 6f 63 2d 64 69 73 70 6c 61 79 2d 67 72 6f 75 70 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 tdoc-display-group.(button-get.b
6e20 75 74 74 6f 6e 20 27 73 68 6f 72 74 64 6f 63 2d 67 72 6f 75 70 29 0a 20 20 20 20 20 20 20 20 20 utton.'shortdoc-group)..........
6e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 .................(button-get.but
6e60 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d ton.'symbol)))..(defun.helpful--
6e80 73 70 6c 69 74 2d 66 69 72 73 74 2d 6c 69 6e 65 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 split-first-line.(docstring)..."
6ea0 49 66 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 69 73 20 61 20 73 74 61 6e 64 61 6c 6f 6e If.the.first.line.is.a.standalon
6ec0 65 20 73 65 6e 74 65 6e 63 65 2c 20 65 6e 73 75 72 65 20 77 65 20 68 61 76 65 20 61 0a 62 6c 61 e.sentence,.ensure.we.have.a.bla
6ee0 6e 6b 20 6c 69 6e 65 20 61 66 74 65 72 77 61 72 64 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c nk.line.afterwards."...(let*.((l
6f00 69 6e 65 73 20 28 73 2d 6c 69 6e 65 73 20 64 6f 63 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 ines.(s-lines.docstring)).......
6f20 20 20 20 28 66 69 72 73 74 2d 6c 69 6e 65 20 28 2d 66 69 72 73 74 2d 69 74 65 6d 20 6c 69 6e 65 ...(first-line.(-first-item.line
6f40 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 63 6f 6e 64 2d 6c 69 6e 65 20 28 77 68 65 6e 20 s))..........(second-line.(when.
6f60 28 3e 20 28 6c 65 6e 67 74 68 20 6c 69 6e 65 73 29 20 31 29 20 28 6e 74 68 20 31 20 6c 69 6e 65 (>.(length.lines).1).(nth.1.line
6f80 73 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 2d 65 6e 64 73 2d 77 69 74 68 2d s)))).....(if.(and.(s-ends-with-
6fa0 70 20 22 2e 22 20 66 69 72 73 74 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 p.".".first-line)..............(
6fc0 73 74 72 69 6e 67 70 20 73 65 63 6f 6e 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 stringp.second-line)............
6fe0 20 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 73 65 63 6f 6e 64 2d 6c 69 6e 65 20 22 22 29 29 29 0a ..(not.(equal.second-line.""))).
7000 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 ........(s-join."\n"............
7020 20 20 20 20 20 28 2d 63 6f 6e 73 2a 20 66 69 72 73 74 2d 6c 69 6e 65 20 22 22 20 28 63 64 72 20 .....(-cons*.first-line."".(cdr.
7040 6c 69 6e 65 73 29 29 29 0a 20 20 20 20 20 20 64 6f 63 73 74 72 69 6e 67 29 29 29 0a 0a 28 64 65 lines))).......docstring)))..(de
7060 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 73 79 6d 2d 72 65 66 20 fun.helpful--propertize-sym-ref.
7080 28 73 79 6d 2d 6e 61 6d 65 20 62 65 66 6f 72 65 2d 74 78 74 20 61 66 74 65 72 2d 74 78 74 29 0a (sym-name.before-txt.after-txt).
70a0 20 20 22 47 69 76 65 6e 20 61 20 73 79 6d 62 6f 6c 20 6e 61 6d 65 20 66 72 6f 6d 20 61 20 64 6f .."Given.a.symbol.name.from.a.do
70c0 63 73 74 72 69 6e 67 2c 20 63 6f 6e 76 65 72 74 20 74 6f 20 61 20 62 75 74 74 6f 6e 20 28 69 66 cstring,.convert.to.a.button.(if
70e0 0a 62 6f 75 6e 64 29 20 6f 72 20 65 6c 73 65 20 68 69 67 68 6c 69 67 68 74 2e 22 0a 20 20 28 6c .bound).or.else.highlight."...(l
7100 65 74 2a 20 28 28 73 79 6d 20 28 69 6e 74 65 72 6e 20 73 79 6d 2d 6e 61 6d 65 29 29 29 0a 20 20 et*.((sym.(intern.sym-name)))...
7120 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 48 69 67 68 6c 69 67 68 74 20 6b 65 79 77 6f 72 ..(cond......;;.Highlight.keywor
7140 64 73 2e 0a 20 20 20 20 20 28 28 73 2d 6d 61 74 63 68 65 73 2d 70 0a 20 20 20 20 20 20 20 28 72 ds.......((s-matches-p........(r
7160 78 20 22 3a 22 0a 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 62 6f 6c 2d 73 74 61 72 74 0a 20 20 x.":"............symbol-start...
7180 20 20 20 20 20 20 20 20 20 28 2b 3f 20 28 6f 72 20 28 73 79 6e 74 61 78 20 77 6f 72 64 29 20 28 .........(+?.(or.(syntax.word).(
71a0 73 79 6e 74 61 78 20 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 62 syntax.symbol)))............symb
71c0 6f 6c 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 ol-end)........sym-name).......(
71e0 70 72 6f 70 65 72 74 69 7a 65 20 73 79 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 propertize.sym-name.............
7200 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 ......'face.'font-lock-builtin-f
7220 61 63 65 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 20 28 73 ace))......((and.(boundp.sym).(s
7240 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 76 61 72 69 61 62 6c 65 20 22 20 28 64 6f 77 6e 63 61 -ends-with-p."variable.".(downca
7260 73 65 20 62 65 66 6f 72 65 2d 74 78 74 29 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d se.before-txt))).......(helpful-
7280 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 27 -button........sym-name........'
72a0 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a helpful-describe-exactly-button.
72c0 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 20 20 20 20 27 63 61 6c 6c 61 .......'symbol.sym........'calla
72e0 62 6c 65 2d 70 20 6e 69 6c 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 ble-p.nil))......((and.(fboundp.
7300 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 sym)............(or.............
7320 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 20 63 6f 6d 6d 61 6e 64 22 20 28 64 6f 77 (s-starts-with-p.".command".(dow
7340 6e 63 61 73 65 20 61 66 74 65 72 2d 74 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ncase.after-txt)).............(s
7360 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 63 6f 6d 6d 61 6e 64 20 22 20 28 64 6f 77 6e 63 61 73 -ends-with-p."command.".(downcas
7380 65 20 62 65 66 6f 72 65 2d 74 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 65 6e e.before-txt)).............(s-en
73a0 64 73 2d 77 69 74 68 2d 70 20 22 66 75 6e 63 74 69 6f 6e 20 22 20 28 64 6f 77 6e 63 61 73 65 20 ds-with-p."function.".(downcase.
73c0 62 65 66 6f 72 65 2d 74 78 74 29 29 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 before-txt)))).......(helpful--b
73e0 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 27 68 65 utton........sym-name........'he
7400 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 20 lpful-describe-exactly-button...
7420 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c .....'symbol.sym........'callabl
7440 65 2d 70 20 74 29 29 0a 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 63 72 65 61 74 65 20 61 20 6c 69 e-p.t))......;;.Only.create.a.li
7460 6e 6b 20 69 66 20 74 68 69 73 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 74 68 61 74 20 69 73 20 62 nk.if.this.is.a.symbol.that.is.b
7480 6f 75 6e 64 20 61 73 20 61 0a 20 20 20 20 20 3b 3b 20 76 61 72 69 61 62 6c 65 20 6f 72 20 63 61 ound.as.a......;;.variable.or.ca
74a0 6c 6c 61 62 6c 65 2e 0a 20 20 20 20 20 28 28 6f 72 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 20 28 llable.......((or.(boundp.sym).(
74c0 66 62 6f 75 6e 64 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 fboundp.sym)).......(helpful--bu
74e0 74 74 6f 6e 0a 20 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 27 68 65 6c tton........sym-name........'hel
7500 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 27 73 79 6d pful-describe-button........'sym
7520 62 6f 6c 20 73 79 6d 29 29 0a 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 69 73 20 61 6c 72 bol.sym))......;;.If.this.is.alr
7540 65 61 64 79 20 61 20 62 75 74 74 6f 6e 2c 20 64 6f 6e 27 74 20 6d 6f 64 69 66 79 20 69 74 2e 0a eady.a.button,.don't.modify.it..
7560 20 20 20 20 20 28 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 30 20 27 62 75 74 74 .....((get-text-property.0.'butt
7580 6f 6e 20 73 79 6d 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 29 0a 20 20 20 on.sym-name).......sym-name)....
75a0 20 20 3b 3b 20 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 71 75 6f 74 65 64 20 73 74 72 69 6e 67 ..;;.Highlight.the.quoted.string
75c0 2e 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 79 6d 2d .......(t.......(propertize.sym-
75e0 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f name...................'face.'fo
7600 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 29 29 29 0a 0a 28 64 65 66 nt-lock-constant-face)))))..(def
7620 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 69 6e 66 6f 20 28 64 6f 63 un.helpful--propertize-info.(doc
7640 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 69 6e 66 6f 20 72 65 66 65 72 65 6e 63 string)..."Convert.info.referenc
7660 65 73 20 69 6e 20 44 4f 43 53 54 52 49 4e 47 20 74 6f 20 62 75 74 74 6f 6e 73 2e 22 0a 20 20 28 es.in.DOCSTRING.to.buttons."...(
7680 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 3b 3b 20 52 replace-regexp-in-string....;;.R
76a0 65 70 6c 61 63 65 20 61 6c 6c 20 74 65 78 74 20 74 68 61 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 eplace.all.text.that.looks.like.
76c0 61 20 6c 69 6e 6b 20 74 6f 20 61 6e 20 49 6e 66 6f 20 70 61 67 65 2e 0a 20 20 20 28 72 78 20 28 a.link.to.an.Info.page.....(rx.(
76e0 73 65 71 20 28 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 77 0a 20 20 20 20 seq.(group..............bow.....
7700 20 20 20 20 20 20 20 20 20 28 61 6e 79 20 22 49 69 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........(any."Ii").............
7720 20 22 6e 66 6f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 ."nfo"..............(one-or-more
7740 20 77 68 69 74 65 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 .whitespace)).............(group
7760 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 22 6e 6f 64 65 22 20 22 61 6e 63 68 6f 72 ..............(or."node"."anchor
7780 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 77 68 69 ")..............(one-or-more.whi
77a0 74 65 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 79 20 22 27 60 e2 80 tespace)).............(any."'`..
77c0 98 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 .").............(group..........
77e0 20 20 20 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ....(one-or-more...............(
7800 6e 6f 74 20 28 61 6e 79 20 22 27 e2 80 99 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 not.(any."'...")))).............
7820 28 61 6e 79 20 22 27 e2 80 99 22 29 29 29 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 69 74 29 0a 20 (any."'...")))....(lambda.(it)..
7840 20 20 20 20 3b 3b 20 69 6e 66 6f 2d 6e 61 6d 65 20 6d 61 74 63 68 65 73 20 22 5b 49 69 5d 6e 66 ....;;.info-name.matches."[Ii]nf
7860 6f 20 22 2e 0a 20 20 20 20 20 3b 3b 20 73 70 61 63 65 20 6d 61 74 63 68 65 73 20 22 6e 6f 64 65 o.".......;;.space.matches."node
7880 20 22 20 6f 72 20 22 61 6e 63 68 6f 72 20 22 2e 0a 20 20 20 20 20 3b 3b 20 69 6e 66 6f 2d 6e 6f .".or."anchor.".......;;.info-no
78a0 64 65 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 22 28 63 6c 29 4c 6f 6f 70 20 46 61 63 69 6c 69 de.has.the.form."(cl)Loop.Facili
78c0 74 79 22 2e 0a 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 2d 6e 61 6d 65 20 28 6d 61 74 63 ty".......(let.((info-name.(matc
78e0 68 2d 73 74 72 69 6e 67 20 31 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 70 61 63 h-string.1.it))............(spac
7900 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 e.(match-string.2.it))..........
7920 20 20 28 69 6e 66 6f 2d 6e 6f 64 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 20 69 74 29 ..(info-node.(match-string.3.it)
7940 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 20 64 6f ))........;;.If.the.docstring.do
7960 65 73 6e 27 74 20 73 70 65 63 69 66 79 20 61 20 6d 61 6e 75 61 6c 2c 20 61 73 73 75 6d 65 20 74 esn't.specify.a.manual,.assume.t
7980 68 65 20 45 6d 61 63 73 20 6d 61 6e 75 61 6c 2e 0a 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 he.Emacs.manual.........(save-ma
79a0 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e tch-data..........(unless.(strin
79c0 67 2d 6d 61 74 63 68 20 22 5e 28 5b 5e 29 5d 2b 29 22 20 69 6e 66 6f 2d 6e 6f 64 65 29 0a 20 20 g-match."^([^)]+)".info-node)...
79e0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 66 6f 2d 6e 6f 64 65 20 28 63 6f 6e 63 61 74 .........(setq.info-node.(concat
7a00 20 22 28 65 6d 61 63 73 29 22 20 69 6e 66 6f 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 ."(emacs)".info-node))))........
7a20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 6e 61 6d 65 0a 20 20 20 20 20 20 (concat.........info-name.......
7a40 20 20 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e ..space.........(helpful--button
7a60 0a 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 27 68 65 ..........info-node..........'he
7a80 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f lpful-info-button..........'info
7aa0 2d 6e 6f 64 65 20 69 6e 66 6f 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20 64 6f 63 73 74 72 69 6e 67 -node.info-node))))....docstring
7ac0 0a 20 20 20 74 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 ....t.t))..(defun.helpful--keyma
7ae0 70 2d 6b 65 79 73 20 28 6b 65 79 6d 61 70 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 74 68 p-keys.(keymap)..."Return.all.th
7b00 65 20 6b 65 79 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 4b 45 59 4d 41 50 2e 0a 46 e.keys.and.commands.in.KEYMAP..F
7b20 6c 61 74 74 65 6e 73 20 6e 65 73 74 65 64 20 6b 65 79 6d 61 70 73 20 61 6e 64 20 66 6f 6c 6c 6f lattens.nested.keymaps.and.follo
7b40 77 73 20 72 65 6d 61 70 70 65 64 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a 52 65 74 75 72 6e 73 20 61 ws.remapped.commands...Returns.a
7b60 20 6c 69 73 74 20 6f 66 20 70 61 69 72 73 20 28 4b 45 59 43 4f 44 45 53 20 43 4f 4d 4d 41 4e 44 .list.of.pairs.(KEYCODES.COMMAND
7b80 29 2c 20 77 68 65 72 65 20 4b 45 59 43 4f 44 45 53 20 69 73 20 61 0a 76 65 63 74 6f 72 20 73 75 ),.where.KEYCODES.is.a.vector.su
7ba0 69 74 61 62 6c 65 20 66 6f 72 20 60 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 61 6e itable.for.`key-description',.an
7bc0 64 20 43 4f 4d 4d 41 4e 44 20 69 73 20 61 20 73 6d 62 6f 6c 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 d.COMMAND.is.a.smbol."...(cond..
7be0 20 20 3b 3b 20 50 72 65 66 69 78 20 6b 65 79 73 2e 0a 20 20 20 28 28 61 6e 64 0a 20 20 20 20 20 ..;;.Prefix.keys.....((and......
7c00 28 73 79 6d 62 6f 6c 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 6b (symbolp.keymap)......(fboundp.k
7c20 65 79 6d 61 70 29 0a 20 20 20 20 20 3b 3b 20 50 72 65 66 69 78 20 6b 65 79 73 20 75 73 65 20 61 eymap)......;;.Prefix.keys.use.a
7c40 20 6b 65 79 6d 61 70 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 6c 6f 74 20 6f 66 20 .keymap.in.the.function.slot.of.
7c60 61 20 73 79 6d 62 6f 6c 2e 0a 20 20 20 20 20 28 6b 65 79 6d 61 70 70 20 28 73 79 6d 62 6f 6c 2d a.symbol.......(keymapp.(symbol-
7c80 66 75 6e 63 74 69 6f 6e 20 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d function.keymap))).....(helpful-
7ca0 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 6b 65 -keymap-keys.(symbol-function.ke
7cc0 79 6d 61 70 29 29 29 0a 20 20 20 3b 3b 20 4f 74 68 65 72 20 73 79 6d 62 6f 6c 73 20 6f 72 20 63 ymap)))....;;.Other.symbols.or.c
7ce0 6f 6d 70 69 6c 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 6d 65 61 6e 20 77 65 27 76 65 20 72 65 61 ompiled.functions.mean.we've.rea
7d00 63 68 65 64 20 61 20 6c 65 61 66 2c 0a 20 20 20 3b 3b 20 73 6f 20 74 68 69 73 20 69 73 20 61 20 ched.a.leaf,....;;.so.this.is.a.
7d20 63 6f 6d 6d 61 6e 64 20 77 65 20 63 61 6e 20 63 61 6c 6c 2e 0a 20 20 20 28 28 6f 72 0a 20 20 20 command.we.can.call.....((or....
7d40 20 20 28 73 79 6d 62 6f 6c 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 28 66 75 6e 63 74 69 6f ..(symbolp.keymap)......(functio
7d60 6e 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 3b 3b 20 53 74 72 69 6e 67 73 20 6f 72 20 76 65 np.keymap)......;;.Strings.or.ve
7d80 63 74 6f 72 73 20 6d 65 61 6e 20 61 20 6b 65 79 62 6f 61 72 64 20 6d 61 63 72 6f 2e 0a 20 20 20 ctors.mean.a.keyboard.macro.....
7da0 20 20 28 73 74 72 69 6e 67 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 28 76 65 63 74 6f 72 70 ..(stringp.keymap)......(vectorp
7dc0 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 60 28 28 5b 5d 20 2c 6b 65 79 6d 61 70 29 29 29 0a 20 .keymap)).....`(([].,keymap)))..
7de0 20 20 28 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 28 68 ..((stringp.(car.keymap)).....(h
7e00 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 20 28 63 64 72 20 6b 65 79 6d 61 70 29 elpful--keymap-keys.(cdr.keymap)
7e20 29 29 0a 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 63 75 72 73 65 20 6f 6e 20 74 ))....;;.Otherwise,.recurse.on.t
7e40 68 65 20 6b 65 79 73 20 61 74 20 74 68 69 73 20 6c 65 76 65 6c 20 6f 66 20 74 68 65 20 6b 65 79 he.keys.at.this.level.of.the.key
7e60 6d 61 70 2e 0a 20 20 20 28 74 0a 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 map.....(t.....(let.(result)....
7e80 20 20 20 28 64 6f 6c 69 73 74 20 28 69 74 65 6d 20 28 63 64 72 20 6b 65 79 6d 61 70 29 29 0a 20 ...(dolist.(item.(cdr.keymap))..
7ea0 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 63 6f 6e .......(cond..........((and.(con
7ec0 73 70 20 69 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 61 72 sp.item)................(eq.(car
7ee0 20 69 74 65 6d 29 20 27 6d 65 6e 75 2d 62 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .item).'menu-bar))...........;;.
7f00 53 6b 69 70 20 6d 65 6e 75 20 62 61 72 20 69 74 65 6d 73 2e 0a 20 20 20 20 20 20 20 20 20 20 6e Skip.menu.bar.items............n
7f20 69 6c 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 53 70 61 72 73 65 20 6b 65 79 6d 61 70 73 20 61 il)..........;;.Sparse.keymaps.a
7f40 72 65 20 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 69 74 65 6d 29 re.lists...........((consp.item)
7f60 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 6b 65 79 63 6f 64 65 20 2e 20 76 61 6c ...........(-let.[(keycode...val
7f80 75 65 29 20 69 74 65 6d 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 65 61 63 68 20 28 68 65 ue).item].............(-each.(he
7fa0 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 lpful--keymap-keys.value).......
7fc0 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b 65 79 63 6f 64 65 73 20 63 6f 6d 6d ........(-lambda.((keycodes.comm
7fe0 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 and)).................(push.(lis
8000 74 20 28 76 63 6f 6e 63 61 74 20 28 76 65 63 74 6f 72 20 6b 65 79 63 6f 64 65 29 20 6b 65 79 63 t.(vconcat.(vector.keycode).keyc
8020 6f 64 65 73 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 odes).command)..................
8040 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 65 6e .....result)))))..........;;.Den
8060 73 65 20 6b 65 79 6d 61 70 73 20 61 72 65 20 63 68 61 72 2d 74 61 62 6c 65 73 2e 0a 20 20 20 20 se.keymaps.are.char-tables......
8080 20 20 20 20 20 28 28 63 68 61 72 2d 74 61 62 6c 65 2d 70 20 69 74 65 6d 29 0a 20 20 20 20 20 20 .....((char-table-p.item).......
80a0 20 20 20 20 28 6d 61 70 2d 63 68 61 72 2d 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 ....(map-char-table............(
80c0 6c 61 6d 62 64 61 20 28 6b 65 79 63 6f 64 65 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 lambda.(keycode.value)..........
80e0 20 20 20 20 28 2d 65 61 63 68 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 ....(-each.(helpful--keymap-keys
8100 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 .value)................(-lambda.
8120 28 28 6b 65 79 63 6f 64 65 73 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ((keycodes.command))............
8140 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 28 76 63 6f 6e 63 61 74 20 28 76 65 63 74 ......(push.(list.(vconcat.(vect
8160 6f 72 20 6b 65 79 63 6f 64 65 29 20 6b 65 79 63 6f 64 65 73 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 or.keycode).keycodes).command)..
8180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 ......................result))))
81a0 0a 20 20 20 20 20 20 20 20 20 20 20 69 74 65 6d 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 46 6f ............item)))).......;;.Fo
81c0 72 20 65 76 65 72 79 20 63 6f 6d 6d 61 6e 64 20 60 6e 65 77 2d 66 75 6e 63 27 20 6d 61 70 70 65 r.every.command.`new-func'.mappe
81e0 64 20 74 6f 20 61 20 63 6f 6d 6d 61 6e 64 20 60 6f 72 69 67 2d 66 75 6e 63 27 2c 20 73 68 6f 77 d.to.a.command.`orig-func',.show
8200 20 60 6e 65 77 2d 66 75 6e 63 27 20 77 69 74 68 0a 20 20 20 20 20 20 3b 3b 20 74 68 65 20 6b 65 .`new-func'.with.......;;.the.ke
8220 79 20 73 65 71 75 65 6e 63 65 20 66 6f 72 20 60 6f 72 69 67 2d 66 75 6e 63 27 2e 0a 20 20 20 20 y.sequence.for.`orig-func'......
8240 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 ..(setq.result.............(-map
8260 2d 77 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b 65 -when..............(-lambda.((ke
8280 79 63 6f 64 65 73 20 5f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 ycodes._))................(and.(
82a0 3e 20 28 6c 65 6e 67 74 68 20 6b 65 79 63 6f 64 65 73 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 >.(length.keycodes).1)..........
82c0 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 65 6c 74 20 6b 65 79 63 6f 64 65 73 20 30 29 20 ...........(eq.(elt.keycodes.0).
82e0 27 72 65 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 'remap)))..............(-lambda.
8300 28 28 6b 65 79 63 6f 64 65 73 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ((keycodes.command))............
8320 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 72 65 ....(list.................(where
8340 2d 69 73 2d 69 6e 74 65 72 6e 61 6c 20 28 65 6c 74 20 6b 65 79 63 6f 64 65 73 20 31 29 20 67 6c -is-internal.(elt.keycodes.1).gl
8360 6f 62 61 6c 2d 6d 61 70 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d obal-map.t).................comm
8380 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 and))..............result)).....
83a0 20 20 3b 3b 20 50 72 65 73 65 72 76 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6f 72 64 65 72 ..;;.Preserve.the.original.order
83c0 20 6f 66 20 74 68 65 20 6b 65 79 6d 61 70 2e 0a 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 .of.the.keymap........(nreverse.
83e0 72 65 73 75 6c 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 result)))))..(defun.helpful--for
8400 6d 61 74 2d 68 6f 6f 6b 20 28 68 6f 6f 6b 2d 76 61 6c 29 0a 20 20 22 47 69 76 65 6e 20 61 20 6c mat-hook.(hook-val)..."Given.a.l
8420 69 73 74 20 76 61 6c 75 65 20 61 73 73 69 67 6e 65 64 20 74 6f 20 61 20 68 6f 6f 6b 2c 20 66 6f ist.value.assigned.to.a.hook,.fo
8440 72 6d 61 74 20 69 74 20 77 69 74 68 20 6c 69 6e 6b 73 20 74 6f 20 66 75 6e 63 74 69 6f 6e 73 2e rmat.it.with.links.to.functions.
8460 22 0a 20 20 28 6c 65 74 20 28 28 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 "...(let.((lines..........(--map
8480 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 69 74 29 ...........(if.(and.(symbolp.it)
84a0 20 28 66 62 6f 75 6e 64 70 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 .(fboundp.it))...............(he
84c0 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 lpful--button................(sy
84e0 6d 62 6f 6c 2d 6e 61 6d 65 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 mbol-name.it)................'he
8500 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 20 lpful-describe-exactly-button...
8520 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 69 74 0a 20 20 20 20 20 20 20 20 .............'symbol.it.........
8540 20 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 .......'callable-p.t)...........
8560 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 20 28 68 65 ..(helpful--syntax-highlight.(he
8580 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 69 74 29 29 29 0a 20 20 20 20 20 20 lpful--pretty-print.it))).......
85a0 20 20 20 20 68 6f 6f 6b 2d 76 61 6c 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 28 25 73 ....hook-val))).....(format."(%s
85c0 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 20 22 20 6c 69 6e )".............(s-join."\n.".lin
85e0 65 73 29 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 75 6e 6c 69 6b 65 20 60 73 75 62 73 74 69 74 es))))..;;.TODO:.unlike.`substit
8600 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 27 2c 20 74 68 69 73 20 73 68 6f 77 73 20 6b 65 ute-command-keys',.this.shows.ke
8620 79 62 69 6e 64 69 6e 67 73 0a 3b 3b 20 77 68 69 63 68 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 ybindings.;;.which.are.currently
8640 20 73 68 61 64 6f 77 65 64 20 28 65 2e 67 2e 20 61 20 67 6c 6f 62 61 6c 20 6d 69 6e 6f 72 20 6d .shadowed.(e.g..a.global.minor.m
8660 6f 64 65 20 6d 61 70 29 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 ode.map)..(defun.helpful--format
8680 2d 6b 65 79 6d 61 70 20 28 6b 65 79 6d 61 70 29 0a 20 20 22 46 6f 72 6d 61 74 20 4b 45 59 4d 41 -keymap.(keymap)..."Format.KEYMA
86a0 50 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 73 2d 61 6e 64 2d 63 6f 6d 6d 61 6e 64 73 20 P."...(let*.((keys-and-commands.
86c0 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 20 6b 65 79 6d 61 70 29 29 0a 20 (helpful--keymap-keys.keymap))..
86e0 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6e 76 65 72 74 20 6b 65 79 63 6f 64 65 73 20 5b 32 37 20 ........;;.Convert.keycodes.[27.
8700 69 5d 20 74 6f 20 22 43 2d 4d 2d 69 22 2e 0a 20 20 20 20 20 20 20 20 20 28 6b 65 79 73 20 28 2d i].to."C-M-i"...........(keys.(-
8720 6d 61 70 20 23 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 6b 65 79 73 2d 61 6e 64 2d 63 6f 6d 6d 61 map.#'-first-item.keys-and-comma
8740 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 64 20 70 61 64 64 69 6e 67 20 73 6f nds))..........;;.Add.padding.so
8760 20 61 6c 6c 20 6f 75 72 20 73 74 72 69 6e 67 73 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 6c 65 .all.our.strings.are.the.same.le
8780 6e 67 74 68 2e 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 2d 6b 65 79 73 20 28 ngth...........(formatted-keys.(
87a0 2d 6d 61 70 20 23 27 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 6b 65 79 73 29 29 0a 20 20 -map.#'key-description.keys))...
87c0 20 20 20 20 20 20 20 28 6d 61 78 2d 66 6f 72 6d 61 74 74 65 64 2d 6c 65 6e 67 74 68 20 28 2d 6d .......(max-formatted-length.(-m
87e0 61 78 20 28 63 6f 6e 73 20 30 20 28 2d 6d 61 70 20 23 27 6c 65 6e 67 74 68 20 66 6f 72 6d 61 74 ax.(cons.0.(-map.#'length.format
8800 74 65 64 2d 6b 65 79 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 6c 69 67 6e 65 64 2d 6b ted-keys))))..........(aligned-k
8820 65 79 73 20 28 2d 2d 6d 61 70 20 28 73 2d 70 61 64 2d 72 69 67 68 74 20 28 31 2b 20 6d 61 78 2d eys.(--map.(s-pad-right.(1+.max-
8840 66 6f 72 6d 61 74 74 65 64 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 formatted-length)...............
8860 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 22 20 22 ............................."."
8880 20 69 74 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 .it)............................
88a0 20 20 20 66 6f 72 6d 61 74 74 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 ...formatted-keys))..........;;.
88c0 46 6f 72 6d 61 74 20 63 6f 6d 6d 61 6e 64 73 20 61 73 20 62 75 74 74 6f 6e 73 2e 0a 20 20 20 20 Format.commands.as.buttons......
88e0 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 73 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 28 .....(commands.(-map.(-lambda.((
8900 5f 20 63 6f 6d 6d 61 6e 64 29 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 _.command)).command)............
8920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 73 2d 61 6e 64 2d 63 6f 6d 6d 61 6e 64 73 29 ..............keys-and-commands)
8940 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 2d 63 6f 6d 6d 61 6e 64 73 0a 20 )..........(formatted-commands..
8960 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 .........(--map............(cond
8980 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 79 6d 62 6f 6c 70 20 69 74 29 0a 20 20 20 20 20 .............((symbolp.it)......
89a0 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 ........(helpful--button........
89c0 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 69 74 29 0a 20 20 20 20 20 20 20 20 .......(symbol-name.it).........
89e0 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 62 75 74 74 6f 6e 0a 20 ......'helpful-describe-button..
8a00 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 69 74 29 29 0a 20 20 20 20 20 20 .............'symbol.it)).......
8a20 20 20 20 20 20 20 28 28 6f 72 20 28 73 74 72 69 6e 67 70 20 69 74 29 20 28 76 65 63 74 6f 72 70 ......((or.(stringp.it).(vectorp
8a40 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4b 65 79 62 6f 61 72 64 20 4d 61 63 .it)).............."Keyboard.Mac
8a60 72 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 ro").............(t.............
8a80 20 22 23 3c 61 6e 6f 6e 79 6d 6f 75 73 2d 66 75 6e 63 74 69 6f 6e 3e 22 29 29 0a 20 20 20 20 20 ."#<anonymous-function>"))......
8aa0 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 69 ......commands))..........;;.Bui
8ac0 6c 64 20 6c 69 6e 65 73 20 66 6f 72 20 64 69 73 70 6c 61 79 2e 0a 20 20 20 20 20 20 20 20 20 28 ld.lines.for.display...........(
8ae0 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 lines...........(-map.(-lambda.(
8b00 28 6b 65 79 20 2e 20 63 6f 6d 6d 61 6e 64 29 29 20 28 66 6f 72 6d 61 74 20 22 25 73 20 25 73 22 (key...command)).(format."%s.%s"
8b20 20 6b 65 79 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .key.command)).................(
8b40 2d 7a 69 70 2d 70 61 69 72 20 61 6c 69 67 6e 65 64 2d 6b 65 79 73 20 66 6f 72 6d 61 74 74 65 64 -zip-pair.aligned-keys.formatted
8b60 2d 63 6f 6d 6d 61 6e 64 73 29 29 29 29 0a 20 20 20 20 3b 3b 20 54 68 65 20 66 6c 61 74 74 65 6e -commands)))).....;;.The.flatten
8b80 65 64 20 6b 65 79 6d 61 70 20 77 69 6c 6c 20 68 61 76 65 20 6e 6f 72 6d 61 6c 20 62 69 6e 64 69 ed.keymap.will.have.normal.bindi
8ba0 6e 67 73 20 66 69 72 73 74 2c 20 61 6e 64 0a 20 20 20 20 3b 3b 20 69 6e 68 65 72 69 74 65 64 20 ngs.first,.and.....;;.inherited.
8bc0 62 69 6e 64 69 6e 67 73 20 6c 61 73 74 2e 20 53 6f 72 74 20 73 6f 20 74 68 61 74 20 77 65 20 67 bindings.last..Sort.so.that.we.g
8be0 72 6f 75 70 20 62 79 20 70 72 65 66 69 78 2e 0a 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 roup.by.prefix......(s-join."\n"
8c00 20 28 2d 73 6f 72 74 20 23 27 73 74 72 69 6e 67 3c 20 6c 69 6e 65 73 29 29 29 29 0a 0a 28 64 65 .(-sort.#'string<.lines))))..(de
8c20 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6f 6d 6d 61 6e 64 73 20 28 73 74 fun.helpful--format-commands.(st
8c40 72 20 6b 65 79 6d 61 70 29 0a 20 20 22 52 65 70 6c 61 63 65 20 61 6c 6c 20 74 68 65 20 5c 5c 5b r.keymap)..."Replace.all.the.\\[
8c60 20 72 65 66 65 72 65 6e 63 65 73 20 69 6e 20 53 54 52 20 77 69 74 68 20 62 75 74 74 6f 6e 73 2e .references.in.STR.with.buttons.
8c80 22 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 "...(replace-regexp-in-string...
8ca0 20 3b 3b 20 54 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 5c 5b 66 6f 6f 2d 63 6f 6d 6d .;;.Text.of.the.form.\\[foo-comm
8cc0 61 6e 64 5d 0a 20 20 20 28 72 78 20 22 5c 5c 5b 22 20 28 67 72 6f 75 70 20 28 2b 20 28 6e 6f 74 and]....(rx."\\[".(group.(+.(not
8ce0 20 28 69 6e 20 22 5d 22 29 29 29 29 20 22 5d 22 29 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 69 74 .(in."]"))))."]")....(lambda.(it
8d00 29 0a 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 75 74 74 6f 6e 2d 66 61 63 65 20 28 69 66 20 28 )......(let*.((button-face.(if.(
8d20 3e 3d 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 38 29 20 27 68 65 6c 70 >=.emacs-major-version.28).'help
8d40 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 20 27 62 75 74 74 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 -key-binding.'button))..........
8d60 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 ...(symbol-name.(match-string.1.
8d80 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 69 6e 74 65 72 6e it)).............(symbol.(intern
8da0 20 73 79 6d 62 6f 6c 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 20 .symbol-name)).............(key.
8dc0 28 77 68 65 72 65 2d 69 73 2d 69 6e 74 65 72 6e 61 6c 20 73 79 6d 62 6f 6c 20 6b 65 79 6d 61 70 (where-is-internal.symbol.keymap
8de0 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f .t)).............(key-descriptio
8e00 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 n..............(if.key..........
8e20 20 20 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 6b 65 79 29 0a 20 20 ........(key-description.key)...
8e40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4d 2d 78 20 25 73 22 20 73 79 .............(format."M-x.%s".sy
8e60 6d 62 6f 6c 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 mbol-name))))........(helpful--b
8e80 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 utton.........key-description...
8ea0 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d ......'helpful-describe-exactly-
8ec0 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 62 6f 6c 0a 20 20 button.........'symbol.symbol...
8ee0 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 74 0a 20 20 20 20 20 20 20 20 27 66 61 63 ......'callable-p.t.........'fac
8f00 65 20 62 75 74 74 6f 6e 2d 66 61 63 65 29 29 29 0a 20 20 20 73 74 72 0a 20 20 20 74 0a 20 20 20 e.button-face)))....str....t....
8f20 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 68 61 72 73 2d 62 65 66 6f 72 t))..(defun.helpful--chars-befor
8f40 65 20 28 70 6f 73 20 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 75 70 20 74 6f 20 4e 20 63 68 61 72 e.(pos.n)..."Return.up.to.N.char
8f60 73 20 62 65 66 6f 72 65 20 50 4f 53 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 s.before.POS.in.the.current.buff
8f80 65 72 2e 0a 54 68 65 20 73 74 72 69 6e 67 20 6d 61 79 20 62 65 20 73 68 6f 72 74 65 72 20 74 68 er..The.string.may.be.shorter.th
8fa0 61 6e 20 4e 20 6f 72 20 65 6d 70 74 79 20 69 66 20 6f 75 74 2d 6f 66 2d 72 61 6e 67 65 2e 22 0a an.N.or.empty.if.out-of-range.".
8fc0 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 0a 20 20 20 28 6d 61 78 20 28 70 6f 69 ..(buffer-substring....(max.(poi
8fe0 6e 74 2d 6d 69 6e 29 20 28 2d 20 70 6f 73 20 6e 29 29 0a 20 20 20 70 6f 73 29 29 0a 0a 28 64 65 nt-min).(-.pos.n))....pos))..(de
9000 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 68 61 72 73 2d 61 66 74 65 72 20 28 70 6f 73 20 6e 29 fun.helpful--chars-after.(pos.n)
9020 0a 20 20 22 52 65 74 75 72 6e 20 75 70 20 74 6f 20 4e 20 63 68 61 72 73 20 61 66 74 65 72 20 50 ..."Return.up.to.N.chars.after.P
9040 4f 53 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 54 68 65 20 73 74 OS.in.the.current.buffer..The.st
9060 72 69 6e 67 20 6d 61 79 20 62 65 20 73 68 6f 72 74 65 72 20 74 68 61 6e 20 4e 20 6f 72 20 65 6d ring.may.be.shorter.than.N.or.em
9080 70 74 79 20 69 66 20 6f 75 74 2d 6f 66 2d 72 61 6e 67 65 2e 22 0a 20 20 28 62 75 66 66 65 72 2d pty.if.out-of-range."...(buffer-
90a0 73 75 62 73 74 72 69 6e 67 0a 20 20 20 70 6f 73 0a 20 20 20 28 6d 69 6e 20 28 70 6f 69 6e 74 2d substring....pos....(min.(point-
90c0 6d 61 78 29 20 28 2b 20 70 6f 73 20 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 max).(+.pos.n))))..(defun.helpfu
90e0 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 28 64 6f 63 73 74 72 69 6e l--format-command-keys.(docstrin
9100 67 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 63 6f 6d 6d 61 6e 64 20 6b 65 79 20 72 65 66 65 72 65 g)..."Convert.command.key.refere
9120 6e 63 65 73 20 61 6e 64 20 6b 65 79 6d 61 70 20 72 65 66 65 72 65 6e 63 65 73 0a 69 6e 20 44 4f nces.and.keymap.references.in.DO
9140 43 53 54 52 49 4e 47 20 74 6f 20 62 75 74 74 6f 6e 73 2e 0a 0a 45 6d 61 63 73 20 75 73 65 73 20 CSTRING.to.buttons...Emacs.uses.
9160 5c 5c 3d 20 74 6f 20 65 73 63 61 70 65 20 5c 5c 5b 20 72 65 66 65 72 65 6e 63 65 73 2c 20 73 6f \\=.to.escape.\\[.references,.so
9180 20 72 65 70 6c 61 63 65 20 74 68 61 74 0a 75 6e 65 73 63 61 70 69 6e 67 20 74 6f 6f 2e 22 0a 20 .replace.that.unescaping.too."..
91a0 20 3b 3b 20 4c 6f 6f 73 65 6c 79 20 62 61 73 65 64 20 6f 6e 20 60 73 75 62 73 74 69 74 75 74 65 .;;.Loosely.based.on.`substitute
91c0 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 27 2c 20 62 75 74 20 63 6f 6e 76 65 72 74 73 0a 20 20 3b -command-keys',.but.converts...;
91e0 3b 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 62 75 74 74 6f 6e 73 2e 0a 20 20 28 6c 65 74 20 ;.references.to.buttons....(let.
9200 28 28 6b 65 79 6d 61 70 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 ((keymap.nil)).....(with-temp-bu
9220 66 66 65 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 ffer.......(insert.docstring)...
9240 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 0a 20 20 20 20 ....(goto-char.(point-min)).....
9260 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 28 63 ..(while.(not.(eobp)).........(c
9280 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 ond..........((looking-at.......
92a0 20 20 20 20 20 3b 3b 20 54 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 22 66 6f 6f 22 0a 20 .....;;.Text.of.the.form."foo"..
92c0 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 5c 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b ..........(rx."\""))...........;
92e0 3b 20 46 6f 72 20 6c 69 74 65 72 61 6c 20 73 74 72 69 6e 67 73 2c 20 65 73 63 61 70 65 20 62 61 ;.For.literal.strings,.escape.ba
9300 63 6b 73 6c 61 73 68 65 73 20 73 6f 20 6f 75 72 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 20 ckslashes.so.our.output.........
9320 20 20 3b 3b 20 73 68 6f 77 73 20 63 6f 70 79 2d 70 61 73 74 65 61 62 6c 65 20 6c 69 74 65 72 61 ..;;.shows.copy-pasteable.litera
9340 6c 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 70 6f 73 20 ls............(let*.((start-pos.
9360 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 28 65 6e 64 2d 70 (point))..................(end-p
9380 6f 73 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 20 28 73 65 61 72 63 68 os.(progn.(forward-char).(search
93a0 2d 66 6f 72 77 61 72 64 20 22 5c 22 22 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 -forward."\"".nil.t)))..........
93c0 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ........contents).............(i
93e0 66 20 65 6e 64 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e f.end-pos.................(progn
9400 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 65 6e 74 ...................(setq.content
9420 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 73 74 61 72 74 2d 70 6f 73 20 65 6e s.(buffer-substring.start-pos.en
9440 64 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 d-pos))...................(delet
9460 65 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 2d 70 6f 73 20 65 6e 64 2d 70 6f 73 29 0a 20 20 20 20 e-region.start-pos.end-pos).....
9480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 73 2d 72 65 70 6c 61 63 65 ..............(insert.(s-replace
94a0 20 22 5c 5c 22 20 22 5c 5c 5c 5c 22 20 63 6f 6e 74 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 ."\\"."\\\\".contents)))........
94c0 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 29 0a 20 20 20 20 20 .......(forward-char.1))))......
94e0 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 ....((looking-at............;;.T
9500 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 3d 58 0a 20 20 20 20 20 20 20 20 20 20 20 28 ext.of.the.form.\=X............(
9520 72 78 20 22 5c 5c 3d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 6f 76 65 20 74 rx."\\="))...........;;.Remove.t
9540 68 65 20 65 73 63 61 70 69 6e 67 2c 20 74 68 65 6e 20 73 74 65 70 20 6f 76 65 72 20 74 68 65 20 he.escaping,.then.step.over.the.
9560 65 73 63 61 70 65 64 20 63 68 61 72 2e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 65 70 20 escaped.char............;;.Step.
9580 6f 76 65 72 20 74 68 65 20 65 73 63 61 70 65 64 20 63 68 61 72 61 63 74 65 72 2e 0a 20 20 20 20 over.the.escaped.character......
95a0 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 20 28 2b 20 ......(delete-region.(point).(+.
95c0 28 70 6f 69 6e 74 29 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 (point).2))...........(forward-c
95e0 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 har.1))..........((looking-at...
9600 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 60 66 6f .........;;.Text.of.the.form.`fo
9620 6f 27 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 60 22 29 29 0a 20 20 20 20 20 20 20 20 o'............(rx."`")).........
9640 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 ..(let*.((start-pos.(point))....
9660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 70 6f 73 20 28 73 65 61 72 63 68 2d 66 ..............(end-pos.(search-f
9680 6f 72 77 61 72 64 20 22 27 22 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 orward."'".nil.t))..............
96a0 20 20 20 20 28 63 6f 6e 74 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(contents...................
96c0 28 77 68 65 6e 20 65 6e 64 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (when.end-pos...................
96e0 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 31 2b 20 73 74 61 72 74 2d 70 6f ..(buffer-substring.(1+.start-po
9700 73 29 20 28 31 2d 20 65 6e 64 2d 70 6f 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 s).(1-.end-pos))))).............
9720 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 63 6f 6e 74 65 6e (cond..............((null.conten
9740 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 72 65 27 73 20 ts)...............;;.If.there's.
9760 6e 6f 20 63 6c 6f 73 69 6e 67 20 27 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 6f 70 65 6e 69 6e no.closing.'.to.match.the.openin
9780 67 20 60 2c 20 6a 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 65 61 76 65 g.`,.just...............;;.leave
97a0 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 31 .it................(goto-char.(1
97c0 2b 20 73 74 61 72 74 2d 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 2d +.start-pos)))..............((s-
97e0 63 6f 6e 74 61 69 6e 73 2d 70 20 22 60 22 20 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 contains-p."`".contents)........
9800 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 68 61 76 65 20 72 65 70 65 61 74 65 64 20 62 61 .......;;.If.we.have.repeated.ba
9820 63 6b 74 69 63 6b 73 20 60 66 6f 6f 20 60 62 61 72 27 2c 20 6c 65 61 76 65 20 74 68 65 0a 20 20 ckticks.`foo.`bar',.leave.the...
9840 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 72 73 74 20 6f 6e 65 2e 0a 20 20 20 20 20 20 ............;;.first.one........
9860 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 31 2b 20 73 74 61 72 74 2d 70 6f 73 ........(goto-char.(1+.start-pos
9880 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 )))..............((s-contains-p.
98a0 22 5c 5c 5b 22 20 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 "\\[".contents)...............(d
98c0 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 2d 70 6f 73 20 65 6e 64 2d 70 6f 73 29 0a elete-region.start-pos.end-pos).
98e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d ..............(insert.(helpful--
9900 66 6f 72 6d 61 74 2d 63 6f 6d 6d 61 6e 64 73 20 63 6f 6e 74 65 6e 74 73 20 6b 65 79 6d 61 70 29 format-commands.contents.keymap)
9920 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 69 67 68 6c 69 67 68 74 20 61 20 6e ))..............;;.Highlight.a.n
9940 6f 72 6d 61 6c 20 60 66 6f 6f 27 2c 20 65 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 73 75 72 72 ormal.`foo',.extracting.the.surr
9960 6f 75 6e 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 65 78 74 20 73 6f 20 ounding..............;;.text.so.
9980 77 65 20 63 61 6e 20 64 65 74 65 63 74 20 65 2e 67 2e 20 22 66 75 6e 63 74 69 6f 6e 20 60 66 6f we.can.detect.e.g.."function.`fo
99a0 6f 27 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 o'"...............(t............
99c0 20 20 20 28 6c 65 74 20 28 28 62 65 66 6f 72 65 20 28 68 65 6c 70 66 75 6c 2d 2d 63 68 61 72 73 ...(let.((before.(helpful--chars
99e0 2d 62 65 66 6f 72 65 20 73 74 61 72 74 2d 70 6f 73 20 31 30 29 29 0a 20 20 20 20 20 20 20 20 20 -before.start-pos.10))..........
9a00 20 20 20 20 20 20 20 20 20 20 20 28 61 66 74 65 72 20 28 68 65 6c 70 66 75 6c 2d 2d 63 68 61 72 ...........(after.(helpful--char
9a20 73 2d 61 66 74 65 72 20 65 6e 64 2d 70 6f 73 20 31 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 s-after.end-pos.10)))...........
9a40 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 2d 70 6f 73 20 65 ......(delete-region.start-pos.e
9a60 6e 64 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 nd-pos).................(insert.
9a80 28 68 65 6c 70 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 73 79 6d 2d 72 65 66 20 63 6f 6e (helpful--propertize-sym-ref.con
9aa0 74 65 6e 74 73 20 62 65 66 6f 72 65 20 61 66 74 65 72 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 tents.before.after))))))).......
9ac0 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 ...((looking-at............;;.Te
9ae0 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 5c 3c 66 6f 6f 2d 6b 65 79 6d 61 70 3e 0a 20 20 xt.of.the.form.\\<foo-keymap>...
9b00 20 20 20 20 20 20 20 20 20 28 72 78 20 22 5c 5c 3c 22 20 28 67 72 6f 75 70 20 28 2b 20 28 6e 6f .........(rx."\\<".(group.(+.(no
9b20 74 20 28 69 6e 20 22 3e 22 29 29 29 29 20 22 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.(in.">")))).">"...............
9b40 20 28 3f 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 .(?."\n")))...........(let*.((sy
9b60 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 mbol-with-parens.(match-string.0
9b80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 ))..................(symbol-name
9ba0 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(match-string.1))).............
9bc0 3b 3b 20 52 65 6d 6f 76 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 73 74 72 69 6e 67 2e 0a 20 ;;.Remove.the.original.string...
9be0 20 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 ...........(delete-region.(point
9c00 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 28 2b 20 )............................(+.
9c20 28 70 6f 69 6e 74 29 20 28 6c 65 6e 67 74 68 20 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 (point).(length.symbol-with-pare
9c40 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 74 20 74 68 65 20 6e 65 77 ns))).............;;.Set.the.new
9c60 20 6b 65 79 6d 61 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 6d 61 .keymap..............(setq.keyma
9c80 70 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 28 69 6e 74 65 72 6e 20 73 79 6d 62 6f 6c 2d 6e p.(symbol-value.(intern.symbol-n
9ca0 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 ame)))))..........((looking-at..
9cc0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 5c ..........;;.Text.of.the.form.\\
9ce0 7b 66 6f 6f 2d 6d 6f 64 65 2d 6d 61 70 7d 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 5c {foo-mode-map}............(rx."\
9d00 5c 7b 22 20 28 67 72 6f 75 70 20 28 2b 20 28 6e 6f 74 20 28 69 6e 20 22 7d 22 29 29 29 29 20 22 \{".(group.(+.(not.(in."}"))))."
9d20 7d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 62 6f 6c 2d 77 69 }"))...........(let*.((symbol-wi
9d40 74 68 2d 70 61 72 65 6e 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 0a 20 20 20 20 th-parens.(match-string.0)).....
9d60 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 6d 61 74 63 68 .............(symbol-name.(match
9d80 2d 73 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 -string.1))..................(ke
9da0 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 47 72 61 63 65 66 ymap...................;;.Gracef
9dc0 75 6c 6c 79 20 68 61 6e 64 6c 65 20 76 61 72 69 61 62 6c 65 73 20 6e 6f 74 20 62 65 69 6e 67 20 ully.handle.variables.not.being.
9de0 64 65 66 69 6e 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f defined....................(igno
9e00 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 re-errors.....................(s
9e20 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 28 69 6e 74 65 72 6e 20 73 79 6d 62 6f 6c 2d 6e 61 6d 65 29 ymbol-value.(intern.symbol-name)
9e40 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 6f 76 65 20 74 68 65 20 6f )))).............;;.Remove.the.o
9e60 72 69 67 69 6e 61 6c 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c riginal.string..............(del
9e80 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ete-region.(point)..............
9ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 70 6f 69 6e 74 29 20 28 6c 65 6e 67 74 68 ..............(+.(point).(length
9ec0 20 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 .symbol-with-parens)))..........
9ee0 20 20 20 28 69 66 20 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ...(if.keymap.................(i
9f00 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6b 65 79 6d 61 70 20 6b 65 nsert.(helpful--format-keymap.ke
9f20 79 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f ymap))...............(insert.(fo
9f40 72 6d 61 74 20 22 4b 65 79 6d 61 70 20 25 73 20 69 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 rmat."Keymap.%s.is.not.currently
9f60 20 64 65 66 69 6e 65 64 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .defined."......................
9f80 20 20 20 20 20 20 20 20 20 73 79 6d 62 6f 6c 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 .........symbol-name))))).......
9fa0 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 ...((looking-at............;;.Te
9fc0 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 5c 5b 66 6f 6f 2d 63 6f 6d 6d 61 6e 64 5d 0a 20 xt.of.the.form.\\[foo-command]..
9fe0 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 5c 5c 5b 22 20 28 67 72 6f 75 70 20 28 2b 20 28 6e ..........(rx."\\[".(group.(+.(n
a000 6f 74 20 28 69 6e 20 22 5d 22 29 29 29 29 20 22 5d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 ot.(in."]"))))."]"))...........(
a020 6c 65 74 2a 20 28 28 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 20 28 6d 61 74 63 68 let*.((symbol-with-parens.(match
a040 2d 73 74 72 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 6f -string.0))).............;;.Remo
a060 76 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 ve.the.original.string..........
a080 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 0a 20 20 20 20 20 ....(delete-region.(point)......
a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 70 6f 69 6e 74 29 ......................(+.(point)
a0c0 20 28 6c 65 6e 67 74 68 20 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 29 29 29 0a 20 .(length.symbol-with-parens)))..
a0e0 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 64 20 61 20 62 75 74 74 6f 6e 2e 0a 20 20 20 20 ...........;;.Add.a.button......
a100 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 ........(insert.(helpful--format
a120 2d 63 6f 6d 6d 61 6e 64 73 20 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 20 6b 65 79 -commands.symbol-with-parens.key
a140 6d 61 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 6d 6f 64 69 66 79 map))))..........;;.Don't.modify
a160 20 6f 74 68 65 72 20 63 68 61 72 61 63 74 65 72 73 2e 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 .other.characters...........(t..
a180 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 29 0a 20 20 20 .........(forward-char.1))))....
a1a0 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 ...(buffer-string))))..;;.TODO:.
a1c0 66 69 78 20 75 70 73 74 72 65 61 6d 20 45 6d 61 63 73 20 62 75 67 20 74 68 61 74 20 6d 65 61 6e fix.upstream.Emacs.bug.that.mean
a1e0 73 20 60 2d 6d 61 70 27 20 69 73 20 6e 6f 74 20 68 69 67 68 6c 69 67 68 74 65 64 0a 3b 3b 20 69 s.`-map'.is.not.highlighted.;;.i
a200 6e 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 20 66 6f 72 20 60 2d 2d 6d 61 70 27 2e 0a 28 64 65 n.the.docstring.for.`--map'..(de
a220 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 64 6f 63 73 74 72 69 6e 67 20 28 64 fun.helpful--format-docstring.(d
a240 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 52 65 70 6c 61 63 65 20 63 72 6f 73 73 2d 72 65 66 65 72 ocstring)..."Replace.cross-refer
a260 65 6e 63 65 73 20 77 69 74 68 20 6c 69 6e 6b 73 20 69 6e 20 44 4f 43 53 54 52 49 4e 47 2e 22 0a ences.with.links.in.DOCSTRING.".
a280 20 20 28 2d 3e 20 64 6f 63 73 74 72 69 6e 67 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d ..(->.docstring.......(helpful--
a2a0 73 70 6c 69 74 2d 66 69 72 73 74 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c split-first-line).......(helpful
a2c0 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 --propertize-info).......(helpfu
a2e0 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 6c 69 6e 6b 73 29 0a 20 20 20 20 20 20 28 68 65 6c 70 l--propertize-links).......(help
a300 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 62 61 72 65 2d 6c 69 6e 6b 73 29 0a 20 20 20 20 ful--propertize-bare-links).....
a320 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 29 ..(helpful--format-command-keys)
a340 0a 20 20 20 20 20 20 28 73 2d 74 72 69 6d 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f .......(s-trim)))..(define-butto
a360 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 6c 69 6e 6b 2d 62 75 74 74 6f 6e 0a 20 20 27 61 n-type.'helpful-link-button...'a
a380 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 0a 20 20 27 ction.#'helpful--follow-link...'
a3a0 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 46 6f 6c 6c follow-link.t...'help-echo."Foll
a3c0 6f 77 20 74 68 69 73 20 6c 69 6e 6b 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d ow.this.link")..(defun.helpful--
a3e0 70 72 6f 70 65 72 74 69 7a 65 2d 6c 69 6e 6b 73 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 propertize-links.(docstring)..."
a400 43 6f 6e 76 65 72 74 20 55 52 4c 20 6c 69 6e 6b 73 20 69 6e 20 64 6f 63 73 74 72 69 6e 67 73 20 Convert.URL.links.in.docstrings.
a420 74 6f 20 62 75 74 74 6f 6e 73 2e 22 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 to.buttons."...(replace-regexp-i
a440 6e 2d 73 74 72 69 6e 67 0a 20 20 20 28 72 78 20 22 55 52 4c 20 60 22 20 28 67 72 6f 75 70 20 28 n-string....(rx."URL.`".(group.(
a460 2a 3f 20 61 6e 79 29 29 20 22 27 22 29 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 6d 61 74 63 68 29 *?.any))."'")....(lambda.(match)
a480 0a 20 20 20 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 ......(let.((url.(match-string.1
a4a0 20 6d 61 74 63 68 29 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 55 52 4c 20 22 0a .match)))........(concat."URL.".
a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a ...............(helpful--button.
a4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................url.............
a500 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 6c 69 6e 6b 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 ....'helpful-link-button........
a520 20 20 20 20 20 20 20 20 20 27 75 72 6c 20 75 72 6c 29 29 29 29 0a 20 20 20 64 6f 63 73 74 72 69 .........'url.url))))....docstri
a540 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 ng))..(defun.helpful--propertize
a560 2d 62 61 72 65 2d 6c 69 6e 6b 73 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6e 76 65 -bare-links.(docstring)..."Conve
a580 72 74 20 55 52 4c 20 6c 69 6e 6b 73 20 69 6e 20 64 6f 63 73 74 72 69 6e 67 73 20 74 6f 20 62 75 rt.URL.links.in.docstrings.to.bu
a5a0 74 74 6f 6e 73 2e 22 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 ttons."...(replace-regexp-in-str
a5c0 69 6e 67 0a 20 20 20 28 72 78 20 28 67 72 6f 75 70 20 28 6f 72 20 73 74 72 69 6e 67 2d 73 74 61 ing....(rx.(group.(or.string-sta
a5e0 72 74 20 73 70 61 63 65 20 22 3c 22 29 29 0a 20 20 20 20 20 20 20 28 67 72 6f 75 70 20 22 68 74 rt.space."<"))........(group."ht
a600 74 70 22 20 28 3f 20 22 73 22 29 20 22 3a 2f 2f 22 20 28 2b 3f 20 28 6e 6f 74 20 28 61 6e 79 20 tp".(?."s")."://".(+?.(not.(any.
a620 73 70 61 63 65 29 29 29 29 0a 20 20 20 20 20 20 20 28 67 72 6f 75 70 20 28 3f 20 28 61 6e 79 20 space))))........(group.(?.(any.
a640 22 2e 22 20 22 3e 22 20 22 29 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 ".".">".")"))...............(or.
a660 73 70 61 63 65 20 73 74 72 69 6e 67 2d 65 6e 64 20 22 3e 22 29 29 29 0a 20 20 20 28 6c 61 6d 62 space.string-end.">")))....(lamb
a680 64 61 20 28 6d 61 74 63 68 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 73 70 61 63 65 2d 62 65 66 da.(match)......(let.((space-bef
a6a0 6f 72 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 6d 61 74 63 68 29 29 0a 20 20 20 20 ore.(match-string.1.match)).....
a6c0 20 20 20 20 20 20 20 28 75 72 6c 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 6d 61 74 63 .......(url.(match-string.2.matc
a6e0 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 66 74 65 72 20 28 6d 61 74 63 68 2d 73 74 72 h))............(after.(match-str
a700 69 6e 67 20 33 20 6d 61 74 63 68 29 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 ing.3.match)))........(concat...
a720 20 20 20 20 20 20 73 70 61 63 65 2d 62 65 66 6f 72 65 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 ......space-before.........(help
a740 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 75 72 6c 0a 20 20 20 20 20 20 20 ful--button..........url........
a760 20 20 27 68 65 6c 70 66 75 6c 2d 6c 69 6e 6b 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 ..'helpful-link-button..........
a780 27 75 72 6c 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 61 66 74 65 72 29 29 29 0a 20 20 20 64 6f 'url.url).........after)))....do
a7a0 63 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 6c 6c 6f cstring))..(defun.helpful--follo
a7c0 77 2d 6c 69 6e 6b 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 46 6f 6c 6c 6f 77 20 74 68 65 20 55 52 w-link.(button)..."Follow.the.UR
a7e0 4c 20 73 70 65 63 69 66 69 65 64 20 62 79 20 42 55 54 54 4f 4e 2e 22 0a 20 20 28 62 72 6f 77 73 L.specified.by.BUTTON."...(brows
a800 65 2d 75 72 6c 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 75 72 6c 29 29 29 e-url.(button-get.button.'url)))
a820 0a 0a 28 64 65 66 63 6f 6e 73 74 20 68 65 6c 70 66 75 6c 2d 2d 68 69 67 68 6c 69 67 68 74 69 6e ..(defconst.helpful--highlightin
a840 67 2d 66 75 6e 63 73 0a 20 20 27 28 65 72 74 2d 2d 61 63 74 69 76 61 74 65 2d 66 6f 6e 74 2d 6c g-funcs...'(ert--activate-font-l
a860 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 0a 20 20 20 20 68 69 67 68 6c 69 67 68 74 2d 71 75 6f 74 65 ock-keywords.....highlight-quote
a880 64 2d 6d 6f 64 65 0a 20 20 20 20 72 61 69 6e 62 6f 77 2d 64 65 6c 69 6d 69 74 65 72 73 2d 6d 6f d-mode.....rainbow-delimiters-mo
a8a0 64 65 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 de)..."Highlighting.functions.th
a8c0 61 74 20 61 72 65 20 73 61 66 65 20 74 6f 20 72 75 6e 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72 at.are.safe.to.run.in.a.temporar
a8e0 79 20 62 75 66 66 65 72 2e 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 69 6e 20 60 68 65 6c 70 66 y.buffer..This.is.used.in.`helpf
a900 75 6c 2d 2d 73 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 27 20 74 6f 20 73 75 70 70 6f 72 74 ul--syntax-highlight'.to.support
a920 20 65 78 74 72 61 0a 68 69 67 68 6c 69 67 68 74 69 6e 67 20 74 68 61 74 20 74 68 65 20 75 73 65 .extra.highlighting.that.the.use
a940 72 20 6d 61 79 20 68 61 76 65 20 63 6f 6e 66 69 67 75 72 65 64 20 69 6e 20 74 68 65 69 72 20 6d r.may.have.configured.in.their.m
a960 6f 64 65 0a 68 6f 6f 6b 73 2e 22 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 63 72 61 73 68 65 73 20 6f ode.hooks.")..;;.TODO:.crashes.o
a980 6e 20 60 62 61 63 6b 74 72 61 63 65 2d 66 72 61 6d 65 27 20 6f 6e 20 61 20 72 65 63 65 6e 74 20 n.`backtrace-frame'.on.a.recent.
a9a0 63 68 65 63 6b 6f 75 74 2e 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6e 74 61 checkout...(defun.helpful--synta
a9c0 78 2d 68 69 67 68 6c 69 67 68 74 20 28 73 6f 75 72 63 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 6f x-highlight.(source.&optional.mo
a9e0 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 6f 70 65 72 74 69 7a 65 64 20 76 65 72 73 de)..."Return.a.propertized.vers
aa00 69 6f 6e 20 6f 66 20 53 4f 55 52 43 45 20 69 6e 20 4d 4f 44 45 2e 22 0a 20 20 28 75 6e 6c 65 73 ion.of.SOURCE.in.MODE."...(unles
aa20 73 20 6d 6f 64 65 0a 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 20 23 27 65 6d 61 63 73 2d 6c 69 s.mode.....(setq.mode.#'emacs-li
aa40 73 70 2d 6d 6f 64 65 29 29 0a 20 20 28 69 66 20 28 6f 72 0a 20 20 20 20 20 20 20 28 3c 20 28 6c sp-mode))...(if.(or........(<.(l
aa60 65 6e 67 74 68 20 73 6f 75 72 63 65 29 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 ength.source).helpful-max-highli
aa80 67 68 74 29 0a 20 20 20 20 20 20 20 28 65 71 20 6d 6f 64 65 20 27 65 6d 61 63 73 2d 6c 69 73 70 ght)........(eq.mode.'emacs-lisp
aaa0 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a -mode)).......(with-temp-buffer.
aac0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 73 6f 75 72 63 65 29 0a 0a 20 20 20 20 20 20 20 ........(insert.source).........
aae0 20 3b 3b 20 53 77 69 74 63 68 20 74 6f 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 4d 4f 44 45 2c 20 62 .;;.Switch.to.major-mode.MODE,.b
ab00 75 74 20 64 6f 6e 27 74 20 72 75 6e 20 61 6e 79 20 68 6f 6f 6b 73 2e 0a 20 20 20 20 20 20 20 20 ut.don't.run.any.hooks..........
ab20 28 64 65 6c 61 79 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 28 66 75 6e 63 61 6c 6c 20 6d 6f 64 65 29 (delay-mode-hooks.(funcall.mode)
ab40 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 60 64 65 6c 61 79 65 64 2d 6d 6f 64 65 2d 68 6f 6f 6b )..........;;.`delayed-mode-hook
ab60 73 27 20 63 6f 6e 74 61 69 6e 73 20 6d 6f 64 65 20 68 6f 6f 6b 73 20 6c 69 6b 65 0a 20 20 20 20 s'.contains.mode.hooks.like.....
ab80 20 20 20 20 3b 3b 20 60 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 2d 68 6f 6f 6b 27 2e 20 42 ....;;.`emacs-lisp-mode-hook'..B
aba0 75 69 6c 64 20 61 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 61 72 uild.a.list.of.functions.that.ar
abc0 65 20 72 75 6e 0a 20 20 20 20 20 20 20 20 3b 3b 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 65 20 68 e.run.........;;.when.the.mode.h
abe0 6f 6f 6b 73 20 72 75 6e 2e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 68 6f 6f 6b 2d 66 75 6e ooks.run..........(let.(hook-fun
ac00 63 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 68 6f 6f 6b 20 64 65 6c 61 cs)...........(dolist.(hook.dela
ac20 79 65 64 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 yed-mode-hooks).............(let
ac40 20 28 28 66 75 6e 63 73 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 68 6f 6f 6b 29 29 29 0a 20 .((funcs.(symbol-value.hook)))..
ac60 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 6f 6f 6b 2d 66 75 6e 63 73 20 28 61 .............(setq.hook-funcs.(a
ac80 70 70 65 6e 64 20 68 6f 6f 6b 2d 66 75 6e 63 73 20 66 75 6e 63 73 29 29 29 29 0a 0a 20 20 20 20 ppend.hook-funcs.funcs))))......
aca0 20 20 20 20 20 20 3b 3b 20 46 69 6c 74 65 72 20 68 6f 6f 6b 73 20 74 6f 20 74 68 6f 73 65 20 74 ......;;.Filter.hooks.to.those.t
acc0 68 61 74 20 72 65 6c 61 74 65 20 74 6f 20 68 69 67 68 6c 69 67 68 74 69 6e 67 2c 20 61 6e 64 20 hat.relate.to.highlighting,.and.
ace0 72 75 6e 20 74 68 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 6f 6f 6b 2d 66 run.them............(setq.hook-f
ad00 75 6e 63 73 20 28 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 68 6f 6f 6b 2d 66 75 6e 63 73 20 68 uncs.(-intersection.hook-funcs.h
ad20 65 6c 70 66 75 6c 2d 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 75 6e 63 73 29 29 0a 20 20 20 elpful--highlighting-funcs))....
ad40 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 66 75 6e 63 61 6c 6c 20 68 6f 6f 6b 2d 66 75 6e 63 .......(-map.#'funcall.hook-func
ad60 73 29 29 0a 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 66 6f 6e 74 2d s))..........(if.(fboundp.'font-
ad80 6c 6f 63 6b 2d 65 6e 73 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c lock-ensure).............(font-l
ada0 6f 63 6b 2d 65 6e 73 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 ock-ensure)...........(with-no-w
adc0 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 arnings.............(font-lock-f
ade0 6f 6e 74 69 66 79 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 ontify-buffer))).........(buffer
ae00 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 3b 3b 20 53 4f 55 52 43 45 20 77 61 73 20 74 6f 6f 20 -string)).....;;.SOURCE.was.too.
ae20 6c 6f 6e 67 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 69 6e 20 61 20 72 65 61 73 6f 6e 61 62 6c long.to.highlight.in.a.reasonabl
ae40 65 20 61 6d 6f 75 6e 74 20 6f 66 0a 20 20 20 20 3b 3b 20 74 69 6d 65 2e 0a 20 20 20 20 28 63 6f e.amount.of.....;;.time......(co
ae60 6e 63 61 74 0a 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 22 2f 2f 20 ncat......(propertize......."//.
ae80 53 6b 69 70 70 69 6e 67 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 64 75 65 20 74 6f 20 22 0a 20 Skipping.highlighting.due.to."..
aea0 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 .....'face.'font-lock-comment-fa
aec0 63 65 29 0a 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 ce)......(helpful--button.......
aee0 22 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 67 68 74 22 0a 20 20 20 20 20 20 27 68 "helpful-max-highlight".......'h
af00 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 elpful-describe-exactly-button..
af20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 27 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 .....'symbol.'helpful-max-highli
af40 67 68 74 0a 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 6c 29 0a 20 20 20 20 20 ght.......'callable-p.nil)......
af60 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 22 2e 5c 6e 22 0a 20 20 20 20 20 20 27 66 (propertize.......".\n".......'f
af80 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 0a 20 20 20 ace.'font-lock-comment-face)....
afa0 20 20 73 6f 75 72 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 6f 75 ..source)))..(defun.helpful--sou
afc0 72 63 65 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 29 0a 20 20 22 rce.(sym.callable-p.buf.pos)..."
afe0 52 65 74 75 72 6e 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 66 20 53 59 4d 2e 0a 49 Return.the.source.code.of.SYM..I
b000 66 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e f.the.source.code.cannot.be.foun
b020 64 2c 20 72 65 74 75 72 6e 20 74 68 65 20 73 65 78 70 20 75 73 65 64 2e 22 0a 20 20 28 63 61 74 d,.return.the.sexp.used."...(cat
b040 63 68 20 27 73 6f 75 72 63 65 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 79 6d 62 6f 6c 70 20 ch.'source.....(unless.(symbolp.
b060 73 79 6d 29 0a 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 73 6f 75 72 63 65 20 73 79 6d 29 29 0a sym).......(throw.'source.sym)).
b080 0a 20 20 20 20 28 6c 65 74 20 28 28 73 6f 75 72 63 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 .....(let.((source.nil)).......(
b0a0 77 68 65 6e 20 28 61 6e 64 20 62 75 66 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 when.(and.buf.pos).........(with
b0c0 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 73 -current-buffer.buf...........(s
b0e0 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 20 28 73 61 76 65 2d ave-excursion.............(save-
b100 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d restriction...............(goto-
b120 63 68 61 72 20 70 6f 73 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e char.pos)................(if.(an
b140 64 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 63 61 6c 6c d.(helpful--primitive-p.sym.call
b160 61 62 6c 65 2d 70 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 28 able-p)........................(
b180 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 not.callable-p))................
b1a0 20 20 20 3b 3b 20 46 6f 72 20 76 61 72 69 61 62 6c 65 73 20 64 65 66 69 6e 65 64 20 69 6e 20 2e ...;;.For.variables.defined.in..
b1c0 63 20 66 69 6c 65 73 2c 20 6f 6e 6c 79 20 73 68 6f 77 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 c.files,.only.show.the..........
b1e0 20 20 20 20 20 20 20 20 20 3b 3b 20 44 45 46 56 41 52 20 65 78 70 72 65 73 73 69 6f 6e 20 72 61 .........;;.DEFVAR.expression.ra
b200 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 68 75 67 65 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 20 20 ther.than.the.huge.containing...
b220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 ................;;.function.....
b240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 ...............(progn...........
b260 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e ..........(setq.pos.(line-beginn
b280 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ing-position))..................
b2a0 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(forward-list)...............
b2c0 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......(forward-char)............
b2e0 20 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 70 6f 73 20 28 .........(narrow-to-region.pos.(
b300 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 61 72 72 point))).................;;.Narr
b320 6f 77 20 74 6f 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a ow.to.the.top-level.definition..
b340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 73 65 2d 73 65 78 ................(let.((parse-sex
b360 70 2d 69 67 6e 6f 72 65 2d 63 6f 6d 6d 65 6e 74 73 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 p-ignore-comments.t))...........
b380 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 64 65 66 75 6e 20 74 29 29 29 0a 0a 20 ........(narrow-to-defun.t)))...
b3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 72 65 20 77 61 73 20 61 20 70 .............;;.If.there.was.a.p
b3c0 72 65 63 65 64 69 6e 67 20 63 6f 6d 6d 65 6e 74 2c 20 50 4f 53 20 77 69 6c 6c 20 62 65 0a 20 20 receding.comment,.POS.will.be...
b3e0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 20 74 68 61 74 20 63 6f 6d 6d 65 6e ............;;.after.that.commen
b400 74 2e 20 4d 6f 76 65 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 74 6f 20 69 6e 63 6c 75 64 65 20 t..Move.the.position.to.include.
b420 74 68 61 74 20 63 6f 6d 6d 65 6e 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 that.comment................(set
b440 71 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 q.pos.(point-min))..............
b460 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 ..(setq.source.(buffer-substring
b480 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e -no-properties.(point-min).(poin
b4a0 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 t-max)))))).........(setq.source
b4c0 20 28 73 2d 74 72 69 6d 2d 72 69 67 68 74 20 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 .(s-trim-right.source)).........
b4e0 28 77 68 65 6e 20 28 61 6e 64 20 73 6f 75 72 63 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e (when.(and.source.(buffer-file-n
b500 61 6d 65 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 ame.buf))...........(setq.source
b520 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(propertize.source.............
b540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d .......................'helpful-
b560 70 61 74 68 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 29 0a 20 20 20 20 path.(buffer-file-name.buf).....
b580 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 27 ...............................'
b5a0 68 65 6c 70 66 75 6c 2d 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 helpful-pos.pos.................
b5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 2d ...................'helpful-pos-
b5e0 69 73 2d 73 74 61 72 74 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 73 6f is-start.t))).........(throw.'so
b600 75 72 63 65 20 73 6f 75 72 63 65 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 63 61 6c 6c 61 62 urce.source)))......(when.callab
b620 6c 65 2d 70 0a 20 20 20 20 20 20 3b 3b 20 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 73 6f 75 le-p.......;;.Could.not.find.sou
b640 72 63 65 20 2d 2d 20 70 72 6f 62 61 62 6c 79 20 64 65 66 69 6e 65 64 20 69 6e 74 65 72 61 63 74 rce.--.probably.defined.interact
b660 69 76 65 6c 79 2c 20 6f 72 20 76 69 61 0a 20 20 20 20 20 20 3b 3b 20 61 20 6d 61 63 72 6f 2c 20 ively,.or.via.......;;.a.macro,.
b680 6f 72 20 66 69 6c 65 20 68 61 73 20 63 68 61 6e 67 65 64 2e 0a 20 20 20 20 20 20 3b 3b 20 54 4f or.file.has.changed........;;.TO
b6a0 44 4f 3a 20 76 65 72 69 66 79 20 74 68 61 74 20 74 68 65 20 73 6f 75 72 63 65 20 68 61 73 6e 27 DO:.verify.that.the.source.hasn'
b6c0 74 20 63 68 61 6e 67 65 64 20 62 65 66 6f 72 65 20 73 68 6f 77 69 6e 67 2e 0a 20 20 20 20 20 20 t.changed.before.showing........
b6e0 3b 3b 20 54 4f 44 4f 3a 20 6f 66 66 65 72 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 43 20 73 6f 75 ;;.TODO:.offer.to.download.C.sou
b700 72 63 65 73 20 66 6f 72 20 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 2e 0a 20 20 20 20 20 20 rces.for.current.version........
b720 28 74 68 72 6f 77 20 27 73 6f 75 72 63 65 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f (throw.'source.(indirect-functio
b740 6e 20 73 79 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 68 61 73 2d n.sym)))))..(defun.helpful--has-
b760 73 68 6f 72 74 64 6f 63 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e shortdoc-p.(sym)..."Return.non-n
b780 69 6c 20 69 66 20 73 68 6f 72 74 64 6f 63 2e 65 6c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 il.if.shortdoc.el.is.available.a
b7a0 6e 64 20 53 59 4d 20 69 73 20 69 6e 20 61 20 73 68 6f 72 74 64 6f 63 20 67 72 6f 75 70 2e 22 0a nd.SYM.is.in.a.shortdoc.group.".
b7c0 20 20 28 61 6e 64 20 28 66 65 61 74 75 72 65 70 20 27 73 68 6f 72 74 64 6f 63 29 0a 20 20 20 20 ..(and.(featurep.'shortdoc).....
b7e0 20 20 20 28 73 68 6f 72 74 64 6f 63 2d 66 75 6e 63 74 69 6f 6e 2d 67 72 6f 75 70 73 20 73 79 6d ...(shortdoc-function-groups.sym
b800 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6e 2d 6d 61 6e 75 61 6c 2d 70 )))..(defun.helpful--in-manual-p
b820 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 53 59 4d 20 .(sym)..."Return.non-nil.if.SYM.
b840 69 73 20 69 6e 20 61 6e 20 49 6e 66 6f 20 6d 61 6e 75 61 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 is.in.an.Info.manual."...(let.((
b860 63 6f 6d 70 6c 65 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 65 74 66 20 28 28 completions..........(cl-letf.((
b880 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6d 65 73 73 61 67 65 29 0a 20 20 20 20 (symbol-function.#'message).....
b8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 66 6f 72 6d 61 74 ................(lambda.(_format
b8c0 2d 73 74 72 69 6e 67 20 26 72 65 73 74 20 5f 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 -string.&rest._args)))).........
b8e0 20 20 20 28 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 2d 3e 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 27 73 79 ...(info-lookup->completions.'sy
b900 6d 62 6f 6c 20 27 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 29 29 29 29 0a 20 20 20 20 28 2d mbol.'emacs-lisp-mode)))).....(-
b920 77 68 65 6e 2d 6c 65 74 20 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 22 20 74 65 6d 70 when-let.(buf.(get-buffer.".temp
b940 2d 69 6e 66 6f 2d 6c 6f 6f 6b 22 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 -info-look")).......(kill-buffer
b960 20 62 75 66 29 29 0a 20 20 20 20 28 6f 72 20 28 61 73 73 6f 63 20 73 79 6d 20 63 6f 6d 70 6c 65 .buf)).....(or.(assoc.sym.comple
b980 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 2d 73 74 72 69 6e 67 20 73 79 6d tions).........(assoc-string.sym
b9a0 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c .completions))))..(defun.helpful
b9c0 2d 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 20 28 73 79 6d 29 0a 20 20 22 49 66 20 53 59 4d 20 68 --version-info.(sym)..."If.SYM.h
b9e0 61 73 20 76 65 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 66 6f 72 6d 61 74 20 61 as.version.information,.format.a
ba00 6e 64 20 72 65 74 75 72 6e 20 69 74 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 6f 74 68 65 72 77 69 nd.return.it..Return.nil.otherwi
ba20 73 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 28 se."...(when.(symbolp.sym).....(
ba40 6c 65 74 20 28 28 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 let.((package-version...........
ba60 20 28 67 65 74 20 73 79 6d 20 27 63 75 73 74 6f 6d 2d 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f .(get.sym.'custom-package-versio
ba80 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 0a 20 20 20 n))...........(emacs-version....
baa0 20 20 20 20 20 20 20 20 28 67 65 74 20 73 79 6d 20 27 63 75 73 74 6f 6d 2d 76 65 72 73 69 6f 6e ........(get.sym.'custom-version
bac0 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 70 61 63 6b 61 67 65 2d ))).......(cond........(package-
bae0 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 version.........(format.........
bb00 20 22 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 77 61 73 20 61 64 64 65 64 2c 20 6f 72 20 69 74 ."This.variable.was.added,.or.it
bb20 73 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 63 68 61 6e 67 65 64 2c 20 69 6e 20 25 73 20 76 s.default.value.changed,.in.%s.v
bb40 65 72 73 69 6f 6e 20 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 28 63 61 72 20 70 61 63 6b 61 67 ersion.%s."..........(car.packag
bb60 65 2d 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 28 63 64 72 20 70 61 63 6b 61 67 65 e-version)..........(cdr.package
bb80 2d 76 65 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 28 65 6d 61 63 73 2d 76 65 72 73 69 6f -version)))........(emacs-versio
bba0 6e 0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 22 54 68 69 73 n.........(format.........."This
bbc0 20 76 61 72 69 61 62 6c 65 20 77 61 73 20 61 64 64 65 64 2c 20 6f 72 20 69 74 73 20 64 65 66 61 .variable.was.added,.or.its.defa
bbe0 75 6c 74 20 76 61 6c 75 65 20 63 68 61 6e 67 65 64 2c 20 69 6e 20 45 6d 61 63 73 20 25 73 2e 22 ult.value.changed,.in.Emacs.%s."
bc00 0a 20 20 20 20 20 20 20 20 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 29 29 29 29 29 29 0a 0a 28 ..........emacs-version))))))..(
bc20 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6c 69 62 72 61 72 79 2d 70 61 74 68 20 28 6c 69 62 defun.helpful--library-path.(lib
bc40 72 61 72 79 2d 6e 61 6d 65 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 rary-name)..."Find.the.absolute.
bc60 70 61 74 68 20 66 6f 72 20 74 68 65 20 73 6f 75 72 63 65 20 6f 66 20 4c 49 42 52 41 52 59 2d 4e path.for.the.source.of.LIBRARY-N
bc80 41 4d 45 2e 0a 0a 4c 49 42 52 41 52 59 2d 4e 41 4d 45 20 74 61 6b 65 73 20 74 68 65 20 66 6f 72 AME...LIBRARY-NAME.takes.the.for
bca0 6d 20 5c 22 66 6f 6f 2e 65 6c 5c 22 20 2c 20 5c 22 66 6f 6f 2e 65 6c 5c 22 20 6f 72 0a 5c 22 73 m.\"foo.el\".,.\"foo.el\".or.\"s
bcc0 72 63 2f 66 6f 6f 2e 63 5c 22 2e 0a 0a 49 66 20 2e 65 6c 63 20 66 69 6c 65 73 20 65 78 69 73 74 rc/foo.c\"...If..elc.files.exist
bce0 20 77 69 74 68 6f 75 74 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 2e 65 6c 2c 20 .without.the.corresponding..el,.
bd00 72 65 74 75 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 28 66 2d return.nil."...(when.(member.(f-
bd20 65 78 74 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 20 27 28 22 63 22 20 22 72 73 22 29 29 0a 20 ext.library-name).'("c"."rs"))..
bd40 20 20 20 28 73 65 74 71 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 ...(setq.library-name...........
bd60 28 66 2d 65 78 70 61 6e 64 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 (f-expand.library-name..........
bd80 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 70 61 72 65 6e 74 20 66 69 6e 64 2d 66 75 6e 63 74 69 ...........(f-parent.find-functi
bda0 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 29 29 29 29 0a 20 20 28 63 6f 6e on-C-source-directory))))...(con
bdc0 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 66 69 6e 64 2d 6c 69 62 72 dition-case.nil.......(find-libr
bde0 61 72 79 2d 6e 61 6d 65 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 0a 20 20 20 20 28 65 72 72 6f ary-name.library-name).....(erro
be00 72 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 63 72 6f 65 r.nil)))..(defun.helpful--macroe
be20 78 70 61 6e 64 2d 74 72 79 20 28 66 6f 72 6d 29 0a 20 20 22 54 72 79 20 74 6f 20 66 75 6c 6c 79 xpand-try.(form)..."Try.to.fully
be40 20 6d 61 63 72 6f 65 78 70 61 6e 64 20 46 4f 52 4d 2e 0a 49 66 20 69 74 20 66 61 69 6c 73 2c 20 .macroexpand.FORM..If.it.fails,.
be60 61 74 74 65 6d 70 74 20 74 6f 20 70 61 72 74 69 61 6c 6c 79 20 6d 61 63 72 6f 65 78 70 61 6e 64 attempt.to.partially.macroexpand
be80 20 46 4f 52 4d 2e 22 0a 20 20 28 63 61 74 63 68 20 27 72 65 73 75 6c 74 0a 20 20 20 20 28 69 67 .FORM."...(catch.'result.....(ig
bea0 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 3b 3b 20 48 61 70 70 79 20 70 61 74 68 3a nore-errors.......;;.Happy.path:
bec0 20 77 65 20 63 61 6e 20 66 75 6c 6c 79 20 65 78 70 61 6e 64 20 74 68 65 20 66 6f 72 6d 2e 0a 20 .we.can.fully.expand.the.form...
bee0 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 73 75 6c 74 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 .....(throw.'result.(macroexpand
bf00 2d 61 6c 6c 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a -all.form))).....(ignore-errors.
bf20 20 20 20 20 20 20 3b 3b 20 41 74 74 65 6d 70 74 20 6f 6e 65 20 6c 65 76 65 6c 20 6f 66 20 6d 61 ......;;.Attempt.one.level.of.ma
bf40 63 72 6f 65 78 70 61 6e 73 69 6f 6e 2e 0a 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 73 75 croexpansion........(throw.'resu
bf60 6c 74 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 2d 31 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 3b 3b lt.(macroexpand-1.form))).....;;
bf80 20 46 61 6c 6c 62 61 63 6b 3a 20 6a 75 73 74 20 72 65 74 75 72 6e 20 74 68 65 20 6f 72 69 67 69 .Fallback:.just.return.the.origi
bfa0 6e 61 6c 20 66 6f 72 6d 2e 0a 20 20 20 20 66 6f 72 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c nal.form......form))..(defun.hel
bfc0 70 66 75 6c 2d 2d 74 72 65 65 2d 61 6e 79 2d 70 20 28 70 72 65 64 20 74 72 65 65 29 0a 20 20 22 pful--tree-any-p.(pred.tree)..."
bfe0 57 61 6c 6b 20 54 52 45 45 2c 20 61 70 70 6c 79 69 6e 67 20 50 52 45 44 20 74 6f 20 65 76 65 72 Walk.TREE,.applying.PRED.to.ever
c000 79 20 73 75 62 74 72 65 65 2e 0a 52 65 74 75 72 6e 20 74 20 69 66 20 50 52 45 44 20 65 76 65 72 y.subtree..Return.t.if.PRED.ever
c020 20 72 65 74 75 72 6e 73 20 74 2e 22 0a 20 20 28 63 61 74 63 68 20 27 66 6f 75 6e 64 0a 20 20 20 .returns.t."...(catch.'found....
c040 20 28 6c 65 74 20 28 28 73 74 61 63 6b 20 28 6c 69 73 74 20 74 72 65 65 29 29 29 0a 20 20 20 20 .(let.((stack.(list.tree))).....
c060 20 20 28 77 68 69 6c 65 20 73 74 61 63 6b 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 ..(while.stack.........(let.((ne
c080 78 74 20 28 70 6f 70 20 73 74 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 xt.(pop.stack)))...........(cond
c0a0 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 6e 65 78 74 29 ............((funcall.pred.next)
c0c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 74 29 29 0a 20 .............(throw.'found.t))..
c0e0 20 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 ..........((consp.next).........
c100 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 6e 65 78 74 29 20 73 74 61 63 6b 29 0a 20 20 20 20 ....(push.(car.next).stack).....
c120 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 64 72 20 6e 65 78 74 29 20 73 74 61 63 6b 29 29 ........(push.(cdr.next).stack))
c140 29 29 29 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d )))).....nil))..(defun.helpful--
c160 66 69 6e 64 2d 62 79 2d 6d 61 63 72 6f 65 78 70 61 6e 64 69 6e 67 20 28 62 75 66 20 73 79 6d 20 find-by-macroexpanding.(buf.sym.
c180 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 53 65 61 72 63 68 20 42 55 46 20 66 6f 72 20 74 68 callable-p)..."Search.BUF.for.th
c1a0 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 53 59 4d 20 62 79 20 6d 61 63 72 6f 65 78 70 61 e.definition.of.SYM.by.macroexpa
c1c0 6e 64 69 6e 67 0a 69 6e 74 65 72 65 73 74 69 6e 67 20 66 6f 72 6d 73 20 69 6e 20 42 55 46 2e 22 nding.interesting.forms.in.BUF."
c1e0 0a 20 20 28 63 61 74 63 68 20 27 66 6f 75 6e 64 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 ...(catch.'found.....(with-curre
c200 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 nt-buffer.buf.......(save-excurs
c220 69 6f 6e 0a 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 ion.........(goto-char.(point-mi
c240 6e 29 29 0a 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 n)).........(condition-case.nil.
c260 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 ............(while.t............
c280 20 20 20 28 6c 65 74 20 28 28 66 6f 72 6d 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 ...(let.((form.(read.(current-bu
c2a0 66 66 65 72 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 76 61 72 ffer))).....................(var
c2c0 2d 64 65 66 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d -def-p......................(lam
c2e0 62 64 61 20 28 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 20 20 bda.(sexp)......................
c300 20 20 28 61 6e 64 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 73 65 78 70 29 20 27 64 65 66 76 ..(and.(eq.(car-safe.sexp).'defv
c320 61 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 20 20 ar).............................
c340 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 28 63 64 72 20 73 65 78 70 29 29 20 73 79 6d 29 29 29 (eq.(car-safe.(cdr.sexp)).sym)))
c360 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6e 2d 64 65 66 2d 70 0a ).....................(fn-def-p.
c380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 65 .....................(lambda.(se
c3a0 78 70 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 3b 3b 20 60 64 xp)........................;;.`d
c3c0 65 66 75 6e 27 20 75 6c 74 69 6d 61 74 65 6c 79 20 65 78 70 61 6e 64 73 20 74 6f 20 60 64 65 66 efun'.ultimately.expands.to.`def
c3e0 61 6c 69 61 73 27 2e 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 alias'.........................(
c400 61 6e 64 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 73 65 78 70 29 20 27 64 65 66 61 6c 69 61 and.(eq.(car-safe.sexp).'defalia
c420 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 20 20 20 20 20 20 28 s).............................(
c440 65 71 75 61 6c 20 28 63 61 72 2d 73 61 66 65 20 28 63 64 72 20 73 65 78 70 29 29 20 60 28 71 75 equal.(car-safe.(cdr.sexp)).`(qu
c460 6f 74 65 20 2c 73 79 6d 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ote.,sym)))))).................(
c480 73 65 74 71 20 66 6f 72 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 63 72 6f 65 78 70 61 6e 64 2d setq.form.(helpful--macroexpand-
c4a0 74 72 79 20 66 6f 72 6d 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 try.form))..................(whe
c4c0 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 74 72 65 65 2d 61 6e 79 2d 70 0a 20 20 20 20 20 20 20 20 20 n.(helpful--tree-any-p..........
c4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 20 66 6e 2d ..............(if.callable-p.fn-
c500 64 65 66 2d 70 20 76 61 72 2d 64 65 66 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 def-p.var-def-p)................
c520 20 20 20 20 20 20 20 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 ........form)...................
c540 3b 3b 20 60 72 65 61 64 27 20 70 75 74 73 20 70 6f 69 6e 74 20 61 74 20 74 68 65 20 65 6e 64 20 ;;.`read'.puts.point.at.the.end.
c560 6f 66 20 74 68 65 20 66 6f 72 6d 2c 20 73 6f 20 67 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 of.the.form,.so.go..............
c580 20 20 20 20 20 3b 3b 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 74 61 72 74 2e 0a 20 20 20 20 20 .....;;.back.to.the.start.......
c5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 28 73 63 61 6e .............(throw.'found.(scan
c5c0 2d 73 65 78 70 73 20 28 70 6f 69 6e 74 29 20 2d 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 -sexps.(point).-1)))))..........
c5e0 20 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 6e 69 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 .(end-of-file.nil))))))..(defun.
c600 68 65 6c 70 66 75 6c 2d 2d 6f 70 65 6e 2d 69 66 2d 6e 65 65 64 65 64 20 28 70 61 74 68 29 0a 20 helpful--open-if-needed.(path)..
c620 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 28 42 55 46 20 4f 50 45 4e 45 44 29 20 77 68 65 ."Return.a.list.(BUF.OPENED).whe
c640 72 65 20 42 55 46 20 69 73 20 61 20 62 75 66 66 65 72 20 76 69 73 69 74 69 6e 67 20 50 41 54 48 re.BUF.is.a.buffer.visiting.PATH
c660 2e 0a 49 66 20 61 20 62 75 66 66 65 72 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2c 20 72 65 ..If.a.buffer.already.exists,.re
c680 74 75 72 6e 20 74 68 61 74 2e 20 49 66 20 6e 6f 74 2c 20 6f 70 65 6e 20 50 41 54 48 20 77 69 74 turn.that..If.not,.open.PATH.wit
c6a0 68 0a 74 68 65 20 60 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 27 20 73 79 6e 74 61 78 20 74 h.the.`emacs-lisp-mode'.syntax.t
c6c0 61 62 6c 65 20 61 63 74 69 76 65 20 62 75 74 20 73 6b 69 70 20 61 6e 79 20 68 6f 6f 6b 73 2e 22 able.active.but.skip.any.hooks."
c6e0 0a 20 20 28 6c 65 74 20 28 28 69 6e 69 74 69 61 6c 2d 62 75 66 66 65 72 73 20 28 62 75 66 66 65 ...(let.((initial-buffers.(buffe
c700 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 20 6e 69 6c 29 0a 20 20 20 20 20 r-list)).........(buf.nil)......
c720 20 20 20 28 6f 70 65 6e 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 6b 69 70 20 ...(opened.nil).........;;.Skip.
c740 72 75 6e 6e 69 6e 67 20 68 6f 6f 6b 73 20 74 68 61 74 20 6d 61 79 20 70 72 6f 6d 70 74 20 74 68 running.hooks.that.may.prompt.th
c760 65 20 75 73 65 72 2e 0a 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 e.user..........(find-file-hook.
c780 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 65 6e 64 20 75 70 20 6f 70 65 nil).........;;.If.we.end.up.ope
c7a0 6e 69 6e 67 20 61 20 62 75 66 66 65 72 2c 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 77 69 74 68 ning.a.buffer,.don't.bother.with
c7c0 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 76 61 72 69 61 62 6c 65 73 2e 20 49 74 20 70 .file.........;;.variables..It.p
c7e0 72 6f 6d 70 74 73 20 74 68 65 20 75 73 65 72 2c 20 61 6e 64 20 77 65 20 64 69 73 63 61 72 64 20 rompts.the.user,.and.we.discard.
c800 74 68 65 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 77 61 72 64 73 the.buffer.........;;.afterwards
c820 20 61 6e 79 77 61 79 2e 0a 20 20 20 20 20 20 20 20 28 65 6e 61 62 6c 65 2d 6c 6f 63 61 6c 2d 76 .anyway..........(enable-local-v
c840 61 72 69 61 62 6c 65 73 20 6e 69 6c 29 29 0a 20 20 20 20 3b 3b 20 4f 70 65 6e 69 6e 67 20 6c 61 ariables.nil)).....;;.Opening.la
c860 72 67 65 20 2e 63 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20 73 6c 6f 77 20 28 65 2e 67 2e 20 77 rge..c.files.can.be.slow.(e.g..w
c880 68 65 6e 20 6c 6f 6f 6b 69 6e 67 20 61 74 0a 20 20 20 20 3b 3b 20 60 64 65 66 61 6c 69 61 73 27 hen.looking.at.....;;.`defalias'
c8a0 29 2c 20 65 73 70 65 63 69 61 6c 6c 79 20 69 66 20 74 68 65 20 75 73 65 72 20 68 61 73 20 63 6f ),.especially.if.the.user.has.co
c8c0 6e 66 69 67 75 72 65 64 20 6d 6f 64 65 20 68 6f 6f 6b 73 2e 0a 20 20 20 20 3b 3b 0a 20 20 20 20 nfigured.mode.hooks......;;.....
c8e0 3b 3b 20 42 69 6e 64 20 60 61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 27 20 74 6f 20 6e 69 6c ;;.Bind.`auto-mode-alist'.to.nil
c900 2c 20 73 6f 20 77 65 20 6f 70 65 6e 20 74 68 65 20 62 75 66 66 65 72 20 69 6e 0a 20 20 20 20 3b ,.so.we.open.the.buffer.in.....;
c920 3b 20 60 66 75 6e 64 61 6d 65 6e 74 61 6c 2d 6d 6f 64 65 27 20 69 66 20 69 74 20 69 73 6e 27 74 ;.`fundamental-mode'.if.it.isn't
c940 20 61 6c 72 65 61 64 79 20 6f 70 65 6e 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 61 75 74 6f 2d 6d .already.open......(let.((auto-m
c960 6f 64 65 2d 61 6c 69 73 74 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 ode-alist.nil)).......(setq.buf.
c980 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 70 61 74 68 29 29 29 0a 0a 20 20 20 (find-file-noselect.path))).....
c9a0 20 28 75 6e 6c 65 73 73 20 28 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 69 6e 69 74 69 61 6c 2d 62 75 .(unless.(-contains-p.initial-bu
c9c0 66 66 65 72 73 20 62 75 66 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 65 6e 65 64 20 74 29 ffers.buf).......(setq.opened.t)
c9e0 0a 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 65 6d 61 63 ........(let.((syntax-table.emac
ca00 73 2d 6c 69 73 70 2d 6d 6f 64 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 s-lisp-mode-syntax-table))......
ca20 20 20 20 28 77 68 65 6e 20 28 73 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 2e 63 22 20 70 61 74 ...(when.(s-ends-with-p.".c".pat
ca40 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 h)...........(setq.syntax-table.
ca60 28 6d 61 6b 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 (make-syntax-table))...........(
ca80 63 2d 70 6f 70 75 6c 61 74 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 73 79 6e 74 61 78 2d 74 c-populate-syntax-table.syntax-t
caa0 61 62 6c 65 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 69 74 27 73 20 61 20 66 72 65 able))..........;;.If.it's.a.fre
cac0 73 68 6c 79 20 6f 70 65 6e 65 64 20 62 75 66 66 65 72 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 73 shly.opened.buffer,.we.need.to.s
cae0 65 74 20 74 68 65 20 73 79 6e 74 61 78 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 61 62 6c 65 20 73 et.the.syntax.........;;.table.s
cb00 6f 20 77 65 20 63 61 6e 20 73 65 61 72 63 68 20 63 6f 72 72 65 63 74 6c 79 2e 0a 20 20 20 20 20 o.we.can.search.correctly.......
cb20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 ...(with-current-buffer.buf.....
cb40 20 20 20 20 20 20 28 73 65 74 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 73 79 6e 74 61 78 2d 74 ......(set-syntax-table.syntax-t
cb60 61 62 6c 65 29 29 29 29 0a 0a 20 20 20 20 28 6c 69 73 74 20 62 75 66 20 6f 70 65 6e 65 64 29 29 able))))......(list.buf.opened))
cb80 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 65 66 69 6e 69 74 69 6f 6e 20 28 73 )..(defun.helpful--definition.(s
cba0 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 ym.callable-p)..."Return.a.list.
cbc0 28 42 55 46 20 50 4f 53 20 4f 50 45 4e 45 44 29 20 77 68 65 72 65 20 53 59 4d 20 69 73 20 64 65 (BUF.POS.OPENED).where.SYM.is.de
cbe0 66 69 6e 65 64 2e 0a 0a 42 55 46 20 69 73 20 74 68 65 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 fined...BUF.is.the.buffer.contai
cc00 6e 69 6e 67 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 2e 20 49 66 20 74 68 65 20 75 73 65 72 ning.the.definition..If.the.user
cc20 20 77 61 73 6e 27 74 0a 61 6c 72 65 61 64 79 20 76 69 73 69 74 69 6e 67 20 74 68 69 73 20 62 75 .wasn't.already.visiting.this.bu
cc40 66 66 65 72 2c 20 4f 50 45 4e 45 44 20 69 73 20 74 20 61 6e 64 20 63 61 6c 6c 65 72 73 20 73 68 ffer,.OPENED.is.t.and.callers.sh
cc60 6f 75 6c 64 20 6b 69 6c 6c 0a 74 68 65 20 62 75 66 66 65 72 20 77 68 65 6e 20 64 6f 6e 65 2e 0a ould.kill.the.buffer.when.done..
cc80 0a 50 4f 53 20 69 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 74 61 72 .POS.is.the.position.of.the.star
cca0 74 20 6f 66 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 74 68 69 6e 20 74 68 65 0a 62 t.of.the.definition.within.the.b
ccc0 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 69 6d 69 74 69 76 65 2d 70 20 28 68 65 uffer."...(let.((primitive-p.(he
cce0 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d lpful--primitive-p.sym.callable-
cd00 70 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 62 72 61 72 79 2d 6e 61 6d 65 20 6e 69 6c 29 0a 20 p)).........(library-name.nil)..
cd20 20 20 20 20 20 20 20 28 73 72 63 2d 70 61 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 62 .......(src-path.nil).........(b
cd40 75 66 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 70 6f 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 uf.nil).........(pos.nil).......
cd60 20 20 28 6f 70 65 6e 65 64 20 6e 69 6c 29 29 0a 20 20 20 20 3b 3b 20 57 65 20 73 68 6f 75 6c 64 ..(opened.nil)).....;;.We.should
cd80 6e 27 74 20 62 65 20 63 61 6c 6c 65 64 20 6f 6e 20 70 72 69 6d 69 74 69 76 65 20 66 75 6e 63 74 n't.be.called.on.primitive.funct
cda0 69 6f 6e 73 20 69 66 20 77 65 20 64 6f 6e 27 74 20 68 61 76 65 0a 20 20 20 20 3b 3b 20 61 20 64 ions.if.we.don't.have.....;;.a.d
cdc0 69 72 65 63 74 6f 72 79 20 6f 66 20 45 6d 61 63 73 20 43 20 73 6f 75 72 63 65 63 6f 64 65 2e 0a irectory.of.Emacs.C.sourcecode..
cde0 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 0a 20 20 20 20 20 28 6f 72 20 66 69 6e 64 2d 66 75 6e ....(cl-assert......(or.find-fun
ce00 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 ction-C-source-directory........
ce20 20 20 28 6e 6f 74 20 70 72 69 6d 69 74 69 76 65 2d 70 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e ..(not.primitive-p)))......(when
ce40 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c .(symbolp.sym).......(if.callabl
ce60 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 e-p...........(setq.library-name
ce80 20 28 63 64 72 20 28 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 6c 69 62 72 61 72 79 20 73 79 6d .(cdr.(find-function-library.sym
cea0 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 42 61 73 65 64 20 6f 6e 20 60 66 69 6e 64 2d 76 61 ))).........;;.Based.on.`find-va
cec0 72 69 61 62 6c 65 2d 6e 6f 73 65 6c 65 63 74 27 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 riable-noselect'..........(setq.
cee0 6c 69 62 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 library-name...............(or..
cf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 66 69 6c 65 20 73 79 6d 20 27 ..............(symbol-file.sym.'
cf20 64 65 66 76 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 2d 43 2d 66 defvar)................(help-C-f
cf40 69 6c 65 2d 6e 61 6d 65 20 73 79 6d 20 27 76 61 72 29 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 ile-name.sym.'var)))))......(whe
cf60 6e 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 72 63 2d 70 n.library-name.......(setq.src-p
cf80 61 74 68 20 28 68 65 6c 70 66 75 6c 2d 2d 6c 69 62 72 61 72 79 2d 70 61 74 68 20 6c 69 62 72 61 ath.(helpful--library-path.libra
cfa0 72 79 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 61 6e 64 ry-name)))......(cond......((and
cfc0 20 28 6e 6f 74 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 29 20 28 66 75 6e 63 74 69 6f 6e 70 20 .(not.(symbolp.sym)).(functionp.
cfe0 73 79 6d 29 29 0a 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 29 29 0a sym)).......(list.nil.nil.nil)).
d000 20 20 20 20 20 28 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 6c 69 62 72 61 72 79 2d 6e 61 .....((and.callable-p.library-na
d020 6d 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 73 72 63 2d 70 61 74 68 0a 20 20 20 20 20 20 20 me).......(when.src-path........
d040 20 28 2d 6c 65 74 20 5b 28 73 72 63 2d 62 75 66 20 73 72 63 2d 6f 70 65 6e 65 64 29 20 28 68 65 .(-let.[(src-buf.src-opened).(he
d060 6c 70 66 75 6c 2d 2d 6f 70 65 6e 2d 69 66 2d 6e 65 65 64 65 64 20 73 72 63 2d 70 61 74 68 29 5d lpful--open-if-needed.src-path)]
d080 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 73 72 63 2d 62 75 66 29 0a 20 20 ...........(setq.buf.src-buf)...
d0a0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 65 6e 65 64 20 73 72 63 2d 6f 70 65 6e 65 64 29 ........(setq.opened.src-opened)
d0c0 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 42 61 73 65 64 20 6f 6e 20 60 66 69 6e 64 2d 66 75 6e )..........;;.Based.on.`find-fun
d0e0 63 74 69 6f 6e 2d 6e 6f 73 65 6c 65 63 74 27 2e 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 ction-noselect'..........(with-c
d100 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 urrent-buffer.buf...........;;.`
d120 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 73 65 61 72 63 68 2d 66 6f 72 2d 73 79 6d 62 6f 6c 27 find-function-search-for-symbol'
d140 20 6d 6f 76 65 73 20 70 6f 69 6e 74 2e 20 50 72 65 76 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 .moves.point..Prevent...........
d160 3b 3b 20 74 68 61 74 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 ;;.that............(save-excursi
d180 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 61 72 72 6f 77 69 6e 67 20 68 61 73 20 on.............;;.Narrowing.has.
d1a0 62 65 65 6e 20 66 69 78 65 64 20 75 70 73 74 72 65 61 6d 3a 0a 20 20 20 20 20 20 20 20 20 20 20 been.fixed.upstream:............
d1c0 20 3b 3b 20 68 74 74 70 3a 2f 2f 67 69 74 2e 73 61 76 61 6e 6e 61 68 2e 67 6e 75 2e 6f 72 67 2f .;;.http://git.savannah.gnu.org/
d1e0 63 67 69 74 2f 65 6d 61 63 73 2e 67 69 74 2f 63 6f 6d 6d 69 74 2f 3f 69 64 3d 61 62 64 31 38 32 cgit/emacs.git/commit/?id=abd182
d200 35 34 61 65 63 37 36 62 32 36 65 38 36 61 65 32 37 65 39 31 64 32 63 39 31 36 65 63 32 30 63 63 54aec76b26e86ae27e91d2c916ec20cc
d220 34 36 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 46.............(save-restriction
d240 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 20 ...............(widen)..........
d260 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(setq.pos..................
d280 20 20 20 28 63 64 72 20 28 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 73 65 61 72 63 68 2d 66 6f ...(cdr.(find-function-search-fo
d2a0 72 2d 73 79 6d 62 6f 6c 20 73 79 6d 20 6e 69 6c 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 29 29 r-symbol.sym.nil.library-name)))
d2c0 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 66 6f 75 6e 64 20 74 68 65 20 63 ))).........;;.If.we.found.the.c
d2e0 6f 6e 74 61 69 6e 69 6e 67 20 62 75 66 66 65 72 2c 20 62 75 74 20 6e 6f 74 20 74 68 65 20 73 79 ontaining.buffer,.but.not.the.sy
d300 6d 62 6f 6c 2c 20 61 74 74 65 6d 70 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 66 69 6e 64 mbol,.attempt.........;;.to.find
d320 20 69 74 20 62 79 20 6d 61 63 72 6f 65 78 70 61 6e 64 69 6e 67 20 69 6e 74 65 72 65 73 74 69 6e .it.by.macroexpanding.interestin
d340 67 20 66 6f 72 6d 73 2e 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 62 75 66 20 g.forms..........(when.(and.buf.
d360 28 6e 6f 74 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 (not.pos))...........(setq.pos.(
d380 68 65 6c 70 66 75 6c 2d 2d 66 69 6e 64 2d 62 79 2d 6d 61 63 72 6f 65 78 70 61 6e 64 69 6e 67 20 helpful--find-by-macroexpanding.
d3a0 62 75 66 20 73 79 6d 20 74 29 29 29 29 29 0a 20 20 20 20 20 3b 3b 20 41 20 66 75 6e 63 74 69 6f buf.sym.t)))))......;;.A.functio
d3c0 6e 2c 20 62 75 74 20 6e 6f 20 66 69 6c 65 20 66 6f 75 6e 64 2e 0a 20 20 20 20 20 28 63 61 6c 6c n,.but.no.file.found.......(call
d3e0 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 3b 3b 20 46 75 6e 63 74 69 6f 6e 73 20 64 65 66 69 6e 65 able-p.......;;.Functions.define
d400 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 6d 61 79 20 68 61 76 65 20 61 6e 20 65 64 65 62 d.interactively.may.have.an.edeb
d420 75 67 20 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 20 3b 3b 20 74 68 61 74 20 63 6f 6e 74 61 69 ug.property.......;;.that.contai
d440 6e 73 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f ns.the.location.of.the.definitio
d460 6e 2e 0a 20 20 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 65 64 65 62 75 67 2d 69 6e 66 6f n........(-when-let.(edebug-info
d480 20 28 67 65 74 20 73 79 6d 20 27 65 64 65 62 75 67 29 29 0a 20 20 20 20 20 20 20 20 28 2d 6c 65 .(get.sym.'edebug)).........(-le
d4a0 74 20 5b 6d 61 72 6b 65 72 20 28 69 66 20 28 63 6f 6e 73 70 20 65 64 65 62 75 67 2d 69 6e 66 6f t.[marker.(if.(consp.edebug-info
d4c0 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 28 63 61 72 )...........................(car
d4e0 20 65 64 65 62 75 67 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .edebug-info)...................
d500 20 20 20 20 20 20 65 64 65 62 75 67 2d 69 6e 66 6f 29 5d 0a 20 20 20 20 20 20 20 20 20 20 28 73 ......edebug-info)]...........(s
d520 65 74 71 20 62 75 66 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 6d 61 72 6b 65 72 29 29 0a etq.buf.(marker-buffer.marker)).
d540 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 ..........(setq.pos.(marker-posi
d560 74 69 6f 6e 20 6d 61 72 6b 65 72 29 29 29 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 6e 6f 74 tion.marker)))))......((and.(not
d580 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 73 72 63 2d 70 61 74 68 29 0a 20 20 20 20 20 20 28 2d 6c .callable-p).src-path).......(-l
d5a0 65 74 20 5b 28 73 72 63 2d 62 75 66 20 73 72 63 2d 6f 70 65 6e 65 64 29 20 28 68 65 6c 70 66 75 et.[(src-buf.src-opened).(helpfu
d5c0 6c 2d 2d 6f 70 65 6e 2d 69 66 2d 6e 65 65 64 65 64 20 73 72 63 2d 70 61 74 68 29 5d 0a 20 20 20 l--open-if-needed.src-path)]....
d5e0 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 73 72 63 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 .....(setq.buf.src-buf).........
d600 28 73 65 74 71 20 6f 70 65 6e 65 64 20 73 72 63 2d 6f 70 65 6e 65 64 29 0a 0a 20 20 20 20 20 20 (setq.opened.src-opened)........
d620 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 ..(with-current-buffer.buf......
d640 20 20 20 20 20 3b 3b 20 60 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 73 65 61 72 63 68 2d 66 6f .....;;.`find-function-search-fo
d660 72 2d 73 79 6d 62 6f 6c 27 20 6d 6f 76 65 73 20 70 6f 69 6e 74 2e 20 50 72 65 76 65 6e 74 0a 20 r-symbol'.moves.point..Prevent..
d680 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 61 74 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 .........;;.that............(sav
d6a0 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 63 6f 6e 64 69 74 69 e-excursion.............(conditi
d6c0 6f 6e 2d 63 61 73 65 20 5f 65 72 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 on-case._err.................(se
d6e0 74 71 20 70 6f 73 20 28 63 64 72 20 28 66 69 6e 64 2d 76 61 72 69 61 62 6c 65 2d 6e 6f 73 65 6c tq.pos.(cdr.(find-variable-nosel
d700 65 63 74 20 73 79 6d 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 ect.sym.library-name))).........
d720 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 61 69 6c 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 ......(search-failed.nil).......
d740 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 45 6d 61 63 73 ........;;.If.your.current.Emacs
d760 20 69 6e 73 74 61 6e 63 65 20 64 6f 65 73 6e 27 74 20 6d 61 74 63 68 20 74 68 65 20 73 6f 75 72 .instance.doesn't.match.the.sour
d780 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 64 65 20 63 6f 6e 66 69 67 75 ce...............;;.code.configu
d7a0 72 65 64 20 69 6e 20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 red.in.find-function-C-source-di
d7c0 72 65 63 74 6f 72 79 2c 20 77 65 20 63 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b rectory,.we.can...............;;
d7e0 20 67 65 74 20 61 6e 20 65 72 72 6f 72 20 61 62 6f 75 74 20 6e 6f 74 20 66 69 6e 64 69 6e 67 20 .get.an.error.about.not.finding.
d800 73 6f 75 72 63 65 2e 20 54 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 64 65 source..Try...............;;.`de
d820 66 61 75 6c 74 2d 74 61 62 2d 77 69 64 74 68 27 20 61 67 61 69 6e 73 74 20 45 6d 61 63 73 20 74 fault-tab-width'.against.Emacs.t
d840 72 75 6e 6b 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 runk................(error.nil))
d860 29 29 29 29 29 0a 0a 20 20 20 20 28 6c 69 73 74 20 62 75 66 20 70 6f 73 20 6f 70 65 6e 65 64 29 )))))......(list.buf.pos.opened)
d880 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 72 65 66 65 72 65 6e 63 65 2d 70 6f ))..(defun.helpful--reference-po
d8a0 73 69 74 69 6f 6e 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 29 0a 20 20 22 sitions.(sym.callable-p.buf)..."
d8c0 52 65 74 75 72 6e 20 61 6c 6c 20 74 68 65 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 73 20 Return.all.the.buffer.positions.
d8e0 6f 66 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 53 59 4d 20 69 6e 20 42 55 46 2e 22 0a 20 20 of.references.to.SYM.in.BUF."...
d900 28 2d 6c 65 74 2a 20 28 28 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 73 0a 20 20 20 20 20 20 20 20 (-let*.((forms-and-bufs.........
d920 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 2d 73 65 61 72 63 68 2d 31 0a 20 20 20 20 20 20 20 ...(elisp-refs--search-1........
d940 20 20 20 20 20 28 6c 69 73 74 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d .....(list.buf).............(lam
d960 62 64 61 20 28 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6c 69 73 70 2d 72 bda.(buf)...............(elisp-r
d980 65 66 73 2d 2d 72 65 61 64 2d 61 6e 64 2d 66 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 efs--read-and-find..............
d9a0 20 20 62 75 66 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 61 6c ..buf.sym................(if.cal
d9c0 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6c 69 lable-p....................#'eli
d9e0 73 70 2d 72 65 66 73 2d 2d 66 75 6e 63 74 69 6f 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 sp-refs--function-p.............
da00 20 20 20 20 20 23 27 65 6c 69 73 70 2d 72 65 66 73 2d 2d 76 61 72 69 61 62 6c 65 2d 70 29 29 29 .....#'elisp-refs--variable-p)))
da20 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 69 6e 63 65 20 77 65 20 6f 6e 6c 79 20 73 65 ))...........;;.Since.we.only.se
da40 61 72 63 68 65 64 20 6f 6e 65 20 62 75 66 66 65 72 2c 20 77 65 20 6b 6e 6f 77 20 74 68 61 74 0a arched.one.buffer,.we.know.that.
da60 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 73 20 68 61 73 20 ..........;;.forms-and-bufs.has.
da80 6f 6e 6c 79 20 6f 6e 65 20 69 74 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 73 2d only.one.item............(forms-
daa0 61 6e 64 2d 62 75 66 20 28 2d 66 69 72 73 74 2d 69 74 65 6d 20 66 6f 72 6d 73 2d 61 6e 64 2d 62 and-buf.(-first-item.forms-and-b
dac0 75 66 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 66 6f 72 6d 73 20 2e 20 5f 62 75 66 29 20 ufs))...........((forms..._buf).
dae0 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 29 29 0a 20 20 20 20 28 2d 6d 61 70 0a 20 20 20 20 20 28 forms-and-buf)).....(-map......(
db00 2d 6c 61 6d 62 64 61 20 28 28 5f 63 6f 64 65 20 73 74 61 72 74 2d 70 6f 73 20 5f 65 6e 64 2d 70 -lambda.((_code.start-pos._end-p
db20 6f 73 29 29 20 73 74 61 72 74 2d 70 6f 73 29 0a 20 20 20 20 20 66 6f 72 6d 73 29 29 29 0a 0a 28 os)).start-pos)......forms)))..(
db40 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 6c 6c 2d 6b 65 79 6d 61 70 2d 73 79 6d 73 20 28 defun.helpful--all-keymap-syms.(
db60 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 6b 65 79 6d 61 70 73 20 64 65 66 69 6e 65 64 20 )..."Return.all.keymaps.defined.
db80 69 6e 20 74 68 69 73 20 45 6d 61 63 73 20 69 6e 73 74 61 6e 63 65 2e 22 0a 20 20 28 6c 65 74 20 in.this.Emacs.instance."...(let.
dba0 28 6b 65 79 6d 61 70 73 29 0a 20 20 20 20 28 6d 61 70 61 74 6f 6d 73 0a 20 20 20 20 20 28 6c 61 (keymaps).....(mapatoms......(la
dbc0 6d 62 64 61 20 28 73 79 6d 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 62 6f mbda.(sym)........(when.(and.(bo
dbe0 75 6e 64 70 20 73 79 6d 29 20 28 6b 65 79 6d 61 70 70 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 undp.sym).(keymapp.(symbol-value
dc00 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 73 79 6d 20 6b 65 79 6d 61 .sym)))..........(push.sym.keyma
dc20 70 73 29 29 29 29 0a 20 20 20 20 6b 65 79 6d 61 70 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c ps)))).....keymaps))..(defun.hel
dc40 70 66 75 6c 2d 2d 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d pful--key-sequences.(command-sym
dc60 20 6b 65 79 6d 61 70 20 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 29 0a 20 20 22 52 65 74 75 .keymap.global-keycodes)..."Retu
dc80 72 6e 20 61 6c 6c 20 74 68 65 20 6b 65 79 20 73 65 71 75 65 6e 63 65 73 20 6f 66 20 43 4f 4d 4d rn.all.the.key.sequences.of.COMM
dca0 41 4e 44 2d 53 59 4d 20 69 6e 20 4b 45 59 4d 41 50 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 AND-SYM.in.KEYMAP."...(let*.((ke
dcc0 79 63 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 75 70 20 74 68 69 73 ycodes...........;;.Look.up.this
dce0 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 6b 65 79 6d 61 70 2c 20 69 74 73 20 70 61 72 65 .command.in.the.keymap,.its.pare
dd00 6e 74 20 61 6e 64 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 6c 6f 62 61 6c 20 6d nt.and.the...........;;.global.m
dd20 61 70 2e 20 57 65 20 6e 65 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 20 67 6c 6f 62 61 ap..We.need.to.include.the.globa
dd40 6c 20 6d 61 70 20 74 6f 20 66 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 61 70 l.map.to.find...........;;.remap
dd60 70 65 64 20 63 6f 6d 6d 61 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 72 65 2d 69 ped.commands............(where-i
dd80 73 2d 69 6e 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 6d 61 70 20 6e 69 s-internal.command-sym.keymap.ni
dda0 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 75 70 20 74 68 69 73 20 63 l.t))..........;;.Look.up.this.c
ddc0 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 70 61 72 65 6e 74 20 6b 65 79 6d 61 70 2e 0a 20 20 20 ommand.in.the.parent.keymap.....
dde0 20 20 20 20 20 20 28 70 61 72 65 6e 74 2d 6b 65 79 6d 61 70 20 28 6b 65 79 6d 61 70 2d 70 61 72 ......(parent-keymap.(keymap-par
de00 65 6e 74 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 2d 6b 65 ent.keymap))..........(parent-ke
de20 79 63 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 6e 74 2d 6b 65 ycodes...........(when.parent-ke
de40 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 72 65 2d 69 73 2d 69 6e 74 65 72 ymap.............(where-is-inter
de60 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 28 6c 69 nal..............command-sym.(li
de80 73 74 20 70 61 72 65 6e 74 2d 6b 65 79 6d 61 70 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 st.parent-keymap).nil.t)))......
dea0 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 75 70 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 ....;;.Look.up.this.command.in.t
dec0 68 65 20 67 6c 6f 62 61 6c 20 6d 61 70 2e 0a 20 20 20 20 20 20 20 20 20 28 67 6c 6f 62 61 6c 2d he.global.map...........(global-
dee0 6b 65 79 63 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 6b keycodes...........(unless.(eq.k
df00 65 79 6d 61 70 20 67 6c 6f 62 61 6c 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6c eymap.global-map).............gl
df20 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 29 29 29 0a 20 20 20 20 28 2d 3e 3e 20 6b 65 79 63 6f 64 obal-keycodes))).....(->>.keycod
df40 65 73 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 67 6e 6f 72 65 20 6b 65 79 62 69 6e 64 69 6e 67 es..........;;.Ignore.keybinding
df60 73 20 66 72 6f 6d 20 74 68 65 20 70 61 72 65 6e 74 20 6f 72 20 67 6c 6f 62 61 6c 20 6d 61 70 2e s.from.the.parent.or.global.map.
df80 0a 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 6d 6f 76 65 20 28 6f 72 20 28 2d 63 6f 6e 74 61 69 ..........(--remove.(or.(-contai
dfa0 6e 73 2d 70 20 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 20 69 74 29 0a 20 20 20 20 20 20 20 ns-p.global-keycodes.it)........
dfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 70 61 72 ................(-contains-p.par
dfe0 65 6e 74 2d 6b 65 79 63 6f 64 65 73 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 43 ent-keycodes.it)))..........;;.C
e000 6f 6e 76 65 72 74 20 72 61 77 20 6b 65 79 63 6f 64 65 20 76 65 63 74 6f 72 73 20 69 6e 74 6f 20 onvert.raw.keycode.vectors.into.
e020 68 75 6d 61 6e 2d 72 65 61 64 61 62 6c 65 20 73 74 72 69 6e 67 73 2e 0a 20 20 20 20 20 20 20 20 human-readable.strings..........
e040 20 28 2d 6d 61 70 20 23 27 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 29 29 29 29 0a 0a 28 64 .(-map.#'key-description))))..(d
e060 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 efun.helpful--keymaps-containing
e080 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 .(command-sym)..."Return.a.list.
e0a0 6f 66 20 70 61 69 72 73 20 6c 69 73 74 69 6e 67 20 6b 65 79 6d 61 70 20 6e 61 6d 65 73 20 74 68 of.pairs.listing.keymap.names.th
e0c0 61 74 20 63 6f 6e 74 61 69 6e 20 43 4f 4d 4d 41 4e 44 2d 53 59 4d 2c 0a 61 6c 6f 6e 67 20 77 69 at.contain.COMMAND-SYM,.along.wi
e0e0 74 68 20 74 68 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 69 6e 20 65 61 63 68 20 6b 65 79 6d 61 th.the.keybindings.in.each.keyma
e100 70 2e 0a 0a 4b 65 79 6d 61 70 20 6e 61 6d 65 73 20 61 72 65 20 74 79 70 69 63 61 6c 6c 79 20 76 p...Keymap.names.are.typically.v
e120 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 2c 20 62 75 74 20 6d 61 79 20 61 6c 73 6f 20 62 65 0a 64 ariable.names,.but.may.also.be.d
e140 65 73 63 72 69 70 74 69 6f 6e 73 20 6f 66 20 76 61 6c 75 65 73 20 69 6e 20 60 6d 69 6e 6f 72 2d escriptions.of.values.in.`minor-
e160 6d 6f 64 65 2d 6d 61 70 2d 61 6c 69 73 74 27 2e 0a 0a 57 65 20 69 67 6e 6f 72 65 20 6b 65 79 62 mode-map-alist'...We.ignore.keyb
e180 69 6e 64 69 6e 67 73 20 74 68 61 74 20 61 72 65 20 6d 65 6e 75 20 69 74 65 6d 73 2c 20 61 6e 64 indings.that.are.menu.items,.and
e1a0 20 69 67 6e 6f 72 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 0a 66 72 6f 6d 20 70 61 72 65 6e 74 20 .ignore.keybindings.from.parent.
e1c0 6b 65 79 6d 61 70 73 2e 0a 0a 60 77 69 64 67 65 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 27 20 69 73 keymaps...`widget-global-map'.is
e1e0 20 61 6c 73 6f 20 69 67 6e 6f 72 65 64 20 61 73 20 69 74 20 67 65 6e 65 72 61 6c 6c 79 20 63 6f .also.ignored.as.it.generally.co
e200 6e 74 61 69 6e 73 20 74 68 65 0a 73 61 6d 65 20 62 69 6e 64 69 6e 67 73 20 61 73 20 60 67 6c 6f ntains.the.same.bindings.as.`glo
e220 62 61 6c 2d 6d 61 70 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 6d 61 70 2d 73 79 6d 73 bal-map'."...(let*.((keymap-syms
e240 20 28 68 65 6c 70 66 75 6c 2d 2d 61 6c 6c 2d 6b 65 79 6d 61 70 2d 73 79 6d 73 29 29 0a 20 20 20 .(helpful--all-keymap-syms))....
e260 20 20 20 20 20 20 28 6b 65 79 6d 61 70 2d 73 79 6d 2d 76 61 6c 73 20 28 2d 6d 61 70 20 23 27 73 ......(keymap-sym-vals.(-map.#'s
e280 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 6b 65 79 6d 61 70 2d 73 79 6d 73 29 29 0a 20 20 20 20 20 20 ymbol-value.keymap-syms)).......
e2a0 20 20 20 28 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 20 28 77 68 65 72 65 2d 69 73 2d 69 6e ...(global-keycodes.(where-is-in
e2c0 74 65 72 6e 61 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 ternal..........................
e2e0 20 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 28 6c 69 73 74 20 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 ..command-sym.(list.global-map).
e300 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 69 6e 67 2d 6b 65 79 6d 61 70 nil.t))..........matching-keymap
e320 73 29 0a 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 66 6f 72 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 s).....;;.Look.for.this.command.
e340 69 6e 20 61 6c 6c 20 6b 65 79 6d 61 70 73 20 62 6f 75 6e 64 20 74 6f 20 76 61 72 69 61 62 6c 65 in.all.keymaps.bound.to.variable
e360 73 2e 0a 20 20 20 20 28 2d 6d 61 70 0a 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b 65 79 s......(-map......(-lambda.((key
e380 6d 61 70 2d 73 79 6d 20 2e 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 map-sym...keymap))........(let.(
e3a0 28 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 2d 73 65 71 (key-sequences.(helpful--key-seq
e3c0 75 65 6e 63 65 73 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 6d 61 70 20 67 6c 6f 62 61 6c uences.command-sym.keymap.global
e3e0 2d 6b 65 79 63 6f 64 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 -keycodes)))..........(when.(and
e400 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 28 6e 6f 74 20 28 65 71 20 6b 65 79 6d 61 70 2d 73 .key-sequences.(not.(eq.keymap-s
e420 79 6d 20 27 77 69 64 67 65 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 ym.'widget-global-map)))........
e440 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 ....(push.(cons.(symbol-name.key
e460 6d 61 70 2d 73 79 6d 29 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 20 map-sym).key-sequences).........
e480 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 69 6e 67 2d 6b 65 79 6d 61 70 73 29 29 29 29 0a 20 20 .........matching-keymaps))))...
e4a0 20 20 20 28 2d 7a 69 70 2d 70 61 69 72 20 6b 65 79 6d 61 70 2d 73 79 6d 73 20 6b 65 79 6d 61 70 ...(-zip-pair.keymap-syms.keymap
e4c0 2d 73 79 6d 2d 76 61 6c 73 29 29 0a 0a 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 66 6f 72 20 74 68 69 -sym-vals))......;;.Look.for.thi
e4e0 73 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 6b 65 79 6d 61 70 73 20 75 73 65 64 20 62 79 20 6d 69 6e s.command.in.keymaps.used.by.min
e500 6f 72 20 6d 6f 64 65 73 20 74 68 61 74 0a 20 20 20 20 3b 3b 20 61 72 65 6e 27 74 20 62 6f 75 6e or.modes.that.....;;.aren't.boun
e520 64 20 74 6f 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 28 2d 6d 61 70 0a 20 20 20 20 20 28 d.to.variables......(-map......(
e540 2d 6c 61 6d 62 64 61 20 28 28 6d 69 6e 6f 72 2d 6d 6f 64 65 20 2e 20 6b 65 79 6d 61 70 29 29 0a -lambda.((minor-mode...keymap)).
e560 20 20 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 20 6b 65 79 .......;;.Only.consider.this.key
e580 6d 61 70 20 69 66 20 77 65 20 64 69 64 6e 27 74 20 66 69 6e 64 20 69 74 20 62 6f 75 6e 64 20 74 map.if.we.didn't.find.it.bound.t
e5a0 6f 20 61 20 76 61 72 69 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 o.a.variable.........(when.(and.
e5c0 28 6b 65 79 6d 61 70 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (keymapp.keymap)................
e5e0 20 20 20 28 6e 6f 74 20 28 6d 65 6d 71 20 6b 65 79 6d 61 70 20 6b 65 79 6d 61 70 2d 73 79 6d 2d ...(not.(memq.keymap.keymap-sym-
e600 76 61 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 2d 73 65 71 75 vals)))..........(let.((key-sequ
e620 65 6e 63 65 73 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 63 6f ences.(helpful--key-sequences.co
e640 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 6d 61 70 20 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 mmand-sym.keymap.global-keycodes
e660 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6b 65 79 2d 73 65 71 75 65 6e 63 )))............(when.key-sequenc
e680 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 66 6f 72 es..............(push.(cons.(for
e6a0 6d 61 74 20 22 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 6d 61 70 2d 61 6c 69 73 74 20 28 25 73 29 22 20 mat."minor-mode-map-alist.(%s)".
e6c0 6d 69 6e 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 20 20 20 20 minor-mode).....................
e6e0 20 20 20 20 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....key-sequences).............
e700 20 20 20 20 20 20 20 6d 61 74 63 68 69 6e 67 2d 6b 65 79 6d 61 70 73 29 29 29 29 29 0a 20 20 20 .......matching-keymaps)))))....
e720 20 20 3b 3b 20 54 4f 44 4f 3a 20 65 78 61 6d 69 6e 65 20 60 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 6f ..;;.TODO:.examine.`minor-mode-o
e740 76 65 72 72 69 64 69 6e 67 2d 6d 61 70 2d 61 6c 69 73 74 27 20 74 6f 6f 2e 0a 20 20 20 20 20 6d verriding-map-alist'.too.......m
e760 69 6e 6f 72 2d 6d 6f 64 65 2d 6d 61 70 2d 61 6c 69 73 74 29 0a 0a 20 20 20 20 6d 61 74 63 68 69 inor-mode-map-alist)......matchi
e780 6e 67 2d 6b 65 79 6d 61 70 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 65 ng-keymaps))..(defun.helpful--me
e7a0 72 67 65 2d 61 6c 69 73 74 73 20 28 6c 31 20 6c 32 29 0a 20 20 22 47 69 76 65 6e 20 74 77 6f 20 rge-alists.(l1.l2)..."Given.two.
e7c0 61 6c 69 73 74 73 20 6d 61 70 70 69 6e 67 20 73 79 6d 62 6f 6c 73 20 74 6f 20 6c 69 73 74 73 2c alists.mapping.symbols.to.lists,
e7e0 20 72 65 74 75 72 6e 20 61 20 73 69 6e 67 6c 65 0a 61 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 .return.a.single.alist.with.the.
e800 6c 69 73 74 73 20 63 6f 6e 63 61 74 65 6e 61 74 65 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c lists.concatenated."...(let*.((l
e820 31 2d 6b 65 79 73 20 28 2d 6d 61 70 20 23 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 6c 31 29 29 0a 1-keys.(-map.#'-first-item.l1)).
e840 20 20 20 20 20 20 20 20 20 28 6c 32 2d 6b 65 79 73 20 28 2d 6d 61 70 20 23 27 2d 66 69 72 73 74 .........(l2-keys.(-map.#'-first
e860 2d 69 74 65 6d 20 6c 32 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 32 2d 65 78 74 72 61 2d 6b 65 -item.l2))..........(l2-extra-ke
e880 79 73 20 28 2d 64 69 66 66 65 72 65 6e 63 65 20 6c 32 2d 6b 65 79 73 20 6c 31 2d 6b 65 79 73 29 ys.(-difference.l2-keys.l1-keys)
e8a0 29 0a 20 20 20 20 20 20 20 20 20 28 6c 32 2d 65 78 74 72 61 2d 76 61 6c 75 65 73 0a 20 20 20 20 )..........(l2-extra-values.....
e8c0 20 20 20 20 20 20 28 2d 2d 6d 61 70 20 28 61 73 73 6f 63 20 69 74 20 6c 32 29 20 6c 32 2d 65 78 ......(--map.(assoc.it.l2).l2-ex
e8e0 74 72 61 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 31 2d 77 69 74 68 2d 76 61 6c tra-keys))..........(l1-with-val
e900 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b ues...........(-map.(-lambda.((k
e920 65 79 20 2e 20 76 61 6c 75 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ey...values))...................
e940 28 63 6f 6e 73 20 6b 65 79 20 28 61 70 70 65 6e 64 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 (cons.key.(append.values........
e960 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 28 63 64 .............................(cd
e980 72 20 28 61 73 73 6f 63 20 6b 65 79 20 6c 32 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 r.(assoc.key.l2)))))............
e9a0 20 20 20 20 20 6c 31 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 20 6c 31 2d 77 69 74 68 2d 76 .....l1))).....(append.l1-with-v
e9c0 61 6c 75 65 73 20 6c 32 2d 65 78 74 72 61 2d 76 61 6c 75 65 73 29 29 29 0a 0a 28 64 65 66 75 6e alues.l2-extra-values)))..(defun
e9e0 20 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 2d 61 6c 69 .helpful--keymaps-containing-ali
ea00 61 73 65 73 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 20 22 52 65 ases.(command-sym.aliases)..."Re
ea20 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 61 69 72 73 20 6d 61 70 70 69 6e 67 20 6b 65 79 turn.a.list.of.pairs.mapping.key
ea40 6d 61 70 20 73 79 6d 62 6f 6c 73 20 74 6f 20 74 68 65 0a 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 map.symbols.to.the.keybindings.f
ea60 6f 72 20 43 4f 4d 4d 41 4e 44 2d 53 59 4d 20 69 6e 20 65 61 63 68 20 6b 65 79 6d 61 70 2e 0a 0a or.COMMAND-SYM.in.each.keymap...
ea80 49 6e 63 6c 75 64 65 73 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 61 6c 69 61 73 65 73 Includes.keybindings.for.aliases
eaa0 2c 20 75 6e 6c 69 6b 65 0a 60 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 ,.unlike.`helpful--keymaps-conta
eac0 69 6e 69 6e 67 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 73 20 28 63 6f 6e 73 20 63 6f ining'."...(let*.((syms.(cons.co
eae0 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 mmand-sym.aliases))..........(sy
eb00 6d 73 2d 6b 65 79 6d 61 70 73 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d ms-keymaps.(-map.#'helpful--keym
eb20 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 20 73 79 6d 73 29 29 29 0a 20 20 20 20 28 2d 72 65 64 aps-containing.syms))).....(-red
eb40 75 63 65 20 23 27 68 65 6c 70 66 75 6c 2d 2d 6d 65 72 67 65 2d 61 6c 69 73 74 73 20 73 79 6d 73 uce.#'helpful--merge-alists.syms
eb60 2d 6b 65 79 6d 61 70 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 -keymaps)))..(defun.helpful--for
eb80 6d 61 74 2d 6b 65 79 73 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 mat-keys.(command-sym.aliases)..
eba0 20 22 44 65 73 63 72 69 62 65 20 61 6c 6c 20 74 68 65 20 6b 65 79 73 20 74 68 61 74 20 63 61 6c ."Describe.all.the.keys.that.cal
ebc0 6c 20 43 4f 4d 4d 41 4e 44 2d 53 59 4d 2e 22 0a 20 20 28 6c 65 74 20 28 6d 6f 64 65 2d 6c 69 6e l.COMMAND-SYM."...(let.(mode-lin
ebe0 65 73 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 73 29 0a 20 20 20 20 28 2d 2d es.........global-lines).....(--
ec00 65 61 63 68 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e each.(helpful--keymaps-containin
ec20 67 2d 61 6c 69 61 73 65 73 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 g-aliases.command-sym.aliases)..
ec40 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 6d 61 70 20 2e 20 6b 65 79 73 29 20 69 74 5d 0a 20 20 20 .....(-let.[(map...keys).it]....
ec60 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 65 79 20 6b 65 79 73 29 0a 20 20 20 20 20 20 20 20 .....(dolist.(key.keys).........
ec80 20 20 28 70 75 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 25 ..(push............(format."%s.%
eca0 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a s"....................(propertiz
ecc0 65 20 6d 61 70 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d e.map.'face.'font-lock-variable-
ece0 6e 61 6d 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 name-face)....................(i
ed00 66 20 28 3e 3d 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 38 29 0a 20 20 f.(>=.emacs-major-version.28)...
ed20 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 70 65 72 74 69 7a 65 .....................(propertize
ed40 20 6b 65 79 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 .key.'face.'help-key-binding)...
ed60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 ...................key))........
ed80 20 20 20 20 28 69 66 20 28 65 71 20 6d 61 70 20 27 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 67 6c 6f ....(if.(eq.map.'global-map).glo
eda0 62 61 6c 2d 6c 69 6e 65 73 20 6d 6f 64 65 2d 6c 69 6e 65 73 29 29 29 29 29 0a 20 20 20 20 28 73 bal-lines.mode-lines))))).....(s
edc0 65 74 71 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 73 20 28 2d 73 6f 72 74 20 23 27 73 74 72 69 6e 67 etq.global-lines.(-sort.#'string
ede0 3c 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 73 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d <.global-lines)).....(setq.mode-
ee00 6c 69 6e 65 73 20 28 2d 73 6f 72 74 20 23 27 73 74 72 69 6e 67 3c 20 6d 6f 64 65 2d 6c 69 6e 65 lines.(-sort.#'string<.mode-line
ee20 73 29 29 0a 20 20 20 20 28 2d 6c 65 74 20 5b 6c 69 6e 65 73 20 28 2d 63 6f 6e 63 61 74 20 67 6c s)).....(-let.[lines.(-concat.gl
ee40 6f 62 61 6c 2d 6c 69 6e 65 73 20 6d 6f 64 65 2d 6c 69 6e 65 73 29 5d 0a 20 20 20 20 20 20 28 69 obal-lines.mode-lines)].......(i
ee60 66 20 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 6c f.lines...........(s-join."\n".l
ee80 69 6e 65 73 29 0a 20 20 20 20 20 20 20 20 22 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e ines)........."This.command.is.n
eea0 6f 74 20 69 6e 20 61 6e 79 20 6b 65 79 6d 61 70 73 2e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 ot.in.any.keymaps."))))..(defun.
eec0 68 65 6c 70 66 75 6c 2d 2d 6f 75 74 65 72 2d 73 65 78 70 20 28 62 75 66 20 70 6f 73 29 0a 20 20 helpful--outer-sexp.(buf.pos)...
eee0 22 46 69 6e 64 20 70 6f 73 69 74 69 6f 6e 20 50 4f 53 20 69 6e 20 42 55 46 2c 20 61 6e 64 20 72 "Find.position.POS.in.BUF,.and.r
ef00 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6f 75 74 65 72 20 73 65 78 70 eturn.the.name.of.the.outer.sexp
ef20 2c 0a 61 6c 6f 6e 67 20 77 69 74 68 20 69 74 73 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 4d 6f 76 65 ,.along.with.its.position...Move
ef40 73 20 70 6f 69 6e 74 20 69 6e 20 42 55 46 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 s.point.in.BUF."...(with-current
ef60 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a -buffer.buf.....(goto-char.pos).
ef80 20 20 20 20 28 6c 65 74 2a 20 28 28 70 70 73 73 20 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 0a ....(let*.((ppss.(syntax-ppss)).
efa0 20 20 20 20 20 20 20 20 20 20 20 28 6f 75 74 65 72 2d 73 65 78 70 2d 70 6f 73 6e 73 20 28 6e 74 ...........(outer-sexp-posns.(nt
efc0 68 20 39 20 70 70 73 73 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6f 75 74 65 72 2d 73 65 h.9.ppss))).......(when.outer-se
efe0 78 70 2d 70 6f 73 6e 73 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 63 61 72 xp-posns.........(goto-char.(car
f000 20 6f 75 74 65 72 2d 73 65 78 70 2d 70 6f 73 6e 73 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 .outer-sexp-posns)))).....(list.
f020 28 70 6f 69 6e 74 29 20 28 2d 74 61 6b 65 20 32 20 28 72 65 61 64 20 62 75 66 29 29 29 29 29 0a (point).(-take.2.(read.buf))))).
f040 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 6f 75 6e 74 2d 76 61 6c 75 65 73 20 28 69 .(defun.helpful--count-values.(i
f060 74 65 6d 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 tems)..."Return.an.alist.of.the.
f080 63 6f 75 6e 74 20 6f 66 20 65 61 63 68 20 76 61 6c 75 65 20 69 6e 20 49 54 45 4d 53 2e 0a 45 2e count.of.each.value.in.ITEMS..E.
f0a0 67 2e 20 28 78 20 78 20 79 20 7a 20 79 29 20 2d 3e 20 28 28 78 20 2e 20 32 29 20 28 79 20 2e 20 g..(x.x.y.z.y).->.((x...2).(y...
f0c0 32 29 20 28 7a 20 2e 20 31 29 29 22 0a 20 20 28 6c 65 74 20 28 63 6f 75 6e 74 73 29 0a 20 20 20 2).(z...1))"...(let.(counts)....
f0e0 20 28 64 6f 6c 69 73 74 20 28 69 74 65 6d 20 69 74 65 6d 73 20 28 6e 72 65 76 65 72 73 65 20 63 .(dolist.(item.items.(nreverse.c
f100 6f 75 6e 74 73 29 29 0a 20 20 20 20 20 20 28 2d 69 66 2d 6c 65 74 20 28 69 74 65 6d 2d 61 6e 64 ounts)).......(-if-let.(item-and
f120 2d 63 6f 75 6e 74 20 28 61 73 73 6f 63 20 69 74 65 6d 20 63 6f 75 6e 74 73 29 29 0a 20 20 20 20 -count.(assoc.item.counts)).....
f140 20 20 20 20 20 20 28 73 65 74 63 64 72 20 69 74 65 6d 2d 61 6e 64 2d 63 6f 75 6e 74 20 28 31 2b ......(setcdr.item-and-count.(1+
f160 20 28 63 64 72 20 69 74 65 6d 2d 61 6e 64 2d 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 .(cdr.item-and-count))).........
f180 28 70 75 73 68 20 28 63 6f 6e 73 20 69 74 65 6d 20 31 29 20 63 6f 75 6e 74 73 29 29 29 29 29 0a (push.(cons.item.1).counts))))).
f1a0 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 77 69 74 68 6f 75 74 2d 61 64 76 69 63 65 20 .(defun.helpful--without-advice.
f1c0 28 73 79 6d 29 0a 20 20 22 47 69 76 65 6e 20 61 64 76 69 73 65 64 20 66 75 6e 63 74 69 6f 6e 20 (sym)..."Given.advised.function.
f1e0 53 59 4d 2c 20 72 65 74 75 72 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 0a SYM,.return.the.function.object.
f200 77 69 74 68 6f 75 74 20 74 68 65 20 61 64 76 69 63 65 2e 20 41 73 73 75 6d 65 73 20 66 75 6e 63 without.the.advice..Assumes.func
f220 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 6c 6f 61 64 65 64 2e 22 0a 20 20 28 61 64 76 69 63 65 tion.has.been.loaded."...(advice
f240 2d 2d 63 64 2a 72 0a 20 20 20 28 61 64 76 69 63 65 2d 2d 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 --cd*r....(advice--symbol-functi
f260 6f 6e 20 73 79 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 64 76 69 73 on.sym)))..(defun.helpful--advis
f280 65 64 2d 70 20 28 73 79 6d 29 0a 20 20 22 44 6f 65 73 20 53 59 4d 20 68 61 76 65 20 61 64 76 69 ed-p.(sym)..."Does.SYM.have.advi
f2a0 63 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 69 74 3f 22 0a 20 20 28 61 6e 64 20 28 ce.associated.with.it?"...(and.(
f2c0 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 28 61 64 76 69 63 65 2d 2d 70 20 28 symbolp.sym)........(advice--p.(
f2e0 61 64 76 69 63 65 2d 2d 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 29 0a advice--symbol-function.sym)))).
f300 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 68 65 61 64 20 28 68 65 .(defun.helpful--format-head.(he
f320 61 64 29 0a 20 20 22 47 69 76 65 6e 20 61 20 27 68 65 61 64 27 20 28 74 68 65 20 66 69 72 73 74 ad)..."Given.a.'head'.(the.first
f340 20 74 77 6f 20 73 79 6d 62 6f 6c 73 20 6f 66 20 61 20 73 65 78 70 29 20 66 6f 72 6d 61 74 20 61 .two.symbols.of.a.sexp).format.a
f360 6e 64 0a 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 20 69 74 2e 22 0a 20 20 28 2d 6c 65 74 nd.syntax.highlight.it."...(-let
f380 2a 20 28 28 28 64 65 66 20 6e 61 6d 65 29 20 68 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 *.(((def.name).head)...........(
f3a0 66 6f 72 6d 61 74 74 65 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 formatted-name............(if.(a
f3c0 6e 64 20 28 63 6f 6e 73 70 20 6e 61 6d 65 29 20 28 65 71 20 28 63 61 72 20 6e 61 6d 65 29 20 27 nd.(consp.name).(eq.(car.name).'
f3e0 71 75 6f 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 quote))................(format."
f400 27 25 53 22 20 28 63 61 64 72 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 '%S".(cadr.name))..............(
f420 66 6f 72 6d 61 74 20 22 25 53 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 format."%S".name)))...........(f
f440 6f 72 6d 61 74 74 65 64 2d 64 65 66 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 ormatted-def............(format.
f460 22 28 25 73 20 25 73 20 2e 2e 2e 29 22 20 64 65 66 20 66 6f 72 6d 61 74 74 65 64 2d 6e 61 6d 65 "(%s.%s....)".def.formatted-name
f480 29 29 0a 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6e ))...........).....(helpful--syn
f4a0 74 61 78 2d 68 69 67 68 6c 69 67 68 74 20 66 6f 72 6d 61 74 74 65 64 2d 64 65 66 29 29 29 0a 0a tax-highlight.formatted-def)))..
f4c0 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 72 65 66 65 72 65 6e 63 65 (defun.helpful--format-reference
f4e0 20 28 68 65 61 64 20 6c 6f 6e 67 65 73 74 2d 68 65 61 64 20 72 65 66 2d 63 6f 75 6e 74 20 70 6f .(head.longest-head.ref-count.po
f500 73 69 74 69 6f 6e 20 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 79 6e 74 61 78 2d sition.path)..."Return.a.syntax-
f520 68 69 67 68 6c 69 67 68 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 48 45 41 44 2c 20 77 69 74 highlighted.version.of.HEAD,.wit
f540 68 20 61 20 6c 69 6e 6b 0a 74 6f 20 69 74 73 20 73 6f 75 72 63 65 20 6c 6f 63 61 74 69 6f 6e 2e h.a.link.to.its.source.location.
f560 22 0a 20 20 28 6c 65 74 20 28 28 66 6f 72 6d 61 74 74 65 64 2d 63 6f 75 6e 74 0a 20 20 20 20 20 "...(let.((formatted-count......
f580 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 64 20 72 65 66 65 72 65 6e 63 65 25 73 22 0a 20 20 20 ....(format."%d.reference%s"....
f5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 66 2d 63 6f 75 6e 74 20 28 69 66 20 28 3e 20 72 ..............ref-count.(if.(>.r
f5c0 65 66 2d 63 6f 75 6e 74 20 31 29 20 22 73 22 20 22 22 29 29 29 29 0a 20 20 20 20 28 70 72 6f 70 ef-count.1)."s"."")))).....(prop
f5e0 65 72 74 69 7a 65 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 22 25 73 20 25 73 ertize......(format......."%s.%s
f600 22 0a 20 20 20 20 20 20 28 73 2d 70 61 64 2d 72 69 67 68 74 20 6c 6f 6e 67 65 73 74 2d 68 65 61 ".......(s-pad-right.longest-hea
f620 64 20 22 20 22 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 68 65 61 64 20 68 65 61 64 d.".".(helpful--format-head.head
f640 29 29 0a 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 66 6f 72 6d 61 74 74 65 64 2d 63 )).......(propertize.formatted-c
f660 6f 75 6e 74 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 ount.'face.'font-lock-comment-fa
f680 63 65 29 29 0a 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 70 61 74 68 20 70 61 74 68 0a 20 20 20 ce))......'helpful-path.path....
f6a0 20 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 20 70 6f 73 69 74 69 6f 6e 29 29 29 0a 0a 28 64 65 66 ..'helpful-pos.position)))..(def
f6c0 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 un.helpful--format-position-head
f6e0 73 20 28 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 73 20 70 61 74 68 29 0a 20 20 22 47 69 76 65 6e s.(position-heads.path)..."Given
f700 20 61 20 6c 69 73 74 20 6f 66 20 6f 75 74 65 72 20 73 65 78 70 73 2c 20 66 6f 72 6d 61 74 20 74 .a.list.of.outer.sexps,.format.t
f720 68 65 6d 20 66 6f 72 20 64 69 73 70 6c 61 79 2e 0a 50 4f 53 49 54 49 4f 4e 2d 48 45 41 44 53 20 hem.for.display..POSITION-HEADS.
f740 74 61 6b 65 73 20 74 68 65 20 66 6f 72 6d 20 28 28 31 32 33 20 28 64 65 66 75 6e 20 66 6f 6f 29 takes.the.form.((123.(defun.foo)
f760 29 20 28 34 35 36 20 28 64 65 66 75 6e 20 62 61 72 29 29 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 ).(456.(defun.bar)))."...(let.((
f780 6c 6f 6e 67 65 73 74 2d 68 65 61 64 0a 20 20 20 20 20 20 20 20 20 28 2d 3e 3e 20 70 6f 73 69 74 longest-head..........(->>.posit
f7a0 69 6f 6e 2d 68 65 61 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d ion-heads...............(-map.(-
f7c0 6c 61 6d 62 64 61 20 28 28 5f 70 6f 73 20 68 65 61 64 29 29 20 28 68 65 6c 70 66 75 6c 2d 2d 66 lambda.((_pos.head)).(helpful--f
f7e0 6f 72 6d 61 74 2d 68 65 61 64 20 68 65 61 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ormat-head.head)))..............
f800 20 28 2d 6d 61 70 20 23 27 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .(-map.#'length)...............(
f820 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 28 2d 3e 3e 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 75 6e -max)))).....(->>.(helpful--coun
f840 74 2d 76 61 6c 75 65 73 20 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 73 29 0a 20 20 20 20 20 20 20 t-values.position-heads)........
f860 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 28 28 70 6f 73 20 68 65 61 64 29 20 2e 20 ..(-map.(-lambda.(((pos.head)...
f880 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 count))..................(helpfu
f8a0 6c 2d 2d 66 6f 72 6d 61 74 2d 72 65 66 65 72 65 6e 63 65 20 68 65 61 64 20 6c 6f 6e 67 65 73 74 l--format-reference.head.longest
f8c0 2d 68 65 61 64 20 63 6f 75 6e 74 20 70 6f 73 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 -head.count.pos.path))).........
f8e0 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 .(s-join."\n"))))..(defun.helpfu
f900 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a l--primitive-p.(sym.callable-p).
f920 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 53 59 4d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e .."Return.t.if.SYM.is.defined.in
f940 20 43 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 75 62 72 70 20 28 69 66 20 28 66 62 6f 75 6e 64 70 .C."...(let.((subrp.(if.(fboundp
f960 20 27 73 75 62 72 2d 70 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .'subr-primitive-p).............
f980 20 20 20 20 20 20 20 23 27 73 75 62 72 2d 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 20 20 20 20 20 .......#'subr-primitive-p.......
f9a0 20 20 20 20 20 20 20 20 20 20 20 23 27 73 75 62 72 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a ...........#'subrp))).....(cond.
f9c0 20 20 20 20 20 28 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d .....((and.callable-p.(helpful--
f9e0 61 64 76 69 73 65 64 2d 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 advised-p.sym)).......(funcall.s
fa00 75 62 72 70 20 28 68 65 6c 70 66 75 6c 2d 2d 77 69 74 68 6f 75 74 2d 61 64 76 69 63 65 20 73 79 ubrp.(helpful--without-advice.sy
fa20 6d 29 29 29 0a 20 20 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 28 66 75 6e m)))......(callable-p.......(fun
fa40 63 61 6c 6c 20 73 75 62 72 70 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 73 79 call.subrp.(indirect-function.sy
fa60 6d 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 m)))......(t.......(let.((filena
fa80 6d 65 20 28 66 69 6e 64 2d 6c 69 73 70 2d 6f 62 6a 65 63 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 73 me.(find-lisp-object-file-name.s
faa0 79 6d 20 27 64 65 66 76 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 20 66 69 ym.'defvar))).........(or.(eq.fi
fac0 6c 65 6e 61 6d 65 20 27 43 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 lename.'C-source).............(a
fae0 6e 64 20 28 73 74 72 69 6e 67 70 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 nd.(stringp.filename)...........
fb00 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 .......(let.((ext.(file-name-ext
fb20 65 6e 73 69 6f 6e 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ension.filename)))..............
fb40 20 20 20 20 20 20 28 6f 72 20 28 65 71 75 61 6c 20 65 78 74 20 22 63 22 29 0a 20 20 20 20 20 20 ......(or.(equal.ext."c").......
fb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 65 78 74 20 22 72 73 22 .................(equal.ext."rs"
fb80 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d ))))))))))..(defun.helpful--sym-
fba0 76 61 6c 75 65 20 28 73 79 6d 20 62 75 66 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 value.(sym.buf)..."Return.the.va
fbc0 6c 75 65 20 6f 66 20 53 59 4d 20 69 6e 20 42 55 46 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 3b lue.of.SYM.in.BUF."...(cond....;
fbe0 3b 20 49 66 20 77 65 27 72 65 20 67 69 76 65 6e 20 61 20 62 75 66 66 65 72 2c 20 6c 6f 6f 6b 20 ;.If.we're.given.a.buffer,.look.
fc00 75 70 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 61 74 20 62 75 66 66 65 72 2e 0a up.the.variable.in.that.buffer..
fc20 20 20 20 28 62 75 66 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ...(buf.....(with-current-buffer
fc40 20 62 75 66 0a 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 0a .buf.......(symbol-value.sym))).
fc60 20 20 20 3b 3b 20 49 66 20 77 65 20 64 6f 6e 27 74 20 68 61 76 65 20 61 20 62 75 66 66 65 72 2c ...;;.If.we.don't.have.a.buffer,
fc80 20 61 6e 64 20 74 68 69 73 20 69 73 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 .and.this.is.a.buffer-local.vari
fca0 61 62 6c 65 2c 0a 20 20 20 3b 3b 20 65 6e 73 75 72 65 20 77 65 20 72 65 74 75 72 6e 20 74 68 65 able,....;;.ensure.we.return.the
fcc0 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2e 0a 20 20 20 28 28 6c 6f 63 61 6c 2d 76 61 72 69 61 .default.value.....((local-varia
fce0 62 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d 29 0a 20 20 20 20 28 64 65 66 61 75 6c 74 2d 76 ble-if-set-p.sym).....(default-v
fd00 61 6c 75 65 20 73 79 6d 29 29 0a 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 6a 75 73 74 alue.sym))....;;.Otherwise,.just
fd20 20 72 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 .return.the.value.in.the.current
fd40 20 62 75 66 66 65 72 2c 20 77 68 69 63 68 20 69 73 0a 20 20 20 3b 3b 20 74 68 65 20 67 6c 6f 62 .buffer,.which.is....;;.the.glob
fd60 61 6c 20 76 61 6c 75 65 2e 0a 20 20 20 28 74 0a 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 al.value.....(t.....(symbol-valu
fd80 65 20 73 79 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 e.sym))))..(defun.helpful--inser
fda0 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 73 65 63 t-section-break.()..."Insert.sec
fdc0 74 69 6f 6e 20 62 72 65 61 6b 20 69 6e 74 6f 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 2e 22 tion.break.into.helpful.buffer."
fde0 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 ...(insert."\n\n"))..(defun.help
fe00 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 28 29 0a 20 ful--insert-implementations.()..
fe20 20 22 57 68 65 6e 20 60 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 27 20 69 73 20 61 20 67 65 6e 65 72 ."When.`helpful--sym'.is.a.gener
fe40 69 63 20 6d 65 74 68 6f 64 2c 20 69 6e 73 65 72 74 20 69 74 73 20 69 6d 70 6c 65 6d 65 6e 74 61 ic.method,.insert.its.implementa
fe60 74 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 75 6e 63 20 68 65 6c 70 66 75 6c 2d 2d 73 tions."...(let.((func.helpful--s
fe80 79 6d 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 28 77 68 65 6e ym).........(content)).....(when
fea0 20 28 66 62 6f 75 6e 64 70 20 23 27 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 64 65 73 63 72 69 62 65 .(fboundp.#'cl--generic-describe
fec0 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 ).......(with-temp-buffer.......
fee0 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 63 6c 2d 2d 67 65 6e 65 72 69 63 2d ..(declare-function.cl--generic-
ff00 64 65 73 63 72 69 62 65 20 22 63 6c 2d 67 65 6e 65 72 69 63 22 20 28 66 75 6e 63 74 69 6f 6e 29 describe."cl-generic".(function)
ff20 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 64 65 73 63 72 69 62 65 20 ).........(cl--generic-describe.
ff40 66 75 6e 63 29 0a 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 func).........(goto-char.(point-
ff60 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 min)).........(when.(re-search-f
ff80 6f 72 77 61 72 64 20 22 5e 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 3a 24 22 20 6e 69 6c 20 orward."^Implementations:$".nil.
ffa0 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 65 6e 74 20 28 62 75 66 66 t)...........(setq.content.(buff
ffc0 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 6d 61 78 29 er-substring.(point).(point-max)
ffe0 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 )))).......(when.content........
10000 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 .(helpful--insert-section-break)
10020 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 .........(insert.(helpful--headi
10040 6e 67 20 22 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 22 29 20 28 73 2d 74 72 69 6d 20 63 6f ng."Implementations").(s-trim.co
10060 6e 74 65 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c ntent))))))..(defun.helpful--cal
10080 63 75 6c 61 74 65 2d 72 65 66 65 72 65 6e 63 65 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d culate-references.(sym.callable-
100a0 70 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 20 22 43 61 6c 63 75 6c 61 74 65 20 72 65 66 65 p.source-path)..."Calculate.refe
100c0 72 65 6e 63 65 73 20 66 6f 72 20 53 59 4d 20 69 6e 20 53 4f 55 52 43 45 2d 50 41 54 48 2e 22 0a rences.for.SYM.in.SOURCE-PATH.".
100e0 20 20 28 77 68 65 6e 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 ..(when.source-path.....(let*.((
10100 70 72 69 6d 69 74 69 76 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d primitive-p.(helpful--primitive-
10120 70 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 p.sym.callable-p))............(b
10140 75 66 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 2d 63 6f 6e 74 65 6e 74 73 2d 62 75 66 66 65 72 20 uf.(elisp-refs--contents-buffer.
10160 73 6f 75 72 63 65 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69 source-path))............(positi
10180 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 69 6d 69 74 69 76 65 2d 70 0a ons.............(if.primitive-p.
101a0 20 20 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 ................nil.............
101c0 20 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 66 65 72 65 6e 63 65 2d 70 6f 73 69 74 69 6f 6e 73 0a ..(helpful--reference-positions.
101e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 ...............helpful--sym.help
10200 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 ful--callable-p.buf)))..........
10220 20 20 28 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 28 2d 2d 6d 61 70 20 28 68 65 6c 70 66 75 6c 2d ..(return-value.(--map.(helpful-
10240 2d 6f 75 74 65 72 2d 73 65 78 70 20 62 75 66 20 69 74 29 20 70 6f 73 69 74 69 6f 6e 73 29 29 29 -outer-sexp.buf.it).positions)))
10260 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 20 20 72 .......(kill-buffer.buf).......r
10280 65 74 75 72 6e 2d 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d eturn-value)))..(defun.helpful--
102a0 6d 61 6b 65 2d 73 68 6f 72 74 64 6f 63 2d 73 65 6e 74 65 6e 63 65 20 28 73 79 6d 29 0a 20 20 22 make-shortdoc-sentence.(sym)..."
102c0 4d 61 6b 65 20 61 20 6c 69 6e 65 20 66 6f 72 20 73 68 6f 72 74 64 6f 63 20 67 72 6f 75 70 73 20 Make.a.line.for.shortdoc.groups.
102e0 6f 66 20 53 59 4d 2e 22 0a 20 20 28 77 68 65 6e 20 28 66 65 61 74 75 72 65 70 20 27 73 68 6f 72 of.SYM."...(when.(featurep.'shor
10300 74 64 6f 63 29 0a 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 67 72 6f 75 70 73 20 28 2d 2d tdoc).....(-when-let.(groups.(--
10320 6d 61 70 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 map.(helpful--button............
10340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 ....................(symbol-name
10360 20 69 74 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 .it)............................
10380 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 73 68 6f 72 74 64 6f 63 2d 62 75 74 74 6f 6e 0a 20 20 20 ....'helpful-shortdoc-button....
103a0 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 27 73 68 6f ............................'sho
103c0 72 74 64 6f 63 2d 67 72 6f 75 70 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rtdoc-group.it).................
103e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 6f 72 74 64 6f 63 2d 66 75 6e 63 74 69 6f 6e ..............(shortdoc-function
10400 2d 67 72 6f 75 70 73 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 31 20 28 6c -groups.sym))).......(if.(=.1.(l
10420 65 6e 67 74 68 20 67 72 6f 75 70 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 ength.groups))...........(format
10440 20 22 4f 74 68 65 72 20 72 65 6c 65 76 61 6e 74 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 ."Other.relevant.functions.are.d
10460 6f 63 75 6d 65 6e 74 65 64 20 69 6e 20 74 68 65 20 25 73 20 67 72 6f 75 70 2e 22 0a 20 20 20 20 ocumented.in.the.%s.group.".....
10480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 67 72 6f 75 70 73 29 29 0a 20 20 20 20 ..............(car.groups)).....
104a0 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4f 74 68 65 72 20 72 65 6c 65 76 61 6e 74 20 66 75 6e 63 ....(format."Other.relevant.func
104c0 74 69 6f 6e 73 20 61 72 65 20 64 6f 63 75 6d 65 6e 74 65 64 20 69 6e 20 74 68 65 20 25 73 20 67 tions.are.documented.in.the.%s.g
104e0 72 6f 75 70 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 roups.".................(concat.
10500 28 73 2d 6a 6f 69 6e 20 22 2c 20 22 20 28 62 75 74 6c 61 73 74 20 67 72 6f 75 70 73 29 29 0a 20 (s-join.",.".(butlast.groups))..
10520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 61 6e 64 20 22 20 28 .......................".and.".(
10540 63 61 72 20 28 6c 61 73 74 20 67 72 6f 75 70 73 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e car.(last.groups))))))))..(defun
10560 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 6d 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 20 28 73 79 .helpful--make-manual-button.(sy
10580 6d 29 0a 20 20 22 4d 61 6b 65 20 6d 61 6e 75 61 6c 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d m)..."Make.manual.button.for.SYM
105a0 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 56 69 65 77 20 69 ."...(helpful--button...."View.i
105c0 6e 20 6d 61 6e 75 61 6c 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 6d 61 6e 75 61 6c 2d 62 75 74 n.manual"....'helpful-manual-but
105e0 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c ton....'symbol.sym))..(defun.hel
10600 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 6f 67 67 6c 65 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 62 75 pful--make-toggle-button.(sym.bu
10620 66 66 65 72 29 0a 20 20 22 4d 61 6b 65 20 74 6f 67 67 6c 65 20 62 75 74 74 6f 6e 20 66 6f 72 20 ffer)..."Make.toggle.button.for.
10640 53 59 4d 20 69 6e 20 42 55 46 46 45 52 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 SYM.in.BUFFER."...(helpful--butt
10660 6f 6e 0a 20 20 20 22 54 6f 67 67 6c 65 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 74 6f 67 67 6c on...."Toggle"....'helpful-toggl
10680 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 27 62 75 66 66 e-button....'symbol.sym....'buff
106a0 65 72 20 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b er.buffer))..(defun.helpful--mak
106c0 65 2d 73 65 74 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 62 75 66 66 65 72 29 0a 20 20 22 4d 61 6b e-set-button.(sym.buffer)..."Mak
106e0 65 20 73 65 74 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 20 69 6e 20 42 55 46 46 45 52 2e 22 e.set.button.for.SYM.in.BUFFER."
10700 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 53 65 74 22 0a 20 20 20 ...(helpful--button...."Set"....
10720 27 68 65 6c 70 66 75 6c 2d 73 65 74 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 'helpful-set-button....'symbol.s
10740 79 6d 0a 20 20 20 27 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 68 ym....'buffer.buffer))..(defun.h
10760 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 6f 67 67 6c 65 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 elpful--make-toggle-literal-butt
10780 6f 6e 20 28 29 0a 20 20 22 4d 61 6b 65 20 73 65 74 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d on.()..."Make.set.button.for.SYM
107a0 20 69 6e 20 42 55 46 46 45 52 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a .in.BUFFER."...(helpful--button.
107c0 20 20 20 28 69 66 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 0a 20 20 20 ...(if.helpful--view-literal....
107e0 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 6f 6e 6c 79 20 6f 66 66 65 72 20 66 6f 72 20 73 74 72 69 ....;;.TODO:.only.offer.for.stri
10800 6e 67 73 20 74 68 61 74 20 68 61 76 65 20 6e 65 77 6c 69 6e 65 73 2c 20 74 61 62 73 20 6f 72 0a ngs.that.have.newlines,.tabs.or.
10820 20 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 20 20 20 20 20 20 20 22 50 72 .......;;.properties........."Pr
10840 65 74 74 79 20 76 69 65 77 22 0a 20 20 20 20 20 22 56 69 65 77 20 61 73 20 6c 69 74 65 72 61 6c etty.view"......"View.as.literal
10860 22 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 ")....'helpful-view-literal-butt
10880 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 75 73 74 6f on))..(defun.helpful--make-custo
108a0 6d 69 7a 65 2d 62 75 74 74 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 63 75 73 74 6f 6d mize-button.(sym)..."Make.custom
108c0 69 7a 65 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d ize.button.for.SYM."...(helpful-
108e0 2d 62 75 74 74 6f 6e 0a 20 20 20 22 43 75 73 74 6f 6d 69 7a 65 22 0a 20 20 20 27 68 65 6c 70 66 -button...."Customize"....'helpf
10900 75 6c 2d 63 75 73 74 6f 6d 69 7a 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 ul-customize-button....'symbol.s
10920 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 65 66 65 72 ym))..(defun.helpful--make-refer
10940 65 6e 63 65 73 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 ences-button.(sym.callable-p)...
10960 22 4d 61 6b 65 20 72 65 66 65 72 65 6e 63 65 73 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e "Make.references.button.for.SYM.
10980 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 46 69 6e 64 20 61 6c "...(helpful--button...."Find.al
109a0 6c 20 72 65 66 65 72 65 6e 63 65 73 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 61 6c 6c 2d 72 65 l.references"....'helpful-all-re
109c0 66 65 72 65 6e 63 65 73 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 ferences-button....'symbol.sym..
109e0 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 0a 28 64 65 66 ..'callable-p.callable-p))..(def
10a00 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 65 64 65 62 75 67 2d 62 75 74 74 6f 6e 20 28 un.helpful--make-edebug-button.(
10a20 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 65 64 65 62 75 67 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 sym)..."Make.edebug.button.for.S
10a40 59 4d 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 28 66 6f 72 6d YM."...(helpful--button....(form
10a60 61 74 20 22 25 73 20 65 64 65 62 75 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 68 at."%s.edebug"............(if.(h
10a80 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 elpful--edebug-p.sym)...........
10aa0 20 20 20 20 20 22 44 69 73 61 62 6c 65 22 20 22 45 6e 61 62 6c 65 22 29 29 0a 20 20 20 27 68 65 ....."Disable"."Enable"))....'he
10ac0 6c 70 66 75 6c 2d 65 64 65 62 75 67 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 lpful-edebug-button....'symbol.s
10ae0 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 72 61 63 69 ym))..(defun.helpful--make-traci
10b00 6e 67 2d 62 75 74 74 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 74 72 61 63 69 6e 67 20 ng-button.(sym)..."Make.tracing.
10b20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 button.for.SYM."...(helpful--but
10b40 74 6f 6e 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 74 72 61 63 69 6e 67 22 0a 20 20 20 20 ton....(format."%s.tracing".....
10b60 20 20 20 20 20 20 20 28 69 66 20 28 74 72 61 63 65 2d 69 73 2d 74 72 61 63 65 64 20 73 79 6d 29 .......(if.(trace-is-traced.sym)
10b80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 44 69 73 61 62 6c 65 22 20 22 45 6e 61 62 6c ................"Disable"."Enabl
10ba0 65 22 29 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 74 72 61 63 65 2d 62 75 74 74 6f 6e 0a 20 20 e"))....'helpful-trace-button...
10bc0 20 27 73 79 6d 62 6f 6c 20 73 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d .'symbol.sym))..(defun.helpful--
10be0 6d 61 6b 65 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 20 28 6f 62 6a 29 0a 20 20 make-disassemble-button.(obj)...
10c00 22 4d 61 6b 65 20 64 69 73 61 73 73 65 6d 62 6c 65 20 62 75 74 74 6f 6e 20 66 6f 72 20 4f 42 4a "Make.disassemble.button.for.OBJ
10c20 2e 0a 4f 42 4a 20 6d 61 79 20 62 65 20 61 20 73 79 6d 62 6f 6c 20 6f 72 20 61 20 63 6f 6d 70 69 ..OBJ.may.be.a.symbol.or.a.compi
10c40 6c 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c led.function.object."...(helpful
10c60 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 44 69 73 61 73 73 65 6d 62 6c 65 22 0a 20 20 20 27 68 65 --button...."Disassemble"....'he
10c80 6c 70 66 75 6c 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 6f 62 6a lpful-disassemble-button....'obj
10ca0 65 63 74 20 6f 62 6a 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d ect.obj))..(defun.helpful--make-
10cc0 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 61 6e run-test-button.(sym)..."Make.an
10ce0 20 45 52 54 20 74 65 73 74 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 68 65 .ERT.test.button.for.SYM."...(he
10d00 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 52 75 6e 20 74 65 73 74 22 0a 20 20 20 27 lpful--button...."Run.test"....'
10d20 68 65 6c 70 66 75 6c 2d 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 helpful-run-test-button....'symb
10d40 6f 6c 20 73 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 66 ol.sym))..(defun.helpful--make-f
10d60 6f 72 67 65 74 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 orget-button.(sym.callable-p)...
10d80 22 4d 61 6b 65 20 66 6f 72 67 65 74 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 "Make.forget.button.for.SYM."...
10da0 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 46 6f 72 67 65 74 22 0a 20 20 20 (helpful--button...."Forget"....
10dc0 27 68 65 6c 70 66 75 6c 2d 66 6f 72 67 65 74 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 'helpful-forget-button....'symbo
10de0 6c 20 73 79 6d 0a 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 l.sym....'callable-p.callable-p)
10e00 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 61 6c 6c 65 65 73 2d )..(defun.helpful--make-callees-
10e20 62 75 74 74 6f 6e 20 28 73 79 6d 20 73 6f 75 72 63 65 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d button.(sym.source)...(helpful--
10e40 62 75 74 74 6f 6e 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 46 75 6e 63 74 69 6f 6e 73 20 75 73 65 button....(format."Functions.use
10e60 64 20 62 79 20 25 73 22 20 73 79 6d 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 65 65 d.by.%s".sym)....'helpful-callee
10e80 73 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 27 73 6f 75 72 s-button....'symbol.sym....'sour
10ea0 63 65 20 73 6f 75 72 63 65 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 74 68 69 73 20 6f 6e 6c 79 20 ce.source))..;;.TODO:.this.only.
10ec0 72 65 70 6f 72 74 73 20 69 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 75 74 6f 6c 6f 61 reports.if.a.function.is.autoloa
10ee0 64 65 64 20 62 65 63 61 75 73 65 20 77 65 0a 3b 3b 20 61 75 74 6f 6c 6f 61 64 65 64 20 69 74 2e ded.because.we.;;.autoloaded.it.
10f00 20 54 68 69 73 20 69 67 6e 6f 72 65 73 20 6e 65 77 6c 79 20 64 65 66 69 6e 65 64 20 66 75 6e 63 .This.ignores.newly.defined.func
10f20 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 0a 3b 3b 20 61 75 74 6f 6c 6f 61 64 65 64 2e 20 42 75 tions.that.are.;;.autoloaded..Bu
10f40 69 6c 74 2d 69 6e 20 68 65 6c 70 20 68 61 73 20 74 68 69 73 20 6c 69 6d 69 74 61 74 69 6f 6e 20 ilt-in.help.has.this.limitation.
10f60 74 6f 6f 2c 20 62 75 74 20 69 66 20 77 65 20 63 61 6e 0a 3b 3b 20 66 69 6e 64 20 74 68 65 20 73 too,.but.if.we.can.;;.find.the.s
10f80 6f 75 72 63 65 2c 20 77 65 20 73 68 6f 75 6c 64 20 69 6e 73 74 65 61 64 20 73 65 65 20 69 66 20 ource,.we.should.instead.see.if.
10fa0 74 68 65 72 65 27 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 0a 3b 3b 20 63 6f 6f 6b 69 65 2e 0a 28 there's.an.autoload.;;.cookie..(
10fc0 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 28 73 79 6d defun.helpful--autoloaded-p.(sym
10fe0 20 62 75 66 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 66 75 6e 63 74 .buf)..."Return.non-nil.if.funct
11000 69 6f 6e 20 53 59 4d 20 69 73 20 61 75 74 6f 6c 6f 61 64 65 64 2e 22 0a 20 20 28 2d 77 68 65 6e ion.SYM.is.autoloaded."...(-when
11020 2d 6c 65 74 20 28 66 69 6c 65 2d 6e 61 6d 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d -let.(file-name.(buffer-file-nam
11040 65 20 62 75 66 29 29 0a 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 2d 6e 61 6d 65 20 28 73 2d 63 e.buf)).....(setq.file-name.(s-c
11060 68 6f 70 2d 73 75 66 66 69 78 20 22 2e 67 7a 22 20 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 hop-suffix.".gz".file-name))....
11080 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 68 65 .(condition-case.nil.........(he
110a0 6c 70 2d 66 6e 73 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 73 79 6d 20 66 69 6c 65 2d 6e 61 lp-fns--autoloaded-p.sym.file-na
110c0 6d 65 29 0a 20 20 20 20 20 20 3b 20 6e 65 77 20 69 6e 20 45 6d 61 63 73 20 32 39 2e 30 2e 35 30 me).......;.new.in.Emacs.29.0.50
110e0 0a 20 20 20 20 20 20 3b 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f .......;.see.https://github.com/
11100 57 69 6c 66 72 65 64 2f 68 65 6c 70 66 75 6c 2f 70 75 6c 6c 2f 32 38 33 0a 20 20 20 20 20 20 28 Wilfred/helpful/pull/283.......(
11120 65 72 72 6f 72 20 28 68 65 6c 70 2d 66 6e 73 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 73 79 error.(help-fns--autoloaded-p.sy
11140 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 6f 6d 70 69 6c 65 64 m)))))..(defun.helpful--compiled
11160 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 66 75 -p.(sym)..."Return.non-nil.if.fu
11180 6e 63 74 69 6f 6e 20 53 59 4d 20 69 73 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 64 22 0a 20 20 28 nction.SYM.is.byte-compiled"...(
111a0 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 28 62 79 74 65 2d 63 and.(symbolp.sym)........(byte-c
111c0 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 ode-function-p.(symbol-function.
111e0 73 79 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6e 61 74 69 76 65 2d sym))))..(defun.helpful--native-
11200 63 6f 6d 70 69 6c 65 64 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e compiled-p.(sym)..."Return.non-n
11220 69 6c 20 69 66 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 20 69 73 20 6e 61 74 69 76 65 2d 63 6f 6d il.if.function.SYM.is.native-com
11240 70 69 6c 65 64 22 0a 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 piled"...(and.(symbolp.sym).....
11260 20 20 20 28 66 62 6f 75 6e 64 70 20 27 73 75 62 72 2d 6e 61 74 69 76 65 2d 65 6c 69 73 70 2d 70 ...(fboundp.'subr-native-elisp-p
11280 29 0a 20 20 20 20 20 20 20 28 73 75 62 72 2d 6e 61 74 69 76 65 2d 65 6c 69 73 70 2d 70 20 28 73 )........(subr-native-elisp-p.(s
112a0 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 ymbol-function.sym))))..(defun.h
112c0 65 6c 70 66 75 6c 2d 2d 6a 6f 69 6e 2d 61 6e 64 20 28 69 74 65 6d 73 29 0a 20 20 22 4a 6f 69 6e elpful--join-and.(items)..."Join
112e0 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 77 69 74 68 20 63 6f 6d 6d 61 73 20 61 .a.list.of.strings.with.commas.a
11300 6e 64 20 5c 22 61 6e 64 5c 22 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 3d 20 28 6c 65 6e nd.\"and\"."...(cond....((=.(len
11320 67 74 68 20 69 74 65 6d 73 29 20 30 29 0a 20 20 20 20 22 22 29 0a 20 20 20 28 28 3d 20 28 6c 65 gth.items).0)....."")....((=.(le
11340 6e 67 74 68 20 69 74 65 6d 73 29 20 31 29 0a 20 20 20 20 28 63 61 72 20 69 74 65 6d 73 29 29 0a ngth.items).1).....(car.items)).
11360 20 20 20 28 74 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 61 6e 64 20 25 73 22 0a 20 20 ...(t.....(format."%s.and.%s"...
11380 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 2c 20 22 20 28 2d 64 72 6f 70 2d 6c 61 ..........(s-join.",.".(-drop-la
113a0 73 74 20 31 20 69 74 65 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 73 74 2d st.1.items)).............(-last-
113c0 69 74 65 6d 20 69 74 65 6d 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d item.items)))))..(defun.helpful-
113e0 2d 73 75 6d 6d 61 72 79 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 -summary.(sym.callable-p.buf.pos
11400 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6f 6e 65 20 73 65 6e 74 65 6e 63 65 20 73 75 6d 6d 61 )..."Return.a.one.sentence.summa
11420 72 79 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 2d 6c 65 74 2a 20 28 28 70 72 69 6d 69 74 69 76 ry.for.SYM."...(-let*.((primitiv
11440 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 63 61 e-p.(helpful--primitive-p.sym.ca
11460 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 6f 6e 69 63 61 6c 2d llable-p))...........(canonical-
11480 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 62 6f 6c 20 73 sym.(helpful--canonical-symbol.s
114a0 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 61 73 ym.callable-p))...........(alias
114c0 2d 70 20 28 6e 6f 74 20 28 65 71 20 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 20 73 79 6d 29 29 29 -p.(not.(eq.canonical-sym.sym)))
114e0 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 61 73 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 ...........(alias-button........
11500 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(if.callable-p..............
11520 20 20 3b 3b 20 53 68 6f 77 20 61 20 6c 69 6e 6b 20 74 6f 20 27 64 65 66 61 6c 69 61 73 27 20 69 ..;;.Show.a.link.to.'defalias'.i
11540 6e 20 74 68 65 20 6d 61 6e 75 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 n.the.manual.................(he
11560 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 lpful--button................."f
11580 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 unction.alias".................'
115a0 68 65 6c 70 66 75 6c 2d 6d 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 helpful-manual-button...........
115c0 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 27 64 65 66 61 6c 69 61 73 29 0a 20 20 20 20 20 20 20 ......'symbol.'defalias)........
115e0 20 20 20 20 20 20 3b 3b 20 53 68 6f 77 20 61 20 6c 69 6e 6b 20 74 6f 20 74 68 65 20 76 61 72 69 ......;;.Show.a.link.to.the.vari
11600 61 62 6c 65 20 61 6c 69 61 73 65 73 20 73 65 63 74 69 6f 6e 20 69 6e 20 74 68 65 0a 20 20 20 20 able.aliases.section.in.the.....
11620 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6e 75 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........;;.manual..............
11640 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(helpful--button...............
11660 22 61 6c 69 61 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 "alias"...............'helpful-i
11680 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 6e nfo-button...............'info-n
116a0 6f 64 65 20 22 28 65 6c 69 73 70 29 56 61 72 69 61 62 6c 65 20 41 6c 69 61 73 65 73 22 29 29 29 ode."(elisp)Variable.Aliases")))
116c0 0a 20 20 20 20 20 20 20 20 20 20 28 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 62 75 74 74 6f 6e 0a ...........(special-form-button.
116e0 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 ...........(helpful--button.....
11700 20 20 20 20 20 20 20 20 22 73 70 65 63 69 61 6c 20 66 6f 72 6d 22 0a 20 20 20 20 20 20 20 20 20 ........"special.form"..........
11720 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 ...'helpful-info-button.........
11740 20 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 53 70 65 63 69 61 6c 20 46 ....'info-node."(elisp)Special.F
11760 6f 72 6d 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 6f 70 74 69 6f 6e 2d 62 orms"))...........(user-option-b
11780 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f utton............(helpful--butto
117a0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 63 75 73 74 6f 6d 69 7a 61 62 6c 65 22 0a 20 20 20 n............."customizable"....
117c0 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 .........'helpful-info-button...
117e0 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 56 61 72 ..........'info-node."(elisp)Var
11800 69 61 62 6c 65 20 44 65 66 69 6e 69 74 69 6f 6e 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 iable.Definitions"))...........(
11820 6b 65 79 62 6f 61 72 64 2d 6d 61 63 72 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 keyboard-macro-button...........
11840 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 6b .(helpful--button............."k
11860 65 79 62 6f 61 72 64 20 6d 61 63 72 6f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 eyboard.macro".............'help
11880 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 ful-info-button.............'inf
118a0 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 4b 65 79 62 6f 61 72 64 20 4d 61 63 72 6f 73 22 29 o-node."(elisp)Keyboard.Macros")
118c0 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 2d 62 75 74 74 6f 6e 0a )...........(interactive-button.
118e0 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 ...........(helpful--button.....
11900 20 20 20 20 20 20 20 20 22 69 6e 74 65 72 61 63 74 69 76 65 22 0a 20 20 20 20 20 20 20 20 20 20 ........"interactive"...........
11920 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 ..'helpful-info-button..........
11940 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 55 73 69 6e 67 20 49 6e 74 65 ...'info-node."(elisp)Using.Inte
11960 72 61 63 74 69 76 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 2d 62 ractive"))...........(autoload-b
11980 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f utton............(helpful--butto
119a0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 65 64 22 0a 20 20 20 20 20 n............."autoloaded"......
119c0 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 .......'helpful-info-button.....
119e0 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 41 75 74 6f 6c ........'info-node."(elisp)Autol
11a00 6f 61 64 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f oad"))...........(compiled-butto
11a20 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 n............(helpful--button...
11a40 20 20 20 20 20 20 20 20 20 20 22 62 79 74 65 2d 63 6f 6d 70 69 6c 65 64 22 0a 20 20 20 20 20 20 .........."byte-compiled".......
11a60 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 ......'helpful-info-button......
11a80 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 42 79 74 65 20 43 .......'info-node."(elisp)Byte.C
11aa0 6f 6d 70 69 6c 61 74 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 61 74 69 76 65 2d ompilation"))...........(native-
11ac0 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 compiled-button............(help
11ae0 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 74 69 76 65 6c ful--button............."nativel
11b00 79 20 63 6f 6d 70 69 6c 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c y.compiled".............'helpful
11b20 2d 64 65 73 63 72 69 62 65 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 -describe-button.............'sy
11b40 6d 62 6f 6c 20 27 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 mbol.'native-compile))..........
11b60 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 .(buffer-local-button...........
11b80 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 62 .(helpful--button............."b
11ba0 75 66 66 65 72 2d 6c 6f 63 61 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 uffer-local".............'helpfu
11bc0 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d l-info-button.............'info-
11be0 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 42 75 66 66 65 72 2d 4c 6f 63 61 6c 20 56 61 72 69 61 62 node."(elisp)Buffer-Local.Variab
11c00 6c 65 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 65 64 2d 70 0a 20 les"))...........(autoloaded-p..
11c20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 28 68 ..........(and.callable-p.buf.(h
11c40 65 6c 70 66 75 6c 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 73 79 6d 20 62 75 66 29 29 29 0a elpful--autoloaded-p.sym.buf))).
11c60 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 69 6c 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 ..........(compiled-p...........
11c80 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 6d 70 69 .(and.callable-p.(helpful--compi
11ca0 6c 65 64 2d 70 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 61 74 69 76 65 2d 63 led-p.sym)))...........(native-c
11cc0 6f 6d 70 69 6c 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 63 61 6c 6c 61 62 ompiled-p............(and.callab
11ce0 6c 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 2d 70 le-p.(helpful--native-compiled-p
11d00 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 73 0a 20 20 20 20 20 .sym)))...........(buttons......
11d20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 6c 69 61 ......(list.............(if.alia
11d40 73 2d 70 20 61 6c 69 61 73 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 s-p.alias-button).............(i
11d60 66 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 61 75 74 6f 6c 6f 61 64 65 64 2d 70 29 20 f.(and.callable-p.autoloaded-p).
11d80 61 75 74 6f 6c 6f 61 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 autoload-button).............(if
11da0 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 63 6f 6d 6d 61 6e 64 70 20 73 79 6d 29 29 .(and.callable-p.(commandp.sym))
11dc0 20 69 6e 74 65 72 61 63 74 69 76 65 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 .interactive-button)............
11de0 20 28 69 66 20 63 6f 6d 70 69 6c 65 64 2d 70 20 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f 6e 29 .(if.compiled-p.compiled-button)
11e00 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 .............(if.native-compiled
11e20 2d 70 20 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 -p.native-compiled-button)......
11e40 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 .......(if.(and.(not.callable-p)
11e60 20 28 63 75 73 74 6f 6d 2d 76 61 72 69 61 62 6c 65 2d 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 .(custom-variable-p.sym)).......
11e80 20 20 20 20 20 20 20 20 20 20 75 73 65 72 2d 6f 70 74 69 6f 6e 2d 62 75 74 74 6f 6e 29 0a 20 20 ..........user-option-button)...
11ea0 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 ..........(if.(and.(not.callable
11ec0 2d 70 29 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d -p).(local-variable-if-set-p.sym
11ee0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d )).................buffer-local-
11f00 62 75 74 74 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 73 63 72 69 70 74 69 6f 6e button)))...........(description
11f20 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6a 6f 69 6e 2d 61 6e 64 20 28 ............(helpful--join-and.(
11f40 2d 6e 6f 6e 2d 6e 69 6c 20 62 75 74 74 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b -non-nil.buttons)))...........(k
11f60 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 ind............(cond............
11f80 20 28 28 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 .((special-form-p.sym)..........
11fa0 20 20 20 20 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 ....special-form-button)........
11fc0 20 20 20 20 20 28 61 6c 69 61 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d .....(alias-p..............(form
11fe0 61 74 20 22 66 6f 72 20 25 73 2c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 at."for.%s,"....................
12000 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(helpful--button..............
12020 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 63 61 6e 6f 6e 69 63 61 6c 2d .........(symbol-name.canonical-
12040 73 79 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 27 68 65 6c 70 sym).......................'help
12060 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 20 20 20 ful-describe-exactly-button.....
12080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 63 61 6e 6f 6e 69 ..................'symbol.canoni
120a0 63 61 6c 2d 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 cal-sym.......................'c
120c0 61 6c 6c 61 62 6c 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 allable-p.callable-p))).........
120e0 20 20 20 20 28 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 22 76 61 72 69 61 62 6c 65 22 ....((not.callable-p)."variable"
12100 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 61 63 72 6f 70 20 73 79 6d 29 20 22 6d 61 63 ).............((macrop.sym)."mac
12120 72 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d ro").............((helpful--kbd-
12140 6d 61 63 72 6f 2d 70 20 73 79 6d 29 20 6b 65 79 62 6f 61 72 64 2d 6d 61 63 72 6f 2d 62 75 74 74 macro-p.sym).keyboard-macro-butt
12160 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 22 66 75 6e 63 74 69 6f 6e 22 29 29 29 on).............(t."function")))
12180 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........(defined.............
121a0 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 0a 20 20 20 20 20 20 20 20 (cond..............(buf.........
121c0 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 74 68 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e ......(let.((path.(buffer-file-n
121e0 61 6d 65 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 ame.buf))).................(if.p
12200 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a ath.....................(format.
12220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 66 69 6e 65 64 20 69 6e ....................."defined.in
12240 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 .%s"......................(helpf
12260 75 6c 2d 2d 6e 61 76 69 67 61 74 65 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ul--navigate-button.............
12280 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 ..........(file-name-nondirector
122a0 79 20 70 61 74 68 29 20 70 61 74 68 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 y.path).path.pos))..............
122c0 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 64 65 66 69 6e 65 64 20 69 6e 20 62 75 66 66 65 72 20 .....(format."defined.in.buffer.
122e0 25 73 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 28 68 %s"...........................(h
12300 65 6c 70 66 75 6c 2d 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 20 62 75 66 20 70 6f 73 29 29 29 elpful--buffer-button.buf.pos)))
12320 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 20 20 ))..............(primitive-p....
12340 20 20 20 20 20 20 20 20 20 20 20 22 64 65 66 69 6e 65 64 20 69 6e 20 43 20 73 6f 75 72 63 65 20 ..........."defined.in.C.source.
12360 63 6f 64 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 68 65 6c 70 66 75 6c 2d 2d 6b code")..............((helpful--k
12380 62 64 2d 6d 61 63 72 6f 2d 70 20 73 79 6d 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 bd-macro-p.sym).nil)............
123a0 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 77 69 74 68 6f 75 74 20 61 20 73 6f ..(t..............."without.a.so
123c0 75 72 63 65 20 66 69 6c 65 22 29 29 29 29 0a 0a 20 20 20 20 28 73 2d 77 6f 72 64 2d 77 72 61 70 urce.file"))))......(s-word-wrap
123e0 0a 20 20 20 20 20 37 30 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 69 73 20 25 73 20 ......70......(format."%s.is.%s.
12400 25 73 20 25 73 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 %s.%s%s."..............(if.(symb
12420 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 olp.sym)..................(helpf
12440 75 6c 2d 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 ul--format-symbol.sym)..........
12460 20 20 20 20 20 20 22 54 68 69 73 20 6c 61 6d 62 64 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......"This.lambda")............
12480 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 0a 20 20 20 20 20 20 20 20 20 20 ..(if.(string-match-p...........
124a0 20 20 20 20 20 20 20 20 28 72 78 20 62 6f 73 20 28 6f 72 20 22 61 22 20 22 65 22 20 22 69 22 20 ........(rx.bos.(or."a"."e"."i".
124c0 22 6f 22 20 22 75 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 63 "o"."u"))...................desc
124e0 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e 22 0a 20 ription).................."an"..
12500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............."a")..............
12520 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 0a 20 20 description..............kind...
12540 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 66 69 6e 65 64 20 28 63 6f 6e 63 61 74 20 22 ...........(if.defined.(concat."
12560 20 22 20 64 65 66 69 6e 65 64 29 20 22 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 .".defined)."")))))..(defun.help
12580 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 20 28 66 6f 72 6d 29 0a 20 20 22 47 69 76 65 6e 20 73 6f 75 ful--callees.(form)..."Given.sou
125a0 72 63 65 20 63 6f 64 65 20 46 4f 52 4d 2c 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 rce.code.FORM,.return.a.list.of.
125c0 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 2e 22 0a 20 20 28 6c 65 all.the.functions.called."...(le
125e0 74 2a 20 28 28 65 78 70 61 6e 64 65 64 2d 66 6f 72 6d 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 2d t*.((expanded-form.(macroexpand-
12600 61 6c 6c 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 46 69 6e 64 20 61 6c 6c 20 all.form))..........;;.Find.all.
12620 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 61 66 74 65 72 20 6d 61 63 72 6f the.functions.called.after.macro
12640 20 65 78 70 61 6e 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 28 61 6c 6c 2d 66 6e 73 20 28 68 .expansion...........(all-fns.(h
12660 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 65 78 70 61 6e 64 65 64 2d 66 6f 72 6d 29 elpful--callees-1.expanded-form)
12680 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 )..........;;.Only.consider.the.
126a0 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 77 65 72 65 20 69 6e 20 74 68 65 20 6f 72 69 67 69 functions.that.were.in.the.origi
126c0 6e 61 6c 20 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 66 6f 72 65 20 6d 61 63 72 nal.code..........;;.before.macr
126e0 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 2d 73 79 6d 73 o.expansion...........(form-syms
12700 20 28 2d 66 69 6c 74 65 72 20 23 27 73 79 6d 62 6f 6c 70 20 28 2d 66 6c 61 74 74 65 6e 20 66 6f .(-filter.#'symbolp.(-flatten.fo
12720 72 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 2d 66 6e 73 20 28 2d 2d 66 69 6c 74 rm)))..........(form-fns.(--filt
12740 65 72 20 28 6d 65 6d 71 20 69 74 20 66 6f 72 6d 2d 73 79 6d 73 29 20 61 6c 6c 2d 66 6e 73 29 29 er.(memq.it.form-syms).all-fns))
12760 29 0a 20 20 20 20 28 2d 64 69 73 74 69 6e 63 74 20 66 6f 72 6d 2d 66 6e 73 29 29 29 0a 0a 28 64 ).....(-distinct.form-fns)))..(d
12780 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 28 66 6f 72 6d 29 0a 20 efun.helpful--callees-1.(form)..
127a0 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 ."Return.a.list.of.all.the.funct
127c0 69 6f 6e 73 20 63 61 6c 6c 65 64 20 69 6e 20 46 4f 52 4d 2e 0a 41 73 73 75 6d 65 73 20 46 4f 52 ions.called.in.FORM..Assumes.FOR
127e0 4d 20 68 61 73 20 62 65 65 6e 20 6d 61 63 72 6f 20 65 78 70 61 6e 64 65 64 2e 20 54 68 65 20 72 M.has.been.macro.expanded..The.r
12800 65 74 75 72 6e 65 64 20 6c 69 73 74 0a 6d 61 79 20 63 6f 6e 74 61 69 6e 20 64 75 70 6c 69 63 61 eturned.list.may.contain.duplica
12820 74 65 73 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 6f 74 20 28 63 6f 6e 73 70 20 66 6f tes."...(cond....((not.(consp.fo
12840 72 6d 29 29 0a 20 20 20 20 6e 69 6c 29 0a 20 20 20 3b 3b 20 53 65 65 20 60 28 65 6c 69 73 70 29 rm)).....nil)....;;.See.`(elisp)
12860 53 70 65 63 69 61 6c 20 46 6f 72 6d 73 27 2e 20 46 6f 72 20 74 68 65 73 65 20 73 70 65 63 69 61 Special.Forms'..For.these.specia
12880 6c 20 66 6f 72 6d 73 2c 20 77 65 20 72 65 63 75 72 73 65 0a 20 20 20 3b 3b 20 6a 75 73 74 20 6c l.forms,.we.recurse....;;.just.l
128a0 69 6b 65 20 66 75 6e 63 74 69 6f 6e 73 20 62 75 74 20 69 67 6e 6f 72 65 20 74 68 65 20 63 61 72 ike.functions.but.ignore.the.car
128c0 2e 0a 20 20 20 28 28 6d 65 6d 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 28 61 6e 64 20 63 61 74 .....((memq.(car.form).'(and.cat
128e0 63 68 20 64 65 66 63 6f 6e 73 74 20 64 65 66 76 61 72 20 69 66 20 69 6e 74 65 72 61 63 74 69 76 ch.defconst.defvar.if.interactiv
12900 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 20 20 20 6f 72 20 e............................or.
12920 70 72 6f 67 31 20 70 72 6f 67 32 20 70 72 6f 67 6e 20 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 62 prog1.prog2.progn.save-current-b
12940 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 20 20 20 20 20 20 uffer...........................
12960 20 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 20 73 65 74 71 20 73 65 74 71 2d 64 65 66 61 .save-restriction.setq.setq-defa
12980 75 6c 74 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 74 ult............................t
129a0 72 61 63 6b 2d 6d 6f 75 73 65 20 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 20 77 68 69 6c 65 29 rack-mouse.unwind-protect.while)
129c0 29 0a 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 0a 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c ).....(-flatten......(-map.#'hel
129e0 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 0a 0a 20 pful--callees-1.(cdr.form))))...
12a00 20 20 28 28 65 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 63 6f 6e 64 29 0a 20 20 20 20 28 6c 65 ..((eq.(car.form).'cond).....(le
12a20 74 2a 20 28 28 63 6c 61 75 73 65 73 20 28 63 64 72 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 t*.((clauses.(cdr.form))........
12a40 20 20 20 20 28 63 6c 61 75 73 65 2d 66 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 ....(clause-fns.............;;.E
12a60 61 63 68 20 63 6c 61 75 73 65 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 66 6f 72 6d 73 2e 0a 20 ach.clause.is.a.list.of.forms...
12a80 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...........(--map..............(
12aa0 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 69 74 29 20 63 6c -map.#'helpful--callees-1.it).cl
12ac0 61 75 73 65 73 29 29 29 0a 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 63 6c 61 75 73 65 2d auses))).......(-flatten.clause-
12ae0 66 6e 73 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 63 6f 6e 64 fns))).....((eq.(car.form).'cond
12b00 69 74 69 6f 6e 2d 63 61 73 65 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 74 65 63 74 65 ition-case).....(let*.((protecte
12b20 64 2d 66 6f 72 6d 20 28 6e 74 68 20 32 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 d-form.(nth.2.form))............
12b40 28 70 72 6f 74 65 63 74 65 64 2d 66 6f 72 6d 2d 66 6e 73 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 (protected-form-fns.(helpful--ca
12b60 6c 6c 65 65 73 2d 31 20 70 72 6f 74 65 63 74 65 64 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 llees-1.protected-form))........
12b80 20 20 20 20 28 68 61 6e 64 6c 65 72 73 20 28 2d 64 72 6f 70 20 33 20 66 6f 72 6d 29 29 0a 20 20 ....(handlers.(-drop.3.form))...
12ba0 20 20 20 20 20 20 20 20 20 28 68 61 6e 64 6c 65 72 2d 62 6f 64 69 65 73 20 28 2d 6d 61 70 20 23 .........(handler-bodies.(-map.#
12bc0 27 63 64 72 20 68 61 6e 64 6c 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 61 6e 64 'cdr.handlers))............(hand
12be0 6c 65 72 2d 66 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 ler-fns.............(--map......
12c00 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 ........(-map.#'helpful--callees
12c20 2d 31 20 69 74 29 20 68 61 6e 64 6c 65 72 2d 62 6f 64 69 65 73 29 29 29 0a 20 20 20 20 20 20 28 -1.it).handler-bodies))).......(
12c40 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 2d 66 6f 72 6d 2d 66 6e 73 append........protected-form-fns
12c60 0a 20 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 68 61 6e 64 6c 65 72 2d 66 6e 73 29 29 29 ........(-flatten.handler-fns)))
12c80 29 0a 0a 20 20 20 3b 3b 20 43 61 6c 6c 69 6e 67 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 ).....;;.Calling.a.function.with
12ca0 20 61 20 77 65 6c 6c 20 6b 6e 6f 77 6e 20 68 69 67 68 65 72 20 6f 72 64 65 72 20 66 75 6e 63 74 .a.well.known.higher.order.funct
12cc0 69 6f 6e 2c 20 66 6f 72 0a 20 20 20 3b 3b 20 65 78 61 6d 70 6c 65 20 28 66 75 6e 63 61 6c 6c 20 ion,.for....;;.example.(funcall.
12ce0 27 66 6f 6f 20 31 20 32 29 2e 0a 20 20 20 28 28 61 6e 64 0a 20 20 20 20 20 28 6d 65 6d 71 20 28 'foo.1.2).....((and......(memq.(
12d00 63 61 72 20 66 6f 72 6d 29 20 27 28 66 75 6e 63 61 6c 6c 20 61 70 70 6c 79 20 63 61 6c 6c 2d 69 car.form).'(funcall.apply.call-i
12d20 6e 74 65 72 61 63 74 69 76 65 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nteractively....................
12d40 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 70 63 61 72 20 6d 61 70 63 20 6d 61 70 63 6f 6e 63 .............mapcar.mapc.mapconc
12d60 61 74 20 2d 6d 61 70 29 29 0a 20 20 20 20 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 28 6e 74 at.-map))......(eq.(car-safe.(nt
12d80 68 20 31 20 66 6f 72 6d 29 29 20 27 71 75 6f 74 65 29 29 0a 20 20 20 20 28 63 6f 6e 73 0a 20 20 h.1.form)).'quote)).....(cons...
12da0 20 20 20 28 63 61 64 72 20 28 6e 74 68 20 31 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 28 2d 66 6c ...(cadr.(nth.1.form))......(-fl
12dc0 61 74 74 65 6e 0a 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c atten.......(-map.#'helpful--cal
12de0 6c 65 65 73 2d 31 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 lees-1.(cdr.form))))).....((eq.(
12e00 63 61 72 20 66 6f 72 6d 29 20 27 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 28 6c 65 74 20 28 28 car.form).'function).....(let.((
12e20 61 72 67 20 28 6e 74 68 20 31 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 79 arg.(nth.1.form))).......(if.(sy
12e40 6d 62 6f 6c 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 23 27 66 6f 6f 2c 20 77 mbolp.arg)...........;;.#'foo,.w
12e60 68 69 63 68 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 28 66 75 6e 63 74 69 6f 6e 20 66 6f hich.is.the.same.as.(function.fo
12e80 6f 29 2c 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 o),.is.a.function...........;;.r
12ea0 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 61 72 67 29 0a 20 eference............(list.arg)..
12ec0 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 28 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 .......;;.Handle.(function.(lamb
12ee0 64 61 20 2e 2e 2e 29 29 2e 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c da....))..........(helpful--call
12f00 65 65 73 2d 31 20 61 72 67 29 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 63 61 72 20 66 6f 72 6d ees-1.arg)))).....((eq.(car.form
12f20 29 20 27 6c 61 6d 62 64 61 29 0a 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 63 6f 6e 73 69 64 65 72 20 ).'lambda).....;;.Only.consider.
12f40 74 68 65 20 62 6f 64 79 2c 20 6e 6f 74 20 74 68 65 20 70 61 72 61 6d 20 6c 69 73 74 2e 0a 20 20 the.body,.not.the.param.list....
12f60 20 20 28 2d 66 6c 61 74 74 65 6e 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c ..(-flatten.(-map.#'helpful--cal
12f80 6c 65 65 73 2d 31 20 28 2d 64 72 6f 70 20 32 20 66 6f 72 6d 29 29 29 29 0a 0a 20 20 20 28 28 65 lees-1.(-drop.2.form)))).....((e
12fa0 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 63 6c 6f 73 75 72 65 29 0a 20 20 20 20 3b 3b 20 53 61 q.(car.form).'closure).....;;.Sa
12fc0 6d 65 20 61 73 20 6c 61 6d 62 64 61 2c 20 62 75 74 20 68 61 73 20 61 6e 20 61 64 64 69 74 69 6f me.as.lambda,.but.has.an.additio
12fe0 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 6f 66 20 74 68 65 0a 20 20 20 20 3b 3b 20 63 6c 6f 73 65 nal.argument.of.the.....;;.close
13000 64 2d 6f 76 65 72 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 d-over.variables......(-flatten.
13020 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 28 2d 64 72 6f (-map.#'helpful--callees-1.(-dro
13040 70 20 33 20 66 6f 72 6d 29 29 29 29 0a 0a 20 20 20 28 28 6d 65 6d 71 20 28 63 61 72 20 66 6f 72 p.3.form)))).....((memq.(car.for
13060 6d 29 20 27 28 6c 65 74 20 6c 65 74 2a 29 29 0a 20 20 20 20 3b 3b 20 45 78 74 72 61 63 74 20 66 m).'(let.let*)).....;;.Extract.f
13080 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 75 73 65 64 20 74 6f 20 73 65 74 20 74 68 65 20 6c 65 unction.calls.used.to.set.the.le
130a0 74 2d 62 6f 75 6e 64 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 76 t-bound.variables......(let*.((v
130c0 61 72 2d 76 61 6c 73 20 28 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 20 66 6f 72 6d 29 29 0a 20 20 20 ar-vals.(-second-item.form))....
130e0 20 20 20 20 20 20 20 20 28 76 61 72 2d 76 61 6c 2d 63 61 6c 6c 65 65 73 0a 20 20 20 20 20 20 20 ........(var-val-callees........
13100 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f .....(--map..............(if.(co
13120 6e 73 70 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 nsp.it)..................(-map.#
13140 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 69 74 29 0a 20 20 20 20 20 20 20 20 'helpful--callees-1.it).........
13160 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 2d 76 61 6c .......nil)..............var-val
13180 73 29 29 29 0a 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 28 2d 66 6c 61 74 s))).......(append........(-flat
131a0 74 65 6e 20 76 61 72 2d 76 61 6c 2d 63 61 6c 6c 65 65 73 29 0a 20 20 20 20 20 20 20 3b 3b 20 46 ten.var-val-callees)........;;.F
131c0 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 69 6e 20 74 68 65 20 6c 65 74 20 62 6f 64 79 2e 0a 20 unction.calls.in.the.let.body...
131e0 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 ......(-map.#'helpful--callees-1
13200 20 28 2d 64 72 6f 70 20 32 20 66 6f 72 6d 29 29 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 63 61 .(-drop.2.form))))).....((eq.(ca
13220 72 20 66 6f 72 6d 29 20 27 71 75 6f 74 65 29 0a 20 20 20 20 6e 69 6c 29 0a 20 20 20 28 74 0a 20 r.form).'quote).....nil)....(t..
13240 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 28 63 61 72 20 66 6f 72 6d 29 0a 20 20 20 20 20 28 2d ...(cons......(car.form)......(-
13260 66 6c 61 74 74 65 6e 0a 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 flatten.......(-map.#'helpful--c
13280 61 6c 6c 65 65 73 2d 31 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 allees-1.(cdr.form)))))))..(defu
132a0 6e 20 68 65 6c 70 66 75 6c 2d 2d 65 6e 73 75 72 65 2d 6c 6f 61 64 65 64 20 28 29 0a 20 20 22 45 n.helpful--ensure-loaded.()..."E
132c0 6e 73 75 72 65 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 nsure.the.symbol.associated.with
132e0 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 68 61 73 20 62 65 65 6e 20 6c 6f 61 .the.current.buffer.has.been.loa
13300 64 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c ded."...(when.(and.helpful--call
13320 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c able-p..............(symbolp.hel
13340 70 66 75 6c 2d 2d 73 79 6d 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66 6e 2d 6f 62 6a 20 28 73 pful--sym)).....(let.((fn-obj.(s
13360 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 ymbol-function.helpful--sym)))..
13380 20 20 20 20 20 28 77 68 65 6e 20 28 61 75 74 6f 6c 6f 61 64 70 20 66 6e 2d 6f 62 6a 29 0a 20 20 .....(when.(autoloadp.fn-obj)...
133a0 20 20 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 2d 64 6f 2d 6c 6f 61 64 20 66 6e 2d 6f 62 6a 29 29 ......(autoload-do-load.fn-obj))
133c0 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d 70 20 28 73 79 6d )))..(defun.helpful--hook-p.(sym
133e0 62 6f 6c 20 76 61 6c 75 65 29 0a 20 20 22 44 6f 65 73 20 53 59 4d 42 4f 4c 20 6c 6f 6f 6b 20 6c bol.value)..."Does.SYMBOL.look.l
13400 69 6b 65 20 61 20 68 6f 6f 6b 3f 22 0a 20 20 28 61 6e 64 0a 20 20 20 28 6f 72 0a 20 20 20 20 28 ike.a.hook?"...(and....(or.....(
13420 73 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 2d 68 6f 6f 6b 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 s-ends-with-p."-hook".(symbol-na
13440 6d 65 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 3b 3b 20 45 2e 67 2e 20 60 61 66 74 65 72 2d 63 me.symbol)).....;;.E.g..`after-c
13460 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 27 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 75 hange-functions',.which.can.be.u
13480 73 65 64 20 77 69 74 68 0a 20 20 20 20 3b 3b 20 60 61 64 64 2d 68 6f 6f 6b 27 2e 0a 20 20 20 20 sed.with.....;;.`add-hook'......
134a0 28 73 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 2d 66 75 6e 63 74 69 6f 6e 73 22 20 28 73 79 6d (s-ends-with-p."-functions".(sym
134c0 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 28 63 6f 6e 73 70 20 76 61 6c bol-name.symbol)))....(consp.val
134e0 75 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 76 61 ue)))..(defun.helpful--format-va
13500 6c 75 65 20 28 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 22 46 6f 72 6d 61 74 20 56 41 4c 55 45 20 lue.(sym.value)..."Format.VALUE.
13520 61 73 20 61 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 68 65 6c 70 66 75 as.a.string."...(cond....(helpfu
13540 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 l--view-literal.....(helpful--sy
13560 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d ntax-highlight.(helpful--pretty-
13580 70 72 69 6e 74 20 76 61 6c 75 65 29 29 29 0a 20 20 20 3b 3b 20 41 6c 6c 6f 77 20 73 74 72 69 6e print.value)))....;;.Allow.strin
135a0 67 73 20 74 6f 20 62 65 20 76 69 65 77 65 64 20 77 69 74 68 20 70 72 6f 70 65 72 74 69 65 73 20 gs.to.be.viewed.with.properties.
135c0 72 65 6e 64 65 72 65 64 20 69 6e 0a 20 20 20 3b 3b 20 45 6d 61 63 73 2c 20 72 61 74 68 65 72 20 rendered.in....;;.Emacs,.rather.
135e0 74 68 61 6e 20 61 73 20 61 20 6c 69 74 65 72 61 6c 2e 0a 20 20 20 28 28 73 74 72 69 6e 67 70 20 than.as.a.literal.....((stringp.
13600 76 61 6c 75 65 29 0a 20 20 20 20 76 61 6c 75 65 29 0a 20 20 20 3b 3b 20 41 6c 6c 6f 77 20 6b 65 value).....value)....;;.Allow.ke
13620 79 6d 61 70 73 20 74 6f 20 62 65 20 76 69 65 77 65 64 20 77 69 74 68 20 6b 65 79 62 69 6e 64 69 ymaps.to.be.viewed.with.keybindi
13640 6e 67 73 20 73 68 6f 77 6e 20 61 6e 64 0a 20 20 20 3b 3b 20 6c 69 6e 6b 73 20 74 6f 20 74 68 65 ngs.shown.and....;;.links.to.the
13660 20 63 6f 6d 6d 61 6e 64 73 20 62 6f 75 6e 64 2e 0a 20 20 20 28 28 6b 65 79 6d 61 70 70 20 76 61 .commands.bound.....((keymapp.va
13680 6c 75 65 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6b 65 79 6d 61 70 lue).....(helpful--format-keymap
136a0 20 76 61 6c 75 65 29 29 0a 20 20 20 28 28 68 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d 70 20 73 79 .value))....((helpful--hook-p.sy
136c0 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 68 6f m.value).....(helpful--format-ho
136e0 6f 6b 20 76 61 6c 75 65 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 70 ok.value))....(t.....(helpful--p
13700 72 65 74 74 79 2d 70 72 69 6e 74 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 retty-print.value))))..(defun.he
13720 6c 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 6c 75 65 20 28 73 79 6d 29 0a 20 20 22 52 lpful--original-value.(sym)..."R
13740 65 74 75 72 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 61 6c 75 65 20 66 6f 72 20 53 59 4d eturn.the.original.value.for.SYM
13760 2c 20 69 66 20 61 6e 79 2e 0a 0a 49 66 20 53 59 4d 20 68 61 73 20 61 6e 20 6f 72 69 67 69 6e 61 ,.if.any...If.SYM.has.an.origina
13780 6c 20 76 61 6c 75 65 2c 20 72 65 74 75 72 6e 20 69 74 20 69 6e 20 61 20 6c 69 73 74 2e 20 52 65 l.value,.return.it.in.a.list..Re
137a0 74 75 72 6e 20 6e 69 6c 0a 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6f turn.nil.otherwise."...(let*.((o
137c0 72 69 67 2d 76 61 6c 2d 65 78 70 72 20 28 67 65 74 20 73 79 6d 20 27 73 74 61 6e 64 61 72 64 2d rig-val-expr.(get.sym.'standard-
137e0 76 61 6c 75 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 63 6f 6e 73 70 20 6f 72 69 67 2d 76 value))).....(when.(consp.orig-v
13800 61 6c 2d 65 78 70 72 29 0a 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 al-expr).......(ignore-errors...
13820 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 28 65 76 61 6c 20 28 63 61 72 20 ......(list..........(eval.(car.
13840 6f 72 69 67 2d 76 61 6c 2d 65 78 70 72 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c orig-val-expr)))))))..(defun.hel
13860 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 6c 75 65 2d 64 69 66 66 65 72 73 2d 70 20 28 pful--original-value-differs-p.(
13880 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 53 59 4d 20 68 61 73 20 61 6e 20 6f sym)..."Return.t.if.SYM.has.an.o
138a0 72 69 67 69 6e 61 6c 20 76 61 6c 75 65 2c 20 61 6e 64 20 69 74 73 20 63 75 72 72 65 6e 74 0a 76 riginal.value,.and.its.current.v
138c0 61 6c 75 65 20 69 73 20 64 69 66 66 65 72 65 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 72 69 alue.is.different."...(let.((ori
138e0 67 2d 76 61 6c 2d 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 g-val-list.(helpful--original-va
13900 6c 75 65 20 73 79 6d 29 29 29 0a 20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 6f 72 69 67 2d lue.sym))).....(and.(consp.orig-
13920 76 61 6c 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 61 72 val-list)..........(not.(eq.(car
13940 20 6f 72 69 67 2d 76 61 6c 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .orig-val-list).................
13960 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 29 29 29 0a 0a 28 64 65 66 75 ..(symbol-value.sym))))))..(defu
13980 6e 20 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 n.helpful-update.()..."Update.th
139a0 65 20 63 75 72 72 65 6e 74 20 2a 48 65 6c 70 66 75 6c 2a 20 62 75 66 66 65 72 20 74 6f 20 74 68 e.current.*Helpful*.buffer.to.th
139c0 65 20 6c 61 74 65 73 74 0a 73 74 61 74 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 e.latest.state.of.the.current.sy
139e0 6d 62 6f 6c 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6c 2d 61 73 73 mbol."...(interactive)...(cl-ass
13a00 65 72 74 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 ert.(not.(null.helpful--sym)))..
13a20 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d .(unless.(buffer-live-p.helpful-
13a40 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 73 65 74 71 20 68 65 -associated-buffer).....(setq.he
13a60 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 0a 20 lpful--associated-buffer.nil))..
13a80 20 28 68 65 6c 70 66 75 6c 2d 2d 65 6e 73 75 72 65 2d 6c 6f 61 64 65 64 29 0a 20 20 28 2d 6c 65 .(helpful--ensure-loaded)...(-le
13aa0 74 2a 20 28 28 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 61 74 20 74 t*.((val............;;.Look.at.t
13ac0 68 65 20 76 61 6c 75 65 20 62 65 66 6f 72 65 20 73 65 74 74 69 6e 67 20 60 69 6e 68 69 62 69 74 he.value.before.setting.`inhibit
13ae0 2d 72 65 61 64 2d 6f 6e 6c 79 27 2c 20 73 6f 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 73 -read-only',.so............;;.us
13b00 65 72 73 20 63 61 6e 20 73 65 65 20 74 68 65 20 63 6f 72 72 65 63 74 20 76 61 6c 75 65 20 6f 66 ers.can.see.the.correct.value.of
13b20 20 74 68 61 74 20 76 61 72 69 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 .that.variable.............(unle
13b40 73 73 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 ss.helpful--callable-p..........
13b60 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d 76 61 6c 75 65 20 68 65 6c 70 66 75 6c 2d ....(helpful--sym-value.helpful-
13b80 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 -sym.helpful--associated-buffer)
13ba0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 ))...........(inhibit-read-only.
13bc0 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e t)...........(start-line.(line-n
13be0 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d umber-at-pos))...........(start-
13c00 63 6f 6c 75 6d 6e 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 column.(current-column))........
13c20 20 20 20 28 70 72 69 6d 69 74 69 76 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 ...(primitive-p.(helpful--primit
13c40 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c ive-p.helpful--sym.helpful--call
13c60 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 able-p))...........(canonical-sy
13c80 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 62 6f 6c 20 68 65 6c m.(helpful--canonical-symbol.hel
13ca0 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a pful--sym.helpful--callable-p)).
13cc0 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 2d 66 6f 72 2d 73 72 63 20 28 6f 72 20 28 6e 6f 74 ..........(look-for-src.(or.(not
13ce0 20 70 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .primitive-p)...................
13d00 20 20 20 20 20 20 20 20 20 20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 ..........find-function-C-source
13d20 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 62 75 66 20 70 6f 73 -directory))...........((buf.pos
13d40 20 6f 70 65 6e 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6c 6f 6f 6b 2d 66 6f 72 .opened)............(if.look-for
13d60 2d 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 64 65 -src................(helpful--de
13d80 66 69 6e 69 74 69 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 finition.helpful--sym.helpful--c
13da0 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 6e 69 6c 20 6e 69 allable-p)..............'(nil.ni
13dc0 6c 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6f 75 72 63 65 20 28 77 68 65 6e l.nil)))...........(source.(when
13de0 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .look-for-src...................
13e00 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 6f 75 72 63 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 ..(helpful--source.helpful--sym.
13e20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 29 29 29 0a 20 helpful--callable-p.buf.pos)))..
13e40 20 20 20 20 20 20 20 20 20 28 73 6f 75 72 63 65 2d 70 61 74 68 20 28 77 68 65 6e 20 62 75 66 0a .........(source-path.(when.buf.
13e60 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 62 75 66 66 65 72 .........................(buffer
13e80 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 66 -file-name.buf)))...........(ref
13ea0 65 72 65 6e 63 65 73 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 63 75 6c 61 74 65 2d 72 65 66 65 erences.(helpful--calculate-refe
13ec0 72 65 6e 63 65 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 68 65 rences........................he
13ee0 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 lpful--sym.helpful--callable-p..
13f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 70 61 74 ......................source-pat
13f20 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 61 73 65 73 20 28 68 65 6c 70 66 75 6c 2d h))...........(aliases.(helpful-
13f40 2d 61 6c 69 61 73 65 73 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 -aliases.helpful--sym.helpful--c
13f60 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 0a 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 allable-p)))......(erase-buffer)
13f80 0a 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 73 75 6d 6d 61 72 79 20 ......(insert.(helpful--summary.
13fa0 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 helpful--sym.helpful--callable-p
13fc0 20 62 75 66 20 70 6f 73 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d .buf.pos))......(when.(helpful--
13fe0 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 obsolete-info.helpful--sym.helpf
14000 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 ul--callable-p).......(insert...
14020 20 20 20 20 20 22 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 ....."\n\n"........(helpful--for
14040 6d 61 74 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 mat-obsolete-info.helpful--sym.h
14060 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e elpful--callable-p)))......(when
14080 20 28 61 6e 64 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 .(and.helpful--callable-p.......
140a0 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d 6d 61 63 72 .........(not.(helpful--kbd-macr
140c0 6f 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 o-p.helpful--sym))).......(helpf
140e0 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 20 20 20 20 20 20 ul--insert-section-break).......
14100 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 (insert........(helpful--heading
14120 20 22 53 69 67 6e 61 74 75 72 65 22 29 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 ."Signature")........(helpful--s
14140 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 20 28 68 65 6c 70 66 75 6c 2d 2d 73 69 67 6e 61 74 yntax-highlight.(helpful--signat
14160 75 72 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 ure.helpful--sym))))......(when.
14180 28 6e 6f 74 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 (not.helpful--callable-p).......
141a0 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a (helpful--insert-section-break).
141c0 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a ......(let*.((sym.helpful--sym).
141e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 75 6c 74 69 70 6c 65 2d 76 69 65 77 73 2d 70 0a 20 .............(multiple-views-p..
14200 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 70 20 76 61 6c 29 0a 20 .............(or.(stringp.val)..
14220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 6d 61 70 70 20 76 61 6c 29 0a 20 .................(keymapp.val)..
14240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d .................(helpful--hook-
14260 70 20 73 79 6d 20 76 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 68 65 6c 70 p.sym.val)))).........(when.help
14280 66 75 6c 2d 2d 66 69 72 73 74 2d 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 ful--first-display...........(if
142a0 20 28 73 74 72 69 6e 67 70 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .(stringp.val)...............;;.
142c0 46 6f 72 20 73 74 72 69 6e 67 73 2c 20 69 74 27 73 20 6d 6f 72 65 20 69 6e 74 75 69 74 69 76 65 For.strings,.it's.more.intuitive
142e0 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 6d 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 .to.display.them.as.............
14300 20 20 3b 3b 20 6c 69 74 65 72 61 6c 73 2c 20 73 6f 20 22 31 22 20 61 6e 64 20 31 20 61 72 65 20 ..;;.literals,.so."1".and.1.are.
14320 64 69 73 74 69 6e 63 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 distinct................(setq.he
14340 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 lpful--view-literal.t)..........
14360 20 20 20 3b 3b 20 46 6f 72 20 65 76 65 72 79 74 68 69 6e 67 20 65 6c 73 65 2c 20 70 72 65 66 65 ...;;.For.everything.else,.prefe
14380 72 20 74 68 65 20 70 72 65 74 74 79 20 76 69 65 77 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 0a r.the.pretty.view.if.available..
143a0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d ............(setq.helpful--view-
143c0 6c 69 74 65 72 61 6c 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 literal.nil))).........(insert..
143e0 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 0a 20 20 20 20 20 20 ........(helpful--heading.......
14400 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 66 66 65 72 2d 6c ....(cond............;;.Buffer-l
14420 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 61 6e 64 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 ocal.variable.and.we're.looking.
14440 61 74 20 74 68 65 20 76 61 6c 75 65 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 20 at.the.value.in............;;.a.
14460 73 70 65 63 69 66 69 63 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e specific.buffer.............((an
14480 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 d..............helpful--associat
144a0 65 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 76 61 ed-buffer..............(local-va
144c0 72 69 61 62 6c 65 2d 70 20 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 riable-p.sym.helpful--associated
144e0 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 56 -buffer)).............(format."V
14500 61 6c 75 65 20 69 6e 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alue.in.%s".....................
14520 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (helpful--button................
14540 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 23 3c 62 75 66 66 65 72 20 25 73 3e 22 20 28 62 75 ......(format."#<buffer.%s>".(bu
14560 66 66 65 72 2d 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 ffer-name.helpful--associated-bu
14580 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c ffer))......................'hel
145a0 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pful-buffer-button..............
145c0 20 20 20 20 20 20 20 20 27 62 75 66 66 65 72 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 ........'buffer.helpful--associa
145e0 74 65 64 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 20 ted-buffer......................
14600 27 70 6f 73 69 74 69 6f 6e 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 'position.pos)))............;;.B
14620 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 62 75 74 20 64 65 66 61 75 6c 74 uffer-local.variable.but.default
14640 2f 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 63 61 /global.value.............((loca
14660 6c 2d 76 61 72 69 61 62 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 l-variable-if-set-p.sym)........
14680 20 20 20 20 20 22 47 6c 6f 62 61 6c 20 56 61 6c 75 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ....."Global.Value")............
146a0 3b 3b 20 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 6e 6f 74 20 62 75 66 66 65 72 2d 6c ;;.This.variable.is.not.buffer-l
146c0 6f 63 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 20 22 56 61 6c 75 65 22 29 29 29 0a 20 ocal.............(t."Value")))..
146e0 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 73 ........(helpful--format-value.s
14700 79 6d 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 ym.val).........."\n\n")........
14720 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 6c 75 65 2d .(when.(helpful--original-value-
14740 64 69 66 66 65 72 73 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 differs-p.sym)...........(insert
14760 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 4f ............(helpful--heading."O
14780 72 69 67 69 6e 61 6c 20 56 61 6c 75 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 riginal.Value")............(help
147a0 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 79 ful--format-value.............sy
147c0 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 72 69 m.............(car.(helpful--ori
147e0 67 69 6e 61 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 5c ginal-value.sym)))............"\
14800 6e 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6d 75 6c 74 69 70 6c 65 2d 76 69 n\n")).........(when.multiple-vi
14820 65 77 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c ews-p...........(insert.(helpful
14840 2d 2d 6d 61 6b 65 2d 74 6f 67 67 6c 65 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 6f 6e 29 20 22 20 --make-toggle-literal-button).".
14860 22 29 29 0a 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 "))..........(when.(local-variab
14880 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 le-if-set-p.sym)...........(inse
148a0 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 rt............(helpful--button..
148c0 20 20 20 20 20 20 20 20 20 20 20 22 42 75 66 66 65 72 20 76 61 6c 75 65 73 22 0a 20 20 20 20 20 ..........."Buffer.values"......
148e0 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 .......'helpful-associated-buffe
14900 72 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d r-button.............'symbol.sym
14920 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 6f 6d 70 74 2d 70 20 74 29 0a 20 20 20 20 20 20 .............'prompt-p.t).......
14940 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 ....."."............(helpful--bu
14960 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 47 6c 6f 62 61 6c 20 76 61 6c 75 65 22 0a tton............."Global.value".
14980 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 61 73 73 6f 63 69 61 74 65 64 2d ............'helpful-associated-
149a0 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f buffer-button.............'symbo
149c0 6c 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 6f 6d 70 74 2d 70 20 6e 69 6c 29 l.sym.............'prompt-p.nil)
149e0 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 ............".")).........(when.
14a00 28 6d 65 6d 71 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d 76 61 6c 75 65 20 68 65 6c 70 66 75 (memq.(helpful--sym-value.helpfu
14a20 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 l--sym.helpful--associated-buffe
14a40 72 29 20 27 28 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 r).'(nil.t))...........(insert.(
14a60 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 6f 67 67 6c 65 2d 62 75 74 74 6f 6e 20 68 65 6c 70 helpful--make-toggle-button.help
14a80 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 ful--sym.helpful--associated-buf
14aa0 66 65 72 29 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 fer).".")).........(insert.(help
14ac0 66 75 6c 2d 2d 6d 61 6b 65 2d 73 65 74 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 ful--make-set-button.helpful--sy
14ae0 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 29 0a 20 m.helpful--associated-buffer))..
14b00 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 75 73 74 6f 6d 2d 76 61 72 69 61 62 6c 65 2d 70 20 .......(when.(custom-variable-p.
14b20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 helpful--sym)...........(insert.
14b40 22 20 22 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 75 73 74 6f 6d 69 7a 65 2d 62 75 74 ".".(helpful--make-customize-but
14b60 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 29 0a 0a 20 20 20 20 28 6c 65 74 20 ton.helpful--sym)))))......(let.
14b80 28 28 64 6f 63 73 74 72 69 6e 67 20 28 68 65 6c 70 66 75 6c 2d 2d 64 6f 63 73 74 72 69 6e 67 20 ((docstring.(helpful--docstring.
14ba0 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 helpful--sym.helpful--callable-p
14bc0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 20 28 75 6e 6c 65 ))...........(version-info.(unle
14be0 73 73 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 ss.helpful--callable-p..........
14c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 76 65 72 73 69 .................(helpful--versi
14c20 6f 6e 2d 69 6e 66 6f 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 28 on-info.helpful--sym)))).......(
14c40 77 68 65 6e 20 28 6f 72 20 64 6f 63 73 74 72 69 6e 67 20 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 29 when.(or.docstring.version-info)
14c60 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f .........(helpful--insert-sectio
14c80 6e 2d 62 72 65 61 6b 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 n-break).........(insert........
14ca0 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 44 6f 63 75 6d 65 6e 74 61 74 69 ..(helpful--heading."Documentati
14cc0 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 6f 63 73 74 72 69 6e 67 0a 20 20 on")).........(when.docstring...
14ce0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 ........(insert.(helpful--format
14d00 2d 64 6f 63 73 74 72 69 6e 67 20 64 6f 63 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 -docstring.docstring))).........
14d20 28 77 68 65 6e 20 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e (when.version-info...........(in
14d40 73 65 72 74 20 22 5c 6e 5c 6e 22 20 28 73 2d 77 6f 72 64 2d 77 72 61 70 20 37 30 20 76 65 72 73 sert."\n\n".(s-word-wrap.70.vers
14d60 69 6f 6e 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 ion-info))).........(when.(and.(
14d80 73 79 6d 62 6f 6c 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 symbolp.helpful--sym)...........
14da0 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 .........helpful--callable-p....
14dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 61 73 2d 73 68 ................(helpful--has-sh
14de0 6f 72 74 64 6f 63 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 ortdoc-p.helpful--sym)).........
14e00 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 ..(insert."\n\n")...........(ins
14e20 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 73 68 6f 72 74 64 6f 63 2d 73 65 6e 74 ert.(helpful--make-shortdoc-sent
14e40 65 6e 63 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 ence.helpful--sym))).........(wh
14e60 65 6e 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 20 28 en.(and.(symbolp.helpful--sym).(
14e80 68 65 6c 70 66 75 6c 2d 2d 69 6e 2d 6d 61 6e 75 61 6c 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 helpful--in-manual-p.helpful--sy
14ea0 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 5c 6e 22 29 0a 20 20 m))...........(insert."\n\n")...
14ec0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 6d ........(insert.(helpful--make-m
14ee0 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 29 0a 0a anual-button.helpful--sym)))))..
14f00 20 20 20 20 3b 3b 20 53 68 6f 77 20 6b 65 79 62 69 6e 64 69 6e 67 73 2e 0a 20 20 20 20 3b 3b 20 ....;;.Show.keybindings......;;.
14f20 54 4f 44 4f 3a 20 61 6c 6c 6f 77 20 75 73 65 72 73 20 74 6f 20 63 6f 6e 76 65 6e 69 65 6e 74 6c TODO:.allow.users.to.convenientl
14f40 79 20 61 64 64 20 61 6e 64 20 72 65 6d 6f 76 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 2e 0a 20 20 y.add.and.remove.keybindings....
14f60 20 20 28 77 68 65 6e 20 28 63 6f 6d 6d 61 6e 64 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a ..(when.(commandp.helpful--sym).
14f80 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 ......(helpful--insert-section-b
14fa0 72 65 61 6b 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 reak).......(insert........(help
14fc0 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 4b 65 79 20 42 69 6e 64 69 6e 67 73 22 29 0a 20 20 20 ful--heading."Key.Bindings")....
14fe0 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6b 65 79 73 20 68 65 6c 70 66 75 ....(helpful--format-keys.helpfu
15000 6c 2d 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 29 29 0a 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d l--sym.aliases)))......(helpful-
15020 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 0a 20 20 20 20 28 69 6e 73 -insert-section-break)......(ins
15040 65 72 74 0a 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 52 65 66 65 ert......(helpful--heading."Refe
15060 72 65 6e 63 65 73 22 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 73 72 63 2d 62 75 74 74 6f 6e 0a rences")......(let.((src-button.
15080 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 ............(when.source-path...
150a0 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 61 74 65 2d 62 ............(helpful--navigate-b
150c0 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d utton................(file-name-
150e0 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 nondirectory.source-path).......
15100 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 .........source-path............
15120 20 20 20 20 28 6f 72 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 ....(or.pos....................0
15140 29 29 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 28 28 61 6e 64 )))))........(cond.........((and
15160 20 73 6f 75 72 63 65 2d 70 61 74 68 20 72 65 66 65 72 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 .source-path.references)........
15180 20 20 28 66 6f 72 6d 61 74 20 22 52 65 66 65 72 65 6e 63 65 73 20 69 6e 20 25 73 3a 5c 6e 25 73 ..(format."References.in.%s:\n%s
151a0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 72 63 2d 62 75 74 74 6f 6e 0a 20 20 "..................src-button...
151c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d ...............(helpful--format-
151e0 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 73 20 72 65 66 65 72 65 6e 63 65 73 20 73 6f 75 72 63 65 position-heads.references.source
15200 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 73 6f 75 72 63 65 2d 70 61 -path))).........((and.source-pa
15220 74 68 20 70 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 th.primitive-p)..........(format
15240 0a 20 20 20 20 20 20 20 20 20 20 22 46 69 6e 64 69 6e 67 20 72 65 66 65 72 65 6e 63 65 73 20 69 ..........."Finding.references.i
15260 6e 20 61 20 2e 25 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 2e 22 0a n.a..%s.file.is.not.supported.".
15280 20 20 20 20 20 20 20 20 20 20 28 66 2d 65 78 74 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 29 0a ..........(f-ext.source-path))).
152a0 20 20 20 20 20 20 20 20 28 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 28 66 ........(source-path..........(f
152c0 6f 72 6d 61 74 20 22 25 73 20 69 73 20 75 6e 75 73 65 64 20 69 6e 20 25 73 2e 22 0a 20 20 20 20 ormat."%s.is.unused.in.%s.".....
152e0 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 0a 20 20 20 20 20 20 .............helpful--sym.......
15300 20 20 20 20 20 20 20 20 20 20 20 73 72 63 2d 62 75 74 74 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 ...........src-button)).........
15320 28 28 61 6e 64 20 70 72 69 6d 69 74 69 76 65 2d 70 20 28 6e 75 6c 6c 20 66 69 6e 64 2d 66 75 6e ((and.primitive-p.(null.find-fun
15340 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 ction-C-source-directory))......
15360 20 20 20 20 22 43 20 63 6f 64 65 20 69 73 20 6e 6f 74 20 79 65 74 20 6c 6f 61 64 65 64 2e 22 29 ...."C.code.is.not.yet.loaded.")
15380 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 .........(t.........."Could.not.
153a0 66 69 6e 64 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 22 29 29 29 0a 20 20 20 20 20 22 5c 6e 5c 6e find.source.file.")))......"\n\n
153c0 22 0a 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 65 66 65 72 65 6e 63 65 73 "......(helpful--make-references
153e0 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 -button.helpful--sym.helpful--ca
15400 6c 6c 61 62 6c 65 2d 70 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 llable-p))......(when.(and......
15420 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 ......helpful--callable-p.......
15440 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 .....(symbolp.helpful--sym).....
15460 20 20 20 20 20 20 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 70 72 .......source............(not.pr
15480 69 6d 69 74 69 76 65 2d 70 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 imitive-p)).......(insert.......
154a0 20 22 20 22 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 61 6c 6c 65 ."."........(helpful--make-calle
154c0 65 73 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 73 6f 75 72 63 65 29 29 29 es-button.helpful--sym.source)))
154e0 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 61 64 76 69 73 65 64 2d 70 20 ......(when.(helpful--advised-p.
15500 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e helpful--sym).......(helpful--in
15520 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 sert-section-break).......(inser
15540 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 41 64 76 69 t........(helpful--heading."Advi
15560 63 65 22 29 0a 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 54 68 69 73 20 25 73 20 69 73 20 ce")........(format."This.%s.is.
15580 61 64 76 69 73 65 64 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 61 advised."................(if.(ma
155a0 63 72 6f 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 20 22 6d 61 63 72 6f 22 20 22 66 75 6e 63 crop.helpful--sym)."macro"."func
155c0 74 69 6f 6e 22 29 29 29 29 0a 0a 20 20 20 20 28 6c 65 74 20 28 28 63 61 6e 2d 65 64 65 62 75 67 tion"))))......(let.((can-edebug
155e0 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 2d 65 64 65 62 75 67 ............(helpful--can-edebug
15600 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c -p.helpful--sym.helpful--callabl
15620 65 2d 70 20 62 75 66 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 2d 74 72 61 e-p.buf.pos))...........(can-tra
15640 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c 70 ce............(and.(symbolp.help
15660 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 ful--sym).................helpfu
15680 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b l--callable-p.................;;
156a0 20 54 72 61 63 69 6e 67 20 75 73 65 73 20 61 64 76 69 63 65 2c 20 61 6e 64 20 79 6f 75 20 63 61 .Tracing.uses.advice,.and.you.ca
156c0 6e 27 74 20 61 70 70 6c 79 20 61 64 76 69 63 65 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 n't.apply.advice.to.............
156e0 20 20 20 20 3b 3b 20 70 72 69 6d 69 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 ....;;.primitive.functions.that.
15700 61 72 65 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 73 70 65 63 69 61 6c 0a 20 20 20 20 20 20 are.replaced.with.special.......
15720 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 70 63 6f 64 65 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c ..........;;.opcodes..For.exampl
15740 65 2c 20 60 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 e,.`narrow-to-region'...........
15760 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 20 28 73 79 6d 62 6f 6c 2d 70 .......(not.(plist-get.(symbol-p
15780 6c 69 73 74 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 20 27 62 79 74 65 2d 6f 70 63 6f 64 65 29 list.helpful--sym).'byte-opcode)
157a0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 )))...........(can-disassemble..
157c0 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 ..........(and.helpful--callable
157e0 2d 70 20 28 6e 6f 74 20 70 72 69 6d 69 74 69 76 65 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 -p.(not.primitive-p)))..........
15800 20 28 63 61 6e 2d 66 6f 72 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f .(can-forget............(and.(no
15820 74 20 28 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 t.(special-form-p.helpful--sym))
15840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 70 72 69 6d 69 74 69 76 65 2d .................(not.primitive-
15860 70 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 63 61 6e 2d 65 64 65 62 75 67 p)))).......(when.(or.can-edebug
15880 20 63 61 6e 2d 74 72 61 63 65 20 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 20 63 61 6e 2d 66 .can-trace.can-disassemble.can-f
158a0 6f 72 67 65 74 29 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d orget).........(helpful--insert-
158c0 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 section-break).........(insert.(
158e0 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 44 65 62 75 67 67 69 6e 67 22 29 29 29 0a helpful--heading."Debugging"))).
15900 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 65 64 65 62 75 67 0a 20 20 20 20 20 20 20 20 28 ......(when.can-edebug.........(
15920 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 65 insert..........(helpful--make-e
15940 64 65 62 75 67 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 20 debug-button.helpful--sym)))....
15960 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e ...(when.can-trace.........(when
15980 20 63 61 6e 2d 65 64 65 62 75 67 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 .can-edebug...........(insert.".
159a0 22 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 28 68 65 ")).........(insert..........(he
159c0 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 72 61 63 69 6e 67 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 lpful--make-tracing-button.helpf
159e0 75 6c 2d 2d 73 79 6d 29 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 ul--sym)))........(when.(and....
15a00 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 63 61 6e 2d 65 64 65 62 75 67 20 63 61 6e 2d 74 72 61 ..........(or.can-edebug.can-tra
15a20 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 63 61 6e 2d 64 69 73 61 73 73 65 ce)..............(or.can-disasse
15a40 6d 62 6c 65 20 63 61 6e 2d 66 6f 72 67 65 74 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 mble.can-forget)).........(inser
15a60 74 20 22 5c 6e 22 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 64 69 73 61 73 73 t."\n"))........(when.can-disass
15a80 65 6d 62 6c 65 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d emble.........(insert.(helpful--
15aa0 6d 61 6b 65 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d make-disassemble-button.helpful-
15ac0 2d 73 79 6d 29 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 66 6f 72 67 65 74 0a -sym)))........(when.can-forget.
15ae0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 20 ........(when.can-disassemble...
15b00 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 28 69 ........(insert.".")).........(i
15b20 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 66 6f 72 67 65 74 2d 62 75 74 74 nsert.(helpful--make-forget-butt
15b40 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c on.helpful--sym.helpful--callabl
15b60 65 2d 70 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 61 6c 69 61 73 65 73 0a 20 20 20 20 20 e-p))))......(when.aliases......
15b80 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 .(helpful--insert-section-break)
15ba0 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d .......(insert........(helpful--
15bc0 68 65 61 64 69 6e 67 20 22 41 6c 69 61 73 65 73 22 29 0a 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 heading."Aliases")........(s-joi
15be0 6e 20 22 5c 6e 22 20 28 2d 2d 6d 61 70 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 n."\n".(--map.(helpful--format-a
15c00 6c 69 61 73 20 69 74 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 lias.it.helpful--callable-p)....
15c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 69 61 73 65 73 29 ........................aliases)
15c40 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 )))......(when.helpful--callable
15c60 2d 70 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 69 6d 70 6c 65 6d -p.......(helpful--insert-implem
15c80 65 6e 74 61 74 69 6f 6e 73 29 29 0a 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 entations))......(helpful--inser
15ca0 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 t-section-break)......(when.(or.
15cc0 73 6f 75 72 63 65 2d 70 61 74 68 20 70 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 28 source-path.primitive-p).......(
15ce0 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 0a insert........(helpful--heading.
15d00 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 63 61 6e ........(if.(eq.helpful--sym.can
15d20 6f 6e 69 63 61 6c 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 53 6f 75 72 63 65 20 onical-sym)............."Source.
15d40 43 6f 64 65 22 0a 20 20 20 20 20 20 20 20 20 20 22 41 6c 69 61 73 20 53 6f 75 72 63 65 20 43 6f Code"..........."Alias.Source.Co
15d60 64 65 22 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 73 6f 75 72 de"))........(cond.........(sour
15d80 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 ce-path..........(concat........
15da0 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 25 73 20 44 65 66 69 6e ...(propertize.(format."%s.Defin
15dc0 65 64 20 69 6e 20 22 20 28 69 66 20 70 72 69 6d 69 74 69 76 65 2d 70 20 22 2f 2f 22 20 22 3b 3b ed.in.".(if.primitive-p."//".";;
15de0 22 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 27 66 61 63 65 20 ")).......................'face.
15e00 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 'font-lock-comment-face)........
15e20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 61 74 65 2d 62 75 74 74 6f 6e 0a 20 20 20 ...(helpful--navigate-button....
15e40 20 20 20 20 20 20 20 20 28 66 2d 61 62 62 72 65 76 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 ........(f-abbrev.source-path)..
15e60 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 ..........source-path...........
15e80 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 28 .pos)..........."\n")).........(
15ea0 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 primitive-p..........(concat....
15ec0 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 22 43 .......(propertize............"C
15ee0 20 63 6f 64 65 20 69 73 20 6e 6f 74 20 79 65 74 20 6c 6f 61 64 65 64 2e 22 0a 20 20 20 20 20 20 .code.is.not.yet.loaded.".......
15f00 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 .....'face.'font-lock-comment-fa
15f20 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 28 ce)..........."\n\n"...........(
15f40 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 22 53 65 74 20 helpful--button............"Set.
15f60 43 20 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 27 C.source.directory"............'
15f80 68 65 6c 70 66 75 6c 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 29 helpful-c-source-directory))))))
15fa0 0a 20 20 20 20 28 77 68 65 6e 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a .....(when.source.......(insert.
15fc0 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 73 .......(cond.........((stringp.s
15fe0 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 6f 64 65 20 28 77 68 65 ource)..........(let.((mode.(whe
16000 6e 20 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.primitive-p...................
16020 20 20 20 20 20 28 70 63 61 73 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e .....(pcase.(file-name-extension
16040 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .source-path)...................
16060 20 20 20 20 20 20 20 28 22 63 22 20 27 63 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 .......("c".'c-mode)............
16080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 72 73 22 20 28 77 68 65 6e 20 28 66 62 6f 75 6e ..............("rs".(when.(fboun
160a0 64 70 20 27 72 75 73 74 2d 6d 6f 64 65 29 20 27 72 75 73 74 2d 6d 6f 64 65 29 29 29 29 29 29 0a dp.'rust-mode).'rust-mode)))))).
160c0 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6e 74 61 78 2d 68 69 67 68 ...........(helpful--syntax-high
160e0 6c 69 67 68 74 20 73 6f 75 72 63 65 20 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 light.source.mode))).........((a
16100 6e 64 20 28 63 6f 6e 73 70 20 73 6f 75 72 63 65 29 20 28 65 71 20 28 63 61 72 20 73 6f 75 72 63 nd.(consp.source).(eq.(car.sourc
16120 65 29 20 27 63 6c 6f 73 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d e).'closure))..........(helpful-
16140 2d 73 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e -syntax-highlight...........(con
16160 63 61 74 20 22 3b 3b 20 43 6c 6f 73 75 72 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 64 65 66 cat.";;.Closure.converted.to.def
16180 75 6e 20 62 79 20 68 65 6c 70 66 75 6c 2e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 un.by.helpful.\n"...............
161a0 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 0a 20 20 20 20 20 ....(helpful--pretty-print......
161c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 ..............(helpful--format-c
161e0 6c 6f 73 75 72 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 73 6f 75 72 63 65 29 29 29 29 29 0a losure.helpful--sym.source))))).
16200 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 ........(t..........(helpful--sy
16220 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 ntax-highlight...........(concat
16240 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d ............(if.(eq.helpful--sym
16260 20 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 .canonical-sym)................"
16280 3b 3b 20 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 73 ;;.Could.not.find.source.code,.s
162a0 68 6f 77 69 6e 67 20 72 61 77 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2e 5c 6e 22 0a 20 howing.raw.function.object.\n"..
162c0 20 20 20 20 20 20 20 20 20 20 20 20 22 3b 3b 20 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 ............";;.Could.not.find.a
162e0 6c 69 61 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 73 68 6f 77 69 6e 67 20 72 61 77 20 66 75 lias.source.code,.showing.raw.fu
16300 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 nction.object.\n")............(h
16320 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 73 6f 75 72 63 65 29 29 29 29 29 elpful--pretty-print.source)))))
16340 29 29 0a 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e ))......(helpful--insert-section
16360 2d 62 72 65 61 6b 29 0a 0a 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 66 6f 72 6d 61 74 74 -break)......(-when-let.(formatt
16380 65 64 2d 70 72 6f 70 73 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 6f 70 65 72 ed-props.(helpful--format-proper
163a0 74 69 65 73 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 ties.helpful--sym)).......(inser
163c0 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 53 79 6d 62 t........(helpful--heading."Symb
163e0 6f 6c 20 50 72 6f 70 65 72 74 69 65 73 22 29 0a 20 20 20 20 20 20 20 66 6f 72 6d 61 74 74 65 64 ol.Properties")........formatted
16400 2d 70 72 6f 70 73 29 29 0a 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d -props))......(goto-char.(point-
16420 6d 69 6e 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 73 74 61 72 min)).....(forward-line.(1-.star
16440 74 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 73 74 61 72 74 t-line)).....(forward-char.start
16460 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 66 69 72 73 -column).....(setq.helpful--firs
16480 74 2d 64 69 73 70 6c 61 79 20 6e 69 6c 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 6f 70 65 6e 65 64 t-display.nil)......(when.opened
164a0 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 29 29 29 0a 0a 3b 3b 20 .......(kill-buffer.buf))))..;;.
164c0 54 4f 44 4f 3a 20 74 68 69 73 20 69 73 6e 27 74 20 73 75 66 66 69 63 69 65 6e 74 20 66 6f 72 20 TODO:.this.isn't.sufficient.for.
164e0 60 65 64 65 62 75 67 2d 65 76 61 6c 2d 64 65 66 75 6e 27 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 `edebug-eval-defun'..(defun.help
16500 66 75 6c 2d 2d 73 6b 69 70 2d 61 64 76 69 63 65 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 ful--skip-advice.(docstring)..."
16520 52 65 6d 6f 76 65 20 6d 65 6e 74 69 6f 6e 73 20 6f 66 20 61 64 76 69 63 65 20 66 72 6f 6d 20 44 Remove.mentions.of.advice.from.D
16540 4f 43 53 54 52 49 4e 47 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 73 20 28 73 2d 6c 69 OCSTRING."...(let*.((lines.(s-li
16560 6e 65 73 20 64 6f 63 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 6c 65 76 61 nes.docstring))..........(releva
16580 6e 74 2d 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 nt-lines...........(--drop-while
165a0 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 ............(or.(s-starts-with-p
165c0 20 22 3a 61 72 6f 75 6e 64 20 61 64 76 69 63 65 3a 22 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 .":around.advice:".it)..........
165e0 20 20 20 20 20 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 54 68 69 73 20 66 75 6e ......(s-starts-with-p."This.fun
16600 63 74 69 6f 6e 20 68 61 73 20 3a 61 72 6f 75 6e 64 20 61 64 76 69 63 65 3a 22 20 69 74 29 29 0a ction.has.:around.advice:".it)).
16620 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 73 29 29 29 0a 20 20 20 20 28 73 2d 74 72 69 6d 20 ...........lines))).....(s-trim.
16640 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 72 65 6c 65 76 61 6e 74 2d 6c 69 6e 65 73 29 29 29 29 0a (s-join."\n".relevant-lines)))).
16660 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 72 67 75 6d 65 6e 74 .(defun.helpful--format-argument
16680 20 28 61 72 67 29 0a 20 20 22 46 6f 72 6d 61 74 20 41 52 47 20 28 61 20 73 79 6d 62 6f 6c 29 20 .(arg)..."Format.ARG.(a.symbol).
166a0 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 45 6d 61 63 73 20 68 65 6c 70 20 63 6f 6e 76 65 6e 74 69 according.to.Emacs.help.conventi
166c0 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 72 67 2d 73 74 72 20 28 73 79 6d 62 6f 6c 2d 6e ons."...(let.((arg-str.(symbol-n
166e0 61 6d 65 20 61 72 67 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 ame.arg))).....(if.(s-starts-wit
16700 68 2d 70 20 22 26 22 20 61 72 67 2d 73 74 72 29 0a 20 20 20 20 20 20 20 20 61 72 67 2d 73 74 72 h-p."&".arg-str).........arg-str
16720 0a 20 20 20 20 20 20 28 73 2d 75 70 63 61 73 65 20 61 72 67 2d 73 74 72 29 29 29 29 0a 0a 28 64 .......(s-upcase.arg-str))))..(d
16740 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c 20 28 73 79 6d efun.helpful--format-symbol.(sym
16760 29 0a 20 20 22 46 6f 72 6d 61 74 20 73 79 6d 62 6f 6c 20 61 73 20 61 20 73 74 72 69 6e 67 2c 20 )..."Format.symbol.as.a.string,.
16780 65 73 63 61 70 69 6e 67 20 61 73 20 6e 65 63 65 73 73 61 72 79 2e 22 0a 20 20 3b 3b 20 41 72 67 escaping.as.necessary."...;;.Arg
167a0 75 61 62 6c 79 20 74 68 69 73 20 69 73 20 61 6e 20 45 6d 61 63 73 20 62 75 67 2e 20 57 65 20 73 uably.this.is.an.Emacs.bug..We.s
167c0 68 6f 75 6c 64 20 62 65 20 61 62 6c 65 20 74 6f 20 75 73 65 0a 20 20 3b 3b 20 28 66 6f 72 6d 61 hould.be.able.to.use...;;.(forma
167e0 74 20 22 25 53 22 20 73 79 6d 29 0a 20 20 3b 3b 20 62 75 74 20 74 68 61 74 20 63 6f 6e 76 65 72 t."%S".sym)...;;.but.that.conver
16800 74 73 20 66 6f 6f 3f 20 74 6f 20 22 66 6f 6f 5c 5c 3f 22 2e 20 59 6f 75 20 63 61 6e 20 73 65 65 ts.foo?.to."foo\\?"..You.can.see
16820 20 74 68 69 73 20 69 6e 20 6f 74 68 65 72 0a 20 20 3b 3b 20 70 61 72 74 73 20 6f 66 20 74 68 65 .this.in.other...;;.parts.of.the
16840 20 45 6d 61 63 73 20 55 49 2c 20 73 75 63 68 20 61 73 20 45 52 54 2e 0a 20 20 28 73 2d 72 65 70 .Emacs.UI,.such.as.ERT....(s-rep
16860 6c 61 63 65 20 22 20 22 20 22 5c 5c 20 22 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 73 79 6d 29 lace."."."\\.".(format."%s".sym)
16880 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 74 68 69 73 20 69 73 20 62 72 6f 6b 65 6e 20 66 6f 72 20 ))..;;.TODO:.this.is.broken.for.
168a0 2d 61 6e 79 3f 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 69 67 6e 61 74 75 72 65 -any?..(defun.helpful--signature
168c0 20 28 73 79 6d 29 0a 20 20 22 47 65 74 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 20 66 6f 72 20 .(sym)..."Get.the.signature.for.
168e0 66 75 6e 63 74 69 6f 6e 20 53 59 4d 2c 20 61 73 20 61 20 73 74 72 69 6e 67 2e 0a 46 6f 72 20 65 function.SYM,.as.a.string..For.e
16900 78 61 6d 70 6c 65 2c 20 5c 22 28 73 6f 6d 65 2d 66 75 6e 63 20 46 4f 4f 20 26 6f 70 74 69 6f 6e xample,.\"(some-func.FOO.&option
16920 61 6c 20 42 41 52 29 5c 22 2e 22 0a 20 20 28 6c 65 74 20 28 64 6f 63 73 74 72 69 6e 67 2d 73 69 al.BAR)\"."...(let.(docstring-si
16940 67 0a 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 73 69 67 0a 20 20 20 20 20 20 20 20 28 61 64 g.........source-sig.........(ad
16960 76 65 72 74 69 73 65 64 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 79 vertised-args..........(when.(sy
16980 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 28 mbolp.sym)............(gethash.(
169a0 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 20 61 64 76 65 72 74 69 73 65 64 2d symbol-function.sym).advertised-
169c0 73 69 67 6e 61 74 75 72 65 2d 74 61 62 6c 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 47 65 74 20 74 signature-table)))).....;;.Get.t
169e0 68 65 20 75 73 61 67 65 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e he.usage.from.the.function.defin
16a00 69 74 69 6f 6e 2e 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 66 75 6e 63 74 69 6f 6e 2d 61 72 67 73 ition......(let*.((function-args
16a20 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(cond..............
16a40 28 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 ((symbolp.sym)...............(he
16a60 6c 70 2d 66 75 6e 63 74 69 6f 6e 2d 61 72 67 6c 69 73 74 20 73 79 6d 29 29 0a 20 20 20 20 20 20 lp-function-arglist.sym)).......
16a80 20 20 20 20 20 20 20 28 28 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 73 79 .......((byte-code-function-p.sy
16aa0 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 72 67 64 65 73 63 20 63 61 6e 20 m)...............;;.argdesc.can.
16ac0 62 65 20 61 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 6f 72 20 61 6e 20 69 6e 74 be.a.list.of.arguments.or.an.int
16ae0 65 67 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 6e 63 6f 64 69 6e 67 20 74 eger...............;;.encoding.t
16b00 68 65 20 6d 69 6e 2f 6d 61 78 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2e 20 he.min/max.number.of.arguments..
16b20 53 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 79 74 65 2d 43 6f 64 65 20 46 See...............;;.Byte-Code.F
16b40 75 6e 63 74 69 6f 6e 20 4f 62 6a 65 63 74 73 20 69 6e 20 74 68 65 20 65 6c 69 73 70 20 6d 61 6e unction.Objects.in.the.elisp.man
16b60 75 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 72 67 64 65 73 ual................(let.((argdes
16b80 63 20 28 61 72 65 66 20 73 79 6d 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.(aref.sym.0)))................
16ba0 20 28 69 66 20 28 63 6f 6e 73 70 20 61 72 67 64 65 73 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(if.(consp.argdesc)............
16bc0 20 20 20 20 20 20 20 20 20 61 72 67 64 65 73 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........argdesc................
16be0 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 70 72 6f 70 65 72 6c 79 20 68 61 6e 64 6c 65 20 61 72 67 64 ...;;.TODO:.properly.handle.argd
16c00 65 73 63 20 76 61 6c 75 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 esc.values....................ni
16c20 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 l)))..............(t............
16c40 20 20 20 3b 3b 20 49 6e 74 65 72 70 72 65 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 ...;;.Interpreted.function.(lamb
16c60 64 61 20 2e 2e 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 64 72 20 73 79 6d 29 da....)...............(cadr.sym)
16c80 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 2d 61 72 67 73 0a 20 )))............(formatted-args..
16ca0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 ...........(cond..............(a
16cc0 64 76 65 72 74 69 73 65 64 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d dvertised-args...............(-m
16ce0 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 72 67 75 6d 65 6e 74 20 61 64 ap.#'helpful--format-argument.ad
16d00 76 65 72 74 69 73 65 64 2d 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c vertised-args))..............((l
16d20 69 73 74 70 20 66 75 6e 63 74 69 6f 6e 2d 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 istp.function-args).............
16d40 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 72 67 75 6d 65 ..(-map.#'helpful--format-argume
16d60 6e 74 20 66 75 6e 63 74 69 6f 6e 2d 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.function-args))..............
16d80 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 66 75 6e 63 74 69 6f 6e 2d (t...............(list.function-
16da0 61 72 67 73 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 2d 73 69 67 args))))).......(setq.source-sig
16dc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(cond..............
16de0 3b 3b 20 49 66 20 69 74 27 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2c 20 6a 75 ;;.If.it's.a.function.object,.ju
16e00 73 74 20 73 68 6f 77 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 20 20 20 st.show.the.arguments...........
16e20 20 20 20 20 28 28 6e 6f 74 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 ....((not.(symbolp.sym))........
16e40 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 28 25 73 29 22 0a 20 20 20 20 20 20 20 20 20 20 .......(format."(%s)"...........
16e60 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 20 22 20 66 6f 72 6d 61 74 74 65 ............(s-join.".".formatte
16e80 64 2d 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 69 74 20 d-args)))..............;;.If.it.
16ea0 68 61 73 20 6d 75 6c 74 69 70 6c 65 20 61 72 67 75 6d 65 6e 74 73 2c 20 6a 6f 69 6e 20 74 68 65 has.multiple.arguments,.join.the
16ec0 6d 20 77 69 74 68 20 73 70 61 63 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 m.with.spaces...............(for
16ee0 6d 61 74 74 65 64 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 matted-args...............(forma
16f00 74 20 22 28 25 73 20 25 73 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t."(%s.%s)".....................
16f20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c 20 73 79 6d 29 0a 20 ..(helpful--format-symbol.sym)..
16f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 20 22 .....................(s-join."."
16f60 20 66 6f 72 6d 61 74 74 65 64 2d 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .formatted-args)))..............
16f80 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 ;;.Otherwise,.this.function.take
16fa0 73 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 77 68 65 6e 20 63 61 6c 6c 65 64 2e 0a 20 20 20 20 s.no.arguments.when.called......
16fc0 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 .........(t...............(forma
16fe0 74 20 22 28 25 73 29 22 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c t."(%s)".(helpful--format-symbol
17000 20 73 79 6d 29 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 64 6f 63 73 74 72 .sym))))))......;;.If.the.docstr
17020 69 6e 67 20 65 6e 64 73 20 77 69 74 68 20 28 66 6e 20 46 4f 4f 20 42 41 52 29 2c 20 65 78 74 72 ing.ends.with.(fn.FOO.BAR),.extr
17040 61 63 74 20 74 68 61 74 2e 0a 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 64 6f 63 73 74 72 act.that......(-when-let.(docstr
17060 69 6e 67 20 28 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 ing.(documentation.sym)).......(
17080 2d 77 68 65 6e 2d 6c 65 74 20 28 64 6f 63 73 74 72 69 6e 67 2d 77 69 74 68 2d 75 73 61 67 65 20 -when-let.(docstring-with-usage.
170a0 28 68 65 6c 70 2d 73 70 6c 69 74 2d 66 75 6e 64 6f 63 20 64 6f 63 73 74 72 69 6e 67 20 73 79 6d (help-split-fundoc.docstring.sym
170c0 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 63 73 74 72 69 6e 67 2d 73 69 67 20 28 )).........(setq.docstring-sig.(
170e0 63 61 72 20 64 6f 63 73 74 72 69 6e 67 2d 77 69 74 68 2d 75 73 61 67 65 29 29 29 29 0a 0a 20 20 car.docstring-with-usage))))....
17100 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 41 64 76 65 72 74 69 73 65 64 20 73 69 67 6e 61 ..(cond......;;.Advertised.signa
17120 74 75 72 65 20 61 6c 77 61 79 73 20 77 69 6e 73 2e 0a 20 20 20 20 20 28 61 64 76 65 72 74 69 73 ture.always.wins.......(advertis
17140 65 64 2d 61 72 67 73 0a 20 20 20 20 20 20 73 6f 75 72 63 65 2d 73 69 67 29 0a 20 20 20 20 20 3b ed-args.......source-sig)......;
17160 3b 20 49 66 20 74 68 61 74 27 73 20 6e 6f 74 20 73 65 74 2c 20 75 73 65 20 74 68 65 20 75 73 61 ;.If.that's.not.set,.use.the.usa
17180 67 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 6e 20 74 68 65 0a 20 20 20 20 20 3b 3b 20 ge.specification.in.the......;;.
171a0 64 6f 63 73 74 72 69 6e 67 2c 20 69 66 20 70 72 65 73 65 6e 74 2e 0a 20 20 20 20 20 28 64 6f 63 docstring,.if.present.......(doc
171c0 73 74 72 69 6e 67 2d 73 69 67 0a 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 string-sig.......(replace-regexp
171e0 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5c 5c 5c 5c 3d 5c 5c 28 5b 27 5c 5c 60 e2 80 98 e2 80 99 5d -in-string."\\\\=\\(['\\`......]
17200 5c 5c 29 22 20 22 5c 5c 31 22 20 64 6f 63 73 74 72 69 6e 67 2d 73 69 67 20 74 29 29 0a 20 20 20 \\)"."\\1".docstring-sig.t))....
17220 20 20 28 74 0a 20 20 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 6a 75 73 74 20 75 73 ..(t.......;;.Otherwise,.just.us
17240 65 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 20 66 72 6f 6d 20 74 68 65 20 73 6f 75 72 63 65 20 e.the.signature.from.the.source.
17260 63 6f 64 65 2e 0a 20 20 20 20 20 20 73 6f 75 72 63 65 2d 73 69 67 29 29 29 29 0a 0a 28 64 65 66 code........source-sig))))..(def
17280 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f un.helpful--format-obsolete-info
172a0 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 28 2d 6c 65 74 20 5b 28 75 73 65 20 .(sym.callable-p)...(-let.[(use.
172c0 5f 20 64 61 74 65 29 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 _.date).(helpful--obsolete-info.
172e0 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 5d 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 sym.callable-p)].....(helpful--f
17300 6f 72 6d 61 74 2d 64 6f 63 73 74 72 69 6e 67 0a 20 20 20 20 20 28 73 2d 77 6f 72 64 2d 77 72 61 ormat-docstring......(s-word-wra
17320 70 0a 20 20 20 20 20 20 37 30 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 54 68 69 73 20 25 p.......70.......(format."This.%
17340 73 20 69 73 20 6f 62 73 6f 6c 65 74 65 25 73 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 s.is.obsolete%s%s"..............
17360 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e 64 2d 6e 61 6d 65 20 73 79 6d 20 63 61 6c 6c 61 62 6c .(helpful--kind-name.sym.callabl
17380 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 61 74 65 20 28 66 6f 72 e-p)...............(if.date.(for
173a0 6d 61 74 20 22 20 73 69 6e 63 65 20 25 73 22 20 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 mat.".since.%s".date)...........
173c0 20 20 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 ......"")...............(cond.((
173e0 73 74 72 69 6e 67 70 20 75 73 65 29 20 28 63 6f 6e 63 61 74 20 22 3b 20 22 20 75 73 65 29 29 0a stringp.use).(concat.";.".use)).
17400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 20 28 66 6f 72 6d 61 74 ....................(use.(format
17420 20 22 3b 20 75 73 65 20 60 25 73 27 20 69 6e 73 74 65 61 64 2e 22 20 75 73 65 29 29 0a 20 20 20 .";.use.`%s'.instead.".use))....
17440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 22 2e 22 29 29 29 29 29 29 29 0a 0a .................(t.".")))))))..
17460 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 6f 63 73 74 72 69 6e 67 20 28 73 79 6d 20 63 (defun.helpful--docstring.(sym.c
17480 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 47 65 74 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 20 allable-p)..."Get.the.docstring.
174a0 66 6f 72 20 53 59 4d 2e 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 72 65 74 75 72 6e 73 20 for.SYM..Note.that.this.returns.
174c0 74 68 65 20 72 61 77 20 64 6f 63 73 74 72 69 6e 67 2c 20 69 6e 63 6c 75 64 69 6e 67 20 5c 5c 3d the.raw.docstring,.including.\\=
174e0 5c 5c 3d 0a 65 73 63 61 70 65 73 20 74 68 61 74 20 61 72 65 20 75 73 65 64 20 62 79 20 60 73 75 \\=.escapes.that.are.used.by.`su
17500 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 27 2e 22 0a 20 20 28 6c 65 74 20 bstitute-command-keys'."...(let.
17520 28 28 74 65 78 74 2d 71 75 6f 74 69 6e 67 2d 73 74 79 6c 65 20 27 67 72 61 76 65 29 0a 20 20 20 ((text-quoting-style.'grave)....
17540 20 20 20 20 20 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 .....docstring).....(if.callable
17560 2d 70 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 -p.........(progn...........(set
17580 71 20 64 6f 63 73 74 72 69 6e 67 20 28 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 79 6d 20 74 q.docstring.(documentation.sym.t
175a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 64 6f 63 73 74 72 69 ))...........(-when-let.(docstri
175c0 6e 67 2d 77 69 74 68 2d 75 73 61 67 65 20 28 68 65 6c 70 2d 73 70 6c 69 74 2d 66 75 6e 64 6f 63 ng-with-usage.(help-split-fundoc
175e0 20 64 6f 63 73 74 72 69 6e 67 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 .docstring.sym)).............(se
17600 74 71 20 64 6f 63 73 74 72 69 6e 67 20 28 63 64 72 20 64 6f 63 73 74 72 69 6e 67 2d 77 69 74 68 tq.docstring.(cdr.docstring-with
17620 2d 75 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 6f 63 73 74 -usage)).............(when.docst
17640 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 76 69 63 65 20 6d 75 74 ring...............;;.Advice.mut
17660 61 74 65 73 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 2c 20 73 65 65 0a 20 20 20 20 20 20 20 20 ates.the.docstring,.see.........
17680 20 20 20 20 20 20 3b 3b 20 60 61 64 76 69 63 65 2d 2d 6d 61 6b 65 2d 64 6f 63 73 74 72 69 6e 67 ......;;.`advice--make-docstring
176a0 27 2e 20 55 6e 64 6f 20 74 68 61 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 '..Undo.that................;;.T
176c0 4f 44 4f 3a 20 4f 6e 6c 79 20 64 6f 20 74 68 69 73 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f ODO:.Only.do.this.if.the.functio
176e0 6e 20 69 73 20 61 64 76 69 73 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 n.is.advised................(set
17700 71 20 64 6f 63 73 74 72 69 6e 67 20 28 68 65 6c 70 66 75 6c 2d 2d 73 6b 69 70 2d 61 64 76 69 63 q.docstring.(helpful--skip-advic
17720 65 20 64 6f 63 73 74 72 69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 63 e.docstring))))).......(setq.doc
17740 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 63 75 6d 65 6e 74 61 74 69 6f string.............(documentatio
17760 6e 2d 70 72 6f 70 65 72 74 79 20 73 79 6d 20 27 76 61 72 69 61 62 6c 65 2d 64 6f 63 75 6d 65 6e n-property.sym.'variable-documen
17780 74 61 74 69 6f 6e 20 74 29 29 29 0a 20 20 20 20 64 6f 63 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 tation.t))).....docstring))..(de
177a0 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 73 79 6d 62 6f 6c 20 28 70 72 6f 6d 70 74 fun.helpful--read-symbol.(prompt
177c0 20 64 65 66 61 75 6c 74 2d 76 61 6c 20 70 72 65 64 69 63 61 74 65 29 0a 20 20 22 52 65 61 64 20 .default-val.predicate)..."Read.
177e0 61 20 73 79 6d 62 6f 6c 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2c 20 77 69 a.symbol.from.the.minibuffer,.wi
17800 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 73 79 6d 62 6f th.completion..Returns.the.symbo
17820 6c 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 64 65 66 61 75 6c 74 2d 76 61 6c 0a 20 20 20 l."...(when.(and.default-val....
17840 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 61 74 ..........(not.(funcall.predicat
17860 65 20 64 65 66 61 75 6c 74 2d 76 61 6c 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 64 65 66 61 75 e.default-val))).....(setq.defau
17880 6c 74 2d 76 61 6c 20 6e 69 6c 29 29 0a 20 20 28 77 68 65 6e 20 64 65 66 61 75 6c 74 2d 76 61 6c lt-val.nil))...(when.default-val
178a0 0a 20 20 20 20 3b 3b 20 60 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 27 20 65 78 70 65 63 74 .....;;.`completing-read'.expect
178c0 73 20 61 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 28 73 65 74 71 20 64 65 66 61 75 6c 74 2d 76 61 s.a.string......(setq.default-va
178e0 6c 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 64 65 66 61 75 6c 74 2d 76 61 6c 29 29 0a 0a 20 20 l.(symbol-name.default-val))....
17900 20 20 3b 3b 20 54 4f 44 4f 3a 20 4f 6e 6c 79 20 6d 6f 64 69 66 79 20 74 68 65 20 70 72 6f 6d 70 ..;;.TODO:.Only.modify.the.promp
17920 74 20 77 68 65 6e 20 77 65 20 64 6f 6e 27 74 20 68 61 76 65 20 69 64 6f 2f 69 76 79 2f 68 65 6c t.when.we.don't.have.ido/ivy/hel
17940 6d 2c 0a 20 20 20 20 3b 3b 20 62 65 63 61 75 73 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 73 m,.....;;.because.the.default.is
17960 20 6f 62 76 69 6f 75 73 20 66 6f 72 20 74 68 65 6d 2e 0a 20 20 20 20 28 73 65 74 71 20 70 72 6f .obvious.for.them......(setq.pro
17980 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e mpt...........(replace-regexp-in
179a0 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 3a 20 22 20 65 6f 73 29 -string............(rx.":.".eos)
179c0 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 28 64 65 66 61 75 6c 74 3a 20 ............(format.".(default:.
179e0 25 73 29 3a 20 22 20 64 65 66 61 75 6c 74 2d 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 70 %s):.".default-val)............p
17a00 72 6f 6d 70 74 29 29 29 0a 20 20 28 69 6e 74 65 72 6e 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 rompt)))...(intern.(completing-r
17a20 65 61 64 20 70 72 6f 6d 70 74 20 6f 62 61 72 72 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ead.prompt.obarray..............
17a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 64 69 63 61 74 65 20 74 20 6e 69 6c 20 6e 69 ..............predicate.t.nil.ni
17a60 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 64 65 66 l............................def
17a80 61 75 6c 74 2d 76 61 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 75 70 64 ault-val)))..(defun.helpful--upd
17aa0 61 74 65 2d 61 6e 64 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 28 73 79 6d 62 6f 6c 20 63 61 ate-and-switch-buffer.(symbol.ca
17ac0 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 55 70 64 61 74 65 20 61 6e 64 20 73 77 69 74 63 68 20 74 llable-p)..."Update.and.switch.t
17ae0 6f 20 68 65 6c 70 20 62 75 66 66 65 72 20 66 6f 72 20 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 6c 65 o.help.buffer.for.SYMBOL."...(le
17b00 74 20 28 28 62 75 66 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 66 66 65 72 20 73 79 6d 62 6f 6c 20 t.((buf.(helpful--buffer.symbol.
17b20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d callable-p))).....(with-current-
17b40 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 buffer.buf.......(helpful-update
17b60 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 65 6c 70 66 75 6c 2d 73 77 69 74 63 68 2d 62 )).....(funcall.helpful-switch-b
17b80 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 62 75 66 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 uffer-function.buf)))..;;;###aut
17ba0 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 66 75 6e 63 74 69 6f 6e 20 28 73 oload.(defun.helpful-function.(s
17bc0 79 6d 62 6f 6c 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e ymbol)..."Show.help.for.function
17be0 20 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 68 65 6c 70 66 75 .named.SYMBOL...See.also.`helpfu
17c00 6c 2d 6d 61 63 72 6f 27 2c 20 60 68 65 6c 70 66 75 6c 2d 63 6f 6d 6d 61 6e 64 27 20 61 6e 64 20 l-macro',.`helpful-command'.and.
17c20 60 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 `helpful-callable'."...(interact
17c40 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 73 79 6d 62 ive....(list.(helpful--read-symb
17c60 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 46 75 6e 63 74 69 6f 6e 3a 20 22 0a 20 20 20 20 20 20 ol..........."Function:.".......
17c80 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 ....(helpful--callable-at-point)
17ca0 0a 20 20 20 20 20 20 20 20 20 20 23 27 66 75 6e 63 74 69 6f 6e 70 29 29 29 0a 20 20 28 68 65 6c ...........#'functionp)))...(hel
17cc0 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 pful--update-and-switch-buffer.s
17ce0 79 6d 62 6f 6c 20 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e ymbol.t))..;;;###autoload.(defun
17d00 20 68 65 6c 70 66 75 6c 2d 63 6f 6d 6d 61 6e 64 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 53 68 6f .helpful-command.(symbol)..."Sho
17d20 77 20 68 65 6c 70 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 20 w.help.for.interactive.function.
17d40 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 68 65 6c 70 66 75 6c named.SYMBOL...See.also.`helpful
17d60 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 -function'."...(interactive....(
17d80 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 list.(helpful--read-symbol......
17da0 20 20 20 20 20 22 43 6f 6d 6d 61 6e 64 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 ....."Command:."...........(help
17dc0 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 ful--callable-at-point).........
17de0 20 20 23 27 63 6f 6d 6d 61 6e 64 70 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 ..#'commandp)))...(helpful--upda
17e00 74 65 2d 61 6e 64 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 79 6d 62 6f 6c 20 74 29 29 0a te-and-switch-buffer.symbol.t)).
17e20 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 6b .;;;###autoload.(defun.helpful-k
17e40 65 79 20 28 6b 65 79 2d 73 65 71 75 65 6e 63 65 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 ey.(key-sequence)..."Show.help.f
17e60 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 6d 61 6e 64 20 62 6f 75 6e 64 20 74 6f 20 or.interactive.command.bound.to.
17e80 4b 45 59 2d 53 45 51 55 45 4e 43 45 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 KEY-SEQUENCE."...(interactive...
17ea0 20 28 6c 69 73 74 20 28 72 65 61 64 2d 6b 65 79 2d 73 65 71 75 65 6e 63 65 20 22 50 72 65 73 73 .(list.(read-key-sequence."Press
17ec0 20 6b 65 79 3a 20 22 29 29 29 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 6b 65 79 2d 62 69 6e .key:.")))...(let.((sym.(key-bin
17ee0 64 69 6e 67 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 ding.key-sequence))).....(cond..
17f00 20 20 20 20 28 28 6e 75 6c 6c 20 73 79 6d 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f ....((null.sym).......(user-erro
17f20 72 20 22 4e 6f 20 63 6f 6d 6d 61 6e 64 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 25 73 22 0a 20 20 r."No.command.is.bound.to.%s"...
17f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e ................(key-description
17f60 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 29 29 29 0a 20 20 20 20 20 28 28 63 6f 6d 6d 61 6e 64 70 .key-sequence)))......((commandp
17f80 20 73 79 6d 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 .sym).......(helpful--update-and
17fa0 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 79 6d 20 74 29 29 0a 20 20 20 20 20 28 74 0a 20 -switch-buffer.sym.t))......(t..
17fc0 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 25 73 20 69 73 20 62 6f 75 6e 64 20 74 6f .....(user-error."%s.is.bound.to
17fe0 20 25 73 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 20 63 6f 6d 6d 61 6e 64 22 0a 20 20 20 20 .%s.which.is.not.a.command".....
18000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 6b ..............(key-description.k
18020 65 79 2d 73 65 71 75 65 6e 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 ey-sequence)...................s
18040 79 6d 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 ym)))))..;;;###autoload.(defun.h
18060 65 6c 70 66 75 6c 2d 6d 61 63 72 6f 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 53 68 6f 77 20 68 65 elpful-macro.(symbol)..."Show.he
18080 6c 70 20 66 6f 72 20 6d 61 63 72 6f 20 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 69 lp.for.macro.named.SYMBOL."...(i
180a0 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 nteractive....(list.(helpful--re
180c0 61 64 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 4d 61 63 72 6f 3a 20 22 0a 20 20 ad-symbol..........."Macro:."...
180e0 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f ........(helpful--callable-at-po
18100 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 23 27 6d 61 63 72 6f 70 29 29 29 0a 20 20 28 68 65 int)...........#'macrop)))...(he
18120 6c 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 lpful--update-and-switch-buffer.
18140 73 79 6d 62 6f 6c 20 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 symbol.t))..;;;###autoload.(defu
18160 6e 20 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 53 n.helpful-callable.(symbol)..."S
18180 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 2c 20 6d 61 63 72 6f 20 6f 72 20 how.help.for.function,.macro.or.
181a0 73 70 65 63 69 61 6c 20 66 6f 72 6d 20 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 0a 0a 53 65 65 20 special.form.named.SYMBOL...See.
181c0 61 6c 73 6f 20 60 68 65 6c 70 66 75 6c 2d 6d 61 63 72 6f 27 2c 20 60 68 65 6c 70 66 75 6c 2d 66 also.`helpful-macro',.`helpful-f
181e0 75 6e 63 74 69 6f 6e 27 20 61 6e 64 20 60 68 65 6c 70 66 75 6c 2d 63 6f 6d 6d 61 6e 64 27 2e 22 unction'.and.`helpful-command'."
18200 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 ...(interactive....(list.(helpfu
18220 6c 2d 2d 72 65 61 64 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 43 61 6c 6c 61 62 l--read-symbol..........."Callab
18240 6c 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 le:."...........(helpful--callab
18260 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 23 27 66 62 6f 75 6e 64 70 le-at-point)...........#'fboundp
18280 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 2d 73 77 69 74 63 )))...(helpful--update-and-switc
182a0 68 2d 62 75 66 66 65 72 20 73 79 6d 62 6f 6c 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 h-buffer.symbol.t))..(defun.help
182c0 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 70 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 52 65 74 75 ful--variable-p.(symbol)..."Retu
182e0 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 53 59 4d 42 4f 4c 20 69 73 20 61 20 76 61 72 69 61 62 rn.non-nil.if.SYMBOL.is.a.variab
18300 6c 65 2e 22 0a 20 20 28 6f 72 20 28 67 65 74 20 73 79 6d 62 6f 6c 20 27 76 61 72 69 61 62 6c 65 le."...(or.(get.symbol.'variable
18320 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 61 6e 64 20 28 62 6f 75 6e -documentation).......(and.(boun
18340 64 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6b 65 79 77 dp.symbol)............(not.(keyw
18360 6f 72 64 70 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 ordp.symbol))............(not.(e
18380 71 20 73 79 6d 62 6f 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 q.symbol.nil))............(not.(
183a0 65 71 20 73 79 6d 62 6f 6c 20 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c eq.symbol.t)))))..(defun.helpful
183c0 2d 2d 62 6f 75 6e 64 2d 70 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e --bound-p.(symbol)..."Return.non
183e0 2d 6e 69 6c 20 69 66 20 53 59 4d 42 4f 4c 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 2c 20 63 61 -nil.if.SYMBOL.is.a.variable,.ca
18400 6c 6c 61 62 6c 65 2c 20 6f 72 20 66 61 63 65 2e 0a 0a 54 68 69 73 20 64 69 66 66 65 72 73 20 66 llable,.or.face...This.differs.f
18420 72 6f 6d 20 60 62 6f 75 6e 64 70 27 20 62 65 63 61 75 73 65 20 77 65 20 64 6f 20 6e 6f 74 20 63 rom.`boundp'.because.we.do.not.c
18440 6f 6e 73 69 64 65 72 20 6e 69 6c 2c 20 74 0a 6f 72 20 3a 66 6f 6f 2e 22 0a 20 20 28 6f 72 20 28 onsider.nil,.t.or.:foo."...(or.(
18460 66 62 6f 75 6e 64 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d fboundp.symbol).......(helpful--
18480 76 61 72 69 61 62 6c 65 2d 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 28 66 61 63 65 70 20 variable-p.symbol).......(facep.
184a0 73 79 6d 62 6f 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 6f 6f 6b 6d symbol)))..(defun.helpful--bookm
184c0 61 72 6b 2d 6a 75 6d 70 20 28 62 6f 6f 6b 6d 61 72 6b 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e ark-jump.(bookmark)..."Create.an
184e0 64 20 73 77 69 74 63 68 20 74 6f 20 68 65 6c 70 66 75 6c 20 62 6f 6f 6b 6d 61 72 6b 20 42 4f 4f d.switch.to.helpful.bookmark.BOO
18500 4b 4d 41 52 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 6c 6c 61 62 6c 65 2d 70 20 28 62 6f 6f KMARK."...(let.((callable-p.(boo
18520 6b 6d 61 72 6b 2d 70 72 6f 70 2d 67 65 74 20 62 6f 6f 6b 6d 61 72 6b 20 27 63 61 6c 6c 61 62 6c kmark-prop-get.bookmark.'callabl
18540 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 28 73 79 6d 20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f e-p)).........(sym.(bookmark-pro
18560 70 2d 67 65 74 20 62 6f 6f 6b 6d 61 72 6b 20 27 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 28 70 p-get.bookmark.'sym)).........(p
18580 6f 73 69 74 69 6f 6e 20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f 70 2d 67 65 74 20 62 6f 6f 6b 6d osition.(bookmark-prop-get.bookm
185a0 61 72 6b 20 27 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c ark.'position))).....(if.callabl
185c0 65 2d 70 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 20 73 79 e-p.........(helpful-callable.sy
185e0 6d 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 29 m).......(helpful-variable.sym))
18600 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 69 74 69 6f 6e 29 29 29 0a 0a 28 64 65 .....(goto-char.position)))..(de
18620 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 fun.helpful--bookmark-make-recor
18640 64 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 62 6f 6f 6b 6d 61 72 6b 20 72 65 63 6f 72 64 d.()..."Create.a.bookmark.record
18660 20 66 6f 72 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 73 2e 0a 0a 53 65 65 20 64 6f 63 73 20 .for.helpful.buffers...See.docs.
18680 6f 66 20 60 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 2d 66 75 6e 63 74 69 6f of.`bookmark-make-record-functio
186a0 6e 27 2e 22 0a 20 20 60 28 28 73 79 6d 20 2e 20 2c 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 n'."...`((sym...,helpful--sym)..
186c0 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 20 2e 20 2c 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 ...(callable-p...,helpful--calla
186e0 62 6c 65 2d 70 29 0a 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 20 20 20 20 2e 20 2c 28 70 6f 69 6e ble-p).....(position......,(poin
18700 74 29 29 0a 20 20 20 20 28 68 61 6e 64 6c 65 72 20 20 20 20 20 2e 20 68 65 6c 70 66 75 6c 2d 2d t)).....(handler.......helpful--
18720 62 6f 6f 6b 6d 61 72 6b 2d 6a 75 6d 70 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c bookmark-jump)))..(defun.helpful
18740 2d 2d 63 6f 6e 76 65 72 74 2d 63 2d 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 20 76 61 72 29 0a 20 20 --convert-c-name.(symbol.var)...
18760 22 43 6f 6e 76 65 72 74 20 53 59 4d 42 4f 4c 20 66 72 6f 6d 20 61 20 43 20 6e 61 6d 65 20 74 6f "Convert.SYMBOL.from.a.C.name.to
18780 20 61 6e 20 45 6c 69 73 70 20 6e 61 6d 65 2e 0a 45 2e 67 2e 20 63 6f 6e 76 65 72 74 20 60 46 6d .an.Elisp.name..E.g..convert.`Fm
187a0 61 6b 65 5f 73 74 72 69 6e 67 27 20 74 6f 20 60 6d 61 6b 65 2d 73 74 72 69 6e 67 27 20 6f 72 0a ake_string'.to.`make-string'.or.
187c0 60 56 67 63 5f 63 6f 6e 73 5f 70 65 72 63 65 6e 74 61 67 65 27 20 74 6f 20 60 67 63 2d 63 6f 6e `Vgc_cons_percentage'.to.`gc-con
187e0 73 2d 70 65 72 63 65 6e 74 61 67 65 27 2e 20 49 6e 74 65 72 70 72 65 74 0a 53 59 4d 42 4f 4c 20 s-percentage'..Interpret.SYMBOL.
18800 61 73 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 20 69 66 20 56 41 52 2c 20 65 6c 73 65 20 61 20 as.variable.name.if.VAR,.else.a.
18820 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 2e 20 52 65 74 75 72 6e 0a 6e 69 6c 20 69 66 20 53 59 4d function.name..Return.nil.if.SYM
18840 42 4f 4c 20 64 6f 65 73 6e 27 74 20 62 65 67 69 6e 20 77 69 74 68 20 5c 22 46 5c 22 20 6f 72 20 BOL.doesn't.begin.with.\"F\".or.
18860 5c 22 56 5c 22 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d \"V\"."...(let.((string.(symbol-
18880 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 20 28 69 name.symbol)).........(prefix.(i
188a0 66 20 76 61 72 20 22 56 22 20 22 46 22 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 2d 73 74 f.var."V"."F"))).....(when.(s-st
188c0 61 72 74 73 2d 77 69 74 68 2d 70 20 70 72 65 66 69 78 20 73 74 72 69 6e 67 29 0a 20 20 20 20 20 arts-with-p.prefix.string)......
188e0 20 28 69 6e 74 65 72 6e 0a 20 20 20 20 20 20 20 28 73 2d 63 68 6f 70 2d 70 72 65 66 69 78 0a 20 .(intern........(s-chop-prefix..
18900 20 20 20 20 20 20 20 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 28 73 2d 72 65 70 6c 61 63 65 .......prefix.........(s-replace
18920 20 22 5f 22 20 22 2d 22 20 73 74 72 69 6e 67 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 ."_"."-".string))))))..(defun.he
18940 6c 70 66 75 6c 2d 2d 64 69 73 61 6d 62 69 67 75 61 74 65 20 28 73 79 6d 20 63 68 6f 69 63 65 73 lpful--disambiguate.(sym.choices
18960 29 0a 20 20 22 50 72 6f 6d 70 74 20 74 68 65 20 75 73 65 72 20 74 6f 20 64 69 73 61 6d 62 69 67 )..."Prompt.the.user.to.disambig
18980 75 61 74 65 20 53 59 4d 20 76 69 61 20 61 20 60 72 65 61 64 2d 63 68 61 72 2d 63 68 6f 69 63 65 uate.SYM.via.a.`read-char-choice
189a0 27 20 73 65 6c 65 63 74 69 6f 6e 2e 0a 0a 43 48 4f 49 43 45 53 20 69 73 20 61 20 6c 69 73 74 20 '.selection...CHOICES.is.a.list.
189c0 6f 66 20 74 75 70 6c 65 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 46 4e 20 44 45 53 43 20 43 of.tuples.of.the.form.(FN.DESC.C
189e0 48 41 52 29 2c 20 77 68 65 72 65 0a 0a 20 20 43 48 41 52 20 69 73 20 74 68 65 20 69 6e 70 75 74 HAR),.where....CHAR.is.the.input
18a00 20 63 68 61 72 61 63 74 65 72 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 63 .character.associated.with.the.c
18a20 68 6f 69 63 65 0a 20 20 44 45 53 43 20 69 73 20 61 20 73 68 6f 72 74 20 64 65 73 63 72 69 70 74 hoice...DESC.is.a.short.descript
18a40 69 6f 6e 20 6f 66 20 74 68 65 20 63 68 6f 69 63 65 20 74 6f 20 64 69 73 70 6c 61 79 20 69 6e 20 ion.of.the.choice.to.display.in.
18a60 74 68 65 20 70 72 6f 6d 70 74 2e 0a 20 20 46 4e 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e the.prompt....FN.is.the.function
18a80 20 62 65 69 6e 67 20 63 68 6f 73 65 6e 2c 20 77 68 69 63 68 20 74 61 6b 65 73 20 53 59 4d 20 61 .being.chosen,.which.takes.SYM.a
18aa0 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 2e 0a 0a 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 74 68 s.an.argument...For.instance,.th
18ac0 65 20 63 68 6f 69 63 65 20 28 23 27 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 5c 22 5b e.choice.(#'helpful-variable.\"[
18ae0 76 5d 61 72 69 61 62 6c 65 5c 22 20 3f 76 29 0a 63 61 6c 6c 73 20 28 68 65 6c 70 66 75 6c 2d 76 v]ariable\".?v).calls.(helpful-v
18b00 61 72 69 61 62 6c 65 20 53 59 4d 29 20 77 68 65 6e 20 74 68 65 20 6b 65 79 20 60 76 27 20 69 73 ariable.SYM).when.the.key.`v'.is
18b20 20 70 72 65 73 73 65 64 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 2e 22 0a 20 20 28 6c 65 74 2a .pressed.in.the.prompt."...(let*
18b40 20 28 28 70 72 6f 6d 70 74 20 28 66 6f 72 6d 61 74 20 22 25 73 20 69 73 20 61 6d 62 69 67 75 6f .((prompt.(format."%s.is.ambiguo
18b60 75 73 3a 20 64 65 73 63 72 69 62 65 20 25 73 20 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 us:.describe.%s.?"..............
18b80 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 73 79 6d 62 6f 6c 2d ............(propertize.(symbol-
18ba0 6e 61 6d 65 20 73 79 6d 29 20 27 66 61 63 65 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 name.sym).'face.font-lock-keywor
18bc0 64 2d 66 61 63 65 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 d-face).........................
18be0 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 2d 6c 61 6d 62 64 61 20 28 28 5f 20 64 65 73 63 20 5f 29 .(mapconcat.(-lambda.((_.desc._)
18c00 29 20 64 65 73 63 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 ).desc).........................
18c20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 20 22 20 2f 20 22 29 29 29 0a 20 20 20 ............choices."./.")))....
18c40 20 20 20 20 20 20 28 63 68 61 72 73 20 28 6d 61 70 63 61 72 20 28 2d 6c 61 6d 62 64 61 20 28 28 ......(chars.(mapcar.(-lambda.((
18c60 5f 20 5f 20 63 68 61 72 29 29 20 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _._.char)).char)................
18c80 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 6f 6f .........choices))..........(loo
18ca0 6b 75 70 20 28 6d 61 70 63 61 72 20 28 2d 6c 61 6d 62 64 61 20 28 28 66 6e 20 5f 20 63 68 61 72 kup.(mapcar.(-lambda.((fn._.char
18cc0 29 29 20 28 63 6f 6e 73 20 63 68 61 72 20 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )).(cons.char.fn))..............
18ce0 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 ............choices))..........(
18d00 69 6e 70 75 74 20 28 72 65 61 64 2d 63 68 61 72 2d 63 68 6f 69 63 65 20 70 72 6f 6d 70 74 20 63 input.(read-char-choice.prompt.c
18d20 68 61 72 73 29 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 61 6c 69 73 74 2d 67 65 74 20 hars))).....(funcall.(alist-get.
18d40 69 6e 70 75 74 20 6c 6f 6f 6b 75 70 29 20 73 79 6d 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f input.lookup).sym)))..;;;###auto
18d60 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 73 79 6d 62 6f 6c 20 28 73 79 6d 62 load.(defun.helpful-symbol.(symb
18d80 6f 6c 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 53 59 4d 42 4f 4c 2c 20 61 20 76 ol)..."Show.help.for.SYMBOL,.a.v
18da0 61 72 69 61 62 6c 65 2c 20 66 75 6e 63 74 69 6f 6e 2c 20 6d 61 63 72 6f 2c 20 6f 72 20 66 61 63 ariable,.function,.macro,.or.fac
18dc0 65 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 27 20 e...See.also.`helpful-callable'.
18de0 61 6e 64 20 60 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 and.`helpful-variable'."...(inte
18e00 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d ractive....(list.(helpful--read-
18e20 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 53 79 6d 62 6f 6c 3a 20 22 0a 20 20 20 20 symbol..........."Symbol:.".....
18e40 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 29 ......(helpful--symbol-at-point)
18e60 0a 20 20 20 20 20 20 20 20 20 20 23 27 68 65 6c 70 66 75 6c 2d 2d 62 6f 75 6e 64 2d 70 29 29 29 ...........#'helpful--bound-p)))
18e80 0a 20 20 28 6c 65 74 20 28 63 68 6f 69 63 65 73 29 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 ...(let.(choices).....(when-let.
18ea0 28 63 2d 76 61 72 2d 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 6e 76 65 72 74 2d 63 2d 6e (c-var-sym.(helpful--convert-c-n
18ec0 61 6d 65 20 73 79 6d 62 6f 6c 20 74 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 ame.symbol.t)).......(push.(list
18ee0 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 63 .(lambda.(_).(helpful-variable.c
18f00 2d 76 61 72 2d 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 2d -var-sym))..................."c-
18f20 73 74 79 6c 65 20 5b 56 5d 61 72 69 61 62 6c 65 22 20 3f 56 29 0a 20 20 20 20 20 20 20 20 20 20 style.[V]ariable".?V)...........
18f40 20 20 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 63 2d 66 6e 2d ..choices)).....(when-let.(c-fn-
18f60 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 6e 76 65 72 74 2d 63 2d 6e 61 6d 65 20 73 79 6d sym.(helpful--convert-c-name.sym
18f80 62 6f 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 28 6c 61 6d bol.nil)).......(push.(list.(lam
18fa0 62 64 61 20 28 5f 29 20 28 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 20 63 2d 66 6e 2d 73 bda.(_).(helpful-callable.c-fn-s
18fc0 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 2d 73 74 79 6c 65 20 ym))..................."c-style.
18fe0 5b 46 5d 75 6e 63 74 69 6f 6e 22 20 3f 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 [F]unction".?F).............choi
19000 63 65 73 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 73 79 6d 62 6f 6c 29 ces)).....(when.(fboundp.symbol)
19020 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 23 27 68 65 6c 70 66 75 6c 2d 63 61 6c .......(push.(list.#'helpful-cal
19040 6c 61 62 6c 65 20 22 5b 63 5d 61 6c 6c 61 62 6c 65 22 20 3f 63 29 20 63 68 6f 69 63 65 73 29 29 lable."[c]allable".?c).choices))
19060 0a 20 20 20 20 28 77 68 65 6e 20 28 62 6f 75 6e 64 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 .....(when.(boundp.symbol)......
19080 20 28 70 75 73 68 20 28 6c 69 73 74 20 23 27 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 .(push.(list.#'helpful-variable.
190a0 22 5b 76 5d 61 72 69 61 62 6c 65 22 20 3f 76 29 20 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 28 "[v]ariable".?v).choices)).....(
190c0 77 68 65 6e 20 28 66 61 63 65 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 when.(facep.symbol).......(push.
190e0 28 6c 69 73 74 20 28 6c 61 6d 62 64 61 20 28 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 (list.(lambda.(face)............
19100 20 20 20 20 20 20 20 20 20 28 64 65 73 63 72 69 62 65 2d 66 61 63 65 20 66 61 63 65 29 0a 20 20 .........(describe-face.face)...
19120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 65 6c 70 66 ..................(funcall.helpf
19140 75 6c 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 28 68 65 6c 70 2d ul-switch-buffer-function.(help-
19160 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5b 66 5d buffer)))..................."[f]
19180 61 63 65 22 20 3f 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 29 29 0a 20 ace".?f).............choices))..
191a0 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6e 75 6c 6c 20 63 68 6f 69 63 65 73 29 0a 20 20 ...(cond......((null.choices)...
191c0 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 62 6f 75 6e 64 3a 20 25 53 22 20 ....(user-error."Not.bound:.%S".
191e0 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 28 28 3d 20 31 20 28 6c 65 6e 67 74 68 20 63 68 6f 69 symbol))......((=.1.(length.choi
19200 63 65 73 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 61 72 20 63 68 6f 69 63 ces)).......(funcall.(caar.choic
19220 65 73 29 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 28 74 20 28 68 65 6c 70 66 75 6c 2d 2d 64 es).symbol))......(t.(helpful--d
19240 69 73 61 6d 62 69 67 75 61 74 65 20 73 79 6d 62 6f 6c 20 63 68 6f 69 63 65 73 29 29 29 29 29 0a isambiguate.symbol.choices))))).
19260 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 76 .;;;###autoload.(defun.helpful-v
19280 61 72 69 61 62 6c 65 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 6f ariable.(symbol)..."Show.help.fo
192a0 72 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 69 6e 74 r.variable.named.SYMBOL."...(int
192c0 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 eractive....(list.(helpful--read
192e0 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 56 61 72 69 61 62 6c 65 3a 20 22 0a 20 -symbol..........."Variable:."..
19300 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 .........(helpful--variable-at-p
19320 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 23 27 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 oint)...........#'helpful--varia
19340 62 6c 65 2d 70 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 2d ble-p)))...(helpful--update-and-
19360 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 79 6d 62 6f 6c 20 6e 69 6c 29 29 0a 0a 28 64 65 66 switch-buffer.symbol.nil))..(def
19380 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 2d 65 78 un.helpful--variable-at-point-ex
193a0 61 63 74 6c 79 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 74 actly.()..."Return.the.symbol.at
193c0 20 70 6f 69 6e 74 2c 20 69 66 20 69 74 27 73 20 61 20 62 6f 75 6e 64 20 76 61 72 69 61 62 6c 65 .point,.if.it's.a.bound.variable
193e0 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61 72 20 28 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 ."...(let.((var.(variable-at-poi
19400 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 60 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 27 nt))).....;;.`variable-at-point'
19420 20 75 73 65 73 20 30 20 72 61 74 68 65 72 20 74 68 61 6e 20 6e 69 6c 20 74 6f 20 73 69 67 6e 69 .uses.0.rather.than.nil.to.signi
19440 66 79 20 6e 6f 20 73 79 6d 62 6f 6c 0a 20 20 20 20 3b 3b 20 61 74 20 70 6f 69 6e 74 20 28 70 72 fy.no.symbol.....;;.at.point.(pr
19460 65 73 75 6d 61 62 6c 79 20 62 65 63 61 75 73 65 20 27 6e 69 6c 20 69 73 20 61 20 73 79 6d 62 6f esumably.because.'nil.is.a.symbo
19480 6c 29 2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 79 6d 62 6f 6c 70 20 76 61 72 29 0a 20 20 l)......(unless.(symbolp.var)...
194a0 20 20 20 20 28 73 65 74 71 20 76 61 72 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 ....(setq.var.nil)).....(when.(h
194c0 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 70 20 76 61 72 29 0a 20 20 20 20 20 20 76 61 elpful--variable-p.var).......va
194e0 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 64 r)))..(defun.helpful--variable-d
19500 65 66 69 6e 65 64 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 efined-at-point.()..."Return.the
19520 20 76 61 72 69 61 62 6c 65 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 65 6e .variable.defined.in.the.form.en
19540 63 6c 6f 73 69 6e 67 20 70 6f 69 6e 74 2e 22 0a 20 20 3b 3b 20 54 4f 44 4f 3a 20 64 6f 20 74 68 closing.point."...;;.TODO:.do.th
19560 65 20 73 61 6d 65 20 74 68 69 6e 67 20 69 66 20 70 6f 69 6e 74 20 69 73 20 6a 75 73 74 20 62 65 e.same.thing.if.point.is.just.be
19580 66 6f 72 65 20 61 20 74 6f 70 2d 6c 65 76 65 6c 20 66 6f 72 6d 2e 0a 20 20 28 73 61 76 65 2d 65 fore.a.top-level.form....(save-e
195a0 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 xcursion.....(save-restriction..
195c0 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 70 73 73 20 .....(widen).......(let*.((ppss.
195e0 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 78 (syntax-ppss))..............(sex
19600 70 2d 73 74 61 72 74 20 28 6e 74 68 20 31 20 70 70 73 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 p-start.(nth.1.ppss))...........
19620 20 20 20 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 65 78 70 2d 73 74 61 72 ...sexp).........(when.sexp-star
19640 74 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 65 78 70 2d 73 74 61 72 t...........(goto-char.sexp-star
19660 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 65 78 70 20 28 63 6f 6e 64 69 74 69 t)...........(setq.sexp.(conditi
19680 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 20 20 20 20 20 20 on-case.nil.....................
196a0 20 20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 .....(read.(current-buffer))....
196c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 ....................(error.nil))
196e0 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 28 63 61 72 2d 73 61 66 )...........(when.(memq.(car-saf
19700 65 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 20 20 20 28 6c e.sexp).......................(l
19720 69 73 74 20 27 64 65 66 76 61 72 20 27 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 27 64 65 66 63 75 ist.'defvar.'defvar-local.'defcu
19740 73 74 6f 6d 20 27 64 65 66 63 6f 6e 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 stom.'defconst)).............(nt
19760 68 20 31 20 73 65 78 70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d h.1.sexp)))))))..(defun.helpful-
19780 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 -variable-at-point.()..."Return.
197a0 74 68 65 20 76 61 72 69 61 62 6c 65 20 65 78 61 63 74 6c 79 20 75 6e 64 65 72 20 70 6f 69 6e 74 the.variable.exactly.under.point
197c0 2c 20 6f 72 20 64 65 66 69 6e 65 64 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 ,.or.defined.at.point."...(let.(
197e0 28 76 61 72 20 28 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 (var.(helpful--variable-at-point
19800 2d 65 78 61 63 74 6c 79 29 29 29 0a 20 20 20 20 28 69 66 20 76 61 72 0a 20 20 20 20 20 20 20 20 -exactly))).....(if.var.........
19820 76 61 72 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 76 61 72 20 28 68 65 6c 70 66 75 6c 2d 2d 76 var.......(let.((var.(helpful--v
19840 61 72 69 61 62 6c 65 2d 64 65 66 69 6e 65 64 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 ariable-defined-at-point))).....
19860 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 70 20 76 ....(when.(helpful--variable-p.v
19880 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 76 61 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 ar)...........var)))))..(defun.h
198a0 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 28 elpful--callable-at-point.()...(
198c0 6c 65 74 20 28 28 73 79 6d 20 28 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 let.((sym.(symbol-at-point))....
198e0 20 20 20 20 20 28 65 6e 63 6c 6f 73 69 6e 67 2d 73 79 6d 20 28 66 75 6e 63 74 69 6f 6e 2d 63 61 .....(enclosing-sym.(function-ca
19900 6c 6c 65 64 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 lled-at-point))).....(if.(fbound
19920 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 73 79 6d 0a 20 20 20 20 20 20 65 6e 63 6c 6f 73 69 p.sym).........sym.......enclosi
19940 6e 67 2d 73 79 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 62 6f ng-sym)))..(defun.helpful--symbo
19960 6c 2d 61 74 2d 70 6f 69 6e 74 2d 65 78 61 63 74 6c 79 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 l-at-point-exactly.()..."Return.
19980 74 68 65 20 73 79 6d 62 6f 6c 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 20 69 74 27 73 20 62 6f 75 the.symbol.at.point,.if.it's.bou
199a0 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 nd."...(let.((sym.(symbol-at-poi
199c0 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 62 6f 75 6e 64 2d nt))).....(when.(helpful--bound-
199e0 70 20 73 79 6d 29 0a 20 20 20 20 20 20 73 79 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 p.sym).......sym)))..(defun.help
19a00 66 75 6c 2d 2d 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 46 69 6e 64 20 ful--symbol-at-point.()..."Find.
19a20 74 68 65 20 6d 6f 73 74 20 72 65 6c 65 76 61 6e 74 20 73 79 6d 62 6f 6c 20 61 74 20 6f 72 20 61 the.most.relevant.symbol.at.or.a
19a40 72 6f 75 6e 64 20 70 6f 69 6e 74 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 6e 6f 74 68 round.point..Returns.nil.if.noth
19a60 69 6e 67 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6f 72 0a 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 ing.found."...(or....(helpful--s
19a80 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 2d 65 78 61 63 74 6c 79 29 0a 20 20 20 28 68 65 6c 70 ymbol-at-point-exactly)....(help
19aa0 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 28 68 65 6c 70 ful--callable-at-point)....(help
19ac0 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 0a 3b 3b 3b 23 23 ful--variable-at-point)))..;;;##
19ae0 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 61 74 2d 70 6f 69 6e #autoload.(defun.helpful-at-poin
19b00 74 20 28 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 74 68 65 20 73 79 6d 62 6f 6c t.()..."Show.help.for.the.symbol
19b20 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 2d .at.point."...(interactive)...(-
19b40 69 66 2d 6c 65 74 20 28 73 79 6d 62 6f 6c 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 62 6f 6c 2d if-let.(symbol.(helpful--symbol-
19b60 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 73 79 6d 62 6f 6c at-point)).......(helpful-symbol
19b80 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 65 72 65 20 .symbol).....(user-error."There.
19ba0 69 73 20 6e 6f 20 73 79 6d 62 6f 6c 20 61 74 20 70 6f 69 6e 74 2e 22 29 29 29 0a 0a 28 64 65 66 is.no.symbol.at.point.")))..(def
19bc0 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6d 65 6e 75 2d 69 6e 64 65 78 20 28 29 0a 20 20 22 52 65 un.helpful--imenu-index.()..."Re
19be0 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 68 65 61 64 69 6e 67 73 20 69 6e 20 74 68 65 20 63 turn.a.list.of.headings.in.the.c
19c00 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 73 75 69 74 61 62 6c 65 20 66 6f 72 0a 69 6d 65 6e urrent.buffer,.suitable.for.imen
19c20 75 2e 22 0a 20 20 28 6c 65 74 20 28 68 65 61 64 69 6e 67 73 29 0a 20 20 20 20 28 67 6f 74 6f 2d u."...(let.(headings).....(goto-
19c40 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f char.(point-min)).....(while.(no
19c60 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 67 65 74 2d 74 t.(eobp)).......(when.(eq.(get-t
19c80 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 29 0a 20 20 20 20 ext-property.(point).'face).....
19ca0 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 29 0a 20 20 ............'helpful-heading)...
19cc0 20 20 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 ......(push..........(cons......
19ce0 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 .....(buffer-substring-no-proper
19d00 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d ties............(line-beginning-
19d20 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 position).(line-end-position))..
19d40 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f .........(line-beginning-positio
19d60 6e 29 29 0a 20 20 20 20 20 20 20 20 20 68 65 61 64 69 6e 67 73 29 29 0a 20 20 20 20 20 20 28 66 n))..........headings)).......(f
19d80 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 68 65 61 64 orward-line)).....(nreverse.head
19da0 69 6e 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6c 61 73 68 2d 72 ings)))..(defun.helpful--flash-r
19dc0 65 67 69 6f 6e 20 28 73 74 61 72 74 20 65 6e 64 29 0a 20 20 22 54 65 6d 70 6f 72 61 72 69 6c 79 egion.(start.end)..."Temporarily
19de0 20 68 69 67 68 6c 69 67 68 74 20 72 65 67 69 6f 6e 20 66 72 6f 6d 20 53 54 41 52 54 20 74 6f 20 .highlight.region.from.START.to.
19e00 45 4e 44 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 76 65 72 6c 61 79 20 28 6d 61 6b 65 2d 6f 76 65 END."...(let.((overlay.(make-ove
19e20 72 6c 61 79 20 73 74 61 72 74 20 65 6e 64 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 rlay.start.end))).....(overlay-p
19e40 75 74 20 6f 76 65 72 6c 61 79 20 27 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 0a 20 20 20 ut.overlay.'face.'highlight)....
19e60 20 28 72 75 6e 2d 77 69 74 68 2d 74 69 6d 65 72 20 31 2e 35 20 6e 69 6c 20 27 64 65 6c 65 74 65 .(run-with-timer.1.5.nil.'delete
19e80 2d 6f 76 65 72 6c 61 79 20 6f 76 65 72 6c 61 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 -overlay.overlay)))..(defun.help
19ea0 66 75 6c 2d 76 69 73 69 74 2d 72 65 66 65 72 65 6e 63 65 20 28 29 0a 20 20 22 47 6f 20 74 6f 20 ful-visit-reference.()..."Go.to.
19ec0 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 the.reference.at.point."...(inte
19ee0 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d ractive)...(let*.((sym.helpful--
19f00 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 28 67 65 74 2d 74 65 78 74 2d 70 72 sym)..........(path.(get-text-pr
19f20 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 75 6c 2d 70 61 74 68 29 29 0a 20 operty.(point).'helpful-path))..
19f40 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 ........(pos.(get-text-property.
19f60 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 (point).'helpful-pos))..........
19f80 28 70 6f 73 2d 69 73 2d 73 74 61 72 74 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 (pos-is-start.(get-text-property
19fa0 20 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 2d 69 73 2d 73 74 61 72 74 29 29 .(point).'helpful-pos-is-start))
19fc0 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 61 74 68 20 70 6f 73 29 0a 20 20 20 20 20 ).....(when.(and.path.pos)......
19fe0 20 3b 3b 20 49 66 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 61 20 73 6f 75 72 63 65 .;;.If.we're.looking.at.a.source
1a000 20 65 78 63 65 72 70 74 2c 20 63 61 6c 63 75 6c 61 74 65 20 74 68 65 20 6f 66 66 73 65 74 20 6f .excerpt,.calculate.the.offset.o
1a020 66 0a 20 20 20 20 20 20 3b 3b 20 70 6f 69 6e 74 2c 20 73 6f 20 77 65 20 64 6f 6e 27 74 20 6a 75 f.......;;.point,.so.we.don't.ju
1a040 73 74 20 67 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 65 78 63 65 72 70 74 2e 0a st.go.the.start.of.the.excerpt..
1a060 20 20 20 20 20 20 28 77 68 65 6e 20 70 6f 73 2d 69 73 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 ......(when.pos-is-start........
1a080 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 6c 65 74 20 .(save-excursion...........(let.
1a0a0 28 28 6f 66 66 73 65 74 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 ((offset.0)).............(while.
1a0c0 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 (and.....................(get-te
1a0e0 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 xt-property.(point).'helpful-pos
1a100 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 6f 62 70 ).....................(not.(eobp
1a120 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 )))...............(backward-char
1a140 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 .1)...............(setq.offset.(
1a160 31 2b 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 6e 20 74 1+.offset))).............;;.On.t
1a180 68 65 20 6c 61 73 74 20 69 74 65 72 61 74 69 6f 6e 20 77 65 20 6d 6f 76 65 64 20 6f 75 74 73 69 he.last.iteration.we.moved.outsi
1a1a0 64 65 20 74 68 65 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 78 63 de.the.source.............;;.exc
1a1c0 65 72 70 74 2c 20 73 6f 20 77 65 20 6f 76 65 72 63 6f 75 6e 74 65 64 20 62 79 20 6f 6e 65 20 63 erpt,.so.we.overcounted.by.one.c
1a1e0 68 61 72 61 63 74 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 haracter..............(setq.offs
1a200 65 74 20 28 31 2d 20 6f 66 66 73 65 74 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 et.(1-.offset))..............;;.
1a220 53 65 74 20 50 4f 53 20 73 6f 20 77 65 20 67 6f 20 74 6f 20 65 78 61 63 74 6c 79 20 74 68 65 20 Set.POS.so.we.go.to.exactly.the.
1a240 70 6c 61 63 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 place.in.the.source.............
1a260 3b 3b 20 63 6f 64 65 20 77 68 65 72 65 20 70 6f 69 6e 74 20 77 61 73 20 69 6e 20 74 68 65 20 68 ;;.code.where.point.was.in.the.h
1a280 65 6c 70 66 75 6c 20 65 78 63 65 72 70 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 elpful.excerpt..............(set
1a2a0 71 20 70 6f 73 20 28 2b 20 70 6f 73 20 6f 66 66 73 65 74 29 29 29 29 29 0a 0a 20 20 20 20 20 20 q.pos.(+.pos.offset)))))........
1a2c0 28 66 69 6e 64 2d 66 69 6c 65 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d (find-file.path).......(helpful-
1a2e0 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 70 6f 73 29 0a 20 20 20 20 20 20 28 72 65 63 -goto-char-widen.pos).......(rec
1a300 65 6e 74 65 72 20 30 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 enter.0).......(save-excursion..
1a320 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65 66 75 6e 2d 65 6e 64 20 28 73 63 61 6e 2d 73 65 .......(let.((defun-end.(scan-se
1a340 78 70 73 20 28 70 6f 69 6e 74 29 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c xps.(point).1)))...........(whil
1a360 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 e.(re-search-forward............
1a380 20 20 20 20 20 20 20 28 72 78 2d 74 6f 2d 73 74 72 69 6e 67 20 60 28 73 65 71 20 73 79 6d 62 6f .......(rx-to-string.`(seq.symbo
1a3a0 6c 2d 73 74 61 72 74 20 2c 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 20 73 79 6d 62 6f l-start.,(symbol-name.sym).symbo
1a3c0 6c 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 75 6e 2d l-end))...................defun-
1a3e0 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6c 61 end.t).............(helpful--fla
1a400 73 68 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d sh-region.(match-beginning.0).(m
1a420 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 atch-end.0))))))))..(defun.helpf
1a440 75 6c 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 20 28 29 0a 20 20 22 4b 69 6c 6c 20 61 6c 6c 20 60 ul-kill-buffers.()..."Kill.all.`
1a460 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 73 2e 0a 0a 53 65 65 20 61 6c 73 6f helpful-mode'.buffers...See.also
1a480 20 60 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 27 2e 22 0a 20 20 28 69 6e 74 65 .`helpful-max-buffers'."...(inte
1a4a0 72 61 63 74 69 76 65 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 62 75 66 66 65 72 20 28 62 75 66 66 ractive)...(dolist.(buffer.(buff
1a4c0 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 62 75 66 66 65 72 2d er-list)).....(when.(eq.(buffer-
1a4e0 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 62 75 66 66 65 72 29 20 local-value.'major-mode.buffer).
1a500 27 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 'helpful-mode).......(kill-buffe
1a520 72 20 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 68 65 6c 70 66 75 6c 2d 6d 6f r.buffer))))..(defvar.helpful-mo
1a540 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 2a 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 de-map...(let*.((map.(make-spars
1a560 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 e-keymap))).....(define-key.map.
1a580 28 6b 62 64 20 22 67 22 29 20 23 27 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 0a 20 20 20 20 (kbd."g").#'helpful-update).....
1a5a0 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 72 65 6d 61 70 20 72 65 76 65 72 74 2d 62 75 (define-key.map.[remap.revert-bu
1a5c0 66 66 65 72 5d 20 23 27 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 0a 20 20 20 20 28 77 68 65 ffer].#'helpful-update).....(whe
1a5e0 6e 20 28 66 62 6f 75 6e 64 70 20 27 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 71 75 69 63 6b 29 n.(fboundp.'revert-buffer-quick)
1a600 0a 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 72 65 6d 61 70 20 72 65 .......(define-key.map.[remap.re
1a620 76 65 72 74 2d 62 75 66 66 65 72 2d 71 75 69 63 6b 5d 20 23 27 68 65 6c 70 66 75 6c 2d 75 70 64 vert-buffer-quick].#'helpful-upd
1a640 61 74 65 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 ate))......(define-key.map.(kbd.
1a660 22 52 45 54 22 29 20 23 27 68 65 6c 70 66 75 6c 2d 76 69 73 69 74 2d 72 65 66 65 72 65 6e 63 65 "RET").#'helpful-visit-reference
1a680 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 54 41 42 )......(define-key.map.(kbd."TAB
1a6a0 22 29 20 23 27 66 6f 72 77 61 72 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 ").#'forward-button).....(define
1a6c0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 62 61 63 6b 74 61 62 3e 22 29 20 23 27 62 61 63 -key.map.(kbd."<backtab>").#'bac
1a6e0 6b 77 61 72 64 2d 62 75 74 74 6f 6e 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d kward-button)......(define-key.m
1a700 61 70 20 28 6b 62 64 20 22 6e 22 29 20 23 27 66 6f 72 77 61 72 64 2d 62 75 74 74 6f 6e 29 0a 20 ap.(kbd."n").#'forward-button)..
1a720 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 23 27 62 ...(define-key.map.(kbd."p").#'b
1a740 61 63 6b 77 61 72 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d ackward-button).....map)..."Keym
1a760 61 70 20 66 6f 72 20 60 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 63 6c 61 ap.for.`helpful-mode'.")..(decla
1a780 72 65 2d 66 75 6e 63 74 69 6f 6e 20 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f 70 2d 67 65 74 20 22 62 re-function.bookmark-prop-get."b
1a7a0 6f 6f 6b 6d 61 72 6b 22 20 28 62 6f 6f 6b 6d 61 72 6b 20 70 72 6f 70 29 29 0a 28 64 65 63 6c 61 ookmark".(bookmark.prop)).(decla
1a7c0 72 65 2d 66 75 6e 63 74 69 6f 6e 20 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 re-function.bookmark-make-record
1a7e0 2d 64 65 66 61 75 6c 74 20 22 62 6f 6f 6b 6d 61 72 6b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 -default."bookmark".............
1a800 20 20 20 20 20 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 66 69 6c 65 20 6e 6f 2d 63 6f 6e 74 ......(&optional.no-file.no-cont
1a820 65 78 74 20 70 6f 73 6e 29 29 0a 3b 3b 20 45 6e 73 75 72 65 20 74 68 69 73 20 76 61 72 69 61 62 ext.posn)).;;.Ensure.this.variab
1a840 6c 65 20 69 73 20 64 65 66 69 6e 65 64 20 65 76 65 6e 20 69 66 20 62 6f 6f 6b 6d 61 72 6b 2e 65 le.is.defined.even.if.bookmark.e
1a860 6c 20 69 73 6e 27 74 20 6c 6f 61 64 65 64 0a 3b 3b 20 79 65 74 2e 20 54 68 69 73 20 66 6f 6c 6c l.isn't.loaded.;;.yet..This.foll
1a880 6f 77 73 20 74 68 65 20 70 61 74 74 65 72 6e 20 69 6e 20 68 65 6c 70 2d 6d 6f 64 65 2e 65 6c 2e ows.the.pattern.in.help-mode.el.
1a8a0 67 7a 2e 0a 3b 3b 20 54 4f 44 4f 3a 20 66 69 6e 64 20 61 20 63 6c 65 61 6e 65 72 20 73 6f 6c 75 gz..;;.TODO:.find.a.cleaner.solu
1a8c0 74 69 6f 6e 2e 0a 28 64 65 66 76 61 72 20 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f tion..(defvar.bookmark-make-reco
1a8e0 72 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 64 rd-function)..(defun.helpful--ad
1a900 64 2d 73 75 70 70 6f 72 74 2d 66 6f 72 2d 6f 72 67 2d 6c 69 6e 6b 73 20 28 29 0a 20 20 22 49 6d d-support-for-org-links.()..."Im
1a920 70 72 6f 76 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6f 72 67 20 5c 22 68 65 6c 70 5c 22 20 6c prove.support.for.org.\"help\".l
1a940 69 6e 6b 73 20 74 68 72 6f 75 67 68 20 68 65 6c 70 66 75 6c 2e 22 0a 20 20 28 68 65 6c 70 66 75 inks.through.helpful."...(helpfu
1a960 6c 2d 2d 73 75 70 70 6f 72 74 2d 73 74 6f 72 69 6e 67 2d 6f 72 67 2d 6c 69 6e 6b 73 29 0a 20 20 l--support-storing-org-links)...
1a980 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 66 65 72 2d 68 65 6c 70 66 75 6c 2d 77 68 65 6e 2d 66 6f (helpful--prefer-helpful-when-fo
1a9a0 6c 6c 6f 77 69 6e 67 2d 6f 72 67 2d 6c 69 6e 6b 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 llowing-org-link))..(defun.helpf
1a9c0 75 6c 2d 2d 73 75 70 70 6f 72 74 2d 73 74 6f 72 69 6e 67 2d 6f 72 67 2d 6c 69 6e 6b 73 20 28 29 ul--support-storing-org-links.()
1a9e0 0a 20 20 22 4d 61 6b 65 20 60 6f 72 67 2d 73 74 6f 72 65 2d 6c 69 6e 6b 27 20 69 6e 20 61 20 68 ..."Make.`org-store-link'.in.a.h
1aa00 65 6c 70 66 75 6c 20 62 75 66 66 65 72 20 72 65 74 75 72 6e 20 61 20 5c 22 68 65 6c 70 5c 22 20 elpful.buffer.return.a.\"help\".
1aa20 6c 69 6e 6b 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 link."...(when.(and.(fboundp.'or
1aa40 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 61 72 61 6d 65 74 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 g-link-set-parameters)..........
1aa60 20 20 20 20 28 6e 6f 74 20 28 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 28 6f 72 67 2d 6c 69 6e 6b 2d ....(not.(-contains-p.(org-link-
1aa80 74 79 70 65 73 29 20 22 68 65 6c 70 66 75 6c 22 29 29 29 0a 20 20 20 20 28 6f 72 67 2d 6c 69 6e types)."helpful"))).....(org-lin
1aaa0 6b 2d 73 65 74 2d 70 61 72 61 6d 65 74 65 72 73 20 22 68 65 6c 70 66 75 6c 22 0a 20 20 20 20 20 k-set-parameters."helpful"......
1aac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 6f 72 65 20 23 ........................:store.#
1aae0 27 68 65 6c 70 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 29 29 29 0a 0a 28 64 65 'helpful--org-link-store)))..(de
1ab00 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 20 28 29 0a 20 fun.helpful--org-link-store.()..
1ab20 20 22 53 74 6f 72 65 20 5c 22 68 65 6c 70 5c 22 20 74 79 70 65 20 6c 69 6e 6b 20 77 68 65 6e 20 ."Store.\"help\".type.link.when.
1ab40 69 6e 20 61 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28 64 in.a.helpful.buffer."...(when.(d
1ab60 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 0a 20 20 20 erived-mode-p.'helpful-mode)....
1ab80 20 3b 3b 20 43 72 65 61 74 65 20 61 20 22 68 65 6c 70 22 20 6c 69 6e 6b 20 69 6e 73 74 65 61 64 .;;.Create.a."help".link.instead
1aba0 20 6f 66 20 61 20 64 65 64 69 63 61 74 65 64 20 22 68 65 6c 70 66 75 6c 22 20 6c 69 6e 6b 3a 20 .of.a.dedicated."helpful".link:.
1abc0 74 68 65 0a 20 20 20 20 3b 3b 20 61 75 74 68 6f 72 20 6f 66 20 74 68 65 20 4f 72 67 20 64 6f 63 the.....;;.author.of.the.Org.doc
1abe0 75 6d 65 6e 74 20 75 73 65 73 20 68 65 6c 66 75 6c 2c 20 62 75 74 20 74 68 69 73 20 69 73 20 6e ument.uses.helful,.but.this.is.n
1ac00 6f 74 0a 20 20 20 20 3b 3b 20 6e 65 63 65 73 73 61 72 69 6c 79 20 74 68 65 20 63 61 73 65 20 6f ot.....;;.necessarily.the.case.o
1ac20 66 20 74 68 65 20 72 65 61 64 65 72 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 2e 0a 20 20 f.the.reader.of.the.document....
1ac40 20 20 28 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 2d 70 72 6f 70 73 20 3a 74 79 70 65 20 22 68 ..(org-link-store-props.:type."h
1ac60 65 6c 70 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 3a elp"...........................:
1ac80 6c 69 6e 6b 20 28 66 6f 72 6d 61 74 20 22 68 65 6c 70 3a 25 73 22 20 68 65 6c 70 66 75 6c 2d 2d link.(format."help:%s".helpful--
1aca0 73 79 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 20 20 3a sym)...........................:
1acc0 64 65 73 63 72 69 70 74 69 6f 6e 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 description.nil)))..(defun.helpf
1ace0 75 6c 2d 2d 70 72 65 66 65 72 2d 68 65 6c 70 66 75 6c 2d 77 68 65 6e 2d 66 6f 6c 6c 6f 77 69 6e ul--prefer-helpful-when-followin
1ad00 67 2d 6f 72 67 2d 6c 69 6e 6b 20 28 29 0a 20 20 22 50 72 65 66 65 72 20 68 65 6c 70 66 75 6c 20 g-org-link.()..."Prefer.helpful.
1ad20 77 68 65 6e 20 75 73 69 6e 67 20 60 6f 72 67 2d 6f 70 65 6e 2d 61 74 2d 70 6f 69 6e 74 27 20 6f when.using.`org-open-at-point'.o
1ad40 6e 20 61 20 5c 22 68 65 6c 70 5c 22 20 6c 69 6e 6b 2e 22 0a 20 20 28 77 68 65 6e 20 28 66 62 6f n.a.\"help\".link."...(when.(fbo
1ad60 75 6e 64 70 20 27 6f 72 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 61 72 61 6d 65 74 65 72 73 29 0a 20 undp.'org-link-set-parameters)..
1ad80 20 20 20 28 6c 65 74 20 28 28 66 6f 6c 6c 6f 77 2d 66 75 6e 63 74 69 6f 6e 20 28 6f 72 67 2d 6c ...(let.((follow-function.(org-l
1ada0 69 6e 6b 2d 67 65 74 2d 70 61 72 61 6d 65 74 65 72 20 22 68 65 6c 70 22 20 3a 66 6f 6c 6c 6f 77 ink-get-parameter."help".:follow
1adc0 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 66 6f 6c 6c ))).......(when.(not.(equal.foll
1ade0 6f 77 2d 66 75 6e 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d ow-function.#'helpful--org-link-
1ae00 66 6f 6c 6c 6f 77 29 29 0a 20 20 20 20 20 20 20 20 28 6f 72 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 follow)).........(org-link-set-p
1ae20 61 72 61 6d 65 74 65 72 73 20 22 68 65 6c 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arameters."help"................
1ae40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 6c 6c 6f 77 20 23 27 68 65 6c 70 ..................:follow.#'help
1ae60 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 29 29 29 29 29 0a 0a 28 64 65 66 75 ful--org-link-follow)))))..(defu
1ae80 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 20 28 6c 69 6e 6b n.helpful--org-link-follow.(link
1aea0 20 5f 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 73 79 6d 62 6f 6c 20 28 69 6e 74 65 72 6e 20 6c 69 ._)...(helpful-symbol.(intern.li
1aec0 6e 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 75 74 6c 69 6e 65 2d 66 nk)))..(defun.helpful--outline-f
1aee0 75 6e 63 74 69 6f 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 6f 75 6e 64 20 6d 6f 76 65 20 62 61 unction.(&optional.bound.move.ba
1af00 63 6b 77 61 72 64 20 6c 6f 6f 6b 69 6e 67 2d 61 74 29 0a 20 20 22 60 6f 75 74 6c 69 6e 65 2d 73 ckward.looking-at)..."`outline-s
1af20 65 61 72 63 68 2d 66 75 6e 63 74 69 6f 6e 27 20 66 6f 72 20 60 68 65 6c 70 66 75 6c 2d 6d 6f 64 earch-function'.for.`helpful-mod
1af40 65 60 2e 0a 53 65 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 60 6f 75 74 6c 69 6e e`..See.documentation.of.`outlin
1af60 65 2d 73 65 61 72 63 68 2d 66 75 6e 63 74 69 6f 6e 27 20 66 6f 72 20 42 4f 55 4e 44 2c 20 4d 4f e-search-function'.for.BOUND,.MO
1af80 56 45 2c 0a 42 41 43 4b 57 41 52 44 20 61 6e 64 20 4c 4f 4f 4b 49 4e 47 2d 41 54 2e 22 0a 20 20 VE,.BACKWARD.and.LOOKING-AT."...
1afa0 28 69 66 20 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 28 65 71 20 27 68 65 6c 70 66 75 (if.looking-at.......(eq.'helpfu
1afc0 6c 2d 68 65 61 64 69 6e 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f l-heading.(get-text-property.(po
1afe0 69 6e 74 29 20 27 66 61 63 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 68 65 61 64 69 6e 67 2d int).'face)).....(let.((heading-
1b000 66 6f 75 6e 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 6f 75 6e 64 20 28 69 66 20 found.nil)...........(bound.(if.
1b020 62 6f 75 6e 64 20 62 6f 75 6e 64 20 28 69 66 20 62 61 63 6b 77 61 72 64 20 28 70 6f 69 6e 74 2d bound.bound.(if.backward.(point-
1b040 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 min).(point-max))))).......(save
1b060 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 68 65 -excursion.........(when.(eq.'he
1b080 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 lpful-heading.(get-text-property
1b0a0 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 .(point).'face))...........(forw
1b0c0 61 72 64 2d 6c 69 6e 65 20 28 69 66 20 62 61 63 6b 77 61 72 64 20 2d 31 20 31 29 29 29 0a 20 20 ard-line.(if.backward.-1.1)))...
1b0e0 20 20 20 20 20 20 28 69 66 20 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 ......(if.backward.............(
1b100 77 68 69 6c 65 20 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 28 70 6f 69 6e 74 29 20 62 6f 75 6e 64 while.(not.(or.(eq.(point).bound
1b120 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 28 65 ).............................(e
1b140 71 20 27 68 65 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f q.'helpful-heading.(get-text-pro
1b160 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 perty.(point).'face)))).........
1b180 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 72 20 28 70 72 65 76 69 6f 75 73 2d 73 ......(goto-char.(or.(previous-s
1b1a0 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 20 27 66 ingle-property-change.(point).'f
1b1c0 61 63 65 20 6e 69 6c 20 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ace.nil.bound)..................
1b1e0 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 75 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 ............bound)))...........(
1b200 67 6f 74 6f 2d 63 68 61 72 20 28 6f 72 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 61 6e 79 goto-char.(or.(text-property-any
1b220 20 28 70 6f 69 6e 74 29 20 62 6f 75 6e 64 20 27 66 61 63 65 20 27 68 65 6c 70 66 75 6c 2d 68 65 .(point).bound.'face.'helpful-he
1b240 61 64 69 6e 67 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 ading)..........................
1b260 62 6f 75 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 68 65 6c 70 bound))).........(when.(eq.'help
1b280 66 75 6c 2d 68 65 61 64 69 6e 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 ful-heading.(get-text-property.(
1b2a0 70 6f 69 6e 74 29 20 27 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 point).'face))...........(setq.h
1b2c0 65 61 64 69 6e 67 2d 66 6f 75 6e 64 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 28 69 eading-found.(point)))).......(i
1b2e0 66 20 68 65 61 64 69 6e 67 2d 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e f.heading-found...........(progn
1b300 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 69 6e 67 2d .............(goto-char.heading-
1b320 66 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 74 63 68 2d 64 61 found).............(set-match-da
1b340 74 61 20 28 6c 69 73 74 20 68 65 61 64 69 6e 67 2d 66 6f 75 6e 64 20 68 65 61 64 69 6e 67 2d 66 ta.(list.heading-found.heading-f
1b360 6f 75 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6d 6f 76 65 0a 20 20 20 20 20 ound))).........(when.move......
1b380 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 6f 75 6e 64 29 20 6e 69 6c 29 29 29 29 29 0a .....(goto-char.bound).nil))))).
1b3a0 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 68 65 6c 70 66 75 6c 2d 6d 6f .(define-derived-mode.helpful-mo
1b3c0 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 48 65 6c 70 66 75 6c 22 0a 20 20 22 4d 61 6a de.special-mode."Helpful"..."Maj
1b3e0 6f 72 20 6d 6f 64 65 20 66 6f 72 20 2a 48 65 6c 70 66 75 6c 2a 20 62 75 66 66 65 72 73 2e 22 0a or.mode.for.*Helpful*.buffers.".
1b400 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 78 72 65 66 2d 62 61 63 6b 65 6e 64 2d 66 75 6e 63 74 69 ..(add-hook.'xref-backend-functi
1b420 6f 6e 73 20 23 27 65 6c 69 73 70 2d 2d 78 72 65 66 2d 62 61 63 6b 65 6e 64 20 6e 69 6c 20 74 29 ons.#'elisp--xref-backend.nil.t)
1b440 0a 0a 20 20 28 73 65 74 71 20 69 6d 65 6e 75 2d 63 72 65 61 74 65 2d 69 6e 64 65 78 2d 66 75 6e ....(setq.imenu-create-index-fun
1b460 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 69 6d 65 6e 75 2d 69 6e 64 65 78 29 0a 20 20 ction.#'helpful--imenu-index)...
1b480 3b 3b 20 50 72 65 76 65 6e 74 20 69 6d 65 6e 75 20 63 6f 6e 76 65 72 74 69 6e 67 20 22 53 6f 75 ;;.Prevent.imenu.converting."Sou
1b4a0 72 63 65 20 43 6f 64 65 22 20 74 6f 20 22 53 6f 75 72 63 65 2e 43 6f 64 65 22 2e 0a 20 20 28 73 rce.Code".to."Source.Code"....(s
1b4c0 65 74 71 2d 6c 6f 63 61 6c 20 69 6d 65 6e 75 2d 73 70 61 63 65 2d 72 65 70 6c 61 63 65 6d 65 6e etq-local.imenu-space-replacemen
1b4e0 74 20 22 20 22 29 0a 0a 20 20 3b 3b 20 45 6e 61 62 6c 65 20 75 73 65 72 73 20 74 6f 20 62 6f 6f t.".")....;;.Enable.users.to.boo
1b500 6b 6d 61 72 6b 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 73 2e 0a 20 20 28 73 65 74 20 28 6d kmark.helpful.buffers....(set.(m
1b520 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b ake-local-variable.'bookmark-mak
1b540 65 2d 72 65 63 6f 72 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 23 27 68 65 6c 70 e-record-function)........#'help
1b560 66 75 6c 2d 2d 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 29 0a 0a 20 20 3b 3b ful--bookmark-make-record)....;;
1b580 20 45 6e 61 62 6c 65 20 6f 75 74 6c 69 6e 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 45 6d 61 63 .Enable.outline.support.for.Emac
1b5a0 73 20 32 39 20 61 6e 64 20 6e 65 77 65 72 0a 20 20 28 75 6e 6c 65 73 73 20 28 3c 20 65 6d 61 63 s.29.and.newer...(unless.(<.emac
1b5c0 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 39 29 0a 20 20 20 20 28 73 65 74 71 2d 6c 6f s-major-version.29).....(setq-lo
1b5e0 63 61 6c 20 6f 75 74 6c 69 6e 65 2d 73 65 61 72 63 68 2d 66 75 6e 63 74 69 6f 6e 20 23 27 68 65 cal.outline-search-function.#'he
1b600 6c 70 66 75 6c 2d 2d 6f 75 74 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 0a 20 20 3b 3b 20 lpful--outline-function))....;;.
1b620 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 6e 6f 72 6d 61 6c 6c 79 20 6f 6e This.function.should.normally.on
1b640 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 6f 6e 63 65 20 61 66 74 65 72 20 4f 72 67 20 61 6e 64 0a ly.be.called.once.after.Org.and.
1b660 20 20 3b 3b 20 68 65 6c 70 66 75 6c 20 61 72 65 20 6c 6f 61 64 65 64 2e 20 54 6f 20 61 76 6f 69 ..;;.helpful.are.loaded..To.avoi
1b680 64 20 75 73 69 6e 67 20 60 65 76 61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 27 20 28 77 68 69 63 68 d.using.`eval-after-load'.(which
1b6a0 20 69 73 0a 20 20 3b 3b 20 6f 6e 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 69 6e 20 75 73 65 .is...;;.only.recommended.in.use
1b6c0 72 20 69 6e 69 74 20 66 69 6c 65 73 29 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 r.init.files),.the.function.is.c
1b6e0 61 6c 6c 65 64 20 65 61 63 68 0a 20 20 3b 3b 20 74 69 6d 65 20 74 68 65 20 6d 61 6a 6f 72 20 6d alled.each...;;.time.the.major.m
1b700 6f 64 65 20 69 73 20 75 73 65 64 2e 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 61 64 64 2d 73 75 70 ode.is.used....(helpful--add-sup
1b720 70 6f 72 74 2d 66 6f 72 2d 6f 72 67 2d 6c 69 6e 6b 73 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 port-for-org-links))..(provide.'
1b740 68 65 6c 70 66 75 6c 29 0a 3b 3b 3b 20 68 65 6c 70 66 75 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 helpful).;;;.helpful.el.ends.her
1b760 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
1b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ccc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1daa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ddc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................