summaryrefslogtreecommitdiff
path: root/.localrepo/helpful-20250408.334.tar
blob: 5eff3c3cfa69b90ef0a69e50a8f9f9a2b79defff (plain)
ofshex dumpascii
0000 68 65 6c 70 66 75 6c 2d 32 30 32 35 30 34 30 38 2e 33 33 34 2f 00 00 00 00 00 00 00 00 00 00 00 helpful-20250408.334/...........
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 36 00 20 35 00 00 00 0000000.00000000000.012366..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 35 30 34 30 38 2e 33 33 34 2f 68 65 6c 70 66 75 6c 2d 70 6b 67 helpful-20250408.334/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 36 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 0000776.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 3b 3b 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 3b 20 6c 65 78 69 63 ;;.-*-.no-byte-compile:.t;.lexic
0420 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 6e 69 6c 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b al-binding:.nil.-*-.(define-pack
0440 61 67 65 20 22 68 65 6c 70 66 75 6c 22 20 22 32 30 32 35 30 34 30 38 2e 33 33 34 22 0a 20 20 22 age."helpful"."20250408.334"..."
0460 41 20 62 65 74 74 65 72 20 2a 68 65 6c 70 2a 20 62 75 66 66 65 72 2e 22 0a 20 20 27 28 28 65 6d A.better.*help*.buffer."...'((em
0480 61 63 73 20 20 20 20 20 20 22 32 35 22 29 0a 20 20 20 20 28 64 61 73 68 20 20 20 20 20 20 20 22 acs......"25").....(dash......."
04a0 32 2e 31 38 2e 30 22 29 0a 20 20 20 20 28 73 20 20 20 20 20 20 20 20 20 20 22 31 2e 31 31 2e 30 2.18.0").....(s.........."1.11.0
04c0 22 29 0a 20 20 20 20 28 66 20 20 20 20 20 20 20 20 20 20 22 30 2e 32 30 2e 30 22 29 0a 20 20 20 ").....(f.........."0.20.0")....
04e0 20 28 65 6c 69 73 70 2d 72 65 66 73 20 22 31 2e 32 22 29 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 .(elisp-refs."1.2"))...:url."htt
0500 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 65 6c 70 66 75 6c 22 ps://github.com/Wilfred/helpful"
0520 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 30 33 37 35 36 66 61 36 61 64 34 64 63 63 61 35 65 30 39 32 ...:commit."03756fa6ad4dcca5e092
0540 30 36 32 32 62 31 65 65 33 66 37 30 61 62 66 63 34 65 33 39 22 0a 20 20 3a 72 65 76 64 65 73 63 0622b1ee3f70abfc4e39"...:revdesc
0560 20 22 30 33 37 35 36 66 61 36 61 64 34 64 22 0a 20 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 68 ."03756fa6ad4d"...:keywords.'("h
0580 65 6c 70 22 20 22 6c 69 73 70 22 29 0a 20 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 57 69 6c 66 elp"."lisp")...:authors.'(("Wilf
05a0 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 65 2e 75 6b 22 red.Hughes"..."me@wilfred.me.uk"
05c0 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 20 27 28 28 22 57 69 6c 66 72 65 64 20 48 75 ))...:maintainers.'(("Wilfred.Hu
05e0 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 29 29 0a 00 00 ghes"..."me@wilfred.me.uk")))...
0600 68 65 6c 70 66 75 6c 2d 32 30 32 35 30 34 30 38 2e 33 33 34 2f 68 65 6c 70 66 75 6c 2e 65 6c 00 helpful-20250408.334/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 33 30 35 35 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 35 36 00 20 30 00 00 00 0330551.00000000000.014356..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 50 61 63 6b 61 67 65 2d 56 65 72 73 69 6f 6e s:.help,.lisp.;;.Package-Version
0900 3a 20 32 30 32 35 30 34 30 38 2e 33 33 34 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 76 69 73 69 :.20250408.334.;;.Package-Revisi
0920 6f 6e 3a 20 30 33 37 35 36 66 61 36 61 64 34 64 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 on:.03756fa6ad4d.;;.Package-Requ
0940 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 35 22 29 20 28 64 61 73 68 20 22 32 2e 31 38 2e ires:.((emacs."25").(dash."2.18.
0960 30 22 29 20 28 73 20 22 31 2e 31 31 2e 30 22 29 20 28 66 20 22 30 2e 32 30 2e 30 22 29 20 28 65 0").(s."1.11.0").(f."0.20.0").(e
0980 6c 69 73 70 2d 72 65 66 73 20 22 31 2e 32 22 29 29 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 lisp-refs."1.2"))..;;.This.progr
09a0 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 am.is.free.software;.you.can.red
09c0 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 istribute.it.and/or.modify.;;.it
09e0 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .under.the.terms.of.the.GNU.Gene
0a00 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 ral.Public.License.as.published.
0a20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 by.;;.the.Free.Software.Foundati
0a40 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 on,.either.version.3.of.the.Lice
0a60 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 nse,.or.;;.(at.your.option).any.
0a80 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 later.version...;;.This.program.
0aa0 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 is.distributed.in.the.hope.that.
0ac0 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 it.will.be.useful,.;;.but.WITHOU
0ae0 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 T.ANY.WARRANTY;.without.even.the
0b00 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 .implied.warranty.of.;;.MERCHANT
0b20 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 ABILITY.or.FITNESS.FOR.A.PARTICU
0b40 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e LAR.PURPOSE...See.the.;;.GNU.Gen
0b60 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 eral.Public.License.for.more.det
0b80 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 ails...;;.You.should.have.receiv
0ba0 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 ed.a.copy.of.the.GNU.General.Pub
0bc0 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 lic.License.;;.along.with.this.p
0be0 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 rogram...If.not,.see.<http://www
0c00 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e .gnu.org/licenses/>...;;;.Commen
0c20 74 61 72 79 3a 0a 0a 3b 3b 20 48 65 6c 70 66 75 6c 20 69 73 20 61 20 72 65 70 6c 61 63 65 6d 65 tary:..;;.Helpful.is.a.replaceme
0c40 6e 74 20 66 6f 72 20 2a 68 65 6c 70 2a 20 62 75 66 66 65 72 73 20 74 68 61 74 20 70 72 6f 76 69 nt.for.*help*.buffers.that.provi
0c60 64 65 73 20 6d 75 63 68 20 6d 6f 72 65 0a 3b 3b 20 63 6f 6e 74 65 78 74 75 61 6c 20 69 6e 66 6f des.much.more.;;.contextual.info
0c80 72 6d 61 74 69 6f 6e 2e 20 20 54 6f 20 67 65 74 20 73 74 61 72 74 65 64 2c 20 74 72 79 3a 0a 3b rmation...To.get.started,.try:.;
0ca0 3b 20 60 4d 2d 78 20 68 65 6c 70 66 75 6c 2d 66 75 6e 63 74 69 6f 6e 20 52 45 54 20 68 65 6c 70 ;.`M-x.helpful-function.RET.help
0cc0 66 75 6c 2d 66 75 6e 63 74 69 6f 6e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 66 75 6c 6c 20 73 65 74 20 ful-function.;;.;;.The.full.set.
0ce0 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 79 6f 75 20 63 61 6e 20 74 72 79 20 69 73 3a 0a 3b 3b 0a 3b of.commands.you.can.try.is:.;;.;
0d00 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 66 75 6e 63 74 69 6f 6e 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 ;.*.helpful-function.;;.*.helpfu
0d20 6c 2d 63 6f 6d 6d 61 6e 64 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 6b 65 79 0a 3b 3b 20 2a 20 l-command.;;.*.helpful-key.;;.*.
0d40 68 65 6c 70 66 75 6c 2d 6d 61 63 72 6f 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 helpful-macro.;;.*.helpful-calla
0d60 62 6c 65 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 0a 3b 3b 20 2a 20 68 ble.;;.*.helpful-variable.;;.*.h
0d80 65 6c 70 66 75 6c 2d 61 74 2d 70 6f 69 6e 74 0a 3b 3b 0a 3b 3b 20 46 6f 72 20 6d 6f 72 65 20 69 elpful-at-point.;;.;;.For.more.i
0da0 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 73 63 72 65 65 6e 73 68 6f 74 73 2c 20 73 65 65 0a nformation.and.screenshots,.see.
0dc0 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 77 69 6c 66 72 65 64 2f 68 65 ;;.https://github.com/wilfred/he
0de0 6c 70 66 75 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6c 69 73 lpful..;;;.Code:..(require.'elis
0e00 70 2d 72 65 66 73 29 0a 28 72 65 71 75 69 72 65 20 27 68 65 6c 70 29 0a 28 72 65 71 75 69 72 65 p-refs).(require.'help).(require
0e20 20 27 68 65 6c 70 2d 66 6e 73 29 0a 28 72 65 71 75 69 72 65 20 27 64 61 73 68 29 0a 28 72 65 71 .'help-fns).(require.'dash).(req
0e40 75 69 72 65 20 27 73 29 0a 28 72 65 71 75 69 72 65 20 27 66 29 0a 28 72 65 71 75 69 72 65 20 27 uire.'s).(require.'f).(require.'
0e60 66 69 6e 64 2d 66 75 6e 63 29 0a 28 72 65 71 75 69 72 65 20 27 6e 61 64 76 69 63 65 29 0a 28 72 find-func).(require.'nadvice).(r
0e80 65 71 75 69 72 65 20 27 69 6e 66 6f 2d 6c 6f 6f 6b 29 0a 28 72 65 71 75 69 72 65 20 27 65 64 65 equire.'info-look).(require.'ede
0ea0 62 75 67 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 61 63 65 29 0a 28 72 65 71 75 69 72 65 20 27 bug).(require.'trace).(require.'
0ec0 69 6d 65 6e 75 29 0a 28 72 65 71 75 69 72 65 20 27 63 63 2d 6c 61 6e 67 73 29 0a 0a 28 64 65 63 imenu).(require.'cc-langs)..(dec
0ee0 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 6c 69 6e 6b 2d 74 79 70 65 73 20 22 6f 6c lare-function.org-link-types."ol
0f00 22 20 28 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 6c 69 6e 6b ".()).(declare-function.org-link
0f20 2d 73 74 6f 72 65 2d 70 72 6f 70 73 20 22 6f 6c 22 20 28 26 72 65 73 74 20 70 6c 69 73 74 29 29 -store-props."ol".(&rest.plist))
0f40 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 6c 69 6e 6b 2d 67 65 74 2d .(declare-function.org-link-get-
0f60 70 61 72 61 6d 65 74 65 72 20 22 6f 6c 22 20 28 74 79 70 65 20 6b 65 79 29 29 0a 0a 28 64 65 66 parameter."ol".(type.key))..(def
0f80 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 6e 69 6c 29 0a 28 64 65 66 var-local.helpful--sym.nil).(def
0fa0 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 var-local.helpful--callable-p.ni
0fc0 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 2d 61 73 73 6f 63 69 l).(defvar-local.helpful--associ
0fe0 61 74 65 64 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 62 65 ated-buffer.nil..."The.buffer.be
1000 69 6e 67 20 75 73 65 64 20 77 68 65 6e 20 73 68 6f 77 69 6e 67 20 69 6e 73 70 65 63 74 69 6e 67 ing.used.when.showing.inspecting
1020 0a 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 2e 22 29 0a 28 64 65 66 76 .buffer-local.variables.").(defv
1040 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d 2d 73 74 61 72 74 2d 62 75 66 66 65 72 20 6e ar-local.helpful--start-buffer.n
1060 69 6c 0a 20 20 22 54 68 65 20 62 75 66 66 65 72 20 77 65 20 77 65 72 65 20 6f 72 69 67 69 6e 61 il..."The.buffer.we.were.origina
1080 6c 6c 79 20 63 61 6c 6c 65 64 20 66 72 6f 6d 2e 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c lly.called.from.").(defvar-local
10a0 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 20 6e 69 6c 0a 20 20 22 57 68 .helpful--view-literal.nil..."Wh
10c0 65 74 68 65 72 20 74 6f 20 73 68 6f 77 20 61 20 76 61 6c 75 65 20 61 73 20 61 20 6c 69 74 65 72 ether.to.show.a.value.as.a.liter
10e0 61 6c 2c 20 6f 72 20 61 20 70 72 65 74 74 79 20 69 6e 74 65 72 61 63 74 69 76 65 0a 76 69 65 77 al,.or.a.pretty.interactive.view
1100 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 66 69 72 73 74 .").(defvar-local.helpful--first
1120 2d 64 69 73 70 6c 61 79 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 74 68 69 73 20 69 73 20 74 68 -display.t..."Whether.this.is.th
1140 65 20 66 69 72 73 74 20 74 69 6d 65 20 74 68 69 73 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 e.first.time.this.results.buffer
1160 20 68 61 73 20 62 65 65 6e 0a 64 69 73 70 6c 61 79 65 64 2e 0a 0a 4e 69 6c 20 6d 65 61 6e 73 20 .has.been.displayed...Nil.means.
1180 74 68 61 74 20 77 65 27 72 65 20 72 65 66 72 65 73 68 69 6e 67 2c 20 73 6f 20 77 65 20 64 6f 6e that.we're.refreshing,.so.we.don
11a0 27 74 20 77 61 6e 74 20 74 6f 20 63 6c 6f 62 62 65 72 20 61 6e 79 0a 73 65 74 74 69 6e 67 73 20 't.want.to.clobber.any.settings.
11c0 63 68 61 6e 67 65 64 20 62 79 20 74 68 65 20 75 73 65 72 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 changed.by.the.user.")..(defgrou
11e0 70 20 68 65 6c 70 66 75 6c 20 6e 69 6c 0a 20 20 22 41 20 72 69 63 68 20 68 65 6c 70 20 73 79 73 p.helpful.nil..."A.rich.help.sys
1200 74 65 6d 20 77 69 74 68 20 63 6f 6e 74 65 78 74 75 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e tem.with.contextual.information.
1220 22 0a 20 20 3a 6c 69 6e 6b 20 27 28 75 72 6c 2d 6c 69 6e 6b 20 22 68 74 74 70 73 3a 2f 2f 67 69 "...:link.'(url-link."https://gi
1240 74 68 75 62 2e 63 6f 6d 2f 57 69 6c 66 72 65 64 2f 68 65 6c 70 66 75 6c 22 29 0a 20 20 3a 67 72 thub.com/Wilfred/helpful")...:gr
1260 6f 75 70 20 27 68 65 6c 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 65 6c 70 66 75 6c 2d 6d oup.'help)..(defcustom.helpful-m
1280 61 78 2d 62 75 66 66 65 72 73 0a 20 20 35 0a 20 20 22 48 65 6c 70 66 75 6c 20 77 69 6c 6c 20 6b ax-buffers...5..."Helpful.will.k
12a0 69 6c 6c 20 74 68 65 20 6c 65 61 73 74 20 72 65 63 65 6e 74 6c 79 20 75 73 65 64 20 48 65 6c 70 ill.the.least.recently.used.Help
12c0 66 75 6c 20 62 75 66 66 65 72 0a 69 66 20 74 68 65 72 65 20 61 72 65 20 6d 6f 72 65 20 74 68 61 ful.buffer.if.there.are.more.tha
12e0 6e 20 74 68 69 73 20 6d 61 6e 79 2e 0a 0a 54 6f 20 64 69 73 61 62 6c 65 20 63 6c 65 61 6e 75 70 n.this.many...To.disable.cleanup
1300 20 65 6e 74 69 72 65 6c 79 2c 20 73 65 74 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 .entirely,.set.this.variable.to.
1320 6e 69 6c 2e 20 53 65 65 20 61 6c 73 6f 0a 60 68 65 6c 70 66 75 6c 2d 6b 69 6c 6c 2d 62 75 66 66 nil..See.also.`helpful-kill-buff
1340 65 72 73 27 20 66 6f 72 20 61 20 6f 6e 65 2d 6f 66 66 20 63 6c 65 61 6e 75 70 2e 22 0a 20 20 3a ers'.for.a.one-off.cleanup."...:
1360 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 6e 69 6c 29 20 6e 75 6d 62 65 72 type.'(choice.(const.nil).number
1380 29 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 75 73 74 6f 6d )...:group.'helpful)..(defcustom
13a0 20 68 65 6c 70 66 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 0a .helpful-switch-buffer-function.
13c0 20 20 23 27 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 63 61 ..#'pop-to-buffer..."Function.ca
13e0 6c 6c 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 2a 48 65 6c 70 66 75 6c 2a 20 62 75 lled.to.display.the.*Helpful*.bu
1400 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 ffer."...:type.'function...:grou
1420 70 20 27 68 65 6c 70 66 75 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 65 6c 70 66 75 6c 2d p.'helpful)..(defcustom.helpful-
1440 73 65 74 2d 76 61 72 69 61 62 6c 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 28 69 66 20 28 3c 20 32 set-variable-function...(if.(<.2
1460 39 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 29 20 23 27 73 65 74 6f 70 74 20 9.emacs-major-version).#'setopt.
1480 23 27 73 65 74 71 29 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 62 79 20 60 68 65 6c #'setq)..."Function.used.by.`hel
14a0 70 66 75 6c 2d 2d 73 65 74 27 20 74 6f 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 73 65 74 20 pful--set'.to.interactively.set.
14c0 76 61 72 69 61 62 6c 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 variables."...:type.'function...
14e0 3a 67 72 6f 75 70 20 27 68 65 6c 70 66 75 6c 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 65 78 70 6c 6f :group.'helpful)..;;.TODO:.explo
1500 72 65 20 77 68 65 74 68 65 72 20 6d 6f 72 65 20 62 61 73 69 63 20 68 69 67 68 6c 69 67 68 74 69 re.whether.more.basic.highlighti
1520 6e 67 20 69 73 20 66 61 73 74 20 65 6e 6f 75 67 68 20 74 6f 0a 3b 3b 20 68 61 6e 64 6c 65 20 6c ng.is.fast.enough.to.;;.handle.l
1540 61 72 67 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 20 53 65 65 20 60 63 2d 66 6f 6e 74 2d 6c 6f 63 arger.functions..See.`c-font-loc
1560 6b 2d 69 6e 69 74 27 20 61 6e 64 20 69 74 73 20 75 73 65 20 6f 66 0a 3b 3b 20 66 6f 6e 74 2d 6c k-init'.and.its.use.of.;;.font-l
1580 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 2d 31 2e 0a 28 64 65 66 63 6f 6e 73 74 20 68 65 6c 70 66 75 ock-keywords-1..(defconst.helpfu
15a0 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 67 68 74 20 35 30 30 30 0a 20 20 22 44 6f 6e 27 74 20 68 69 l-max-highlight.5000..."Don't.hi
15c0 67 68 6c 69 67 68 74 20 63 6f 64 65 20 77 69 74 68 20 6d 6f 72 65 20 74 68 61 6e 20 74 68 69 73 ghlight.code.with.more.than.this
15e0 20 6d 61 6e 79 20 63 68 61 72 61 63 74 65 72 73 2e 0a 0a 54 68 69 73 20 69 73 20 63 75 72 72 65 .many.characters...This.is.curre
1600 6e 74 6c 79 20 6f 6e 6c 79 20 75 73 65 64 20 66 6f 72 20 43 20 63 6f 64 65 2c 20 61 73 20 6c 69 ntly.only.used.for.C.code,.as.li
1620 73 70 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 73 65 65 6d 73 20 74 6f 20 62 65 20 6d 6f 72 65 sp.highlighting.seems.to.be.more
1640 20 65 66 66 69 63 69 65 6e 74 2e 20 54 68 69 73 20 6d 61 79 20 63 68 61 6e 67 65 20 61 67 61 69 .efficient..This.may.change.agai
1660 6e 20 69 6e 20 66 75 74 75 72 65 2e 0a 0a 53 65 65 20 60 74 68 69 73 2d 63 6f 6d 6d 61 6e 64 27 n.in.future...See.`this-command'
1680 20 61 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 6c 61 72 67 65 20 70 69 65 63 65 20 .as.an.example.of.a.large.piece.
16a0 6f 66 20 43 20 63 6f 64 65 20 74 68 61 74 0a 63 61 6e 20 6d 61 6b 65 20 48 65 6c 70 66 75 6c 20 of.C.code.that.can.make.Helpful.
16c0 76 65 72 79 20 73 6c 6f 77 2e 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 69 very.slow.")..(defun.helpful--ki
16e0 6e 64 2d 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 44 nd-name.(symbol.callable-p)..."D
1700 65 73 63 72 69 62 65 20 77 68 61 74 20 6b 69 6e 64 20 6f 66 20 73 79 6d 62 6f 6c 20 74 68 69 73 escribe.what.kind.of.symbol.this
1720 20 69 73 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d .is."...(cond....((not.callable-
1740 70 29 20 22 76 61 72 69 61 62 6c 65 22 29 0a 20 20 20 28 28 63 6f 6d 6d 61 6e 64 70 20 73 79 6d p)."variable")....((commandp.sym
1760 62 6f 6c 29 20 22 63 6f 6d 6d 61 6e 64 22 29 0a 20 20 20 28 28 6d 61 63 72 6f 70 20 73 79 6d 62 bol)."command")....((macrop.symb
1780 6f 6c 29 20 22 6d 61 63 72 6f 22 29 0a 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 73 79 6d 62 ol)."macro")....((functionp.symb
17a0 6f 6c 29 20 22 66 75 6e 63 74 69 6f 6e 22 29 0a 20 20 20 28 28 73 70 65 63 69 61 6c 2d 66 6f 72 ol)."function")....((special-for
17c0 6d 2d 70 20 73 79 6d 62 6f 6c 29 20 22 73 70 65 63 69 61 6c 20 66 6f 72 6d 22 29 29 29 0a 0a 28 m-p.symbol)."special.form")))..(
17e0 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 75 66 66 65 72 20 28 73 79 6d 62 6f 6c 20 63 61 defun.helpful--buffer.(symbol.ca
1800 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 75 66 66 65 72 20 74 6f 20 llable-p)..."Return.a.buffer.to.
1820 73 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 53 59 4d 42 4f 4c 20 69 6e 2e 22 0a 20 20 28 6c 65 74 show.help.for.SYMBOL.in."...(let
1840 2a 20 28 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 *.((current-buffer.(current-buff
1860 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 er))..........(buf-name.........
1880 20 20 28 66 6f 72 6d 61 74 20 22 2a 68 65 6c 70 66 75 6c 20 25 73 2a 22 0a 20 20 20 20 20 20 20 ..(format."*helpful.%s*"........
18a0 20 20 20 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 29 0a ...........(if.(symbolp.symbol).
18c0 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 72 6d 61 74 20 22 25 ......................(format."%
18e0 73 3a 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 20 20 20 20 s:.%s"..........................
1900 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e 64 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 20 .....(helpful--kind-name.symbol.
1920 63 61 6c 6c 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 callable-p).....................
1940 20 20 20 20 20 20 20 20 20 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........symbol)...............
1960 20 20 20 20 20 20 22 6c 61 6d 62 64 61 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 ......"lambda")))..........(buf.
1980 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 75 6e 6c (get-buffer.buf-name))).....(unl
19a0 65 73 73 20 62 75 66 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 6e 65 65 64 20 74 6f 20 63 ess.buf.......;;.If.we.need.to.c
19c0 72 65 61 74 65 20 74 68 65 20 62 75 66 66 65 72 2c 20 65 6e 73 75 72 65 20 77 65 20 64 6f 6e 27 reate.the.buffer,.ensure.we.don'
19e0 74 20 65 78 63 65 65 64 0a 20 20 20 20 20 20 3b 3b 20 60 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 t.exceed.......;;.`helpful-max-b
1a00 75 66 66 65 72 73 27 20 62 79 20 6b 69 6c 6c 69 6e 67 20 74 68 65 20 6c 65 61 73 74 20 72 65 63 uffers'.by.killing.the.least.rec
1a20 65 6e 74 6c 79 20 75 73 65 64 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 75 6d 62 65 72 70 ently.used........(when.(numberp
1a40 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 20 20 28 6c .helpful-max-buffers).........(l
1a60 65 74 2a 20 28 28 62 75 66 66 65 72 73 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 et*.((buffers.(buffer-list))....
1a80 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 62 75 66 73 20 28 2d 2d 66 69 6c ............(helpful-bufs.(--fil
1aa0 74 65 72 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 69 74 0a 20 20 20 20 ter.(with-current-buffer.it.....
1ac0 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 ................................
1ae0 20 20 20 20 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 68 65 6c 70 66 75 6c 2d 6d 6f 64 .....(eq.major-mode.'helpful-mod
1b00 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e)).............................
1b20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...........buffers))............
1b40 20 20 20 20 3b 3b 20 60 62 75 66 66 65 72 2d 6c 69 73 74 27 20 73 65 65 6d 73 20 74 6f 20 62 65 ....;;.`buffer-list'.seems.to.be
1b60 20 6f 72 64 65 72 65 64 20 62 79 20 6d 6f 73 74 20 72 65 63 65 6e 74 6c 79 0a 20 20 20 20 20 20 .ordered.by.most.recently.......
1b80 20 20 20 20 20 20 20 20 20 3b 3b 20 76 69 73 69 74 65 64 20 66 69 72 73 74 2c 20 73 6f 20 6b 65 .........;;.visited.first,.so.ke
1ba0 65 70 20 74 68 6f 73 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 63 65 73 73 ep.those.................(excess
1bc0 2d 62 75 66 66 65 72 73 20 28 2d 64 72 6f 70 20 28 31 2d 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d -buffers.(-drop.(1-.helpful-max-
1be0 62 75 66 66 65 72 73 29 20 68 65 6c 70 66 75 6c 2d 62 75 66 73 29 29 29 0a 20 20 20 20 20 20 20 buffers).helpful-bufs)))........
1c00 20 20 20 3b 3b 20 4b 69 6c 6c 20 62 75 66 66 65 72 73 20 73 6f 20 77 65 20 68 61 76 65 20 6f 6e ...;;.Kill.buffers.so.we.have.on
1c20 65 20 62 75 66 66 65 72 20 6c 65 73 73 20 74 68 61 6e 20 74 68 65 20 6d 61 78 69 6d 75 6d 0a 20 e.buffer.less.than.the.maximum..
1c40 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 66 6f 72 65 20 77 65 20 63 72 65 61 74 65 20 61 20 6e .........;;.before.we.create.a.n
1c60 65 77 20 6f 6e 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 2d 65 61 63 68 20 65 78 63 65 73 73 2d ew.one............(-each.excess-
1c80 62 75 66 66 65 72 73 20 23 27 6b 69 6c 6c 2d 62 75 66 66 65 72 29 29 29 0a 0a 20 20 20 20 20 20 buffers.#'kill-buffer)))........
1ca0 28 73 65 74 71 20 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 62 75 66 (setq.buf.(get-buffer-create.buf
1cc0 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 20 20 3b 3b 20 49 6e 69 74 69 61 6c 69 73 65 20 74 68 65 20 -name)))......;;.Initialise.the.
1ce0 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 6e 64 20 61 73 73 6f 63 buffer.with.the.symbol.and.assoc
1d00 69 61 74 65 64 20 64 61 74 61 2e 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 iated.data......(with-current-bu
1d20 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 0a 20 20 ffer.buf.......(helpful-mode)...
1d40 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 73 79 6d 62 6f 6c 29 0a 20 ....(setq.helpful--sym.symbol)..
1d60 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 63 .....(setq.helpful--callable-p.c
1d80 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d allable-p).......(setq.helpful--
1da0 73 74 61 72 74 2d 62 75 66 66 65 72 20 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 start-buffer.current-buffer)....
1dc0 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 64 2d 62 75 66 ...(setq.helpful--associated-buf
1de0 66 65 72 20 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 fer.current-buffer).......(setq.
1e00 6c 69 73 74 2d 62 75 66 66 65 72 73 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 28 list-buffers-directory.........(
1e20 69 66 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 62 6f 6c 29 20 28 66 6f 72 6d 61 74 20 22 25 73 3a if.(symbolp.symbol).(format."%s:
1e40 20 25 73 22 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e 64 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 20 .%s".(helpful--kind-name.symbol.
1e60 63 61 6c 6c 61 62 6c 65 2d 70 29 20 73 79 6d 62 6f 6c 29 20 22 6c 61 6d 62 64 61 22 29 29 0a 20 callable-p).symbol)."lambda"))..
1e80 20 20 20 20 20 28 69 66 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 .....(if.(helpful--primitive-p.s
1ea0 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 ymbol.callable-p)...........(set
1ec0 71 2d 6c 6f 63 61 6c 20 63 6f 6d 6d 65 6e 74 2d 73 74 61 72 74 20 22 2f 2f 22 29 0a 20 20 20 20 q-local.comment-start."//").....
1ee0 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 61 72 74 20 22 3b ....(setq-local.comment-start.";
1f00 22 29 29 29 0a 20 20 20 20 62 75 66 29 29 0a 0a 28 64 65 66 66 61 63 65 20 68 65 6c 70 66 75 6c "))).....buf))..(defface.helpful
1f20 2d 68 65 61 64 69 6e 67 0a 20 20 27 28 28 74 20 28 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 29 29 -heading...'((t.(:weight.bold)))
1f40 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 68 65 61 64 69 6e 67 73 20 69 6e 20 48 65 ..."Face.used.for.headings.in.He
1f60 6c 70 66 75 6c 20 62 75 66 66 65 72 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c lpful.buffers.")..(defun.helpful
1f80 2d 2d 68 65 61 64 69 6e 67 20 28 74 65 78 74 29 0a 20 20 22 50 72 6f 70 65 72 74 69 7a 65 20 54 --heading.(text)..."Propertize.T
1fa0 45 58 54 20 61 73 20 61 20 68 65 61 64 69 6e 67 2e 22 0a 20 20 28 70 72 6f 70 65 72 74 69 7a 65 EXT.as.a.heading."...(propertize
1fc0 20 28 63 6f 6e 63 61 74 20 74 65 78 74 20 22 5c 6e 22 29 20 27 66 61 63 65 20 27 68 65 6c 70 66 .(concat.text."\n").'face.'helpf
1fe0 75 6c 2d 68 65 61 64 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 ul-heading))..(defun.helpful--fo
2000 72 6d 61 74 2d 63 6c 6f 73 75 72 65 20 28 73 79 6d 20 66 6f 72 6d 29 0a 20 20 22 47 69 76 65 6e rmat-closure.(sym.form)..."Given
2020 20 61 20 63 6c 6f 73 75 72 65 2c 20 72 65 74 75 72 6e 20 61 6e 20 65 71 75 69 76 61 6c 65 6e 74 .a.closure,.return.an.equivalent
2040 20 64 65 66 75 6e 20 66 6f 72 6d 2e 22 0a 20 20 28 2d 6c 65 74 20 28 28 28 5f 6b 65 79 77 6f 72 .defun.form."...(-let.(((_keywor
2060 64 20 5f 65 6e 76 20 61 72 67 73 20 2e 20 62 6f 64 79 29 20 66 6f 72 6d 29 0a 20 20 20 20 20 20 d._env.args...body).form).......
2080 20 20 20 28 64 6f 63 73 74 72 69 6e 67 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 ...(docstring.nil)).....(when.(s
20a0 74 72 69 6e 67 70 20 28 63 61 72 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 tringp.(car.body)).......(setq.d
20c0 6f 63 73 74 72 69 6e 67 20 28 63 61 72 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 ocstring.(car.body)).......(setq
20e0 20 62 6f 64 79 20 28 63 64 72 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 3b 3b 20 45 6e 73 75 72 .body.(cdr.body)).......;;.Ensur
2100 65 20 74 68 61 74 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 20 64 6f 65 73 6e 27 74 20 68 61 76 e.that.the.docstring.doesn't.hav
2120 65 20 6c 69 6e 65 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 28 2c 0a 20 20 20 20 20 20 3b e.lines.starting.with.(,.......;
2140 3b 20 6f 72 20 69 74 20 62 72 65 61 6b 73 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20 ;.or.it.breaks.indentation......
2160 20 20 28 73 65 74 71 20 64 6f 63 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ..(setq.docstring.............(s
2180 2d 72 65 70 6c 61 63 65 20 22 5c 6e 28 22 20 22 5c 6e 5c 5c 28 22 20 64 6f 63 73 74 72 69 6e 67 -replace."\n("."\n\\(".docstring
21a0 29 29 29 0a 20 20 20 20 28 69 66 20 64 6f 63 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 60 28 ))).....(if.docstring.........`(
21c0 64 65 66 75 6e 20 2c 73 79 6d 20 2c 61 72 67 73 20 2c 64 6f 63 73 74 72 69 6e 67 20 2c 40 62 6f defun.,sym.,args.,docstring.,@bo
21e0 64 79 29 0a 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 40 62 dy).......`(defun.,sym.,args.,@b
2200 6f 64 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d ody))))..(defun.helpful--pretty-
2220 70 72 69 6e 74 20 28 76 61 6c 75 65 29 0a 20 20 22 50 72 65 74 74 79 2d 70 72 69 6e 74 20 56 41 print.(value)..."Pretty-print.VA
2240 4c 55 45 2e 0a 0a 49 66 20 56 41 4c 55 45 20 69 73 20 76 65 72 79 20 62 69 67 2c 20 74 68 65 20 LUE...If.VALUE.is.very.big,.the.
2260 75 73 65 72 20 6d 61 79 20 70 72 65 73 73 20 5c 5c 5b 6b 65 79 62 6f 61 72 64 2d 71 75 69 74 5d user.may.press.\\[keyboard-quit]
2280 20 74 6f 0a 67 72 61 63 65 66 75 6c 6c 79 20 73 74 6f 70 20 74 68 65 20 70 72 69 6e 74 69 6e 67 .to.gracefully.stop.the.printing
22a0 2e 20 49 66 20 56 41 4c 55 45 20 69 73 20 73 65 6c 66 2d 72 65 66 65 72 65 6e 74 69 61 6c 2c 20 ..If.VALUE.is.self-referential,.
22c0 74 68 65 0a 65 72 72 6f 72 20 77 69 6c 6c 20 62 65 20 63 61 75 67 68 74 20 61 6e 64 20 64 69 73 the.error.will.be.caught.and.dis
22e0 70 6c 61 79 65 64 2e 22 0a 20 20 3b 3b 20 49 6e 73 70 69 72 65 64 20 62 79 20 60 69 65 6c 6d 2d played."...;;.Inspired.by.`ielm-
2300 65 76 61 6c 2d 69 6e 70 75 74 27 2e 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 eval-input'....(condition-case.e
2320 72 72 0a 20 20 20 20 20 20 28 73 2d 74 72 69 6d 2d 72 69 67 68 74 20 28 70 70 2d 74 6f 2d 73 74 rr.......(s-trim-right.(pp-to-st
2340 72 69 6e 67 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 28 70 72 ring.value)).....(error......(pr
2360 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 28 44 69 73 70 6c 61 79 20 65 72 72 6f 72 opertize.(format."(Display.error
2380 3a 20 25 73 29 22 20 28 63 61 64 72 20 65 72 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 :.%s)".(cadr.err))..............
23a0 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
23c0 65 29 29 0a 20 20 20 20 28 71 75 69 74 0a 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 e)).....(quit......(propertize."
23e0 28 55 73 65 72 20 71 75 69 74 20 64 75 72 69 6e 67 20 70 72 65 74 74 79 2d 70 72 69 6e 74 69 6e (User.quit.during.pretty-printin
2400 67 2e 29 22 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 g.)"..................'face.'fon
2420 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 t-lock-comment-face))))..(defun.
2440 68 65 6c 70 66 75 6c 2d 2d 73 6f 72 74 2d 73 79 6d 62 6f 6c 73 20 28 73 79 6d 2d 6c 69 73 74 29 helpful--sort-symbols.(sym-list)
2460 0a 20 20 22 53 6f 72 74 20 73 79 6d 62 6f 6c 73 20 69 6e 20 53 59 4d 2d 4c 49 53 54 20 61 6c 70 ..."Sort.symbols.in.SYM-LIST.alp
2480 68 61 62 65 74 69 63 61 6c 6c 79 2e 22 0a 20 20 28 2d 2d 73 6f 72 74 0a 20 20 20 28 73 74 72 69 habetically."...(--sort....(stri
24a0 6e 67 3c 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 69 74 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d ng<.(symbol-name.it).(symbol-nam
24c0 65 20 6f 74 68 65 72 29 29 0a 20 20 20 73 79 6d 2d 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 e.other))....sym-list))..(defun.
24e0 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 20 28 74 65 78 74 20 74 79 70 65 20 26 72 65 73 74 helpful--button.(text.type.&rest
2500 20 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 3b 3b 20 60 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 .properties)...;;.`make-text-but
2520 74 6f 6e 27 20 6d 75 74 61 74 65 73 20 6f 75 72 20 73 74 72 69 6e 67 20 74 6f 20 61 64 64 20 70 ton'.mutates.our.string.to.add.p
2540 72 6f 70 65 72 74 69 65 73 2e 20 43 6f 70 79 0a 20 20 3b 3b 20 54 45 58 54 20 74 6f 20 70 72 65 roperties..Copy...;;.TEXT.to.pre
2560 76 65 6e 74 20 6d 75 74 61 74 69 6e 67 20 6f 75 72 20 61 72 67 75 6d 65 6e 74 73 2c 20 61 6e 64 vent.mutating.our.arguments,.and
2580 20 74 6f 20 73 75 70 70 6f 72 74 20 27 70 75 72 65 27 0a 20 20 3b 3b 20 73 74 72 69 6e 67 73 2c .to.support.'pure'...;;.strings,
25a0 20 77 68 69 63 68 20 61 72 65 20 72 65 61 64 2d 6f 6e 6c 79 2e 0a 20 20 28 73 65 74 71 20 74 65 .which.are.read-only....(setq.te
25c0 78 74 20 28 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 74 65 78 74 xt.(substring-no-properties.text
25e0 29 29 0a 20 20 28 61 70 70 6c 79 20 23 27 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 ))...(apply.#'make-text-button..
2600 20 20 20 20 20 20 20 20 74 65 78 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 ........text.nil..........:type.
2620 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 70 72 6f 70 65 72 74 69 65 73 29 29 0a 0a 28 64 65 66 type..........properties))..(def
2640 75 6e 20 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 28 73 79 un.helpful--canonical-symbol.(sy
2660 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 49 66 20 53 59 4d 20 69 73 20 61 6e 20 61 6c m.callable-p)..."If.SYM.is.an.al
2680 69 61 73 2c 20 72 65 74 75 72 6e 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 73 79 6d 62 6f ias,.return.the.underlying.symbo
26a0 6c 2e 0a 52 65 74 75 72 6e 20 53 59 4d 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 6c 65 74 l..Return.SYM.otherwise."...(let
26c0 20 28 28 64 65 70 74 68 20 30 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 79 6d 62 6f .((depth.0)).....(if.(and.(symbo
26e0 6c 70 20 73 79 6d 29 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f lp.sym).callable-p).........(pro
2700 67 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 6f 6c 6c 6f 77 20 74 68 65 20 63 68 61 69 6e gn...........;;.Follow.the.chain
2720 20 6f 66 20 73 79 6d 62 6f 6c 73 20 75 6e 74 69 6c 20 77 65 20 66 69 6e 64 20 61 20 73 79 6d 62 .of.symbols.until.we.find.a.symb
2740 6f 6c 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 73 6e 27 74 20 70 6f 69 6e 74 ol.that...........;;.isn't.point
2760 69 6e 67 20 74 6f 20 61 20 73 79 6d 62 6f 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c ing.to.a.symbol............(whil
2780 65 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e e.(and.(symbolp.(symbol-function
27a0 20 73 79 6d 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 28 3c 20 .sym)).......................(<.
27c0 64 65 70 74 68 20 31 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 79 6d depth.10)).............(setq.sym
27e0 20 28 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 .(symbol-function.sym)).........
2800 20 20 20 20 28 73 65 74 71 20 64 65 70 74 68 20 28 31 2b 20 64 65 70 74 68 29 29 29 0a 20 20 20 ....(setq.depth.(1+.depth)))....
2820 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 69 73 20 61 6e 20 61 6c 69 61 73 20 74 6f .......;;.If.this.is.an.alias.to
2840 20 61 20 70 72 69 6d 69 74 69 76 65 2c 20 72 65 74 75 72 6e 20 74 68 65 0a 20 20 20 20 20 20 20 .a.primitive,.return.the........
2860 20 20 20 3b 3b 20 70 72 69 6d 69 74 69 76 65 27 73 20 73 79 6d 62 6f 6c 2e 0a 20 20 20 20 20 20 ...;;.primitive's.symbol........
2880 20 20 20 20 28 77 68 65 6e 20 28 73 75 62 72 70 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f ....(when.(subrp.(symbol-functio
28a0 6e 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 79 6d 20 28 69 n.sym)).............(setq.sym.(i
28c0 6e 74 65 72 6e 20 28 73 75 62 72 2d 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f ntern.(subr-name.(symbol-functio
28e0 6e 20 73 79 6d 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 79 6d 20 28 69 6e 64 n.sym)))))).......(setq.sym.(ind
2900 69 72 65 63 74 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 29 29 29 0a 20 20 73 79 6d 29 0a 0a 28 irect-variable.sym))))...sym)..(
2920 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 6c 69 61 73 65 73 20 28 73 79 6d 20 63 61 6c 6c defun.helpful--aliases.(sym.call
2940 61 62 6c 65 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 74 68 65 20 61 6c 69 61 73 65 able-p)..."Return.all.the.aliase
2960 73 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 6e 6f 6e 69 63 61 6c 20 28 s.for.SYM."...(let.((canonical.(
2980 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 79 6d 20 63 61 helpful--canonical-symbol.sym.ca
29a0 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 61 6c 69 61 73 65 73 29 0a 20 20 20 20 llable-p)).........aliases).....
29c0 28 6d 61 70 61 74 6f 6d 73 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 29 0a 20 20 20 20 20 (mapatoms......(lambda.(s)......
29e0 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 6b ..(when.(and...............;;.Sk
2a00 69 70 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 61 72 65 6e 27 74 20 62 6f 75 6e 64 2c 20 ip.variables.that.aren't.bound,.
2a20 73 6f 20 77 65 27 72 65 20 66 61 73 74 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 so.we're.faster................(
2a40 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 66 62 6f 75 6e 64 70 20 73 29 20 28 62 6f 75 6e 64 if.callable-p.(fboundp.s).(bound
2a60 70 20 73 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 p.s))................;;.If.this.
2a80 73 79 6d 62 6f 6c 20 69 73 20 61 20 6e 65 77 20 61 6c 69 61 73 20 66 6f 72 20 6f 75 72 20 74 61 symbol.is.a.new.alias.for.our.ta
2aa0 72 67 65 74 20 73 79 6d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 64 64 20 69 rget.sym,...............;;.add.i
2ac0 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 63 61 6e 6f 6e 69 63 61 6c 20 28 t................(eq.canonical.(
2ae0 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 20 63 61 6c 6c helpful--canonical-symbol.s.call
2b00 61 62 6c 65 2d 70 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 able-p))................;;.Don't
2b20 20 69 6e 63 6c 75 64 65 20 53 59 4d 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 .include.SYM................(not
2b40 20 28 65 71 20 73 79 6d 20 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 73 20 61 .(eq.sym.s)))..........(push.s.a
2b60 6c 69 61 73 65 73 29 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 6f 72 74 2d 73 79 liases)))).....(helpful--sort-sy
2b80 6d 62 6f 6c 73 20 61 6c 69 61 73 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c mbols.aliases)))..(defun.helpful
2ba0 2d 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 --obsolete-info.(sym.callable-p)
2bc0 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 67 65 74 20 ...(when.(symbolp.sym).....(get.
2be0 73 79 6d 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 20 27 62 79 74 65 2d 6f 62 73 6f 6c 65 74 sym.(if.callable-p.'byte-obsolet
2c00 65 2d 69 6e 66 6f 20 27 62 79 74 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 29 29 e-info.'byte-obsolete-variable))
2c20 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 61 6c 69 61 73 ))..(defun.helpful--format-alias
2c40 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 28 6c 65 74 20 28 28 6f 62 73 6f 6c .(sym.callable-p)...(let.((obsol
2c60 65 74 65 2d 69 6e 66 6f 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f ete-info.(helpful--obsolete-info
2c80 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 28 73 79 6d 2d 62 .sym.callable-p)).........(sym-b
2ca0 75 74 74 6f 6e 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 utton.(helpful--button..........
2cc0 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 20 ............(symbol-name.sym)...
2ce0 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 64 65 73 63 ...................'helpful-desc
2d00 72 69 62 65 2d 65 78 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 ribe-exactly-button.............
2d20 20 20 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 20 20 20 20 .........'symbol.sym............
2d40 20 20 20 20 20 20 20 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 ..........'callable-p.callable-p
2d60 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 ))).....(cond......(obsolete-inf
2d80 6f 0a 20 20 20 20 20 20 28 2d 69 66 2d 6c 65 74 20 28 76 65 72 73 69 6f 6e 20 28 2d 6c 61 73 74 o.......(-if-let.(version.(-last
2da0 2d 69 74 65 6d 20 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 -item.obsolete-info))...........
2dc0 28 66 6f 72 6d 61 74 20 22 25 73 20 28 6f 62 73 6f 6c 65 74 65 20 73 69 6e 63 65 20 25 73 29 22 (format."%s.(obsolete.since.%s)"
2de0 20 73 79 6d 2d 62 75 74 74 6f 6e 20 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 66 6f .sym-button.version).........(fo
2e00 72 6d 61 74 20 22 25 73 20 28 6f 62 73 6f 6c 65 74 65 29 22 20 73 79 6d 2d 62 75 74 74 6f 6e 29 rmat."%s.(obsolete)".sym-button)
2e20 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 73 79 6d 2d 62 75 74 74 6f 6e 29 29 29 29 0a ))......(t.......sym-button)))).
2e40 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6e 64 65 6e 74 2d 72 69 67 69 64 6c 79 20 .(defun.helpful--indent-rigidly.
2e60 28 73 20 61 6d 6f 75 6e 74 29 0a 20 20 22 49 6e 64 65 6e 74 20 73 74 72 69 6e 67 20 53 20 62 79 (s.amount)..."Indent.string.S.by
2e80 20 61 64 64 69 6e 67 20 41 4d 4f 55 4e 54 20 73 70 61 63 65 73 20 74 6f 20 65 61 63 68 20 6c 69 .adding.AMOUNT.spaces.to.each.li
2ea0 6e 65 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 69 6e ne."...(with-temp-buffer.....(in
2ec0 73 65 72 74 20 73 29 0a 20 20 20 20 28 69 6e 64 65 6e 74 2d 72 69 67 69 64 6c 79 20 28 70 6f 69 sert.s).....(indent-rigidly.(poi
2ee0 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 61 6d 6f 75 6e 74 29 0a 20 20 20 20 nt-min).(point-max).amount).....
2f00 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 (buffer-string)))..(defun.helpfu
2f20 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 73 79 6d 62 6f 6c 29 0a 20 20 l--format-properties.(symbol)...
2f40 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 20 61 6c 6c 20 "Return.a.string.describing.all.
2f60 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 6c 65 the.properties.of.SYMBOL."...(le
2f80 74 2a 20 28 28 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 t*.((syms-and-vals...........(-p
2fa0 61 72 74 69 74 69 6f 6e 20 32 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 62 6f 6c 29 artition.2.(and.(symbolp.symbol)
2fc0 20 28 73 79 6d 62 6f 6c 2d 70 6c 69 73 74 20 73 79 6d 62 6f 6c 29 29 29 29 0a 20 20 20 20 20 20 .(symbol-plist.symbol)))).......
2fe0 20 20 20 28 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f ...(syms-and-vals...........(-so
3000 72 74 20 28 2d 6c 61 6d 62 64 61 20 28 28 73 79 6d 31 20 5f 29 20 28 73 79 6d 32 20 5f 29 29 0a rt.(-lambda.((sym1._).(sym2._)).
3020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6c 65 73 73 70 ...................(string-lessp
3040 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 31 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 .(symbol-name.sym1).(symbol-name
3060 20 73 79 6d 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 73 2d 61 .sym2)))..................syms-a
3080 6e 64 2d 76 61 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 73 0a 20 20 20 20 20 20 nd-vals))..........(lines.......
30a0 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 2a 20 28 28 28 ....(--map............(-let*.(((
30c0 73 79 6d 20 76 61 6c 29 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sym.val).it)....................
30e0 28 70 72 65 74 74 79 2d 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (pretty-val.....................
3100 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 76 61 6c 29 29 29 0a 20 20 (helpful--pretty-print.val)))...
3120 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 5c 6e 25 73 25 73 22 0a 20 20 ...........(format."%s\n%s%s"...
3140 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 20 28 ...................(propertize.(
3160 73 79 6d 62 6f 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 symbol-name.sym)................
3180 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 6e 74 2d 6c 6f ..................'face.'font-lo
31a0 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ck-constant-face)...............
31c0 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 64 65 6e 74 2d 72 69 67 69 64 6c 79 20 .......(helpful--indent-rigidly.
31e0 70 72 65 74 74 79 2d 76 61 6c 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pretty-val.2)...................
3200 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ...(cond.......................;
3220 3b 20 41 6c 73 6f 20 6f 66 66 65 72 20 74 6f 20 64 69 73 61 73 73 65 6d 62 6c 65 20 62 79 74 65 ;.Also.offer.to.disassemble.byte
3240 2d 63 6f 64 65 0a 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 70 -code.......................;;.p
3260 72 6f 70 65 72 74 69 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roperties.......................
3280 20 28 28 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 76 61 6c 29 0a 20 20 20 .((byte-code-function-p.val)....
32a0 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 20 22 5c 6e 20 ....................(format."\n.
32c0 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 20 20 20 20 20 20 .%s"............................
32e0 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 ....(helpful--make-disassemble-b
3300 75 74 74 6f 6e 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 utton.val)))....................
3320 20 20 20 28 28 65 71 20 73 79 6d 20 27 65 72 74 2d 2d 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 ...((eq.sym.'ert--test).........
3340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5c 6e 20 20 25 73 22 0a ...............(format."\n..%s".
3360 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 28 ...............................(
3380 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 6f 6e 20 73 79 helpful--make-run-test-button.sy
33a0 6d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 mbol))).......................(t
33c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 29 29 29 0a 20 ........................""))))..
33e0 20 20 20 20 20 20 20 20 20 20 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 29 29 29 0a 20 20 20 20 28 ..........syms-and-vals))).....(
3400 77 68 65 6e 20 6c 69 6e 65 73 0a 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 6c 69 when.lines.......(s-join."\n".li
3420 6e 65 73 29 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 nes))))..(define-button-type.'he
3440 6c 70 66 75 6c 2d 66 6f 72 67 65 74 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 lpful-forget-button...'action.#'
3460 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 67 65 74 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 helpful--forget...'symbol.nil...
3480 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 74 'callable-p.nil...'follow-link.t
34a0 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 55 6e 62 69 6e 64 20 74 68 69 73 20 66 75 6e 63 74 ...'help-echo."Unbind.this.funct
34c0 69 6f 6e 22 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 69 74 20 77 6f 75 6c 64 20 62 65 20 6e 69 63 65 ion")..;;.TODO:.it.would.be.nice
34e0 20 74 6f 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 64 65 6c 65 74 65 20 74 68 65 20 73 6f 75 72 63 65 .to.optionally.delete.the.source
3500 20 63 6f 64 65 20 74 6f 6f 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 67 65 .code.too..(defun.helpful--forge
3520 74 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 55 6e 62 69 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 t.(button)..."Unbind.the.current
3540 20 73 79 6d 62 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 .symbol."...(let*.((sym.(button-
3560 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 20 20 20 20 28 63 get.button.'symbol))..........(c
3580 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 6e 20 27 63 61 allable-p.(button-get.button.'ca
35a0 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 6b 69 6e 64 20 28 68 65 6c 70 66 llable-p))..........(kind.(helpf
35c0 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 65 2d 70 29 29 29 0a ul--kind-name.sym.callable-p))).
35e0 20 20 20 20 28 77 68 65 6e 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 20 28 66 6f 72 6d 61 74 20 22 ....(when.(yes-or-no-p.(format."
3600 46 6f 72 67 65 74 20 25 73 20 25 73 3f 22 20 6b 69 6e 64 20 73 79 6d 29 29 0a 20 20 20 20 20 20 Forget.%s.%s?".kind.sym)).......
3620 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 28 66 6d 61 6b 75 6e (if.callable-p...........(fmakun
3640 62 6f 75 6e 64 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6b 75 6e 62 6f 75 6e 64 20 73 bound.sym).........(makunbound.s
3660 79 6d 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 46 6f 72 67 6f 74 20 25 73 20 25 ym)).......(message."Forgot.%s.%
3680 73 2e 22 20 6b 69 6e 64 20 73 79 6d 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 s.".kind.sym).......(kill-buffer
36a0 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 .(current-buffer)))))..(define-b
36c0 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 utton-type.'helpful-c-source-dir
36e0 65 63 74 6f 72 79 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 2d 73 6f ectory...'action.#'helpful--c-so
3700 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a urce-directory...'follow-link.t.
3720 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 53 65 74 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 45 ..'help-echo."Set.directory.to.E
3740 6d 61 63 73 20 43 20 73 6f 75 72 63 65 20 63 6f 64 65 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c macs.C.source.code")..(defun.hel
3760 70 66 75 6c 2d 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 20 28 5f 62 75 74 74 6f pful--c-source-directory.(_butto
3780 6e 29 0a 20 20 22 53 65 74 20 60 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 n)..."Set.`find-function-C-sourc
37a0 65 2d 64 69 72 65 63 74 6f 72 79 27 20 73 6f 20 77 65 20 63 61 6e 20 73 68 6f 77 20 74 68 65 0a e-directory'.so.we.can.show.the.
37c0 73 6f 75 72 63 65 20 63 6f 64 65 20 74 6f 20 70 72 69 6d 69 74 69 76 65 73 2e 22 0a 20 20 28 6c source.code.to.primitives."...(l
37e0 65 74 20 28 28 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f et.((emacs-src-dir.(read-directo
3800 72 79 2d 6e 61 6d 65 20 22 50 61 74 68 20 74 6f 20 45 6d 61 63 73 20 73 6f 75 72 63 65 20 63 6f ry-name."Path.to.Emacs.source.co
3820 64 65 3a 20 22 29 29 29 0a 20 20 20 20 3b 3b 20 4c 65 74 20 74 68 65 20 75 73 65 72 20 73 70 65 de:."))).....;;.Let.the.user.spe
3840 63 69 66 79 20 74 68 65 20 73 6f 75 72 63 65 20 70 61 74 68 20 77 69 74 68 20 6f 72 20 77 69 74 cify.the.source.path.with.or.wit
3860 68 6f 75 74 20 73 72 63 2f 2c 0a 20 20 20 20 3b 3b 20 77 68 69 63 68 20 69 73 20 61 20 73 75 62 hout.src/,.....;;.which.is.a.sub
3880 64 69 72 65 63 74 6f 72 79 20 69 6e 20 74 68 65 20 45 6d 61 63 73 20 74 72 65 65 2e 0a 20 20 20 directory.in.the.Emacs.tree.....
38a0 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 65 6d 61 63 .(unless.(equal.(f-filename.emac
38c0 73 2d 73 72 63 2d 64 69 72 29 20 22 73 72 63 22 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6d s-src-dir)."src").......(setq.em
38e0 61 63 73 2d 73 72 63 2d 64 69 72 20 28 66 2d 6a 6f 69 6e 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 acs-src-dir.(f-join.emacs-src-di
3900 72 20 22 73 72 63 22 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 66 69 6e 64 2d 66 75 6e 63 74 69 r."src"))).....(setq.find-functi
3920 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 20 65 6d 61 63 73 2d 73 72 63 2d on-C-source-directory.emacs-src-
3940 64 69 72 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 dir))...(helpful-update))..(defi
3960 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 69 73 61 73 73 65 6d ne-button-type.'helpful-disassem
3980 62 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 66 75 6c 2d 2d ble-button...'action.#'helpful--
39a0 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 disassemble...'follow-link.t...'
39c0 6f 62 6a 65 63 74 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 53 68 6f 77 20 64 69 object.nil...'help-echo."Show.di
39e0 73 61 73 73 65 6d 62 6c 65 64 20 62 79 74 65 63 6f 64 65 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 sassembled.bytecode")..(defun.he
3a00 6c 70 66 75 6c 2d 2d 64 69 73 61 73 73 65 6d 62 6c 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 44 lpful--disassemble.(button)..."D
3a20 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 22 0a isassemble.the.current.symbol.".
3a40 20 20 3b 3b 20 60 64 69 73 61 73 73 65 6d 62 6c 65 27 20 63 61 6e 20 68 61 6e 64 6c 65 20 62 6f ..;;.`disassemble'.can.handle.bo
3a60 74 68 20 73 79 6d 62 6f 6c 73 20 28 65 2e 67 2e 20 27 77 68 65 6e 29 20 61 6e 64 20 72 61 77 0a th.symbols.(e.g..'when).and.raw.
3a80 20 20 3b 3b 20 62 79 74 65 2d 63 6f 64 65 20 6f 62 6a 65 63 74 73 2e 0a 20 20 28 64 69 73 61 73 ..;;.byte-code.objects....(disas
3aa0 73 65 6d 62 6c 65 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 6f 62 6a 65 63 semble.(button-get.button.'objec
3ac0 74 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 t)))..(define-button-type.'helpf
3ae0 75 6c 2d 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 ul-run-test-button...'action.#'h
3b00 65 6c 70 66 75 6c 2d 2d 72 75 6e 2d 74 65 73 74 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 elpful--run-test...'follow-link.
3b20 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 52 75 t...'symbol.nil...'help-echo."Ru
3b40 6e 20 45 52 54 20 74 65 73 74 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 72 75 n.ERT.test")..(defun.helpful--ru
3b60 6e 2d 74 65 73 74 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 n-test.(button)..."Disassemble.t
3b80 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 65 72 74 20 28 62 75 74 74 he.current.symbol."...(ert.(butt
3ba0 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 0a 28 64 65 66 69 6e on-get.button.'symbol)))..(defin
3bc0 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 65 64 65 62 75 67 2d 62 75 e-button-type.'helpful-edebug-bu
3be0 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 65 64 65 62 75 67 tton...'action.#'helpful--edebug
3c00 0a 20 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 ...'follow-link.t...'symbol.nil.
3c20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 54 6f 67 67 6c 65 20 65 64 65 62 75 67 20 28 72 65 2d ..'help-echo."Toggle.edebug.(re-
3c40 65 76 61 6c 75 61 74 65 73 20 64 65 66 69 6e 69 74 69 6f 6e 29 22 29 0a 0a 28 64 65 66 75 6e 20 evaluates.definition)")..(defun.
3c60 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d 6d 61 63 72 6f 2d 70 20 28 73 79 6d 29 0a 20 20 22 49 73 helpful--kbd-macro-p.(sym)..."Is
3c80 20 53 59 4d 20 61 20 6b 65 79 62 6f 61 72 64 20 6d 61 63 72 6f 3f 22 0a 20 20 28 61 6e 64 20 28 .SYM.a.keyboard.macro?"...(and.(
3ca0 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75 6e 63 20 symbolp.sym)........(let.((func.
3cc0 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 (symbol-function.sym))).........
3ce0 20 28 6f 72 20 28 73 74 72 69 6e 67 70 20 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(or.(stringp.func).............
3d00 20 28 76 65 63 74 6f 72 70 20 66 75 6e 63 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 .(vectorp.func)))))..(defun.help
3d20 66 75 6c 2d 2d 65 64 65 62 75 67 2d 70 20 28 73 79 6d 29 0a 20 20 22 44 6f 65 73 20 66 75 6e 63 ful--edebug-p.(sym)..."Does.func
3d40 74 69 6f 6e 20 53 59 4d 20 68 61 76 65 20 69 74 73 20 64 65 66 69 6e 69 74 69 6f 6e 20 70 61 74 tion.SYM.have.its.definition.pat
3d60 63 68 65 64 20 62 79 20 65 64 65 62 75 67 3f 22 0a 20 20 28 6c 65 74 20 28 28 66 6e 2d 64 65 66 ched.by.edebug?"...(let.((fn-def
3d80 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 0a 20 20 20 20 3b .(indirect-function.sym))).....;
3da0 3b 20 45 64 65 62 75 67 20 72 65 70 6c 61 63 65 73 20 66 75 6e 63 74 69 6f 6e 20 73 6f 75 72 63 ;.Edebug.replaces.function.sourc
3dc0 65 20 63 6f 64 65 20 77 69 74 68 20 61 20 73 65 78 70 20 74 68 61 74 20 68 61 73 0a 20 20 20 20 e.code.with.a.sexp.that.has.....
3de0 3b 3b 20 60 65 64 65 62 75 67 2d 65 6e 74 65 72 27 2c 20 60 65 64 65 62 75 67 2d 61 66 74 65 72 ;;.`edebug-enter',.`edebug-after
3e00 27 20 65 74 63 20 69 6e 74 65 72 6c 65 61 76 65 64 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 '.etc.interleaved..This.means.th
3e20 65 0a 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 e.....;;.function.is.interpreted
3e40 2c 20 73 6f 20 60 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f 6e 27 20 72 65 74 75 72 6e 73 ,.so.`indirect-function'.returns
3e60 20 61 20 6c 69 73 74 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 66 .a.list......(when.(and.(consp.f
3e80 6e 2d 64 65 66 29 20 28 63 6f 6e 73 70 20 28 63 64 72 20 66 6e 2d 64 65 66 29 29 29 0a 20 20 20 n-def).(consp.(cdr.fn-def)))....
3ea0 20 20 20 28 2d 6c 65 74 20 5b 66 6e 2d 65 6e 64 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 66 6e 2d ...(-let.[fn-end.(-last-item.fn-
3ec0 64 65 66 29 5d 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 66 6e 2d 65 6e 64 def)].........(and.(consp.fn-end
3ee0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 61 72 20 66 6e 2d 65 6e 64 29 20 )..............(eq.(car.fn-end).
3f00 27 65 64 65 62 75 67 2d 65 6e 74 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 'edebug-enter))))))..(defun.help
3f20 66 75 6c 2d 2d 63 61 6e 2d 65 64 65 62 75 67 2d 70 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d ful--can-edebug-p.(sym.callable-
3f40 70 20 62 75 66 20 70 6f 73 29 0a 20 20 22 43 61 6e 20 77 65 20 75 73 65 20 65 64 65 62 75 67 20 p.buf.pos)..."Can.we.use.edebug.
3f60 77 69 74 68 20 53 59 4d 3f 22 0a 20 20 28 61 6e 64 0a 20 20 20 3b 3b 20 53 59 4d 20 6d 75 73 74 with.SYM?"...(and....;;.SYM.must
3f80 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 .be.a.function.....callable-p...
3fa0 20 3b 3b 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6e 6f 74 20 62 65 20 61 20 70 72 69 .;;.The.function.cannot.be.a.pri
3fc0 6d 69 74 69 76 65 2c 20 69 74 20 6d 75 73 74 20 62 65 20 64 65 66 69 6e 65 64 20 69 6e 20 65 6c mitive,.it.must.be.defined.in.el
3fe0 69 73 70 2e 0a 20 20 20 28 6e 6f 74 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 isp.....(not.(helpful--primitive
4000 2d 70 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 3b 3b 20 57 65 20 6e 65 65 -p.sym.callable-p))....;;.We.nee
4020 64 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 69 74 73 20 64 65 66 69 6e 69 74 d.to.be.able.to.find.its.definit
4040 69 6f 6e 2c 20 6f 72 20 77 65 20 63 61 6e 27 74 20 73 74 65 70 0a 20 20 20 3b 3b 20 74 68 72 6f ion,.or.we.can't.step....;;.thro
4060 75 67 68 20 74 68 65 20 73 6f 75 72 63 65 2e 0a 20 20 20 62 75 66 20 70 6f 73 29 29 0a 0a 28 64 ugh.the.source.....buf.pos))..(d
4080 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 6f 67 67 6c 65 2d 65 64 65 62 75 67 20 28 73 79 6d efun.helpful--toggle-edebug.(sym
40a0 29 0a 20 20 22 45 6e 61 62 6c 65 20 65 64 65 62 75 67 20 77 68 65 6e 20 66 75 6e 63 74 69 6f 6e )..."Enable.edebug.when.function
40c0 20 53 59 4d 20 69 73 20 63 61 6c 6c 65 64 2c 0a 6f 72 20 64 69 73 61 62 6c 65 20 69 66 20 61 6c .SYM.is.called,.or.disable.if.al
40e0 72 65 61 64 79 20 65 6e 61 62 6c 65 64 2e 22 0a 20 20 28 2d 6c 65 74 20 28 28 73 68 6f 75 6c 64 ready.enabled."...(-let.((should
4100 2d 65 64 65 62 75 67 20 28 6e 6f 74 20 28 68 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 2d 70 20 -edebug.(not.(helpful--edebug-p.
4120 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 62 75 66 20 70 6f 73 20 63 72 65 61 74 65 sym)))..........((buf.pos.create
4140 64 29 20 28 68 65 6c 70 66 75 6c 2d 2d 64 65 66 69 6e 69 74 69 6f 6e 20 73 79 6d 20 74 29 29 29 d).(helpful--definition.sym.t)))
4160 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 62 75 66 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 .....(if.(and.buf.pos).........(
4180 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 progn...........(with-current-bu
41a0 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 ffer.buf.............(save-excur
41c0 73 69 6f 6e 0a 20 20 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 sion...............(save-restric
41e0 74 69 6f 6e 0a 20 20 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 tion.................(widen)....
4200 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 0a 20 20 .............(goto-char.pos)....
4220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 65 64 65 62 75 67 2d 61 6c 6c ..............(let*.((edebug-all
4240 2d 66 6f 72 6d 73 20 73 68 6f 75 6c 64 2d 65 64 65 62 75 67 29 0a 20 20 20 20 20 20 20 20 20 20 -forms.should-edebug)...........
4260 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 64 65 62 75 67 2d 61 6c 6c 2d 64 65 66 73 20 73 68 .............(edebug-all-defs.sh
4280 6f 75 6c 64 2d 65 64 65 62 75 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ould-edebug)....................
42a0 20 20 20 20 28 66 6f 72 6d 20 28 65 64 65 62 75 67 2d 72 65 61 64 2d 74 6f 70 2d 6c 65 76 65 6c ....(form.(edebug-read-top-level
42c0 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 61 -form)))...................;;.Ba
42e0 73 65 64 20 6f 6e 20 60 65 64 65 62 75 67 2d 65 76 61 6c 2d 64 65 66 75 6e 27 2e 0a 20 20 20 20 sed.on.`edebug-eval-defun'......
4300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 76 61 6c 20 28 65 76 61 6c 2d 73 65 78 70 2d 61 ..............(eval.(eval-sexp-a
4320 64 64 2d 64 65 66 76 61 72 73 20 66 6f 72 6d 29 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 dd-defvars.form).lexical-binding
4340 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 27 72 65 20 65 6e 61 62 )))))...........;;.If.we're.enab
4360 6c 69 6e 67 20 65 64 65 62 75 67 2c 20 77 65 20 6e 65 65 64 20 74 68 65 20 73 6f 75 72 63 65 20 ling.edebug,.we.need.the.source.
4380 62 75 66 66 65 72 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 78 69 73 74 2e 20 4f 74 buffer.to...........;;.exist..Ot
43a0 68 65 72 77 69 73 65 2c 20 77 65 20 63 61 6e 20 63 6c 65 61 6e 20 69 74 20 75 70 2e 0a 20 20 20 herwise,.we.can.clean.it.up.....
43c0 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 63 72 65 61 74 65 64 20 28 6e 6f 74 20 73 .......(when.(and.created.(not.s
43e0 68 6f 75 6c 64 2d 65 64 65 62 75 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c hould-edebug)).............(kill
4400 2d 62 75 66 66 65 72 20 62 75 66 29 29 29 0a 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f -buffer.buf)))........(user-erro
4420 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 73 6f 75 72 63 65 20 66 6f 72 20 65 64 65 r."Could.not.find.source.for.ede
4440 62 75 67 22 29 29 29 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 bug"))))..(defun.helpful--edebug
4460 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 64 65 62 75 67 20 66 6f 72 20 74 .(button)..."Toggle.edebug.for.t
4480 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d he.current.symbol."...(helpful--
44a0 74 6f 67 67 6c 65 2d 65 64 65 62 75 67 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e toggle-edebug.(button-get.button
44c0 20 27 73 79 6d 62 6f 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 .'symbol))...(helpful-update))..
44e0 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 74 72 61 (define-button-type.'helpful-tra
4500 63 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 2d 74 ce-button...'action.#'helpful--t
4520 72 61 63 65 0a 20 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 race...'follow-link.t...'symbol.
4540 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 54 6f 67 67 6c 65 20 66 75 6e 63 74 69 6f nil...'help-echo."Toggle.functio
4560 6e 20 74 72 61 63 69 6e 67 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 72 61 n.tracing")..(defun.helpful--tra
4580 63 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 6f 67 67 6c 65 20 74 72 61 63 69 6e 67 20 66 6f ce.(button)..."Toggle.tracing.fo
45a0 72 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 20 28 28 r.the.current.symbol."...(let.((
45c0 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 29 sym.(button-get.button.'symbol))
45e0 29 0a 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 0a ).....(if.(trace-is-traced.sym).
4600 20 20 20 20 20 20 20 20 28 75 6e 74 72 61 63 65 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 0a 20 ........(untrace-function.sym)..
4620 20 20 20 20 20 28 74 72 61 63 65 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 0a 20 20 28 68 .....(trace-function.sym)))...(h
4640 65 6c 70 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 elpful-update))..(define-button-
4660 74 79 70 65 20 27 68 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 type.'helpful-navigate-button...
4680 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 61 74 65 0a 20 20 27 70 'action.#'helpful--navigate...'p
46a0 61 74 68 20 6e 69 6c 0a 20 20 27 70 6f 73 69 74 69 6f 6e 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f ath.nil...'position.nil...'follo
46c0 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 4e 61 76 69 67 61 74 65 20 w-link.t...'help-echo."Navigate.
46e0 74 6f 20 64 65 66 69 6e 69 74 69 6f 6e 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d to.definition")..(defun.helpful-
4700 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 28 70 6f 73 29 0a 20 20 22 4d 6f 76 65 20 70 -goto-char-widen.(pos)..."Move.p
4720 6f 69 6e 74 20 74 6f 20 50 4f 53 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 oint.to.POS.in.the.current.buffe
4740 72 2e 0a 49 66 20 6e 61 72 72 6f 77 69 6e 67 20 69 73 20 69 6e 20 65 66 66 65 63 74 2c 20 77 69 r..If.narrowing.is.in.effect,.wi
4760 64 65 6e 20 69 66 20 50 4f 53 20 69 73 6e 27 74 20 69 6e 20 74 68 65 20 6e 61 72 72 6f 77 65 64 den.if.POS.isn't.in.the.narrowed
4780 20 61 72 65 61 2e 22 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 28 3c 20 70 6f 73 20 28 70 6f 69 6e .area."...(when.(or.(<.pos.(poin
47a0 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 70 6f 73 20 28 70 6f 69 6e t-min)).............(>.pos.(poin
47c0 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 28 77 69 64 65 6e 29 29 0a 20 20 28 67 6f 74 6f 2d 63 68 t-max))).....(widen))...(goto-ch
47e0 61 72 20 70 6f 73 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 61 ar.pos))..(defun.helpful--naviga
4800 74 65 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 70 te.(button)..."Navigate.to.the.p
4820 61 74 68 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 ath.this.BUTTON.represents."...(
4840 66 69 6e 64 2d 66 69 6c 65 20 28 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 find-file.(substring-no-properti
4860 65 73 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 70 61 74 68 29 29 29 0a 20 es.(button-get.button.'path)))..
4880 20 3b 3b 20 57 65 20 75 73 65 20 60 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 27 20 74 .;;.We.use.`get-text-property'.t
48a0 6f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 61 6e 20 45 6d 61 63 73 20 32 35 20 62 75 67 3a 0a 20 o.work.around.an.Emacs.25.bug:..
48c0 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/
48e0 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 66 37 63 34 62 61 cgit/emacs.git/commit/?id=f7c4ba
4900 64 31 37 64 38 33 32 39 37 65 65 39 61 31 62 35 37 35 35 32 62 31 39 34 34 30 32 30 66 32 33 61 d17d83297ee9a1b57552b1944020f23a
4920 65 61 0a 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 70 6f 73 20 28 67 65 74 2d 74 65 78 74 2d 70 ea...(-when-let.(pos.(get-text-p
4940 72 6f 70 65 72 74 79 20 62 75 74 74 6f 6e 20 27 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 roperty.button.'position........
4960 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 28 6d ..............................(m
4980 61 72 6b 65 72 2d 62 75 66 66 65 72 20 62 75 74 74 6f 6e 29 29 29 0a 20 20 20 20 28 68 65 6c 70 arker-buffer.button))).....(help
49a0 66 75 6c 2d 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 70 6f 73 29 29 29 0a 0a 28 64 65 ful--goto-char-widen.pos)))..(de
49c0 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 61 74 65 2d 62 75 74 74 6f 6e 20 28 74 65 fun.helpful--navigate-button.(te
49e0 78 74 20 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e xt.path.&optional.pos)..."Return
4a00 20 61 20 62 75 74 74 6f 6e 20 74 68 61 74 20 6f 70 65 6e 73 20 50 41 54 48 20 61 6e 64 20 70 75 .a.button.that.opens.PATH.and.pu
4a20 74 73 20 70 6f 69 6e 74 20 61 74 20 50 4f 53 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 ts.point.at.POS."...(helpful--bu
4a40 74 74 6f 6e 0a 20 20 20 74 65 78 74 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 6e 61 76 69 67 61 74 tton....text....'helpful-navigat
4a60 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 70 61 74 68 20 70 61 74 68 0a 20 20 20 27 70 6f 73 69 74 e-button....'path.path....'posit
4a80 69 6f 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 ion.pos))..(define-button-type.'
4aa0 68 65 6c 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 helpful-buffer-button...'action.
4ac0 23 27 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 0a 20 20 27 62 #'helpful--switch-to-buffer...'b
4ae0 75 66 66 65 72 20 6e 69 6c 0a 20 20 27 70 6f 73 69 74 69 6f 6e 20 6e 69 6c 0a 20 20 27 66 6f 6c uffer.nil...'position.nil...'fol
4b00 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 77 69 74 63 68 20 low-link.t...'help-echo."Switch.
4b20 74 6f 20 74 68 69 73 20 62 75 66 66 65 72 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c to.this.buffer")..(defun.helpful
4b40 2d 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 4e --switch-to-buffer.(button)..."N
4b60 61 76 69 67 61 74 65 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 74 68 69 73 20 42 55 54 54 4f avigate.to.the.buffer.this.BUTTO
4b80 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 62 75 74 N.represents."...(let.((buf.(but
4ba0 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 20 20 ton-get.button.'buffer))........
4bc0 20 28 70 6f 73 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 70 6f 73 69 74 69 .(pos.(button-get.button.'positi
4be0 6f 6e 29 29 29 0a 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 29 on))).....(switch-to-buffer.buf)
4c00 0a 20 20 20 20 28 77 68 65 6e 20 70 6f 73 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 67 .....(when.pos.......(helpful--g
4c20 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 70 6f 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 oto-char-widen.pos))))..(defun.h
4c40 65 6c 70 66 75 6c 2d 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 20 28 62 75 66 66 65 72 20 26 6f elpful--buffer-button.(buffer.&o
4c60 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 75 74 74 6f 6e 20 ptional.pos)..."Return.a.button.
4c80 74 68 61 74 20 73 77 69 74 63 68 65 73 20 74 6f 20 42 55 46 46 45 52 20 61 6e 64 20 70 75 74 73 that.switches.to.BUFFER.and.puts
4ca0 20 70 6f 69 6e 74 20 61 74 20 50 4f 53 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 .point.at.POS."...(helpful--butt
4cc0 6f 6e 0a 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 66 65 72 29 0a 20 20 20 27 68 on....(buffer-name.buffer)....'h
4ce0 65 6c 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 0a 20 20 20 27 62 75 66 66 65 72 20 elpful-buffer-button....'buffer.
4d00 62 75 66 66 65 72 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 buffer....'position.pos))..(defi
4d20 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 63 75 73 74 6f 6d 69 7a ne-button-type.'helpful-customiz
4d40 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 2d 63 75 e-button...'action.#'helpful--cu
4d60 73 74 6f 6d 69 7a 65 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d stomize...'symbol.nil...'follow-
4d80 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 4f 70 65 6e 20 43 75 73 74 6f 6d link.t...'help-echo."Open.Custom
4da0 69 7a 65 20 66 6f 72 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 ize.for.this.symbol")..(defun.he
4dc0 6c 70 66 75 6c 2d 2d 63 75 73 74 6f 6d 69 7a 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 4f 70 65 lpful--customize.(button)..."Ope
4de0 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 6c 2e 22 0a 20 20 n.Customize.for.this.symbol."...
4e00 28 63 75 73 74 6f 6d 69 7a 65 2d 76 61 72 69 61 62 6c 65 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 (customize-variable.(button-get.
4e20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f button.'symbol)))..(define-butto
4e40 6e 2d 74 79 70 65 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 n-type.'helpful-associated-buffe
4e60 72 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 61 73 r-button...'action.#'helpful--as
4e80 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 sociated-buffer...'symbol.nil...
4ea0 27 70 72 6f 6d 70 74 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 'prompt-p.nil...'follow-link.t..
4ec0 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 43 68 61 6e 67 65 20 61 73 73 6f 63 69 61 74 65 64 20 62 .'help-echo."Change.associated.b
4ee0 75 66 66 65 72 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 6c 69 uffer")..(defun.helpful--read-li
4f00 76 65 2d 62 75 66 66 65 72 20 28 70 72 6f 6d 70 74 20 70 72 65 64 69 63 61 74 65 29 0a 20 20 22 ve-buffer.(prompt.predicate)..."
4f20 52 65 61 64 20 61 20 6c 69 76 65 20 62 75 66 66 65 72 20 6e 61 6d 65 2c 20 61 6e 64 20 72 65 74 Read.a.live.buffer.name,.and.ret
4f40 75 72 6e 20 74 68 65 20 62 75 66 66 65 72 20 6f 62 6a 65 63 74 2e 0a 0a 54 68 69 73 20 69 73 20 urn.the.buffer.object...This.is.
4f60 6c 61 72 67 65 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 60 72 65 61 64 2d 62 75 66 66 largely.equivalent.to.`read-buff
4f80 65 72 27 2c 20 62 75 74 20 63 6f 75 6e 73 65 6c 2e 65 6c 0a 6f 76 65 72 72 69 64 65 73 20 74 68 er',.but.counsel.el.overrides.th
4fa0 61 74 20 74 6f 20 69 6e 63 6c 75 64 65 20 70 72 65 76 69 6f 75 73 6c 79 20 6f 70 65 6e 65 64 20 at.to.include.previously.opened.
4fc0 62 75 66 66 65 72 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 73 20 28 2d 6d 61 70 20 buffers."...(let*.((names.(-map.
4fe0 23 27 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 29 0a 20 20 #'buffer-name.(buffer-list)))...
5000 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 .......(default............(cond
5020 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 27 72 65 20 61 6c 72 65 61 64 79 .............;;.If.we're.already
5040 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 6c 75 65 .looking.at.a.buffer-local.value
5060 2c 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 70 72 6f 6d 70 ,.start.............;;.the.promp
5080 74 20 66 72 6f 6d 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 62 75 66 66 65 72 2e 0a 20 20 20 20 t.from.the.relevant.buffer......
50a0 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 ........((and.helpful--associate
50c0 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 28 62 75 66 66 d-buffer...................(buff
50e0 65 72 2d 6c 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 er-live-p.helpful--associated-bu
5100 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 6e 61 6d 65 ffer))..............(buffer-name
5120 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 20 .helpful--associated-buffer))...
5140 20 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 ..........;;.If.we're.looking.at
5160 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2c 20 6f 66 66 65 72 20 74 68 65 20 69 6e 69 .the.global.value,.offer.the.ini
5180 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 2e 0a 20 20 20 20 tial.............;;.buffer......
51a0 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 68 65 6c 70 66 75 6c 2d 2d 73 74 61 72 74 2d 62 75 66 ........((and.helpful--start-buf
51c0 66 65 72 0a 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 2d 6c 69 fer...................(buffer-li
51e0 76 65 2d 70 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 ve-p.helpful--start-buffer))....
5200 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 2d ..........(buffer-name.helpful--
5220 73 74 61 72 74 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 start-buffer)).............;;.If
5240 20 77 65 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 .we're.looking.at.the.global.val
5260 75 65 20 61 6e 64 20 68 61 76 65 20 6e 6f 20 69 6e 69 74 69 61 6c 0a 20 20 20 20 20 20 20 20 20 ue.and.have.no.initial..........
5280 20 20 20 3b 3b 20 62 75 66 66 65 72 2c 20 63 68 6f 6f 73 65 20 74 68 65 20 66 69 72 73 74 20 6e ...;;.buffer,.choose.the.first.n
52a0 6f 72 6d 61 6c 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 ormal.buffer..............(t....
52c0 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 72 73 74 20 28 61 6e 64 20 28 6e 6f 74 20 28 73 2d ..........(--first.(and.(not.(s-
52e0 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 20 22 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 starts-with-p.".".it))..........
5300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 2d 73 74 61 72 74 73 ..................(not.(s-starts
5320 2d 77 69 74 68 2d 70 20 22 2a 22 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -with-p."*".it)))...............
5340 20 20 20 20 20 20 20 20 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 29 29 0a ........names)).............))).
5360 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 ....(get-buffer......(completing
5380 2d 72 65 61 64 0a 20 20 20 20 20 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 6e 61 6d 65 73 0a 20 -read.......prompt.......names..
53a0 20 20 20 20 20 70 72 65 64 69 63 61 74 65 0a 20 20 20 20 20 20 74 0a 20 20 20 20 20 20 6e 69 6c .....predicate.......t.......nil
53c0 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 64 65 66 61 75 6c 74 29 29 29 29 0a 0a 28 64 .......nil.......default))))..(d
53e0 65 66 75 6e 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 20 efun.helpful--associated-buffer.
5400 28 62 75 74 74 6f 6e 29 0a 20 20 22 43 68 61 6e 67 65 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 (button)..."Change.the.associate
5420 64 20 62 75 66 66 65 72 2c 20 73 6f 20 77 65 20 63 61 6e 20 73 65 65 20 62 75 66 66 65 72 2d 6c d.buffer,.so.we.can.see.buffer-l
5440 6f 63 61 6c 20 76 61 6c 75 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 ocal.values."...(let.((sym.(butt
5460 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 20 20 20 on-get.button.'symbol)).........
5480 28 70 72 6f 6d 70 74 2d 70 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 70 72 (prompt-p.(button-get.button.'pr
54a0 6f 6d 70 74 2d 70 29 29 29 0a 20 20 20 20 28 69 66 20 70 72 6f 6d 70 74 2d 70 0a 20 20 20 20 20 ompt-p))).....(if.prompt-p......
54c0 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 64 2d 62 75 66 ...(setq.helpful--associated-buf
54e0 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 fer...............(helpful--read
5500 2d 6c 69 76 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 56 69 65 -live-buffer................"Vie
5520 77 20 76 61 72 69 61 62 6c 65 20 69 6e 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 w.variable.in:."................
5540 28 6c 61 6d 62 64 61 20 28 62 75 66 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (lambda.(buf-name)..............
5560 20 20 20 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 2d 70 20 73 79 6d 20 28 67 65 74 2d 62 ....(local-variable-p.sym.(get-b
5580 75 66 66 65 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 uffer.buf-name))))).......(setq.
55a0 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 20 6e 69 6c 29 29 helpful--associated-buffer.nil))
55c0 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 65 2d 62 )...(helpful-update))..(define-b
55e0 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 74 6f 67 67 6c 65 2d 62 75 74 74 6f utton-type.'helpful-toggle-butto
5600 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 74 6f 67 67 6c 65 0a 20 20 n...'action.#'helpful--toggle...
5620 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 27 66 6f 6c 'symbol.nil...'buffer.nil...'fol
5640 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 54 6f 67 67 6c 65 20 low-link.t...'help-echo."Toggle.
5660 74 68 69 73 20 73 79 6d 62 6f 6c 20 62 65 74 77 65 65 6e 20 74 20 61 6e 64 20 6e 69 6c 22 29 0a this.symbol.between.t.and.nil").
5680 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 6f 67 67 6c 65 20 28 62 75 74 74 6f 6e 29 .(defun.helpful--toggle.(button)
56a0 0a 20 20 22 54 6f 67 67 6c 65 20 74 68 65 20 73 79 6d 62 6f 6c 20 62 65 74 77 65 65 6e 20 6e 69 ..."Toggle.the.symbol.between.ni
56c0 6c 20 61 6e 64 20 74 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 l.and.t."...(let.((sym.(button-g
56e0 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 20 20 20 28 62 75 66 et.button.'symbol)).........(buf
5700 20 28 62 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 29 0a 20 .(button-get.button.'buffer)))..
5720 20 20 20 28 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 3b 3b ...(save-current-buffer.......;;
5740 20 49 66 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 61 .If.this.is.a.buffer-local.varia
5760 62 6c 65 2c 20 65 6e 73 75 72 65 20 77 65 27 72 65 20 69 6e 20 74 68 65 20 72 69 67 68 74 0a 20 ble,.ensure.we're.in.the.right..
5780 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 62 75 66 0a .....;;.buffer........(when.buf.
57a0 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 29 29 0a 20 20 20 20 20 20 ........(set-buffer.buf)).......
57c0 28 73 65 74 20 73 79 6d 20 28 6e 6f 74 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 (set.sym.(not.(symbol-value.sym)
57e0 29 29 29 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 ))).....(helpful-update)))..(def
5800 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 73 65 74 2d 62 75 74 ine-button-type.'helpful-set-but
5820 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 65 74 0a 20 20 27 ton...'action.#'helpful--set...'
5840 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c symbol.nil...'buffer.nil...'foll
5860 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 74 68 65 20 ow-link.t...'help-echo."Set.the.
5880 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 73 79 6d 62 6f 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 value.of.this.symbol")..(defun.h
58a0 65 6c 70 66 75 6c 2d 2d 73 65 74 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 53 65 74 20 74 68 65 20 elpful--set.(button)..."Set.the.
58c0 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 6c 65 74 2a 20 28 value.of.this.symbol."...(let*.(
58e0 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)
5900 29 0a 20 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 )..........(buf.(button-get.butt
5920 6f 6e 20 27 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 6d 2d 76 61 6c 75 65 on.'buffer))..........(sym-value
5940 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d 76 61 6c 75 65 20 73 79 6d 20 62 75 66 29 29 0a 20 .(helpful--sym-value.sym.buf))..
5960 20 20 20 20 20 20 20 20 28 73 65 74 2d 66 75 6e 63 20 28 69 66 20 28 6c 6f 63 61 6c 2d 76 61 72 ........(set-func.(if.(local-var
5980 69 61 62 6c 65 2d 70 20 73 79 6d 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iable-p.sym.buf)................
59a0 20 20 20 20 20 20 20 20 22 73 65 74 71 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........"setq"..................
59c0 20 20 20 20 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 ....(symbol-name.helpful-set-var
59e0 69 61 62 6c 65 2d 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e iable-function)))..........;;.In
5a00 73 70 69 72 65 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 spired.by.`counsel-read-setq-exp
5a20 72 65 73 73 69 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 ression'...........(expr........
5a40 20 20 20 28 6d 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 ...(minibuffer-with-setup-hook..
5a60 20 20 20 20 20 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 .............(lambda.().........
5a80 20 20 20 20 20 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 ........(add-function.:before-un
5aa0 74 69 6c 20 28 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 til.(local.'eldoc-documentation-
5ac0 66 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 20 20 20 20 20 20 function).......................
5ae0 20 20 20 20 20 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 ........#'elisp-eldoc-documentat
5b00 69 6f 6e 2d 66 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 ion-function).................(r
5b20 75 6e 2d 68 6f 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 un-hooks.'eval-expression-minibu
5b40 66 66 65 72 2d 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 ffer-setup-hook)................
5b60 20 28 67 6f 74 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 .(goto-char.(minibuffer-prompt-e
5b80 6e 64 29 29 0a 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 nd)).................(forward-ch
5ba0 61 72 20 28 6c 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 ar.(length.(format."(%s.%S.".set
5bc0 2d 66 75 6e 63 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 -func.sym)))).............(read-
5be0 66 72 6f 6d 2d 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 from-minibuffer.............."Ev
5c00 61 6c 3a 20 22 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 al:."..............(format......
5c20 20 20 20 20 20 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 .........(if.(or.(consp.sym-valu
5c40 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 28 61 6e 64 20 28 73 e).......................(and.(s
5c60 79 6d 62 6f 6c 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 ymbolp.sym-value)...............
5c80 20 20 20 20 20 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 .............(not.(null.sym-valu
5ca0 65 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 28 e))............................(
5cc0 6e 6f 74 20 28 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 not.(keywordp.sym-value)))).....
5ce0 20 20 20 20 20 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 .............."(%s.%s.'%S)".....
5d00 20 20 20 20 20 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 ............"(%s.%s.%S)").......
5d20 20 20 20 20 20 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 ........set-func.sym.sym-value).
5d40 20 20 20 20 20 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 .............read-expression-map
5d60 20 74 0a 20 20 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 .t..............'read-expression
5d80 2d 68 69 73 74 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 -history)))).....(save-current-b
5da0 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
5dc0 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.
5de0 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....
5e00 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
5e20 72 20 62 75 66 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 r.buf)).......(eval-expression.e
5e40 78 70 72 29 29 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 xpr)).....(helpful-update)))..(d
5e60 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 76 69 65 77 2d efine-button-type.'helpful-view-
5e80 6c 69 74 65 72 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 literal-button...'action.#'helpf
5ea0 75 6c 2d 2d 76 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 ul--view-literal...'help-echo."T
5ec0 6f 67 67 6c 65 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 oggle.viewing.as.a.literal")..(d
5ee0 65 66 75 6e 20 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 efun.helpful--view-literal.(_but
5f00 74 6f 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 ton)..."Set.the.value.of.this.sy
5f20 6d 62 6f 6c 2e 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 mbol."...(setq.helpful--view-lit
5f40 65 72 61 6c 0a 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 eral.........(not.helpful--view-
5f60 6c 69 74 65 72 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 literal))...(helpful-update))..(
5f80 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 6c 6c 2d define-button-type.'helpful-all-
5fa0 72 65 66 65 72 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 references-button...'action.#'he
5fc0 6c 70 66 75 6c 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 lpful--all-references...'symbol.
5fe0 6e 69 6c 0a 20 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 nil...'callable-p.nil...'follow-
6000 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 20 61 6c 6c 20 72 65 link.t...'help-echo."Find.all.re
6020 66 65 72 65 6e 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 ferences.to.this.symbol")..(defu
6040 6e 20 68 65 6c 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 n.helpful--all-references.(butto
6060 6e 29 0a 20 20 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 n)..."Find.all.the.references.to
6080 20 74 68 65 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 .the.symbol.that.this.BUTTON.rep
60a0 72 65 73 65 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 resents."...(let.((sym.(button-g
60c0 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 20 20 20 28 63 61 6c et.button.'symbol)).........(cal
60e0 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 6e 20 27 63 61 6c 6c lable-p.(button-get.button.'call
6100 61 62 6c 65 2d 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 able-p))).....(cond......((not.c
6120 61 6c 6c 61 62 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 allable-p).......(elisp-refs-var
6140 69 61 62 6c 65 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 iable.sym))......((functionp.sym
6160 29 0a 20 20 20 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 ).......(elisp-refs-function.sym
6180 29 29 0a 20 20 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 ))......((macrop.sym).......(eli
61a0 73 70 2d 72 65 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 sp-refs-macro.sym)))))..(define-
61c0 62 75 74 74 6f 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 button-type.'helpful-callees-but
61e0 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 68 6f 77 2d 63 61 ton...'action.#'helpful--show-ca
6200 6c 6c 65 65 73 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 llees...'symbol.nil...'source.ni
6220 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 6f 20 l...'follow-link.t...'help-echo.
6240 22 46 69 6e 64 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 "Find.the.functions.called.by.th
6260 69 73 20 66 75 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 is.function/macro")..(defun.help
6280 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 28 63 61 6c 6c 65 ful--display-callee-group.(calle
62a0 65 73 29 0a 20 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 es)..."Insert.every.entry.in.CAL
62c0 4c 45 45 53 2e 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 LEES."...(dolist.(sym.(helpful--
62e0 73 6f 72 74 2d 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 sort-symbols.callees)).....(inse
6300 72 74 20 22 20 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 rt."..".............(helpful--bu
6320 74 74 6f 6e 0a 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 tton..............(symbol-name.s
6340 79 6d 29 0a 20 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 ym)..............'helpful-descri
6360 62 65 2d 65 78 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 be-exactly-button..............'
6380 73 79 6d 62 6f 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 symbol.sym..............'callabl
63a0 65 2d 70 20 74 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 e-p.t)............."\n")))..(def
63c0 75 6e 20 68 65 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 un.helpful--show-callees.(button
63e0 29 0a 20 20 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 )..."Find.all.the.references.to.
6400 74 68 65 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 the.symbol.that.this.BUTTON.repr
6420 65 73 65 6e 74 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 esents."...(let*.((buf.(get-buff
6440 65 72 2d 63 72 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 er-create."*helpful.callees*")).
6460 20 20 20 20 20 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 .........(sym.(button-get.button
6480 20 27 73 79 6d 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 .'symbol))..........(raw-source.
64a0 28 62 75 74 74 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 (button-get.button.'source))....
64c0 20 20 20 20 20 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 ......(source...........(if.(str
64e0 69 6e 67 70 20 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 ingp.raw-source)...............(
6500 72 65 61 64 20 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 read.raw-source).............raw
6520 2d 73 6f 75 72 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 -source))..........(syms.(helpfu
6540 6c 2d 2d 63 61 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 l--callees.source))..........(pr
6560 69 6d 69 74 69 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 imitives.(-filter.(lambda.(sym).
6580 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 74 29 29 20 73 79 (helpful--primitive-p.sym.t)).sy
65a0 6d 73 29 29 0a 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 ms))..........(compounds.(-remov
65c0 65 20 28 6c 61 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 e.(lambda.(sym).(helpful--primit
65e0 69 76 65 2d 70 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 ive-p.sym.t)).syms)))......(pop-
6600 74 6f 2d 62 75 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 to-buffer.buf).....(let.((inhibi
6620 74 2d 72 65 61 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 t-read-only.t)).......(erase-buf
6640 66 65 72 29 0a 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 fer)........;;.TODO:.Macros.used
6660 2c 20 73 70 65 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 ,.special.forms.used,.global.var
6680 73 20 75 73 65 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 s.used........(insert.(format."F
66a0 75 6e 63 74 69 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 unctions.called.by.%s:\n\n".sym)
66c0 29 0a 20 20 20 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 ).......(helpful--display-callee
66e0 2d 67 72 6f 75 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 -group.compounds)........(when.p
6700 72 69 6d 69 74 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 rimitives.........(insert."\n").
6720 20 20 20 20 20 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 ........(insert.(format."Primiti
6740 76 65 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 ves.called.by.%s:\n\n".sym))....
6760 20 20 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 .....(helpful--display-callee-gr
6780 6f 75 70 20 70 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 oup.primitives))........(goto-ch
67a0 61 72 20 28 70 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 ar.(point-min))........(helpful-
67c0 6d 6f 64 65 29 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 mode))))..(define-button-type.'h
67e0 65 6c 70 66 75 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 elpful-manual-button...'action.#
6800 27 68 65 6c 70 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 'helpful--manual...'symbol.nil..
6820 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 6f 20 22 56 69 .'follow-link.t...'help-echo."Vi
6840 65 77 20 74 68 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 ew.this.symbol.in.the.Emacs.manu
6860 61 6c 22 29 0a 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 al")..(defun.helpful--manual.(bu
6880 74 74 6f 6e 29 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 tton)..."Open.the.manual.for.the
68a0 20 73 79 73 74 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 .system.that.this.BUTTON.represe
68c0 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
68e0 75 74 74 6f 6e 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 utton.'symbol))).....(info-looku
6900 70 20 27 73 79 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 p.'symbol.sym.#'emacs-lisp-mode)
6920 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
6940 2d 64 65 73 63 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 -describe-button...'action.#'hel
6960 70 66 75 6c 2d 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 pful--describe...'symbol.nil...'
6980 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 44 65 73 63 follow-link.t...'help-echo."Desc
69a0 72 69 62 65 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 70 66 ribe.this.symbol")..(defun.helpf
69c0 75 6c 2d 2d 64 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 ul--describe.(button)..."Describ
69e0 65 20 74 68 65 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 e.the.symbol.that.this.BUTTON.re
6a00 70 72 65 73 65 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 presents."...(let.((sym.(button-
6a20 67 65 74 20 62 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 get.button.'symbol))).....(helpf
6a40 75 6c 2d 73 79 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 ul-symbol.sym)))..(define-button
6a60 2d 74 79 70 65 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 -type.'helpful-describe-exactly-
6a80 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 64 65 73 63 button...'action.#'helpful--desc
6aa0 72 69 62 65 2d 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 ribe-exactly...'symbol.nil...'ca
6ac0 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 74 0a 20 20 llable-p.nil...'follow-link.t...
6ae0 27 68 65 6c 70 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 'help-echo."Describe.this.symbol
6b00 22 29 0a 0a 28 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 ")..(defun.helpful--describe-exa
6b20 63 74 6c 79 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 ctly.(button)..."Describe.the.sy
6b40 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 73 mbol.that.this.BUTTON.represents
6b60 2e 0a 54 68 69 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 ..This.differs.from.`helpful--de
6b80 73 63 72 69 62 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 scribe'.because.here.we.know.whe
6ba0 74 68 65 72 20 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 ther.the.symbol.represents.a.var
6bc0 69 61 62 6c 65 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 iable.or.a.callable."...(let.((s
6be0 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 29 0a ym.(button-get.button.'symbol)).
6c00 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 67 65 74 20 ........(callable-p.(button-get.
6c20 62 75 74 74 6f 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 button.'callable-p))).....(if.ca
6c40 6c 6c 61 62 6c 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 llable-p.........(helpful-callab
6c60 6c 65 20 73 79 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 le.sym).......(helpful-variable.
6c80 73 79 6d 29 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 sym))))..(define-button-type.'he
6ca0 6c 70 66 75 6c 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 lpful-info-button...'action.#'he
6cc0 6c 70 66 75 6c 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 lpful--info...'info-node.nil...'
6ce0 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 56 69 65 77 follow-link.t...'help-echo."View
6d00 20 74 68 69 73 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 .this.Info.node")..(defun.helpfu
6d20 6c 2d 2d 69 6e 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 l--info.(button)..."Describe.the
6d40 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
6d60 6e 74 73 2e 22 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 nts."...(info.(button-get.button
6d80 20 27 69 6e 66 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 .'info-node)))..(define-button-t
6da0 79 70 65 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 27 ype.'helpful-shortdoc-button...'
6dc0 61 63 74 69 6f 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 action.#'helpful--shortdoc...'in
6de0 66 6f 2d 6e 6f 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 fo-node.nil...'follow-link.t...'
6e00 68 65 6c 70 2d 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 help-echo."View.this.Shortdoc.gr
6e20 6f 75 70 22 29 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 oup")..(defun.helpful--shortdoc.
6e40 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.
6e60 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 0a 20 20 that.this.BUTTON.represents."...
6e80 28 73 68 6f 72 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 (shortdoc-display-group.(button-
6ea0 67 65 74 20 62 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 get.button.'shortdoc-group).....
6ec0 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 74 74 6f 6e 2d 67 65 ......................(button-ge
6ee0 74 20 62 75 74 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 t.button.'symbol)))..(defun.help
6f00 66 75 6c 2d 2d 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 ful--split-first-line.(docstring
6f20 29 0a 20 20 22 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 )..."If.the.first.line.is.a.stan
6f40 64 61 6c 6f 6e 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 dalone.sentence,.ensure.we.have.
6f60 61 0a 62 6c 61 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 a.blank.line.afterwards."...(let
6f80 2a 20 28 28 6c 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 *.((lines.(s-lines.docstring))..
6fa0 20 20 20 20 20 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 ........(first-line.(-first-item
6fc0 20 6c 69 6e 65 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 .lines))..........(second-line.(
6fe0 77 68 65 6e 20 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 when.(>.(length.lines).1).(nth.1
7000 20 6c 69 6e 65 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 .lines)))).....(if.(and.(s-ends-
7020 77 69 74 68 2d 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 with-p.".".first-line)..........
7040 20 20 20 20 28 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 ....(stringp.second-line).......
7060 20 20 20 20 20 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 .......(not.(equal.second-line."
7080 22 29 29 29 0a 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 "))).........(s-join."\n".......
70a0 20 20 20 20 20 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 ..........(-cons*.first-line."".
70c0 28 63 64 72 20 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 (cdr.lines))).......docstring)))
70e0 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 2d 73 79 6d ..(defun.helpful--propertize-sym
7100 2d 72 65 66 20 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 -ref.(sym-name.before-txt.after-
7120 74 78 74 29 0a 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 txt)..."Given.a.symbol.name.from
7140 20 61 20 64 6f 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 .a.docstring,.convert.to.a.butto
7160 6e 20 28 69 66 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 n.(if.bound).or.else.highlight."
7180 0a 20 20 28 6c 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 ...(let*.((sym.(intern.sym-name)
71a0 29 29 0a 20 20 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 )).....(cond......;;.Highlight.k
71c0 65 79 77 6f 72 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 eywords.......((s-matches-p.....
71e0 20 20 20 28 72 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 ...(rx.":"............symbol-sta
7200 72 74 0a 20 20 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 rt............(+?.(or.(syntax.wo
7220 72 64 29 20 28 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 rd).(syntax.symbol)))...........
7240 20 73 79 6d 62 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 .symbol-end)........sym-name)...
7260 20 20 20 20 28 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 ....(propertize.sym-name........
7280 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 63 6b 2d 62 75 69 6c ...........'face.'font-lock-buil
72a0 74 69 6e 2d 66 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 tin-face))......((and.(boundp.sy
72c0 6d 29 20 28 73 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 m).(s-ends-with-p."variable.".(d
72e0 6f 77 6e 63 61 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 owncase.before-txt))).......(hel
7300 70 66 75 6c 2d 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 pful--button........sym-name....
7320 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 62 75 ....'helpful-describe-exactly-bu
7340 74 74 6f 6e 0a 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 tton........'symbol.sym........'
7360 63 61 6c 6c 61 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 callable-p.nil))......((and.(fbo
7380 75 6e 64 70 20 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 undp.sym)............(or........
73a0 20 20 20 20 20 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 .....(s-starts-with-p.".command"
73c0 20 28 64 6f 77 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 .(downcase.after-txt))..........
73e0 20 20 20 28 73 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 ...(s-ends-with-p."command.".(do
7400 77 6e 63 61 73 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 wncase.before-txt)).............
7420 28 73 2d 65 6e 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 (s-ends-with-p."function.".(down
7440 63 61 73 65 20 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 case.before-txt)))).......(helpf
7460 75 6c 2d 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 ul--button........sym-name......
7480 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 62 75 74 74 ..'helpful-describe-exactly-butt
74a0 6f 6e 0a 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 on........'symbol.sym........'ca
74c0 6c 6c 61 62 6c 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 llable-p.t))......;;.Only.create
74e0 20 61 20 6c 69 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 .a.link.if.this.is.a.symbol.that
7500 20 69 73 20 62 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 .is.bound.as.a......;;.variable.
7520 6f 72 20 63 61 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 or.callable.......((or.(boundp.s
7540 79 6d 29 20 28 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 ym).(fboundp.sym)).......(helpfu
7560 6c 2d 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 l--button........sym-name.......
7580 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 20 20 20 20 20 .'helpful-describe-button.......
75a0 20 27 73 79 6d 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 .'symbol.sym))......;;.If.this.i
75c0 73 20 61 6c 72 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 s.already.a.button,.don't.modify
75e0 20 69 74 2e 0a 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 .it.......((get-text-property.0.
7600 27 62 75 74 74 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 'button.sym-name).......sym-name
7620 29 0a 20 20 20 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 )......;;.Highlight.the.quoted.s
7640 74 72 69 6e 67 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 tring.......(t.......(propertize
7660 20 73 79 6d 2d 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 .sym-name...................'fac
7680 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 29 29 29 29 0a e.'font-lock-constant-face))))).
76a0 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 2d 69 6e 66 6f .(defun.helpful--propertize-info
76c0 20 28 64 6f 63 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 .(docstring)..."Convert.info.ref
76e0 65 72 65 6e 63 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 erences.in.DOCSTRING.to.buttons.
7700 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...
7720 20 3b 3b 20 52 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 .;;.Replace.all.text.that.looks.
7740 6c 69 6b 65 20 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 like.a.link.to.an.Info.page.....
7760 28 72 78 20 28 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 (rx.(seq.(group..............bow
7780 0a 20 20 20 20 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 ..............(any."Ii")........
77a0 20 20 20 20 20 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 ......"nfo"..............(one-or
77c0 2d 6d 6f 72 65 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 -more.whitespace)).............(
77e0 67 72 6f 75 70 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 group..............(or."node"."a
7800 6e 63 68 6f 72 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 nchor")..............(one-or-mor
7820 65 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 61 6e 79 20 e.whitespace)).............(any.
7840 22 27 60 e2 80 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 "'`...").............(group.....
7860 20 20 20 20 20 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 .........(one-or-more...........
7880 20 20 20 20 28 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 ....(not.(any."'..."))))........
78a0 20 20 20 20 20 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 .....(any."'...")))....(lambda.(
78c0 69 74 29 0a 20 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 it)......;;.info-name.matches."[
78e0 49 69 5d 6e 66 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 Ii]nfo.".......;;.space.matches.
7900 22 6e 6f 64 65 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 "node.".or."anchor.".......;;.in
7920 66 6f 2d 6e 6f 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 fo-node.has.the.form."(cl)Loop.F
7940 61 63 69 6c 69 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 acility".......(let.((info-name.
7960 28 6d 61 74 63 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 (match-string.1.it))............
7980 28 73 70 61 63 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 (space.(match-string.2.it)).....
79a0 20 20 20 20 20 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 .......(info-node.(match-string.
79c0 33 20 69 74 29 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 3.it)))........;;.If.the.docstri
79e0 6e 67 20 64 6f 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 ng.doesn't.specify.a.manual,.ass
7a00 75 6d 65 20 74 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 ume.the.Emacs.manual.........(sa
7a20 76 65 2d 6d 61 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 ve-match-data..........(unless.(
7a40 73 74 72 69 6e 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 string-match."^([^)]+)".info-nod
7a60 65 29 0a 20 20 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 e)............(setq.info-node.(c
7a80 6f 6e 63 61 74 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 oncat."(emacs)".info-node))))...
7aa0 20 20 20 20 20 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 .....(concat.........info-name..
7ac0 20 20 20 20 20 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 .......space.........(helpful--b
7ae0 75 74 74 6f 6e 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 utton..........info-node........
7b00 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..........
7b20 27 69 6e 66 6f 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 'info-node.info-node))))....docs
7b40 74 72 69 6e 67 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 tring....t.t))..(defun.helpful--
7b60 6b 65 79 6d 61 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 keymap-keys.(keymap)..."Return.a
7b80 6c 6c 20 74 68 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 ll.the.keys.and.commands.in.KEYM
7ba0 41 50 2e 0a 46 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 AP..Flattens.nested.keymaps.and.
7bc0 66 6f 6c 6c 6f 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 follows.remapped.commands...Retu
7be0 72 6e 73 20 61 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 rns.a.list.of.pairs.(KEYCODES.CO
7c00 4d 4d 41 4e 44 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 MMAND),.where.KEYCODES.is.a.vect
7c20 6f 72 20 73 75 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 or.suitable.for.`key-description
7c40 27 2c 20 61 6e 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 ',.and.COMMAND.is.a.smbol."...(c
7c60 6f 6e 64 0a 20 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 ond....;;.Prefix.keys.....((and.
7c80 20 20 20 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 62 6f 75 .....(symbolp.keymap)......(fbou
7ca0 6e 64 70 20 6b 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 ndp.keymap)......;;.Prefix.keys.
7cc0 75 73 65 20 61 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 use.a.keymap.in.the.function.slo
7ce0 74 20 6f 66 20 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 t.of.a.symbol.......(keymapp.(sy
7d00 6d 62 6f 6c 2d 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 mbol-function.keymap))).....(hel
7d20 70 66 75 6c 2d 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 pful--keymap-keys.(symbol-functi
7d40 6f 6e 20 6b 65 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 on.keymap)))....;;.Other.symbols
7d60 20 6f 72 20 63 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 .or.compiled.functions.mean.we'v
7d80 65 20 72 65 61 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 e.reached.a.leaf,....;;.so.this.
7da0 69 73 20 61 20 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 is.a.command.we.can.call.....((o
7dc0 72 0a 20 20 20 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 r......(symbolp.keymap)......(fu
7de0 6e 63 74 69 6f 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 nctionp.keymap)......;;.Strings.
7e00 6f 72 20 76 65 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 or.vectors.mean.a.keyboard.macro
7e20 2e 0a 20 20 20 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 .......(stringp.keymap)......(ve
7e40 63 74 6f 72 70 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 ctorp.keymap)).....`(([].,keymap
7e60 29 29 29 0a 20 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 )))....((stringp.(car.keymap))..
7e80 20 20 20 28 68 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 ...(helpful--keymap-keys.(cdr.ke
7ea0 79 6d 61 70 29 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 ymap)))....;;.Otherwise,.recurse
7ec0 20 6f 6e 20 74 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 .on.the.keys.at.this.level.of.th
7ee0 65 20 6b 65 79 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 e.keymap.....(t.....(let.(result
7f00 29 0a 20 20 20 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 ).......(dolist.(item.(cdr.keyma
7f20 70 29 29 0a 20 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 p)).........(cond..........((and
7f40 20 28 63 6f 6e 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 .(consp.item)................(eq
7f60 20 28 63 61 72 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 .(car.item).'menu-bar)).........
7f80 20 20 3b 3b 20 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 ..;;.Skip.menu.bar.items........
7fa0 20 20 20 20 6e 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 ....nil)..........;;.Sparse.keym
7fc0 61 70 73 20 61 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 aps.are.lists...........((consp.
7fe0 69 74 65 6d 29 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 item)...........(-let.[(keycode.
8000 2e 20 76 61 6c 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 ..value).item].............(-eac
8020 68 20 28 68 65 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 h.(helpful--keymap-keys.value)..
8040 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 79 63 6f 64 65 73 .............(-lambda.((keycodes
8060 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 70 75 73 68 .command)).................(push
8080 20 28 6c 69 73 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 .(list.(vconcat.(vector.keycode)
80a0 20 6b 65 79 63 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 .keycodes).command).............
80c0 20 20 20 20 20 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 ..........result)))))..........;
80e0 3b 20 44 65 6e 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 ;.Dense.keymaps.are.char-tables.
8100 0a 20 20 20 20 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 ..........((char-table-p.item)..
8120 20 20 20 20 20 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 .........(map-char-table........
8140 20 20 20 20 28 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 ....(lambda.(keycode.value).....
8160 20 20 20 20 20 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 .........(-each.(helpful--keymap
8180 2d 6b 65 79 73 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 -keys.value)................(-la
81a0 6d 62 64 61 20 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 mbda.((keycodes.command)).......
81c0 20 20 20 20 20 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 ...........(push.(list.(vconcat.
81e0 28 76 65 63 74 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 (vector.keycode).keycodes).comma
8200 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c nd)........................resul
8220 74 29 29 29 29 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 t))))............item)))).......
8240 3b 3b 20 46 6f 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 ;;.For.every.command.`new-func'.
8260 6d 61 70 70 65 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 mapped.to.a.command.`orig-func',
8280 20 73 68 6f 77 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 .show.`new-func'.with.......;;.t
82a0 68 65 20 6b 65 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 he.key.sequence.for.`orig-func'.
82c0 0a 20 20 20 20 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 .......(setq.result.............
82e0 28 2d 6d 61 70 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 (-map-when..............(-lambda
8300 20 28 28 6b 65 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 .((keycodes._))................(
8320 61 6e 64 20 28 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 and.(>.(length.keycodes).1).....
8340 20 20 20 20 20 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 ................(eq.(elt.keycode
8360 73 20 30 29 20 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 s.0).'remap)))..............(-la
8380 6d 62 64 61 20 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 mbda.((keycodes.command)).......
83a0 20 20 20 20 20 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 .........(list.................(
83c0 77 68 65 72 65 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 where-is-internal.(elt.keycodes.
83e0 31 29 20 67 6c 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 1).global-map.t)................
8400 20 63 6f 6d 6d 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 .command))..............result))
8420 0a 20 20 20 20 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 .......;;.Preserve.the.original.
8440 6f 72 64 65 72 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 order.of.the.keymap........(nrev
8460 65 72 73 65 20 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 erse.result)))))..(defun.helpful
8480 2d 2d 66 6f 72 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 --format-hook.(hook-val)..."Give
84a0 6e 20 61 20 6c 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 n.a.list.value.assigned.to.a.hoo
84c0 6b 2c 20 66 6f 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 k,.format.it.with.links.to.funct
84e0 69 6f 6e 73 2e 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 ions."...(let.((lines..........(
8500 2d 2d 6d 61 70 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 --map...........(if.(and.(symbol
8520 70 20 69 74 29 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 p.it).(fboundp.it)).............
8540 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..............
8560 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 20 20 20 20 20 ..(symbol-name.it)..............
8580 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 62 75 74 74 ..'helpful-describe-exactly-butt
85a0 6f 6e 0a 20 20 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 on................'symbol.it....
85c0 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 29 0a 20 20 20 20 20 ............'callable-p.t)......
85e0 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 6c 69 67 68 .......(helpful--syntax-highligh
8600 74 20 28 68 65 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 t.(helpful--pretty-print.it)))..
8620 20 20 20 20 20 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 .........hook-val))).....(format
8640 20 22 28 25 73 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 ."(%s)".............(s-join."\n.
8660 22 20 6c 69 6e 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 ".lines))))..;;.TODO:.unlike.`su
8680 62 73 74 69 74 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 bstitute-command-keys',.this.sho
86a0 77 73 20 6b 65 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 ws.keybindings.;;.which.are.curr
86c0 65 6e 74 6c 79 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 ently.shadowed.(e.g..a.global.mi
86e0 6e 6f 72 20 6d 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 nor.mode.map)..(defun.helpful--f
8700 6f 72 6d 61 74 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 ormat-keymap.(keymap)..."Format.
8720 4b 45 59 4d 41 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 KEYMAP."...(let*.((keys-and-comm
8740 61 6e 64 73 20 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 ands.(helpful--keymap-keys.keyma
8760 70 29 29 0a 20 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 p))..........;;.Convert.keycodes
8780 20 5b 32 37 20 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 .[27.i].to."C-M-i"...........(ke
87a0 79 73 20 28 2d 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 ys.(-map.#'-first-item.keys-and-
87c0 63 6f 6d 6d 61 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 commands))..........;;.Add.paddi
87e0 6e 67 20 73 6f 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 ng.so.all.our.strings.are.the.sa
8800 6d 65 20 6c 65 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 me.length...........(formatted-k
8820 65 79 73 20 28 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 eys.(-map.#'key-description.keys
8840 29 29 0a 20 20 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 ))..........(max-formatted-lengt
8860 68 20 28 2d 6d 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 h.(-max.(cons.0.(-map.#'length.f
8880 6f 72 6d 61 74 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 ormatted-keys))))..........(alig
88a0 6e 65 64 2d 6b 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 ned-keys.(--map.(s-pad-right.(1+
88c0 20 6d 61 78 2d 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 .max-formatted-length)..........
88e0 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 ................................
8900 20 20 22 20 22 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 ..".".it).......................
8920 20 20 20 20 20 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 ........formatted-keys))........
8940 20 20 3b 3b 20 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 ..;;.Format.commands.as.buttons.
8960 0a 20 20 20 20 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 ..........(commands.(-map.(-lamb
8980 64 61 20 28 28 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 da.((_.command)).command).......
89a0 20 20 20 20 20 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 ...................keys-and-comm
89c0 61 6e 64 73 29 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 ands))..........(formatted-comma
89e0 6e 64 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 20 20 20 20 nds...........(--map............
8a00 28 63 6f 6e 64 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 (cond.............((symbolp.it).
8a20 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 20 20 .............(helpful--button...
8a40 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 69 74 29 0a 20 20 20 ............(symbol-name.it)....
8a60 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 62 75 74 ...........'helpful-describe-but
8a80 74 6f 6e 0a 20 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 ton...............'symbol.it))..
8aa0 20 20 20 20 20 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 ...........((or.(stringp.it).(ve
8ac0 63 74 6f 72 70 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 ctorp.it)).............."Keyboar
8ae0 64 20 4d 61 63 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 d.Macro").............(t........
8b00 20 20 20 20 20 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 ......"#<anonymous-function>")).
8b20 20 20 20 20 20 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 ...........commands))..........;
8b40 3b 20 42 75 69 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 ;.Build.lines.for.display.......
8b60 20 20 20 20 28 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 ....(lines...........(-map.(-lam
8b80 62 64 61 20 28 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 bda.((key...command)).(format."%
8ba0 73 20 25 73 22 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 s.%s".key.command)).............
8bc0 20 20 20 20 28 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 ....(-zip-pair.aligned-keys.form
8be0 61 74 74 65 64 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 atted-commands)))).....;;.The.fl
8c00 61 74 74 65 6e 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 attened.keymap.will.have.normal.
8c20 62 69 6e 64 69 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 bindings.first,.and.....;;.inher
8c40 69 74 65 64 20 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 ited.bindings.last..Sort.so.that
8c60 20 77 65 20 67 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 .we.group.by.prefix......(s-join
8c80 20 22 5c 6e 22 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 ."\n".(-sort.#'string<.lines))))
8ca0 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 63 6f 6d 6d 61 6e 64 ..(defun.helpful--format-command
8cc0 73 20 28 73 74 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 s.(str.keymap)..."Replace.all.th
8ce0 65 20 5c 5c 5b 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 e.\\[.references.in.STR.with.but
8d00 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 69 tons."...(replace-regexp-in-stri
8d20 6e 67 0a 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 5b 66 6f 6f ng....;;.Text.of.the.form.\\[foo
8d40 2d 63 6f 6d 6d 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 -command]....(rx."\\[".(group.(+
8d60 20 28 6e 6f 74 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 .(not.(in."]"))))."]")....(lambd
8d80 61 20 28 69 74 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 a.(it)......(let*.((button-face.
8da0 28 69 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 20 (if.(>=.emacs-major-version.28).
8dc0 27 68 65 6c 70 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 'help-key-binding.'button)).....
8de0 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 2d 73 74 72 69 ........(symbol-name.(match-stri
8e00 6e 67 20 31 20 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 ng.1.it)).............(symbol.(i
8e20 6e 74 65 72 6e 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 ntern.symbol-name)).............
8e40 28 6b 65 79 20 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 (key.(where-is-internal.symbol.k
8e60 65 79 6d 61 70 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 eymap.t)).............(key-descr
8e80 69 70 74 69 6f 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 iption..............(if.key.....
8ea0 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 65 .............(key-description.ke
8ec0 79 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 4d 2d 78 20 25 y)................(format."M-x.%
8ee0 73 22 20 73 79 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 s".symbol-name))))........(helpf
8f00 75 6c 2d 2d 62 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 ul--button.........key-descripti
8f20 6f 6e 0a 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 61 on.........'helpful-describe-exa
8f40 63 74 6c 79 2d 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 ctly-button.........'symbol.symb
8f60 6f 6c 0a 20 20 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 ol.........'callable-p.t........
8f80 20 27 66 61 63 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 .'face.button-face)))....str....
8fa0 74 0a 20 20 20 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 t....t))..(defun.helpful--chars-
8fc0 62 65 66 6f 72 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 before.(pos.n)..."Return.up.to.N
8fe0 20 63 68 61 72 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 .chars.before.POS.in.the.current
9000 20 62 75 66 66 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 .buffer..The.string.may.be.short
9020 65 72 20 74 68 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 er.than.N.or.empty.if.out-of-ran
9040 67 65 2e 22 0a 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 ge."...(buffer-substring....(max
9060 20 28 70 6f 69 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 .(point-min).(-.pos.n))....pos))
9080 0a 0a 28 64 65 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 ..(defun.helpful--chars-after.(p
90a0 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 73 20 61 66 os.n)..."Return.up.to.N.chars.af
90c0 74 65 72 20 50 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 ter.POS.in.the.current.buffer..T
90e0 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 61 6e 20 4e 20 he.string.may.be.shorter.than.N.
9100 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 20 20 28 62 75 or.empty.if.out-of-range."...(bu
9120 66 66 65 72 2d 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 ffer-substring....pos....(min.(p
9140 6f 69 6e 74 2d 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 oint-max).(+.pos.n))))..(defun.h
9160 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 20 28 64 6f 63 elpful--format-command-keys.(doc
9180 73 74 72 69 6e 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 string)..."Convert.command.key.r
91a0 65 66 65 72 65 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 eferences.and.keymap.references.
91c0 69 6e 20 44 4f 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 in.DOCSTRING.to.buttons...Emacs.
91e0 75 73 65 73 20 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 uses.\\=.to.escape.\\[.reference
9200 73 2c 20 73 6f 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 s,.so.replace.that.unescaping.to
9220 6f 2e 22 0a 20 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 o."...;;.Loosely.based.on.`subst
9240 69 74 75 74 65 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 itute-command-keys',.but.convert
9260 73 0a 20 20 3b 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 s...;;.references.to.buttons....
9280 28 6c 65 74 20 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 (let.((keymap.nil)).....(with-te
92a0 6d 70 2d 62 75 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 mp-buffer.......(insert.docstrin
92c0 67 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 g).......(goto-char.(point-min))
92e0 0a 20 20 20 20 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 .......(while.(not.(eobp))......
9300 20 20 20 28 63 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 ...(cond..........((looking-at..
9320 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 22 66 ..........;;.Text.of.the.form."f
9340 6f 6f 22 0a 20 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 oo"............(rx."\"")).......
9360 20 20 20 20 3b 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 ....;;.For.literal.strings,.esca
9380 70 65 20 62 61 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 pe.backslashes.so.our.output....
93a0 20 20 20 20 20 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 .......;;.shows.copy-pasteable.l
93c0 69 74 65 72 61 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 iterals............(let*.((start
93e0 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -pos.(point))..................(
9400 65 6e 64 2d 70 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 end-pos.(progn.(forward-char).(s
9420 65 61 72 63 68 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 earch-forward."\"".nil.t))).....
9440 20 20 20 20 20 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 .............contents)..........
9460 20 20 20 28 69 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 ...(if.end-pos.................(
9480 70 72 6f 67 6e 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 progn...................(setq.co
94a0 6e 74 65 6e 74 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 ntents.(buffer-substring.start-p
94c0 6f 73 20 65 6e 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 os.end-pos))...................(
94e0 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 6e 64 2d 70 6f 73 29 delete-region.start-pos.end-pos)
9500 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 73 2d 72 65 ...................(insert.(s-re
9520 70 6c 61 63 65 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 place."\\"."\\\\".contents)))...
9540 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 31 29 29 29 29 0a ............(forward-char.1)))).
9560 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 20 20 20 20 .........((looking-at...........
9580 20 3b 3b 20 54 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 .;;.Text.of.the.form.\=X........
95a0 20 20 20 20 28 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 ....(rx."\\="))...........;;.Rem
95c0 6f 76 65 20 74 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 ove.the.escaping,.then.step.over
95e0 20 74 68 65 20 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 .the.escaped.char............;;.
9600 53 74 65 70 20 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 Step.over.the.escaped.character.
9620 0a 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
9640 29 20 28 2b 20 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 ).(+.(point).2))...........(forw
9660 61 72 64 2d 63 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 ard-char.1))..........((looking-
9680 61 74 0a 20 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 at............;;.Text.of.the.for
96a0 6d 20 60 66 6f 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 m.`foo'............(rx."`"))....
96c0 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 28 70 6f 69 6e 74 29 .......(let*.((start-pos.(point)
96e0 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 6f 73 20 28 73 65 61 )..................(end-pos.(sea
9700 72 63 68 2d 66 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 rch-forward."'".nil.t)).........
9720 20 20 20 20 20 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 .........(contents..............
9740 20 20 20 20 20 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 .....(when.end-pos..............
9760 20 20 20 20 20 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 .......(buffer-substring.(1+.sta
9780 72 74 2d 70 6f 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 rt-pos).(1-.end-pos)))))........
97a0 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 28 6e 75 6c 6c 20 63 .....(cond..............((null.c
97c0 6f 6e 74 65 6e 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 ontents)...............;;.If.the
97e0 72 65 27 73 20 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 re's.no.closing.'.to.match.the.o
9800 70 65 6e 69 6e 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 pening.`,.just...............;;.
9820 6c 65 61 76 65 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 leave.it................(goto-ch
9840 61 72 20 28 31 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 ar.(1+.start-pos))).............
9860 20 28 28 73 2d 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 .((s-contains-p."`".contents)...
9880 20 20 20 20 20 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 ............;;.If.we.have.repeat
98a0 65 64 20 62 61 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 ed.backticks.`foo.`bar',.leave.t
98c0 68 65 0a 20 20 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 he...............;;.first.one...
98e0 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 2b 20 73 74 61 72 .............(goto-char.(1+.star
9900 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 63 6f 6e 74 61 69 t-pos)))..............((s-contai
9920 6e 73 2d 70 20 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 ns-p."\\[".contents)............
9940 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 6e 64 2d ...(delete-region.start-pos.end-
9960 70 6f 73 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 68 65 6c 70 pos)...............(insert.(help
9980 66 75 6c 2d 2d 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 ful--format-commands.contents.ke
99a0 79 6d 61 70 29 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 ymap)))..............;;.Highligh
99c0 74 20 61 20 6e 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 t.a.normal.`foo',.extracting.the
99e0 20 73 75 72 72 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 .surrounding..............;;.tex
9a00 74 20 73 6f 20 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 t.so.we.can.detect.e.g.."functio
9a20 6e 20 60 66 6f 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 n.`foo'"...............(t.......
9a40 20 20 20 20 20 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 ........(let.((before.(helpful--
9a60 63 68 61 72 73 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 chars-before.start-pos.10)).....
9a80 20 20 20 20 20 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 ................(after.(helpful-
9aa0 2d 63 68 61 72 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 -chars-after.end-pos.10)))......
9ac0 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 73 74 61 72 74 2d ...........(delete-region.start-
9ae0 70 6f 73 20 65 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 pos.end-pos).................(in
9b00 73 65 72 74 20 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 sert.(helpful--propertize-sym-re
9b20 66 20 63 6f 6e 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 f.contents.before.after)))))))..
9b40 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 20 20 20 20 20 ........((looking-at............
9b60 3b 3b 20 54 65 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 ;;.Text.of.the.form.\\<foo-keyma
9b80 70 3e 0a 20 20 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 p>............(rx."\\<".(group.(
9ba0 2b 20 28 6e 6f 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 +.(not.(in.">")))).">"..........
9bc0 20 20 20 20 20 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 ......(?."\n")))...........(let*
9be0 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 2d 73 74 72 .((symbol-with-parens.(match-str
9c00 69 6e 67 20 30 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 ing.0))..................(symbol
9c20 2d 6e 61 6d 65 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 -name.(match-string.1)))........
9c40 20 20 20 20 20 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 .....;;.Remove.the.original.stri
9c60 6e 67 2e 0a 20 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 ng..............(delete-region.(
9c80 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 point)..........................
9ca0 20 20 28 2b 20 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 ..(+.(point).(length.symbol-with
9cc0 2d 70 61 72 65 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 -parens))).............;;.Set.th
9ce0 65 20 6e 65 77 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 e.new.keymap..............(setq.
9d00 6b 65 79 6d 61 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 keymap.(symbol-value.(intern.sym
9d20 62 6f 6c 2d 6e 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 bol-name)))))..........((looking
9d40 2d 61 74 0a 20 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 -at............;;.Text.of.the.fo
9d60 72 6d 20 5c 5c 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 rm.\\{foo-mode-map}............(
9d80 72 78 20 22 5c 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 rx."\\{".(group.(+.(not.(in."}")
9da0 29 29 29 20 22 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 )))."}"))...........(let*.((symb
9dc0 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 29 29 ol-with-parens.(match-string.0))
9de0 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 20 28 ..................(symbol-name.(
9e00 6d 61 74 63 68 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 match-string.1))................
9e20 20 20 28 6b 65 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 ..(keymap...................;;.G
9e40 72 61 63 65 66 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 racefully.handle.variables.not.b
9e60 65 69 6e 67 20 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 eing.defined....................
9e80 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (ignore-errors..................
9ea0 20 20 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 ...(symbol-value.(intern.symbol-
9ec0 6e 61 6d 65 29 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 name))))).............;;.Remove.
9ee0 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 20 20 20 the.original.string.............
9f00 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 20 20 20 .(delete-region.(point).........
9f20 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 20 28 6c ...................(+.(point).(l
9f40 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 20 20 20 ength.symbol-with-parens))).....
9f60 20 20 20 20 20 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 ........(if.keymap..............
9f80 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 2d 6b 65 79 6d ...(insert.(helpful--format-keym
9fa0 61 70 20 6b 65 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 ap.keymap))...............(inser
9fc0 74 20 28 66 6f 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 t.(format."Keymap.%s.is.not.curr
9fe0 65 6e 74 6c 79 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 ently.defined.".................
a000 20 20 20 20 20 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 ..............symbol-name)))))..
a020 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 20 20 20 20 20 ........((looking-at............
a040 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 61 ;;.Text.of.the.form.\\[foo-comma
a060 6e 64 5d 0a 20 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 nd]............(rx."\\[".(group.
a080 28 2b 20 28 6e 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 (+.(not.(in."]"))))."]")).......
a0a0 20 20 20 20 28 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 ....(let*.((symbol-with-parens.(
a0c0 6d 61 74 63 68 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 match-string.0))).............;;
a0e0 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 20 20 .Remove.the.original.string.....
a100 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 0a .........(delete-region.(point).
a120 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 28 70 ...........................(+.(p
a140 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 6e 73 oint).(length.symbol-with-parens
a160 29 29 29 0a 20 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 ))).............;;.Add.a.button.
a180 0a 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 66 .............(insert.(helpful--f
a1a0 6f 72 6d 61 74 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 ormat-commands.symbol-with-paren
a1c0 73 20 6b 65 79 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 s.keymap))))..........;;.Don't.m
a1e0 6f 64 69 66 79 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 odify.other.characters..........
a200 20 28 74 0a 20 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 .(t...........(forward-char.1)))
a220 29 0a 20 20 20 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 ).......(buffer-string))))..;;.T
a240 4f 44 4f 3a 20 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 ODO:.fix.upstream.Emacs.bug.that
a260 20 6d 65 61 6e 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 .means.`-map'.is.not.highlighted
a280 0a 3b 3b 20 69 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 .;;.in.the.docstring.for.`--map'
a2a0 2e 0a 28 64 65 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 ..(defun.helpful--format-docstri
a2c0 6e 67 20 28 64 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 ng.(docstring)..."Replace.cross-
a2e0 72 65 66 65 72 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 references.with.links.in.DOCSTRI
a300 4e 47 2e 22 0a 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 NG."...(->.docstring.......(help
a320 66 75 6c 2d 2d 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 ful--split-first-line).......(he
a340 6c 70 66 75 6c 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 lpful--propertize-info).......(h
a360 65 6c 70 66 75 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 elpful--propertize-links).......
a380 28 68 65 6c 70 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 (helpful--propertize-bare-links)
a3a0 0a 20 20 20 20 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 .......(helpful--format-command-
a3c0 6b 65 79 73 29 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 keys).......(s-trim)))..(define-
a3e0 62 75 74 74 6f 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 button-type.'helpful-link-button
a400 0a 20 20 27 61 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 ...'action.#'helpful--follow-lin
a420 6b 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 6f 20 k...'follow-link.t...'help-echo.
a440 22 46 6f 6c 6c 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 "Follow.this.link")..(defun.help
a460 66 75 6c 2d 2d 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 ful--propertize-links.(docstring
a480 29 0a 20 20 22 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 )..."Convert.URL.links.in.docstr
a4a0 69 6e 67 73 20 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 ings.to.buttons."...(replace-reg
a4c0 65 78 70 2d 69 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 exp-in-string....(rx."URL.`".(gr
a4e0 6f 75 70 20 28 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 oup.(*?.any))."'")....(lambda.(m
a500 61 74 63 68 29 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 atch)......(let.((url.(match-str
a520 69 6e 67 20 31 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 ing.1.match)))........(concat."U
a540 52 4c 20 22 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 62 75 RL."................(helpful--bu
a560 74 74 6f 6e 0a 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 tton.................url........
a580 20 20 20 20 20 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 .........'helpful-link-button...
a5a0 20 20 20 20 20 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 ..............'url.url))))....do
a5c0 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 70 72 6f 70 65 cstring))..(defun.helpful--prope
a5e0 72 74 69 7a 65 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 rtize-bare-links.(docstring)..."
a600 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.
a620 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
a640 6e 2d 73 74 72 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 n-string....(rx.(group.(or.strin
a660 67 2d 73 74 61 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 g-start.space."<"))........(grou
a680 70 20 22 68 74 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 p."http".(?."s")."://".(+?.(not.
a6a0 28 61 6e 79 20 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 (any.space))))........(group.(?.
a6c0 28 61 6e 79 20 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 (any.".".">".")"))..............
a6e0 20 28 6f 72 20 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 .(or.space.string-end.">")))....
a700 28 6c 61 6d 62 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 (lambda.(match)......(let.((spac
a720 65 2d 62 65 66 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 e-before.(match-string.1.match))
a740 0a 20 20 20 20 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 ............(url.(match-string.2
a760 20 6d 61 74 63 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 .match))............(after.(matc
a780 68 2d 73 74 72 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 h-string.3.match)))........(conc
a7a0 61 74 0a 20 20 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 at.........space-before.........
a7c0 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 75 72 6c 0a 20 20 (helpful--button..........url...
a7e0 20 20 20 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 .......'helpful-link-button.....
a800 20 20 20 20 20 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 .....'url.url).........after))).
a820 20 20 20 64 6f 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 ...docstring))..(defun.helpful--
a840 66 6f 6c 6c 6f 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 follow-link.(button)..."Follow.t
a860 68 65 20 55 52 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 he.URL.specified.by.BUTTON."...(
a880 62 72 6f 77 73 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 browse-url.(button-get.button.'u
a8a0 72 6c 29 29 29 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 rl)))..(defconst.helpful--highli
a8c0 67 68 74 69 6e 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 ghting-funcs...'(ert--activate-f
a8e0 6f 6e 74 2d 6c 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 ont-lock-keywords.....highlight-
a900 71 75 6f 74 65 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 quoted-mode.....rainbow-delimite
a920 72 73 2d 6d 6f 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 rs-mode)..."Highlighting.functio
a940 6e 73 20 74 68 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 ns.that.are.safe.to.run.in.a.tem
a960 70 6f 72 61 72 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 porary.buffer..This.is.used.in.`
a980 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 27 20 74 6f 20 73 75 helpful--syntax-highlight'.to.su
a9a0 70 70 6f 72 74 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 pport.extra.highlighting.that.th
a9c0 65 20 75 73 65 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 e.user.may.have.configured.in.th
a9e0 65 69 72 20 6d 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 eir.mode.hooks.")..;;.TODO:.cras
aa00 68 65 73 20 6f 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 hes.on.`backtrace-frame'.on.a.re
aa20 63 65 6e 74 20 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 cent.checkout...(defun.helpful--
aa40 73 79 6e 74 61 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 syntax-highlight.(source.&option
aa60 61 6c 20 6d 6f 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 al.mode)..."Return.a.propertized
aa80 20 76 65 72 73 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 .version.of.SOURCE.in.MODE."...(
aaa0 75 6e 6c 65 73 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 unless.mode.....(setq.mode.#'ema
aac0 63 73 2d 6c 69 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 cs-lisp-mode))...(if.(or........
aae0 28 3c 20 28 6c 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 (<.(length.source).helpful-max-h
ab00 69 67 68 6c 69 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 ighlight)........(eq.mode.'emacs
ab20 2d 6c 69 73 70 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 -lisp-mode)).......(with-temp-bu
ab40 66 66 65 72 0a 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 ffer.........(insert.source)....
ab60 20 20 20 20 20 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 ......;;.Switch.to.major-mode.MO
ab80 44 45 2c 20 62 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 DE,.but.don't.run.any.hooks.....
aba0 20 20 20 20 20 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 .....(delay-mode-hooks.(funcall.
abc0 6d 6f 64 65 29 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 mode))..........;;.`delayed-mode
abe0 2d 68 6f 6f 6b 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 -hooks'.contains.mode.hooks.like
ac00 0a 20 20 20 20 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 .........;;.`emacs-lisp-mode-hoo
ac20 6b 27 2e 20 42 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 k'..Build.a.list.of.functions.th
ac40 61 74 20 61 72 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 at.are.run.........;;.when.the.m
ac60 6f 64 65 20 68 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 ode.hooks.run..........(let.(hoo
ac80 6b 2d 66 75 6e 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 k-funcs)...........(dolist.(hook
aca0 20 64 65 6c 61 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 .delayed-mode-hooks)............
acc0 20 28 6c 65 74 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 .(let.((funcs.(symbol-value.hook
ace0 29 29 29 0a 20 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 )))...............(setq.hook-fun
ad00 63 73 20 28 61 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 cs.(append.hook-funcs.funcs)))).
ad20 0a 20 20 20 20 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 ...........;;.Filter.hooks.to.th
ad40 6f 73 65 20 74 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 ose.that.relate.to.highlighting,
ad60 20 61 6e 64 20 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 .and.run.them............(setq.h
ad80 6f 6f 6b 2d 66 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 ook-funcs.(-intersection.hook-fu
ada0 6e 63 73 20 68 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 ncs.helpful--highlighting-funcs)
adc0 29 0a 20 20 20 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 )...........(-map.#'funcall.hook
ade0 2d 66 75 6e 63 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 -funcs))..........(if.(fboundp.'
ae00 66 6f 6e 74 2d 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 font-lock-ensure).............(f
ae20 6f 6e 74 2d 6c 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 ont-lock-ensure)...........(with
ae40 2d 6e 6f 2d 77 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 -no-warnings.............(font-l
ae60 6f 63 6b 2d 66 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 ock-fontify-buffer))).........(b
ae80 75 66 66 65 72 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 uffer-string)).....;;.SOURCE.was
aea0 20 74 6f 6f 20 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 .too.long.to.highlight.in.a.reas
aec0 6f 6e 61 62 6c 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 onable.amount.of.....;;.time....
aee0 20 20 28 63 6f 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 ..(concat......(propertize......
af00 20 22 2f 2f 20 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 ."//.Skipping.highlighting.due.t
af20 6f 20 22 0a 20 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 o.".......'face.'font-lock-comme
af40 6e 74 2d 66 61 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 nt-face)......(helpful--button..
af60 20 20 20 20 20 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 ....."helpful-max-highlight"....
af80 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 62 75 74 ...'helpful-describe-exactly-but
afa0 74 6f 6e 0a 20 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 ton.......'symbol.'helpful-max-h
afc0 69 67 68 6c 69 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 ighlight.......'callable-p.nil).
afe0 20 20 20 20 20 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 .....(propertize.......".\n"....
b000 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 65 ...'face.'font-lock-comment-face
b020 29 0a 20 20 20 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 )......source)))..(defun.helpful
b040 2d 2d 73 6f 75 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 --source.(sym.callable-p.buf.pos
b060 29 0a 20 20 22 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 )..."Return.the.source.code.of.S
b080 59 4d 2e 0a 49 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 YM..If.the.source.code.cannot.be
b0a0 20 66 6f 75 6e 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 .found,.return.the.sexp.used."..
b0c0 20 28 63 61 74 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 .(catch.'source.....(unless.(sym
b0e0 62 6f 6c 70 20 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 bolp.sym).......(throw.'source.s
b100 79 6d 29 29 0a 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 ym))......(let.((source.nil))...
b120 20 20 20 20 28 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 ....(when.(and.buf.pos).........
b140 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 20 20 (with-current-buffer.buf........
b160 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 28 ...(save-excursion.............(
b180 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 20 28 save-restriction...............(
b1a0 67 6f 74 6f 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 28 69 goto-char.pos)................(i
b1c0 66 20 28 61 6e 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 f.(and.(helpful--primitive-p.sym
b1e0 20 63 61 6c 6c 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 .callable-p)....................
b200 20 20 20 20 28 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 ....(not.callable-p))...........
b220 20 20 20 20 20 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 ........;;.For.variables.defined
b240 20 69 6e 20 2e 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 .in..c.files,.only.show.the.....
b260 20 20 20 20 20 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 ..............;;.DEFVAR.expressi
b280 6f 6e 20 72 61 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 on.rather.than.the.huge.containi
b2a0 6e 67 0a 20 20 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 ng...................;;.function
b2c0 2e 0a 20 20 20 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 ....................(progn......
b2e0 20 20 20 20 20 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 ...............(setq.pos.(line-b
b300 65 67 69 6e 6e 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 eginning-position)).............
b320 20 20 20 20 20 20 20 20 3b 3b 20 48 41 43 4b 20 55 73 65 20 74 68 65 20 65 6c 69 73 70 20 73 79 ........;;.HACK.Use.the.elisp.sy
b340 6e 74 61 78 20 74 61 62 6c 65 20 65 76 65 6e 20 74 68 6f 75 67 68 20 74 68 65 20 66 69 6c 65 20 ntax.table.even.though.the.file.
b360 69 73 20 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 20 66 69 is.a.....................;;.C.fi
b380 6c 65 2e 20 54 68 69 73 20 69 73 20 61 20 74 65 6d 70 6f 72 61 72 79 20 77 6f 72 6b 61 72 6f 75 le..This.is.a.temporary.workarou
b3a0 6e 64 20 66 6f 72 20 69 73 73 75 65 20 23 33 32 39 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.for.issue.#329...............
b3c0 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 65 6d 61 63 73 2d .......(with-syntax-table.emacs-
b3e0 6c 69 73 70 2d 6d 6f 64 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 lisp-mode-syntax-table..........
b400 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 73 74 29 29 0a 20 20 20 .............(forward-list))....
b420 20 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 29 0a .................(forward-char).
b440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 ....................(narrow-to-r
b460 65 67 69 6f 6e 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 egion.pos.(point))).............
b480 20 20 20 20 3b 3b 20 4e 61 72 72 6f 77 20 74 6f 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 64 ....;;.Narrow.to.the.top-level.d
b4a0 65 66 69 6e 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 efinition..................(let.
b4c0 28 28 70 61 72 73 65 2d 73 65 78 70 2d 69 67 6e 6f 72 65 2d 63 6f 6d 6d 65 6e 74 73 20 74 29 29 ((parse-sexp-ignore-comments.t))
b4e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 64 65 ...................(narrow-to-de
b500 66 75 6e 20 74 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 fun.t)))................;;.If.th
b520 65 72 65 20 77 61 73 20 61 20 70 72 65 63 65 64 69 6e 67 20 63 6f 6d 6d 65 6e 74 2c 20 50 4f 53 ere.was.a.preceding.comment,.POS
b540 20 77 69 6c 6c 20 62 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 20 .will.be...............;;.after.
b560 74 68 61 74 20 63 6f 6d 6d 65 6e 74 2e 20 4d 6f 76 65 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 that.comment..Move.the.position.
b580 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 61 74 20 63 6f 6d 6d 65 6e 74 2e 0a 20 20 20 20 20 20 20 to.include.that.comment.........
b5a0 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 0a 20 .......(setq.pos.(point-min))...
b5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 20 28 62 75 66 66 65 .............(setq.source.(buffe
b5e0 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 r-substring-no-properties.(point
b600 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 -min).(point-max)))))).........(
b620 73 65 74 71 20 73 6f 75 72 63 65 20 28 73 2d 74 72 69 6d 2d 72 69 67 68 74 20 73 6f 75 72 63 65 setq.source.(s-trim-right.source
b640 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 6f 75 72 63 65 20 28 62 75 )).........(when.(and.source.(bu
b660 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 ffer-file-name.buf))...........(
b680 73 65 74 71 20 73 6f 75 72 63 65 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 6f 75 72 63 65 0a 20 setq.source.(propertize.source..
b6a0 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 ................................
b6c0 20 20 27 68 65 6c 70 66 75 6c 2d 70 61 74 68 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d ..'helpful-path.(buffer-file-nam
b6e0 65 20 62 75 66 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 e.buf)..........................
b700 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 ..........'helpful-pos.pos......
b720 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 68 ..............................'h
b740 65 6c 70 66 75 6c 2d 70 6f 73 2d 69 73 2d 73 74 61 72 74 20 74 29 29 29 0a 20 20 20 20 20 20 20 elpful-pos-is-start.t)))........
b760 20 28 74 68 72 6f 77 20 27 73 6f 75 72 63 65 20 73 6f 75 72 63 65 29 29 29 0a 0a 20 20 20 20 28 .(throw.'source.source)))......(
b780 77 68 65 6e 20 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 3b 3b 20 43 6f 75 6c 64 20 6e when.callable-p.......;;.Could.n
b7a0 6f 74 20 66 69 6e 64 20 73 6f 75 72 63 65 20 2d 2d 20 70 72 6f 62 61 62 6c 79 20 64 65 66 69 6e ot.find.source.--.probably.defin
b7c0 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2c 20 6f 72 20 76 69 61 0a 20 20 20 20 20 20 3b ed.interactively,.or.via.......;
b7e0 3b 20 61 20 6d 61 63 72 6f 2c 20 6f 72 20 66 69 6c 65 20 68 61 73 20 63 68 61 6e 67 65 64 2e 0a ;.a.macro,.or.file.has.changed..
b800 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 76 65 72 69 66 79 20 74 68 61 74 20 74 68 65 20 73 ......;;.TODO:.verify.that.the.s
b820 6f 75 72 63 65 20 68 61 73 6e 27 74 20 63 68 61 6e 67 65 64 20 62 65 66 6f 72 65 20 73 68 6f 77 ource.hasn't.changed.before.show
b840 69 6e 67 2e 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 6f 66 66 65 72 20 74 6f 20 64 6f 77 ing........;;.TODO:.offer.to.dow
b860 6e 6c 6f 61 64 20 43 20 73 6f 75 72 63 65 73 20 66 6f 72 20 63 75 72 72 65 6e 74 20 76 65 72 73 nload.C.sources.for.current.vers
b880 69 6f 6e 2e 0a 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 73 6f 75 72 63 65 20 28 69 6e 64 69 72 ion........(throw.'source.(indir
b8a0 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 ect-function.sym)))))..(defun.he
b8c0 6c 70 66 75 6c 2d 2d 68 61 73 2d 73 68 6f 72 74 64 6f 63 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 lpful--has-shortdoc-p.(sym)..."R
b8e0 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 73 68 6f 72 74 64 6f 63 2e 65 6c 20 69 73 20 eturn.non-nil.if.shortdoc.el.is.
b900 61 76 61 69 6c 61 62 6c 65 20 61 6e 64 20 53 59 4d 20 69 73 20 69 6e 20 61 20 73 68 6f 72 74 64 available.and.SYM.is.in.a.shortd
b920 6f 63 20 67 72 6f 75 70 2e 22 0a 20 20 28 61 6e 64 20 28 66 65 61 74 75 72 65 70 20 27 73 68 6f oc.group."...(and.(featurep.'sho
b940 72 74 64 6f 63 29 0a 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 rtdoc)........(shortdoc-function
b960 2d 67 72 6f 75 70 73 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 -groups.sym)))..(defun.helpful--
b980 69 6e 2d 6d 61 6e 75 61 6c 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d in-manual-p.(sym)..."Return.non-
b9a0 6e 69 6c 20 69 66 20 53 59 4d 20 69 73 20 69 6e 20 61 6e 20 49 6e 66 6f 20 6d 61 6e 75 61 6c 2e nil.if.SYM.is.in.an.Info.manual.
b9c0 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 70 6c 65 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 "...(let.((completions..........
b9e0 28 63 6c 2d 6c 65 74 66 20 28 28 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6d 65 (cl-letf.(((symbol-function.#'me
ba00 73 73 61 67 65 29 0a 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 ssage).....................(lamb
ba20 64 61 20 28 5f 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 20 26 72 65 73 74 20 5f 61 72 67 73 29 29 da.(_format-string.&rest._args))
ba40 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 2d 3e 63 6f 6d 70 ))............(info-lookup->comp
ba60 6c 65 74 69 6f 6e 73 20 27 73 79 6d 62 6f 6c 20 27 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 letions.'symbol.'emacs-lisp-mode
ba80 29 29 29 29 0a 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 62 75 66 20 28 67 65 74 2d 62 75 )))).....(-when-let.(buf.(get-bu
baa0 66 66 65 72 20 22 20 74 65 6d 70 2d 69 6e 66 6f 2d 6c 6f 6f 6b 22 29 29 0a 20 20 20 20 20 20 28 ffer.".temp-info-look")).......(
bac0 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 29 0a 20 20 20 20 28 6f 72 20 28 61 73 73 6f 63 kill-buffer.buf)).....(or.(assoc
bae0 20 73 79 6d 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 .sym.completions).........(assoc
bb00 2d 73 74 72 69 6e 67 20 73 79 6d 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 29 29 29 0a 0a 28 64 65 -string.sym.completions))))..(de
bb20 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 20 28 73 79 6d 29 0a fun.helpful--version-info.(sym).
bb40 20 20 22 49 66 20 53 59 4d 20 68 61 73 20 76 65 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f .."If.SYM.has.version.informatio
bb60 6e 2c 20 66 6f 72 6d 61 74 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 2e 0a 52 65 74 75 72 6e 20 n,.format.and.return.it..Return.
bb80 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f 6c 70 nil.otherwise."...(when.(symbolp
bba0 20 73 79 6d 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e .sym).....(let.((package-version
bbc0 0a 20 20 20 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 70 61 63 ............(get.sym.'custom-pac
bbe0 6b 61 67 65 2d 76 65 72 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 2d kage-version))...........(emacs-
bc00 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 20 73 79 6d 20 27 63 75 73 version............(get.sym.'cus
bc20 74 6f 6d 2d 76 65 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 tom-version))).......(cond......
bc40 20 20 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 28 66 6f 72 6d ..(package-version.........(form
bc60 61 74 0a 20 20 20 20 20 20 20 20 20 22 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 77 61 73 20 61 at.........."This.variable.was.a
bc80 64 64 65 64 2c 20 6f 72 20 69 74 73 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 63 68 61 6e 67 dded,.or.its.default.value.chang
bca0 65 64 2c 20 69 6e 20 25 73 20 76 65 72 73 69 6f 6e 20 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 ed,.in.%s.version.%s."..........
bcc0 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 29 20 22 (or.(car-safe.package-version)."
bce0 75 6e 6b 6e 6f 77 6e 22 29 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 63 64 72 2d 73 61 66 65 unknown")..........(or.(cdr-safe
bd00 20 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 29 20 22 75 6e 6b 6e 6f 77 6e 22 29 29 29 0a 20 .package-version)."unknown")))..
bd20 20 20 20 20 20 20 28 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 66 6f ......(emacs-version.........(fo
bd40 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 22 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 77 61 73 rmat.........."This.variable.was
bd60 20 61 64 64 65 64 2c 20 6f 72 20 69 74 73 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 63 68 61 .added,.or.its.default.value.cha
bd80 6e 67 65 64 2c 20 69 6e 20 45 6d 61 63 73 20 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 65 6d 61 nged,.in.Emacs.%s."..........ema
bda0 63 73 2d 76 65 72 73 69 6f 6e 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c cs-version))))))..(defun.helpful
bdc0 2d 2d 6c 69 62 72 61 72 79 2d 70 61 74 68 20 28 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 0a 20 20 --library-path.(library-name)...
bde0 22 46 69 6e 64 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 20 66 6f 72 20 74 68 65 20 "Find.the.absolute.path.for.the.
be00 73 6f 75 72 63 65 20 6f 66 20 4c 49 42 52 41 52 59 2d 4e 41 4d 45 2e 0a 0a 4c 49 42 52 41 52 59 source.of.LIBRARY-NAME...LIBRARY
be20 2d 4e 41 4d 45 20 74 61 6b 65 73 20 74 68 65 20 66 6f 72 6d 20 5c 22 66 6f 6f 2e 65 6c 5c 22 20 -NAME.takes.the.form.\"foo.el\".
be40 2c 20 5c 22 66 6f 6f 2e 65 6c 5c 22 20 6f 72 0a 5c 22 73 72 63 2f 66 6f 6f 2e 63 5c 22 2e 0a 0a ,.\"foo.el\".or.\"src/foo.c\"...
be60 49 66 20 2e 65 6c 63 20 66 69 6c 65 73 20 65 78 69 73 74 20 77 69 74 68 6f 75 74 20 74 68 65 20 If..elc.files.exist.without.the.
be80 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 2e 65 6c 2c 20 72 65 74 75 72 6e 20 6e 69 6c 2e 22 0a corresponding..el,.return.nil.".
bea0 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 28 66 2d 65 78 74 20 6c 69 62 72 61 72 79 2d 6e ..(when.(member.(f-ext.library-n
bec0 61 6d 65 29 20 27 28 22 63 22 20 22 72 73 22 29 29 0a 20 20 20 20 28 73 65 74 71 20 6c 69 62 72 ame).'("c"."rs")).....(setq.libr
bee0 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 28 66 2d 65 78 70 61 6e 64 20 6c 69 62 ary-name...........(f-expand.lib
bf00 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 rary-name.....................(f
bf20 2d 70 61 72 65 6e 74 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 -parent.find-function-C-source-d
bf40 69 72 65 63 74 6f 72 79 29 29 29 29 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e irectory))))...(condition-case.n
bf60 69 6c 0a 20 20 20 20 20 20 28 66 69 6e 64 2d 6c 69 62 72 61 72 79 2d 6e 61 6d 65 20 6c 69 62 72 il.......(find-library-name.libr
bf80 61 72 79 2d 6e 61 6d 65 29 0a 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 0a 0a 28 64 65 ary-name).....(error.nil)))..(de
bfa0 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 63 72 6f 65 78 70 61 6e 64 2d 74 72 79 20 28 66 6f fun.helpful--macroexpand-try.(fo
bfc0 72 6d 29 0a 20 20 22 54 72 79 20 74 6f 20 66 75 6c 6c 79 20 6d 61 63 72 6f 65 78 70 61 6e 64 20 rm)..."Try.to.fully.macroexpand.
bfe0 46 4f 52 4d 2e 0a 49 66 20 69 74 20 66 61 69 6c 73 2c 20 61 74 74 65 6d 70 74 20 74 6f 20 70 61 FORM..If.it.fails,.attempt.to.pa
c000 72 74 69 61 6c 6c 79 20 6d 61 63 72 6f 65 78 70 61 6e 64 20 46 4f 52 4d 2e 22 0a 20 20 28 63 61 rtially.macroexpand.FORM."...(ca
c020 74 63 68 20 27 72 65 73 75 6c 74 0a 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 tch.'result.....(ignore-errors..
c040 20 20 20 20 20 3b 3b 20 48 61 70 70 79 20 70 61 74 68 3a 20 77 65 20 63 61 6e 20 66 75 6c 6c 79 .....;;.Happy.path:.we.can.fully
c060 20 65 78 70 61 6e 64 20 74 68 65 20 66 6f 72 6d 2e 0a 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 .expand.the.form........(throw.'
c080 72 65 73 75 6c 74 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 2d 61 6c 6c 20 66 6f 72 6d 29 29 29 0a result.(macroexpand-all.form))).
c0a0 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 3b 3b 20 41 74 74 65 ....(ignore-errors.......;;.Atte
c0c0 6d 70 74 20 6f 6e 65 20 6c 65 76 65 6c 20 6f 66 20 6d 61 63 72 6f 65 78 70 61 6e 73 69 6f 6e 2e mpt.one.level.of.macroexpansion.
c0e0 0a 20 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 .......(throw.'result.(macroexpa
c100 6e 64 2d 31 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 3b 3b 20 46 61 6c 6c 62 61 63 6b 3a 20 6a 75 nd-1.form))).....;;.Fallback:.ju
c120 73 74 20 72 65 74 75 72 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 66 6f 72 6d 2e 0a 20 20 20 st.return.the.original.form.....
c140 20 66 6f 72 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 72 65 65 2d 61 6e .form))..(defun.helpful--tree-an
c160 79 2d 70 20 28 70 72 65 64 20 74 72 65 65 29 0a 20 20 22 57 61 6c 6b 20 54 52 45 45 2c 20 61 70 y-p.(pred.tree)..."Walk.TREE,.ap
c180 70 6c 79 69 6e 67 20 50 52 45 44 20 74 6f 20 65 76 65 72 79 20 73 75 62 74 72 65 65 2e 0a 52 65 plying.PRED.to.every.subtree..Re
c1a0 74 75 72 6e 20 74 20 69 66 20 50 52 45 44 20 65 76 65 72 20 72 65 74 75 72 6e 73 20 74 2e 22 0a turn.t.if.PRED.ever.returns.t.".
c1c0 20 20 28 63 61 74 63 68 20 27 66 6f 75 6e 64 0a 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 63 6b ..(catch.'found.....(let.((stack
c1e0 20 28 6c 69 73 74 20 74 72 65 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 73 74 61 63 .(list.tree))).......(while.stac
c200 6b 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 78 74 20 28 70 6f 70 20 73 74 61 63 6b k.........(let.((next.(pop.stack
c220 29 29 29 0a 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 28 )))...........(cond............(
c240 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (funcall.pred.next).............
c260 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 63 (throw.'found.t))............((c
c280 6f 6e 73 70 20 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 61 onsp.next).............(push.(ca
c2a0 72 20 6e 65 78 74 29 20 73 74 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 r.next).stack).............(push
c2c0 20 28 63 64 72 20 6e 65 78 74 29 20 73 74 61 63 6b 29 29 29 29 29 29 0a 20 20 20 20 6e 69 6c 29 .(cdr.next).stack)))))).....nil)
c2e0 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 69 6e 64 2d 62 79 2d 6d 61 63 72 6f )..(defun.helpful--find-by-macro
c300 65 78 70 61 6e 64 69 6e 67 20 28 62 75 66 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 expanding.(buf.sym.callable-p)..
c320 20 22 53 65 61 72 63 68 20 42 55 46 20 66 6f 72 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 ."Search.BUF.for.the.definition.
c340 6f 66 20 53 59 4d 20 62 79 20 6d 61 63 72 6f 65 78 70 61 6e 64 69 6e 67 0a 69 6e 74 65 72 65 73 of.SYM.by.macroexpanding.interes
c360 74 69 6e 67 20 66 6f 72 6d 73 20 69 6e 20 42 55 46 2e 22 0a 20 20 28 63 61 74 63 68 20 27 66 6f ting.forms.in.BUF."...(catch.'fo
c380 75 6e 64 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 20 62 75 66 und.....(with-current-buffer.buf
c3a0 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 .......(save-excursion.........(
c3c0 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 20 20 20 20 28 goto-char.(point-min)).........(
c3e0 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 condition-case.nil.............(
c400 77 68 69 6c 65 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 6f 72 while.t...............(let.((for
c420 6d 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 m.(read.(current-buffer)))......
c440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 72 2d 64 65 66 2d 70 0a 20 20 20 20 20 20 ...............(var-def-p.......
c460 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 78 70 29 0a 20 20 ...............(lambda.(sexp)...
c480 20 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 65 71 20 28 63 .....................(and.(eq.(c
c4a0 61 72 2d 73 61 66 65 20 73 65 78 70 29 20 27 64 65 66 76 61 72 29 0a 20 20 20 20 20 20 20 20 20 ar-safe.sexp).'defvar)..........
c4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 ...................(eq.(car-safe
c4e0 20 28 63 64 72 20 73 65 78 70 29 29 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(cdr.sexp)).sym))))............
c500 20 20 20 20 20 20 20 20 20 28 66 6e 2d 64 65 66 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(fn-def-p..............
c520 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 ........(lambda.(sexp)..........
c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 64 65 66 75 6e 27 20 75 6c 74 69 6d 61 74 ..............;;.`defun'.ultimat
c560 65 6c 79 20 65 78 70 61 6e 64 73 20 74 6f 20 60 64 65 66 61 6c 69 61 73 27 2e 0a 20 20 20 20 20 ely.expands.to.`defalias'.......
c580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 28 63 61 72 2d ..................(and.(eq.(car-
c5a0 73 61 66 65 20 73 65 78 70 29 20 27 64 65 66 61 6c 69 61 73 29 0a 20 20 20 20 20 20 20 20 20 20 safe.sexp).'defalias)...........
c5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 63 61 72 2d 73 61 ..................(equal.(car-sa
c5e0 66 65 20 28 63 64 72 20 73 65 78 70 29 29 20 60 28 71 75 6f 74 65 20 2c 73 79 6d 29 29 29 29 29 fe.(cdr.sexp)).`(quote.,sym)))))
c600 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 72 6d 20 28 68 65 ).................(setq.form.(he
c620 6c 70 66 75 6c 2d 2d 6d 61 63 72 6f 65 78 70 61 6e 64 2d 74 72 79 20 66 6f 72 6d 29 29 0a 0a 20 lpful--macroexpand-try.form))...
c640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 74 ...............(when.(helpful--t
c660 72 65 65 2d 61 6e 79 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-any-p.......................
c680 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 20 66 6e 2d 64 65 66 2d 70 20 76 61 72 2d 64 65 66 .(if.callable-p.fn-def-p.var-def
c6a0 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 66 6f 72 6d 29 -p)........................form)
c6c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 72 65 61 64 27 20 70 75 74 ...................;;.`read'.put
c6e0 73 20 70 6f 69 6e 74 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 66 6f 72 6d 2c 20 s.point.at.the.end.of.the.form,.
c700 73 6f 20 67 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 61 63 6b 20 so.go...................;;.back.
c720 74 6f 20 74 68 65 20 73 74 61 72 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 to.the.start....................
c740 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 28 73 63 61 6e 2d 73 65 78 70 73 20 28 70 6f 69 6e 74 (throw.'found.(scan-sexps.(point
c760 29 20 2d 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 ).-1)))))...........(end-of-file
c780 20 6e 69 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 70 65 6e .nil))))))..(defun.helpful--open
c7a0 2d 69 66 2d 6e 65 65 64 65 64 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 -if-needed.(path)..."Return.a.li
c7c0 73 74 20 28 42 55 46 20 4f 50 45 4e 45 44 29 20 77 68 65 72 65 20 42 55 46 20 69 73 20 61 20 62 st.(BUF.OPENED).where.BUF.is.a.b
c7e0 75 66 66 65 72 20 76 69 73 69 74 69 6e 67 20 50 41 54 48 2e 0a 49 66 20 61 20 62 75 66 66 65 72 uffer.visiting.PATH..If.a.buffer
c800 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2c 20 72 65 74 75 72 6e 20 74 68 61 74 2e 20 49 66 .already.exists,.return.that..If
c820 20 6e 6f 74 2c 20 6f 70 65 6e 20 50 41 54 48 20 77 69 74 68 0a 74 68 65 20 60 65 6d 61 63 73 2d .not,.open.PATH.with.the.`emacs-
c840 6c 69 73 70 2d 6d 6f 64 65 27 20 73 79 6e 74 61 78 20 74 61 62 6c 65 20 61 63 74 69 76 65 20 62 lisp-mode'.syntax.table.active.b
c860 75 74 20 73 6b 69 70 20 61 6e 79 20 68 6f 6f 6b 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 6e 69 ut.skip.any.hooks."...(let.((ini
c880 74 69 61 6c 2d 62 75 66 66 65 72 73 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 tial-buffers.(buffer-list)).....
c8a0 20 20 20 20 28 62 75 66 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 6f 70 65 6e 65 64 20 6e 69 ....(buf.nil).........(opened.ni
c8c0 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 6b 69 70 20 72 75 6e 6e 69 6e 67 20 68 6f 6f 6b 73 l).........;;.Skip.running.hooks
c8e0 20 74 68 61 74 20 6d 61 79 20 70 72 6f 6d 70 74 20 74 68 65 20 75 73 65 72 2e 0a 20 20 20 20 20 .that.may.prompt.the.user.......
c900 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 ...(find-file-hook.nil).........
c920 3b 3b 20 49 66 20 77 65 20 65 6e 64 20 75 70 20 6f 70 65 6e 69 6e 67 20 61 20 62 75 66 66 65 72 ;;.If.we.end.up.opening.a.buffer
c940 2c 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 77 69 74 68 20 66 69 6c 65 0a 20 20 20 20 20 20 20 ,.don't.bother.with.file........
c960 20 3b 3b 20 76 61 72 69 61 62 6c 65 73 2e 20 49 74 20 70 72 6f 6d 70 74 73 20 74 68 65 20 75 73 .;;.variables..It.prompts.the.us
c980 65 72 2c 20 61 6e 64 20 77 65 20 64 69 73 63 61 72 64 20 74 68 65 20 62 75 66 66 65 72 0a 20 20 er,.and.we.discard.the.buffer...
c9a0 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 77 61 72 64 73 20 61 6e 79 77 61 79 2e 0a 20 20 20 20 ......;;.afterwards.anyway......
c9c0 20 20 20 20 28 65 6e 61 62 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 20 6e 69 6c 29 ....(enable-local-variables.nil)
c9e0 29 0a 20 20 20 20 3b 3b 20 4f 70 65 6e 69 6e 67 20 6c 61 72 67 65 20 2e 63 20 66 69 6c 65 73 20 ).....;;.Opening.large..c.files.
ca00 63 61 6e 20 62 65 20 73 6c 6f 77 20 28 65 2e 67 2e 20 77 68 65 6e 20 6c 6f 6f 6b 69 6e 67 20 61 can.be.slow.(e.g..when.looking.a
ca20 74 0a 20 20 20 20 3b 3b 20 60 64 65 66 61 6c 69 61 73 27 29 2c 20 65 73 70 65 63 69 61 6c 6c 79 t.....;;.`defalias'),.especially
ca40 20 69 66 20 74 68 65 20 75 73 65 72 20 68 61 73 20 63 6f 6e 66 69 67 75 72 65 64 20 6d 6f 64 65 .if.the.user.has.configured.mode
ca60 20 68 6f 6f 6b 73 2e 0a 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 42 69 6e 64 20 60 61 75 74 6f .hooks......;;.....;;.Bind.`auto
ca80 2d 6d 6f 64 65 2d 61 6c 69 73 74 27 20 74 6f 20 6e 69 6c 2c 20 73 6f 20 77 65 20 6f 70 65 6e 20 -mode-alist'.to.nil,.so.we.open.
caa0 74 68 65 20 62 75 66 66 65 72 20 69 6e 0a 20 20 20 20 3b 3b 20 60 66 75 6e 64 61 6d 65 6e 74 61 the.buffer.in.....;;.`fundamenta
cac0 6c 2d 6d 6f 64 65 27 20 69 66 20 69 74 20 69 73 6e 27 74 20 61 6c 72 65 61 64 79 20 6f 70 65 6e l-mode'.if.it.isn't.already.open
cae0 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 20 6e 69 6c ......(let.((auto-mode-alist.nil
cb00 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f )).......(setq.buf.(find-file-no
cb20 73 65 6c 65 63 74 20 70 61 74 68 29 29 29 0a 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 2d 63 6f select.path)))......(unless.(-co
cb40 6e 74 61 69 6e 73 2d 70 20 69 6e 69 74 69 61 6c 2d 62 75 66 66 65 72 73 20 62 75 66 29 0a 20 20 ntains-p.initial-buffers.buf)...
cb60 20 20 20 20 28 73 65 74 71 20 6f 70 65 6e 65 64 20 74 29 0a 0a 20 20 20 20 20 20 28 6c 65 74 20 ....(setq.opened.t)........(let.
cb80 28 28 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 2d 73 ((syntax-table.emacs-lisp-mode-s
cba0 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 2d 65 yntax-table)).........(when.(s-e
cbc0 6e 64 73 2d 77 69 74 68 2d 70 20 22 2e 63 22 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 nds-with-p.".c".path)...........
cbe0 28 73 65 74 71 20 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 28 6d 61 6b 65 2d 73 79 6e 74 61 78 2d (setq.syntax-table.(make-syntax-
cc00 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 2d 70 6f 70 75 6c 61 74 65 2d 73 79 table))...........(c-populate-sy
cc20 6e 74 61 78 2d 74 61 62 6c 65 20 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 0a 0a 20 20 20 20 20 ntax-table.syntax-table)).......
cc40 20 20 20 3b 3b 20 49 66 20 69 74 27 73 20 61 20 66 72 65 73 68 6c 79 20 6f 70 65 6e 65 64 20 62 ...;;.If.it's.a.freshly.opened.b
cc60 75 66 66 65 72 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 73 65 74 20 74 68 65 20 73 79 6e 74 61 78 uffer,.we.need.to.set.the.syntax
cc80 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 61 62 6c 65 20 73 6f 20 77 65 20 63 61 6e 20 73 65 61 72 .........;;.table.so.we.can.sear
cca0 63 68 20 63 6f 72 72 65 63 74 6c 79 2e 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 ch.correctly..........(with-curr
ccc0 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 65 74 2d 73 79 ent-buffer.buf...........(set-sy
cce0 6e 74 61 78 2d 74 61 62 6c 65 20 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 29 29 0a 0a 20 20 20 ntax-table.syntax-table)))).....
cd00 20 28 6c 69 73 74 20 62 75 66 20 6f 70 65 6e 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c .(list.buf.opened)))..(defun.hel
cd20 70 66 75 6c 2d 2d 64 65 66 69 6e 69 74 69 6f 6e 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 pful--definition.(sym.callable-p
cd40 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 28 42 55 46 20 50 4f 53 20 4f 50 45 4e )..."Return.a.list.(BUF.POS.OPEN
cd60 45 44 29 20 77 68 65 72 65 20 53 59 4d 20 69 73 20 64 65 66 69 6e 65 64 2e 0a 0a 42 55 46 20 69 ED).where.SYM.is.defined...BUF.i
cd80 73 20 74 68 65 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 64 65 66 69 s.the.buffer.containing.the.defi
cda0 6e 69 74 69 6f 6e 2e 20 49 66 20 74 68 65 20 75 73 65 72 20 77 61 73 6e 27 74 0a 61 6c 72 65 61 nition..If.the.user.wasn't.alrea
cdc0 64 79 20 76 69 73 69 74 69 6e 67 20 74 68 69 73 20 62 75 66 66 65 72 2c 20 4f 50 45 4e 45 44 20 dy.visiting.this.buffer,.OPENED.
cde0 69 73 20 74 20 61 6e 64 20 63 61 6c 6c 65 72 73 20 73 68 6f 75 6c 64 20 6b 69 6c 6c 0a 74 68 65 is.t.and.callers.should.kill.the
ce00 20 62 75 66 66 65 72 20 77 68 65 6e 20 64 6f 6e 65 2e 0a 0a 50 4f 53 20 69 73 20 74 68 65 20 70 .buffer.when.done...POS.is.the.p
ce20 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 64 65 66 69 osition.of.the.start.of.the.defi
ce40 6e 69 74 69 6f 6e 20 77 69 74 68 69 6e 20 74 68 65 0a 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 nition.within.the.buffer."...(le
ce60 74 20 28 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 t.((primitive-p.(helpful--primit
ce80 69 76 65 2d 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 28 ive-p.sym.callable-p)).........(
cea0 6c 69 62 72 61 72 79 2d 6e 61 6d 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 72 63 2d 70 library-name.nil).........(src-p
cec0 61 74 68 20 6e 69 6c 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 ath.nil).........(buf.nil)......
cee0 20 20 20 28 70 6f 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 6f 70 65 6e 65 64 20 6e 69 6c ...(pos.nil).........(opened.nil
cf00 29 29 0a 20 20 20 20 3b 3b 20 57 65 20 73 68 6f 75 6c 64 6e 27 74 20 62 65 20 63 61 6c 6c 65 64 )).....;;.We.shouldn't.be.called
cf20 20 6f 6e 20 70 72 69 6d 69 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 73 20 69 66 20 77 65 20 64 6f .on.primitive.functions.if.we.do
cf40 6e 27 74 20 68 61 76 65 0a 20 20 20 20 3b 3b 20 61 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 45 n't.have.....;;.a.directory.of.E
cf60 6d 61 63 73 20 43 20 73 6f 75 72 63 65 63 6f 64 65 2e 0a 20 20 20 20 28 63 6c 2d 61 73 73 65 72 macs.C.sourcecode......(cl-asser
cf80 74 0a 20 20 20 20 20 28 6f 72 20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 t......(or.find-function-C-sourc
cfa0 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 70 72 69 6d 69 74 e-directory..........(not.primit
cfc0 69 76 65 2d 70 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d ive-p)))......(when.(symbolp.sym
cfe0 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 20 20 20 20 20 20 ).......(if.callable-p..........
d000 20 28 73 65 74 71 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 20 28 63 64 72 20 28 66 69 6e 64 2d 66 .(setq.library-name.(cdr.(find-f
d020 75 6e 63 74 69 6f 6e 2d 6c 69 62 72 61 72 79 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 3b unction-library.sym))).........;
d040 3b 20 42 61 73 65 64 20 6f 6e 20 60 66 69 6e 64 2d 76 61 72 69 61 62 6c 65 2d 6e 6f 73 65 6c 65 ;.Based.on.`find-variable-nosele
d060 63 74 27 2e 0a 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 0a ct'..........(setq.library-name.
d080 20 20 20 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 20 20 ..............(or...............
d0a0 20 28 73 79 6d 62 6f 6c 2d 66 69 6c 65 20 73 79 6d 20 27 64 65 66 76 61 72 29 0a 20 20 20 20 20 .(symbol-file.sym.'defvar)......
d0c0 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 2d 43 2d 66 69 6c 65 2d 6e 61 6d 65 20 73 79 6d 20 ..........(help-C-file-name.sym.
d0e0 27 76 61 72 29 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 6c 69 62 72 61 72 79 2d 6e 61 6d 'var)))))......(when.library-nam
d100 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 72 63 2d 70 61 74 68 20 28 68 65 6c 70 66 75 6c 2d e.......(setq.src-path.(helpful-
d120 2d 6c 69 62 72 61 72 79 2d 70 61 74 68 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 29 29 0a 0a 20 -library-path.library-name)))...
d140 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 61 6e 64 20 28 6e 6f 74 20 28 73 79 6d 62 6f 6c ...(cond......((and.(not.(symbol
d160 70 20 73 79 6d 29 29 20 28 66 75 6e 63 74 69 6f 6e 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 p.sym)).(functionp.sym)).......(
d180 6c 69 73 74 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 63 61 list.nil.nil.nil))......((and.ca
d1a0 6c 6c 61 62 6c 65 2d 70 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 77 68 llable-p.library-name).......(wh
d1c0 65 6e 20 73 72 63 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 73 72 63 2d en.src-path.........(-let.[(src-
d1e0 62 75 66 20 73 72 63 2d 6f 70 65 6e 65 64 29 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 70 65 6e 2d 69 buf.src-opened).(helpful--open-i
d200 66 2d 6e 65 65 64 65 64 20 73 72 63 2d 70 61 74 68 29 5d 0a 20 20 20 20 20 20 20 20 20 20 28 73 f-needed.src-path)]...........(s
d220 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 20 20 28 73 65 74 71 etq.buf.src-buf)...........(setq
d240 20 6f 70 65 6e 65 64 20 73 72 63 2d 6f 70 65 6e 65 64 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b .opened.src-opened))..........;;
d260 20 42 61 73 65 64 20 6f 6e 20 60 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 73 65 6c 65 63 .Based.on.`find-function-noselec
d280 74 27 2e 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 t'..........(with-current-buffer
d2a0 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e .buf...........;;.`find-function
d2c0 2d 73 65 61 72 63 68 2d 66 6f 72 2d 73 79 6d 62 6f 6c 27 20 6d 6f 76 65 73 20 70 6f 69 6e 74 2e -search-for-symbol'.moves.point.
d2e0 20 50 72 65 76 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 61 74 2e 0a 20 20 20 20 .Prevent...........;;.that......
d300 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 ......(save-excursion...........
d320 20 20 3b 3b 20 4e 61 72 72 6f 77 69 6e 67 20 68 61 73 20 62 65 65 6e 20 66 69 78 65 64 20 75 70 ..;;.Narrowing.has.been.fixed.up
d340 73 74 72 65 61 6d 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 74 74 70 3a 2f 2f 67 69 stream:.............;;.http://gi
d360 74 2e 73 61 76 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 t.savannah.gnu.org/cgit/emacs.gi
d380 74 2f 63 6f 6d 6d 69 74 2f 3f 69 64 3d 61 62 64 31 38 32 35 34 61 65 63 37 36 62 32 36 65 38 36 t/commit/?id=abd18254aec76b26e86
d3a0 61 65 32 37 65 39 31 64 32 63 39 31 36 65 63 32 30 63 63 34 36 0a 20 20 20 20 20 20 20 20 20 20 ae27e91d2c916ec20cc46...........
d3c0 20 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 ..(save-restriction.............
d3e0 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f ..(widen)...............(setq.po
d400 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 66 69 6e 64 s.....................(cdr.(find
d420 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 20 73 79 6d 20 -function-search-for-symbol.sym.
d440 6e 69 6c 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b nil.library-name)))))).........;
d460 3b 20 49 66 20 77 65 20 66 6f 75 6e 64 20 74 68 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 62 75 66 ;.If.we.found.the.containing.buf
d480 66 65 72 2c 20 62 75 74 20 6e 6f 74 20 74 68 65 20 73 79 6d 62 6f 6c 2c 20 61 74 74 65 6d 70 74 fer,.but.not.the.symbol,.attempt
d4a0 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 66 69 6e 64 20 69 74 20 62 79 20 6d 61 63 72 6f 65 .........;;.to.find.it.by.macroe
d4c0 78 70 61 6e 64 69 6e 67 20 69 6e 74 65 72 65 73 74 69 6e 67 20 66 6f 72 6d 73 2e 0a 20 20 20 20 xpanding.interesting.forms......
d4e0 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 62 75 66 20 28 6e 6f 74 20 70 6f 73 29 29 0a 20 20 ....(when.(and.buf.(not.pos))...
d500 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 68 65 6c 70 66 75 6c 2d 2d 66 69 6e 64 ........(setq.pos.(helpful--find
d520 2d 62 79 2d 6d 61 63 72 6f 65 78 70 61 6e 64 69 6e 67 20 62 75 66 20 73 79 6d 20 74 29 29 29 29 -by-macroexpanding.buf.sym.t))))
d540 29 0a 20 20 20 20 20 3b 3b 20 41 20 66 75 6e 63 74 69 6f 6e 2c 20 62 75 74 20 6e 6f 20 66 69 6c )......;;.A.function,.but.no.fil
d560 65 20 66 6f 75 6e 64 2e 0a 20 20 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 e.found.......(callable-p.......
d580 3b 3b 20 46 75 6e 63 74 69 6f 6e 73 20 64 65 66 69 6e 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 ;;.Functions.defined.interactive
d5a0 6c 79 20 6d 61 79 20 68 61 76 65 20 61 6e 20 65 64 65 62 75 67 20 70 72 6f 70 65 72 74 79 0a 20 ly.may.have.an.edebug.property..
d5c0 20 20 20 20 20 3b 3b 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6c 6f 63 61 74 69 .....;;.that.contains.the.locati
d5e0 6f 6e 20 6f 66 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 28 2d 77 68 on.of.the.definition........(-wh
d600 65 6e 2d 6c 65 74 20 28 65 64 65 62 75 67 2d 69 6e 66 6f 20 28 67 65 74 20 73 79 6d 20 27 65 64 en-let.(edebug-info.(get.sym.'ed
d620 65 62 75 67 29 29 0a 20 20 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 6d 61 72 6b 65 72 20 28 69 66 ebug)).........(-let.[marker.(if
d640 20 28 63 6f 6e 73 70 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 .(consp.edebug-info)............
d660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 64 65 62 75 67 2d 69 6e 66 6f 29 ...............(car.edebug-info)
d680 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 65 64 65 62 75 67 2d .........................edebug-
d6a0 69 6e 66 6f 29 5d 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 28 6d 61 72 6b info)]...........(setq.buf.(mark
d6c0 65 72 2d 62 75 66 66 65 72 20 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 er-buffer.marker))...........(se
d6e0 74 71 20 70 6f 73 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 6d 61 72 6b 65 72 29 29 tq.pos.(marker-position.marker))
d700 29 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 )))......((and.(not.callable-p).
d720 73 72 63 2d 70 61 74 68 29 0a 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 73 72 63 2d 62 75 66 20 src-path).......(-let.[(src-buf.
d740 73 72 63 2d 6f 70 65 6e 65 64 29 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 70 65 6e 2d 69 66 2d 6e 65 src-opened).(helpful--open-if-ne
d760 65 64 65 64 20 73 72 63 2d 70 61 74 68 29 5d 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 eded.src-path)].........(setq.bu
d780 66 20 73 72 63 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 65 6e 65 64 20 f.src-buf).........(setq.opened.
d7a0 73 72 63 2d 6f 70 65 6e 65 64 29 0a 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 src-opened)..........(with-curre
d7c0 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 66 69 6e 64 nt-buffer.buf...........;;.`find
d7e0 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 20 6d 6f 76 -function-search-for-symbol'.mov
d800 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 3b 3b 20 74 es.point..Prevent...........;;.t
d820 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 6f 6e 0a 20 hat............(save-excursion..
d840 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 5f 65 72 72 0a ...........(condition-case._err.
d860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 63 64 72 20 28 ................(setq.pos.(cdr.(
d880 66 69 6e 64 2d 76 61 72 69 61 62 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 73 79 6d 20 6c 69 62 72 61 find-variable-noselect.sym.libra
d8a0 72 79 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 ry-name)))...............(search
d8c0 2d 66 61 69 6c 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 -failed.nil)...............;;.If
d8e0 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 45 6d 61 63 73 20 69 6e 73 74 61 6e 63 65 20 64 6f 65 .your.current.Emacs.instance.doe
d900 73 6e 27 74 20 6d 61 74 63 68 20 74 68 65 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 sn't.match.the.source...........
d920 20 20 20 20 3b 3b 20 63 6f 64 65 20 63 6f 6e 66 69 67 75 72 65 64 20 69 6e 20 66 69 6e 64 2d 66 ....;;.code.configured.in.find-f
d940 75 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 2c 20 77 65 20 63 unction-C-source-directory,.we.c
d960 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 65 74 20 61 6e 20 65 72 72 6f 72 an...............;;.get.an.error
d980 20 61 62 6f 75 74 20 6e 6f 74 20 66 69 6e 64 69 6e 67 20 73 6f 75 72 63 65 2e 20 54 72 79 0a 20 .about.not.finding.source..Try..
d9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 64 65 66 61 75 6c 74 2d 74 61 62 2d 77 69 64 .............;;.`default-tab-wid
d9c0 74 68 27 20 61 67 61 69 6e 73 74 20 45 6d 61 63 73 20 74 72 75 6e 6b 2e 0a 20 20 20 20 20 20 20 th'.against.Emacs.trunk.........
d9e0 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 29 29 29 29 0a 0a 20 20 20 20 28 6c .......(error.nil)))))))......(l
da00 69 73 74 20 62 75 66 20 70 6f 73 20 6f 70 65 6e 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 ist.buf.pos.opened)))..(defun.he
da20 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 20 28 73 79 6d 20 lpful--reference-positions.(sym.
da40 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 74 68 callable-p.buf)..."Return.all.th
da60 65 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 72 65 66 65 72 65 6e 63 65 73 e.buffer.positions.of.references
da80 20 74 6f 20 53 59 4d 20 69 6e 20 42 55 46 2e 22 0a 20 20 28 2d 6c 65 74 2a 20 28 28 66 6f 72 6d .to.SYM.in.BUF."...(-let*.((form
daa0 73 2d 61 6e 64 2d 62 75 66 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6c 69 73 70 2d 72 65 66 s-and-bufs............(elisp-ref
dac0 73 2d 2d 73 65 61 72 63 68 2d 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 62 75 s--search-1.............(list.bu
dae0 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 75 66 29 0a 20 20 20 f).............(lambda.(buf)....
db00 20 20 20 20 20 20 20 20 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 2d 72 65 61 64 2d 61 6e 64 ...........(elisp-refs--read-and
db20 2d 66 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 20 73 79 6d 0a 20 20 20 -find................buf.sym....
db40 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 0a 20 20 20 20 20 ............(if.callable-p......
db60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6c 69 73 70 2d 72 65 66 73 2d 2d 66 75 6e 63 ..............#'elisp-refs--func
db80 74 69 6f 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6c 69 73 70 2d tion-p..................#'elisp-
dba0 72 65 66 73 2d 2d 76 61 72 69 61 62 6c 65 2d 70 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 refs--variable-p)))))...........
dbc0 3b 3b 20 53 69 6e 63 65 20 77 65 20 6f 6e 6c 79 20 73 65 61 72 63 68 65 64 20 6f 6e 65 20 62 75 ;;.Since.we.only.searched.one.bu
dbe0 66 66 65 72 2c 20 77 65 20 6b 6e 6f 77 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 ffer,.we.know.that...........;;.
dc00 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 73 20 68 61 73 20 6f 6e 6c 79 20 6f 6e 65 20 69 74 65 6d forms-and-bufs.has.only.one.item
dc20 2e 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 20 28 2d 66 69 72 ............(forms-and-buf.(-fir
dc40 73 74 2d 69 74 65 6d 20 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 73 29 29 0a 20 20 20 20 20 20 20 st-item.forms-and-bufs))........
dc60 20 20 20 28 28 66 6f 72 6d 73 20 2e 20 5f 62 75 66 29 20 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 ...((forms..._buf).forms-and-buf
dc80 29 29 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 5f 63 6f )).....(-map......(-lambda.((_co
dca0 64 65 20 73 74 61 72 74 2d 70 6f 73 20 5f 65 6e 64 2d 70 6f 73 29 29 20 73 74 61 72 74 2d 70 6f de.start-pos._end-pos)).start-po
dcc0 73 29 0a 20 20 20 20 20 66 6f 72 6d 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c s)......forms)))..(defun.helpful
dce0 2d 2d 61 6c 6c 2d 6b 65 79 6d 61 70 2d 73 79 6d 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 --all-keymap-syms.()..."Return.a
dd00 6c 6c 20 6b 65 79 6d 61 70 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 69 73 20 45 6d 61 63 73 ll.keymaps.defined.in.this.Emacs
dd20 20 69 6e 73 74 61 6e 63 65 2e 22 0a 20 20 28 6c 65 74 20 28 6b 65 79 6d 61 70 73 29 0a 20 20 20 .instance."...(let.(keymaps)....
dd40 20 28 6d 61 70 61 74 6f 6d 73 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 29 0a 20 20 .(mapatoms......(lambda.(sym)...
dd60 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 20 28 6b 65 .....(when.(and.(boundp.sym).(ke
dd80 79 6d 61 70 70 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 0a 20 20 20 20 20 ymapp.(symbol-value.sym)))......
dda0 20 20 20 20 28 70 75 73 68 20 73 79 6d 20 6b 65 79 6d 61 70 73 29 29 29 29 0a 20 20 20 20 6b 65 ....(push.sym.keymaps)))).....ke
ddc0 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 6b 65 79 2d 73 65 71 ymaps))..(defun.helpful--key-seq
dde0 75 65 6e 63 65 73 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 6d 61 70 20 67 6c 6f 62 61 uences.(command-sym.keymap.globa
de00 6c 2d 6b 65 79 63 6f 64 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 74 68 65 20 6b 65 l-keycodes)..."Return.all.the.ke
de20 79 20 73 65 71 75 65 6e 63 65 73 20 6f 66 20 43 4f 4d 4d 41 4e 44 2d 53 59 4d 20 69 6e 20 4b 45 y.sequences.of.COMMAND-SYM.in.KE
de40 59 4d 41 50 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 63 6f 64 65 73 0a 20 20 20 20 20 20 YMAP."...(let*.((keycodes.......
de60 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
de80 68 65 20 6b 65 79 6d 61 70 2c 20 69 74 73 20 70 61 72 65 6e 74 20 61 6e 64 20 74 68 65 0a 20 20 he.keymap,.its.parent.and.the...
dea0 20 20 20 20 20 20 20 20 3b 3b 20 67 6c 6f 62 61 6c 20 6d 61 70 2e 20 57 65 20 6e 65 65 64 20 74 ........;;.global.map..We.need.t
dec0 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 20 67 6c 6f 62 61 6c 20 6d 61 70 20 74 6f 20 66 69 6e 64 o.include.the.global.map.to.find
dee0 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 61 70 70 65 64 20 63 6f 6d 6d 61 6e 64 73 2e ...........;;.remapped.commands.
df00 0a 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 6e 61 6c 20 63 6f ...........(where-is-internal.co
df20 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 6d 61 70 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 mmand-sym.keymap.nil.t))........
df40 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 68 65 ..;;.Look.up.this.command.in.the
df60 20 70 61 72 65 6e 74 20 6b 65 79 6d 61 70 2e 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 .parent.keymap...........(parent
df80 2d 6b 65 79 6d 61 70 20 28 6b 65 79 6d 61 70 2d 70 61 72 65 6e 74 20 6b 65 79 6d 61 70 29 29 0a -keymap.(keymap-parent.keymap)).
dfa0 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 2d 6b 65 79 63 6f 64 65 73 0a 20 20 20 20 20 20 .........(parent-keycodes.......
dfc0 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 6e 74 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 ....(when.parent-keymap.........
dfe0 20 20 20 20 28 77 68 65 72 65 2d 69 73 2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 ....(where-is-internal..........
e000 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 28 6c 69 73 74 20 70 61 72 65 6e 74 2d 6b 65 79 ....command-sym.(list.parent-key
e020 6d 61 70 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 75 map).nil.t)))..........;;.Look.u
e040 70 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 6d 61 70 p.this.command.in.the.global.map
e060 2e 0a 20 20 20 20 20 20 20 20 20 28 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 0a 20 20 20 20 ...........(global-keycodes.....
e080 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 6b 65 79 6d 61 70 20 67 6c 6f 62 61 6c 2d ......(unless.(eq.keymap.global-
e0a0 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 map).............global-keycodes
e0c0 29 29 29 0a 20 20 20 20 28 2d 3e 3e 20 6b 65 79 63 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 3b ))).....(->>.keycodes..........;
e0e0 3b 20 49 67 6e 6f 72 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 72 6f 6d 20 74 68 65 20 70 61 ;.Ignore.keybindings.from.the.pa
e100 72 65 6e 74 20 6f 72 20 67 6c 6f 62 61 6c 20 6d 61 70 2e 0a 20 20 20 20 20 20 20 20 20 28 2d 2d rent.or.global.map...........(--
e120 72 65 6d 6f 76 65 20 28 6f 72 20 28 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 67 6c 6f 62 61 6c 2d 6b remove.(or.(-contains-p.global-k
e140 65 79 63 6f 64 65 73 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 eycodes.it).....................
e160 20 20 20 28 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 70 61 72 65 6e 74 2d 6b 65 79 63 6f 64 65 73 20 ...(-contains-p.parent-keycodes.
e180 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6e 76 65 72 74 20 72 61 77 20 6b 65 it)))..........;;.Convert.raw.ke
e1a0 79 63 6f 64 65 20 76 65 63 74 6f 72 73 20 69 6e 74 6f 20 68 75 6d 61 6e 2d 72 65 61 64 61 62 6c ycode.vectors.into.human-readabl
e1c0 65 20 73 74 72 69 6e 67 73 2e 0a 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 6b 65 79 2d e.strings...........(-map.#'key-
e1e0 64 65 73 63 72 69 70 74 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d description))))..(defun.helpful-
e200 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d -keymaps-containing.(command-sym
e220 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 61 69 72 73 20 6c 69 73 74 )..."Return.a.list.of.pairs.list
e240 69 6e 67 20 6b 65 79 6d 61 70 20 6e 61 6d 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 43 4f ing.keymap.names.that.contain.CO
e260 4d 4d 41 4e 44 2d 53 59 4d 2c 0a 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 6b 65 79 62 69 6e MMAND-SYM,.along.with.the.keybin
e280 64 69 6e 67 73 20 69 6e 20 65 61 63 68 20 6b 65 79 6d 61 70 2e 0a 0a 4b 65 79 6d 61 70 20 6e 61 dings.in.each.keymap...Keymap.na
e2a0 6d 65 73 20 61 72 65 20 74 79 70 69 63 61 6c 6c 79 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 mes.are.typically.variable.names
e2c0 2c 20 62 75 74 20 6d 61 79 20 61 6c 73 6f 20 62 65 0a 64 65 73 63 72 69 70 74 69 6f 6e 73 20 6f ,.but.may.also.be.descriptions.o
e2e0 66 20 76 61 6c 75 65 73 20 69 6e 20 60 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 6d 61 70 2d 61 6c 69 73 f.values.in.`minor-mode-map-alis
e300 74 27 2e 0a 0a 57 65 20 69 67 6e 6f 72 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 74 68 61 74 20 t'...We.ignore.keybindings.that.
e320 61 72 65 20 6d 65 6e 75 20 69 74 65 6d 73 2c 20 61 6e 64 20 69 67 6e 6f 72 65 20 6b 65 79 62 69 are.menu.items,.and.ignore.keybi
e340 6e 64 69 6e 67 73 0a 66 72 6f 6d 20 70 61 72 65 6e 74 20 6b 65 79 6d 61 70 73 2e 0a 0a 60 77 69 ndings.from.parent.keymaps...`wi
e360 64 67 65 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 27 20 69 73 20 61 6c 73 6f 20 69 67 6e 6f 72 65 64 dget-global-map'.is.also.ignored
e380 20 61 73 20 69 74 20 67 65 6e 65 72 61 6c 6c 79 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 73 61 .as.it.generally.contains.the.sa
e3a0 6d 65 20 62 69 6e 64 69 6e 67 73 20 61 73 20 60 67 6c 6f 62 61 6c 2d 6d 61 70 27 2e 22 0a 20 20 me.bindings.as.`global-map'."...
e3c0 28 6c 65 74 2a 20 28 28 6b 65 79 6d 61 70 2d 73 79 6d 73 20 28 68 65 6c 70 66 75 6c 2d 2d 61 6c (let*.((keymap-syms.(helpful--al
e3e0 6c 2d 6b 65 79 6d 61 70 2d 73 79 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6b 65 79 6d 61 70 l-keymap-syms))..........(keymap
e400 2d 73 79 6d 2d 76 61 6c 73 20 28 2d 6d 61 70 20 23 27 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 6b -sym-vals.(-map.#'symbol-value.k
e420 65 79 6d 61 70 2d 73 79 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 67 6c 6f 62 61 6c 2d 6b 65 eymap-syms))..........(global-ke
e440 79 63 6f 64 65 73 20 28 77 68 65 72 65 2d 69 73 2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 ycodes.(where-is-internal.......
e460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d .....................command-sym
e480 20 28 6c 69 73 74 20 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 .(list.global-map).nil.t))......
e4a0 20 20 20 20 6d 61 74 63 68 69 6e 67 2d 6b 65 79 6d 61 70 73 29 0a 20 20 20 20 3b 3b 20 4c 6f 6f ....matching-keymaps).....;;.Loo
e4c0 6b 20 66 6f 72 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 61 6c 6c 20 6b 65 79 6d 61 70 k.for.this.command.in.all.keymap
e4e0 73 20 62 6f 75 6e 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 s.bound.to.variables......(-map.
e500 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b 65 79 6d 61 70 2d 73 79 6d 20 2e 20 6b 65 79 .....(-lambda.((keymap-sym...key
e520 6d 61 70 29 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 2d 73 65 71 75 65 6e 63 65 map))........(let.((key-sequence
e540 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 6d 6d 61 6e s.(helpful--key-sequences.comman
e560 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 29 29 29 0a d-sym.keymap.global-keycodes))).
e580 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 .........(when.(and.key-sequence
e5a0 73 20 28 6e 6f 74 20 28 65 71 20 6b 65 79 6d 61 70 2d 73 79 6d 20 27 77 69 64 67 65 74 2d 67 6c s.(not.(eq.keymap-sym.'widget-gl
e5c0 6f 62 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f obal-map)))............(push.(co
e5e0 6e 73 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 6d 61 70 2d 73 79 6d 29 20 6b 65 79 2d ns.(symbol-name.keymap-sym).key-
e600 73 65 71 75 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 sequences)..................matc
e620 68 69 6e 67 2d 6b 65 79 6d 61 70 73 29 29 29 29 0a 20 20 20 20 20 28 2d 7a 69 70 2d 70 61 69 72 hing-keymaps))))......(-zip-pair
e640 20 6b 65 79 6d 61 70 2d 73 79 6d 73 20 6b 65 79 6d 61 70 2d 73 79 6d 2d 76 61 6c 73 29 29 0a 0a .keymap-syms.keymap-sym-vals))..
e660 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 69 6e 20 ....;;.Look.for.this.command.in.
e680 6b 65 79 6d 61 70 73 20 75 73 65 64 20 62 79 20 6d 69 6e 6f 72 20 6d 6f 64 65 73 20 74 68 61 74 keymaps.used.by.minor.modes.that
e6a0 0a 20 20 20 20 3b 3b 20 61 72 65 6e 27 74 20 62 6f 75 6e 64 20 74 6f 20 76 61 72 69 61 62 6c 65 .....;;.aren't.bound.to.variable
e6c0 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 6d 69 6e s......(-map......(-lambda.((min
e6e0 6f 72 2d 6d 6f 64 65 20 2e 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 4f 6e 6c or-mode...keymap))........;;.Onl
e700 79 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 20 6b 65 79 6d 61 70 20 69 66 20 77 65 20 64 69 64 y.consider.this.keymap.if.we.did
e720 6e 27 74 20 66 69 6e 64 20 69 74 20 62 6f 75 6e 64 20 74 6f 20 61 20 76 61 72 69 61 62 6c 65 2e n't.find.it.bound.to.a.variable.
e740 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6b 65 79 6d 61 70 70 20 6b 65 79 6d ........(when.(and.(keymapp.keym
e760 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6d 65 6d 71 ap)...................(not.(memq
e780 20 6b 65 79 6d 61 70 20 6b 65 79 6d 61 70 2d 73 79 6d 2d 76 61 6c 73 29 29 29 0a 20 20 20 20 20 .keymap.keymap-sym-vals)))......
e7a0 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 28 68 65 6c 70 66 75 ....(let.((key-sequences.(helpfu
e7c0 6c 2d 2d 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 l--key-sequences.command-sym.key
e7e0 6d 61 70 20 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 map.global-keycodes)))..........
e800 20 20 28 77 68 65 6e 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 ..(when.key-sequences...........
e820 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 66 6f 72 6d 61 74 20 22 6d 69 6e 6f 72 2d 6d 6f ...(push.(cons.(format."minor-mo
e840 64 65 2d 6d 61 70 2d 61 6c 69 73 74 20 28 25 73 29 22 20 6d 69 6e 6f 72 2d 6d 6f 64 65 29 0a 20 de-map-alist.(%s)".minor-mode)..
e860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 2d 73 65 71 75 ........................key-sequ
e880 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 69 ences)....................matchi
e8a0 6e 67 2d 6b 65 79 6d 61 70 73 29 29 29 29 29 0a 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 65 78 ng-keymaps)))))......;;.TODO:.ex
e8c0 61 6d 69 6e 65 20 60 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 6f 76 65 72 72 69 64 69 6e 67 2d 6d 61 70 amine.`minor-mode-overriding-map
e8e0 2d 61 6c 69 73 74 27 20 74 6f 6f 2e 0a 20 20 20 20 20 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 6d 61 70 -alist'.too.......minor-mode-map
e900 2d 61 6c 69 73 74 29 0a 0a 20 20 20 20 6d 61 74 63 68 69 6e 67 2d 6b 65 79 6d 61 70 73 29 29 0a -alist)......matching-keymaps)).
e920 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 65 72 67 65 2d 61 6c 69 73 74 73 20 28 6c .(defun.helpful--merge-alists.(l
e940 31 20 6c 32 29 0a 20 20 22 47 69 76 65 6e 20 74 77 6f 20 61 6c 69 73 74 73 20 6d 61 70 70 69 6e 1.l2)..."Given.two.alists.mappin
e960 67 20 73 79 6d 62 6f 6c 73 20 74 6f 20 6c 69 73 74 73 2c 20 72 65 74 75 72 6e 20 61 20 73 69 6e g.symbols.to.lists,.return.a.sin
e980 67 6c 65 0a 61 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 6c 69 73 74 73 20 63 6f 6e 63 61 74 65 gle.alist.with.the.lists.concate
e9a0 6e 61 74 65 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 31 2d 6b 65 79 73 20 28 2d 6d 61 70 20 nated."...(let*.((l1-keys.(-map.
e9c0 23 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 6c 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 32 2d #'-first-item.l1))..........(l2-
e9e0 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 32 29 29 0a 20 20 keys.(-map.#'-first-item.l2))...
ea00 20 20 20 20 20 20 20 28 6c 32 2d 65 78 74 72 61 2d 6b 65 79 73 20 28 2d 64 69 66 66 65 72 65 6e .......(l2-extra-keys.(-differen
ea20 63 65 20 6c 32 2d 6b 65 79 73 20 6c 31 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c ce.l2-keys.l1-keys))..........(l
ea40 32 2d 65 78 74 72 61 2d 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 20 2-extra-values...........(--map.
ea60 28 61 73 73 6f 63 20 69 74 20 6c 32 29 20 6c 32 2d 65 78 74 72 61 2d 6b 65 79 73 29 29 0a 20 20 (assoc.it.l2).l2-extra-keys))...
ea80 20 20 20 20 20 20 20 28 6c 31 2d 77 69 74 68 2d 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 20 .......(l1-with-values..........
eaa0 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b 65 79 20 2e 20 76 61 6c 75 65 73 29 29 .(-map.(-lambda.((key...values))
eac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6b 65 79 20 28 61 70 ...................(cons.key.(ap
eae0 70 65 6e 64 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pend.values.....................
eb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 6b 65 79 20 ................(cdr.(assoc.key.
eb20 6c 32 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 31 29 29 29 0a 20 20 l2))))).................l1)))...
eb40 20 20 28 61 70 70 65 6e 64 20 6c 31 2d 77 69 74 68 2d 76 61 6c 75 65 73 20 6c 32 2d 65 78 74 72 ..(append.l1-with-values.l2-extr
eb60 61 2d 76 61 6c 75 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 a-values)))..(defun.helpful--key
eb80 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 2d 61 6c 69 61 73 65 73 20 28 63 6f 6d 6d 61 6e 64 maps-containing-aliases.(command
eba0 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f -sym.aliases)..."Return.a.list.o
ebc0 66 20 70 61 69 72 73 20 6d 61 70 70 69 6e 67 20 6b 65 79 6d 61 70 20 73 79 6d 62 6f 6c 73 20 74 f.pairs.mapping.keymap.symbols.t
ebe0 6f 20 74 68 65 0a 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 43 4f 4d 4d 41 4e 44 2d 53 59 o.the.keybindings.for.COMMAND-SY
ec00 4d 20 69 6e 20 65 61 63 68 20 6b 65 79 6d 61 70 2e 0a 0a 49 6e 63 6c 75 64 65 73 20 6b 65 79 62 M.in.each.keymap...Includes.keyb
ec20 69 6e 64 69 6e 67 73 20 66 6f 72 20 61 6c 69 61 73 65 73 2c 20 75 6e 6c 69 6b 65 0a 60 68 65 6c indings.for.aliases,.unlike.`hel
ec40 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 27 2e 22 0a 20 20 28 6c pful--keymaps-containing'."...(l
ec60 65 74 2a 20 28 28 73 79 6d 73 20 28 63 6f 6e 73 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 et*.((syms.(cons.command-sym.ali
ec80 61 73 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 6d 73 2d 6b 65 79 6d 61 70 73 20 28 2d ases))..........(syms-keymaps.(-
eca0 6d 61 70 20 23 27 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 map.#'helpful--keymaps-containin
ecc0 67 20 73 79 6d 73 29 29 29 0a 20 20 20 20 28 2d 72 65 64 75 63 65 20 23 27 68 65 6c 70 66 75 6c g.syms))).....(-reduce.#'helpful
ece0 2d 2d 6d 65 72 67 65 2d 61 6c 69 73 74 73 20 73 79 6d 73 2d 6b 65 79 6d 61 70 73 29 29 29 0a 0a --merge-alists.syms-keymaps)))..
ed00 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6b 65 79 73 20 28 63 6f 6d (defun.helpful--format-keys.(com
ed20 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 61 6c mand-sym.aliases)..."Describe.al
ed40 6c 20 74 68 65 20 6b 65 79 73 20 74 68 61 74 20 63 61 6c 6c 20 43 4f 4d 4d 41 4e 44 2d 53 59 4d l.the.keys.that.call.COMMAND-SYM
ed60 2e 22 0a 20 20 28 6c 65 74 20 28 6d 6f 64 65 2d 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 67 6c ."...(let.(mode-lines.........gl
ed80 6f 62 61 6c 2d 6c 69 6e 65 73 29 0a 20 20 20 20 28 2d 2d 65 61 63 68 20 28 68 65 6c 70 66 75 6c obal-lines).....(--each.(helpful
eda0 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 2d 61 6c 69 61 73 65 73 20 63 6f 6d --keymaps-containing-aliases.com
edc0 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 mand-sym.aliases).......(-let.[(
ede0 6d 61 70 20 2e 20 6b 65 79 73 29 20 69 74 5d 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 map...keys).it].........(dolist.
ee00 28 6b 65 79 20 6b 65 79 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 (key.keys)...........(push......
ee20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 ......(format."%s.%s"...........
ee40 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6d 61 70 20 27 66 61 63 65 20 27 .........(propertize.map.'face.'
ee60 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 29 0a 20 20 font-lock-variable-name-face)...
ee80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 65 6d 61 63 73 2d 6d .................(if.(>=.emacs-m
eea0 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ajor-version.28)................
eec0 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6b 65 79 20 27 66 61 63 65 20 27 68 ........(propertize.key.'face.'h
eee0 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 elp-key-binding)................
ef00 20 20 20 20 20 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 6d ......key))............(if.(eq.m
ef20 61 70 20 27 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 73 20 6d 6f 64 ap.'global-map).global-lines.mod
ef40 65 2d 6c 69 6e 65 73 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 67 6c 6f 62 61 6c 2d 6c 69 e-lines))))).....(setq.global-li
ef60 6e 65 73 20 28 2d 73 6f 72 74 20 23 27 73 74 72 69 6e 67 3c 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 nes.(-sort.#'string<.global-line
ef80 73 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 73 20 28 2d 73 6f 72 74 20 s)).....(setq.mode-lines.(-sort.
efa0 23 27 73 74 72 69 6e 67 3c 20 6d 6f 64 65 2d 6c 69 6e 65 73 29 29 0a 20 20 20 20 28 2d 6c 65 74 #'string<.mode-lines)).....(-let
efc0 20 5b 6c 69 6e 65 73 20 28 2d 63 6f 6e 63 61 74 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 73 20 6d 6f .[lines.(-concat.global-lines.mo
efe0 64 65 2d 6c 69 6e 65 73 29 5d 0a 20 20 20 20 20 20 28 69 66 20 6c 69 6e 65 73 0a 20 20 20 20 20 de-lines)].......(if.lines......
f000 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 6c 69 6e 65 73 29 0a 20 20 20 20 20 20 20 .....(s-join."\n".lines)........
f020 20 22 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e 6f 74 20 69 6e 20 61 6e 79 20 6b 65 79 ."This.command.is.not.in.any.key
f040 6d 61 70 73 2e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 75 74 65 maps."))))..(defun.helpful--oute
f060 72 2d 73 65 78 70 20 28 62 75 66 20 70 6f 73 29 0a 20 20 22 46 69 6e 64 20 70 6f 73 69 74 69 6f r-sexp.(buf.pos)..."Find.positio
f080 6e 20 50 4f 53 20 69 6e 20 42 55 46 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6e 61 6d n.POS.in.BUF,.and.return.the.nam
f0a0 65 20 6f 66 20 74 68 65 20 6f 75 74 65 72 20 73 65 78 70 2c 0a 61 6c 6f 6e 67 20 77 69 74 68 20 e.of.the.outer.sexp,.along.with.
f0c0 69 74 73 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 4d 6f 76 65 73 20 70 6f 69 6e 74 20 69 6e 20 42 55 its.position...Moves.point.in.BU
f0e0 46 2e 22 0a 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 F."...(with-current-buffer.buf..
f100 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 ...(goto-char.pos).....(let*.((p
f120 70 73 73 20 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 28 6f pss.(syntax-ppss))............(o
f140 75 74 65 72 2d 73 65 78 70 2d 70 6f 73 6e 73 20 28 6e 74 68 20 39 20 70 70 73 73 29 29 29 0a 20 uter-sexp-posns.(nth.9.ppss)))..
f160 20 20 20 20 20 28 77 68 65 6e 20 6f 75 74 65 72 2d 73 65 78 70 2d 70 6f 73 6e 73 0a 20 20 20 20 .....(when.outer-sexp-posns.....
f180 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 63 61 72 20 6f 75 74 65 72 2d 73 65 78 70 2d 70 ....(goto-char.(car.outer-sexp-p
f1a0 6f 73 6e 73 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 70 6f 69 6e 74 29 20 28 2d 74 61 6b osns)))).....(list.(point).(-tak
f1c0 65 20 32 20 28 72 65 61 64 20 62 75 66 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 e.2.(read.buf)))))..(defun.helpf
f1e0 75 6c 2d 2d 63 6f 75 6e 74 2d 76 61 6c 75 65 73 20 28 69 74 65 6d 73 29 0a 20 20 22 52 65 74 75 ul--count-values.(items)..."Retu
f200 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 63 6f 75 6e 74 20 6f 66 20 65 61 63 68 rn.an.alist.of.the.count.of.each
f220 20 76 61 6c 75 65 20 69 6e 20 49 54 45 4d 53 2e 0a 45 2e 67 2e 20 28 78 20 78 20 79 20 7a 20 79 .value.in.ITEMS..E.g..(x.x.y.z.y
f240 29 20 2d 3e 20 28 28 78 20 2e 20 32 29 20 28 79 20 2e 20 32 29 20 28 7a 20 2e 20 31 29 29 22 0a ).->.((x...2).(y...2).(z...1))".
f260 20 20 28 6c 65 74 20 28 63 6f 75 6e 74 73 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 74 65 ..(let.(counts).....(dolist.(ite
f280 6d 20 69 74 65 6d 73 20 28 6e 72 65 76 65 72 73 65 20 63 6f 75 6e 74 73 29 29 0a 20 20 20 20 20 m.items.(nreverse.counts))......
f2a0 20 28 2d 69 66 2d 6c 65 74 20 28 69 74 65 6d 2d 61 6e 64 2d 63 6f 75 6e 74 20 28 61 73 73 6f 63 .(-if-let.(item-and-count.(assoc
f2c0 20 69 74 65 6d 20 63 6f 75 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 .item.counts))...........(setcdr
f2e0 20 69 74 65 6d 2d 61 6e 64 2d 63 6f 75 6e 74 20 28 31 2b 20 28 63 64 72 20 69 74 65 6d 2d 61 6e .item-and-count.(1+.(cdr.item-an
f300 64 2d 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 69 d-count))).........(push.(cons.i
f320 74 65 6d 20 31 29 20 63 6f 75 6e 74 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 tem.1).counts)))))..(defun.helpf
f340 75 6c 2d 2d 77 69 74 68 6f 75 74 2d 61 64 76 69 63 65 20 28 73 79 6d 29 0a 20 20 22 47 69 76 65 ul--without-advice.(sym)..."Give
f360 6e 20 61 64 76 69 73 65 64 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 2c 20 72 65 74 75 72 6e 20 74 n.advised.function.SYM,.return.t
f380 68 65 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 0a 77 69 74 68 6f 75 74 20 74 68 65 20 61 he.function.object.without.the.a
f3a0 64 76 69 63 65 2e 20 41 73 73 75 6d 65 73 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 62 65 65 6e dvice..Assumes.function.has.been
f3c0 20 6c 6f 61 64 65 64 2e 22 0a 20 20 28 61 64 76 69 63 65 2d 2d 63 64 2a 72 0a 20 20 20 28 61 64 .loaded."...(advice--cd*r....(ad
f3e0 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 0a 0a 28 64 vice--symbol-function.sym)))..(d
f400 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 64 76 69 73 65 64 2d 70 20 28 73 79 6d 29 0a 20 20 efun.helpful--advised-p.(sym)...
f420 22 44 6f 65 73 20 53 59 4d 20 68 61 76 65 20 61 64 76 69 63 65 20 61 73 73 6f 63 69 61 74 65 64 "Does.SYM.have.advice.associated
f440 20 77 69 74 68 20 69 74 3f 22 0a 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a .with.it?"...(and.(symbolp.sym).
f460 20 20 20 20 20 20 20 28 61 64 76 69 63 65 2d 2d 70 20 28 61 64 76 69 63 65 2d 2d 73 79 6d 62 6f .......(advice--p.(advice--symbo
f480 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 65 6c 70 66 l-function.sym))))..(defun.helpf
f4a0 75 6c 2d 2d 66 6f 72 6d 61 74 2d 68 65 61 64 20 28 68 65 61 64 29 0a 20 20 22 47 69 76 65 6e 20 ul--format-head.(head)..."Given.
f4c0 61 20 27 68 65 61 64 27 20 28 74 68 65 20 66 69 72 73 74 20 74 77 6f 20 73 79 6d 62 6f 6c 73 20 a.'head'.(the.first.two.symbols.
f4e0 6f 66 20 61 20 73 65 78 70 29 20 66 6f 72 6d 61 74 20 61 6e 64 0a 73 79 6e 74 61 78 20 68 69 67 of.a.sexp).format.and.syntax.hig
f500 68 6c 69 67 68 74 20 69 74 2e 22 0a 20 20 28 2d 6c 65 74 2a 20 28 28 28 64 65 66 20 6e 61 6d 65 hlight.it."...(-let*.(((def.name
f520 29 20 68 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 2d 6e 61 6d ).head)...........(formatted-nam
f540 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 6e 61 6d e............(if.(and.(consp.nam
f560 65 29 20 28 65 71 20 28 63 61 72 20 6e 61 6d 65 29 20 27 71 75 6f 74 65 29 29 0a 20 20 20 20 20 e).(eq.(car.name).'quote))......
f580 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 27 25 53 22 20 28 63 61 64 72 20 6e 61 ..........(format."'%S".(cadr.na
f5a0 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 53 22 20 6e me))..............(format."%S".n
f5c0 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 2d 64 65 66 0a ame)))...........(formatted-def.
f5e0 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 28 25 73 20 25 73 20 2e 2e 2e 29 22 ...........(format."(%s.%s....)"
f600 20 64 65 66 20 66 6f 72 6d 61 74 74 65 64 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 .def.formatted-name))...........
f620 29 0a 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 6c 69 67 68 74 ).....(helpful--syntax-highlight
f640 20 66 6f 72 6d 61 74 74 65 64 2d 64 65 66 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 .formatted-def)))..(defun.helpfu
f660 6c 2d 2d 66 6f 72 6d 61 74 2d 72 65 66 65 72 65 6e 63 65 20 28 68 65 61 64 20 6c 6f 6e 67 65 73 l--format-reference.(head.longes
f680 74 2d 68 65 61 64 20 72 65 66 2d 63 6f 75 6e 74 20 70 6f 73 69 74 69 6f 6e 20 70 61 74 68 29 0a t-head.ref-count.position.path).
f6a0 20 20 22 52 65 74 75 72 6e 20 61 20 73 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 65 64 20 76 .."Return.a.syntax-highlighted.v
f6c0 65 72 73 69 6f 6e 20 6f 66 20 48 45 41 44 2c 20 77 69 74 68 20 61 20 6c 69 6e 6b 0a 74 6f 20 69 ersion.of.HEAD,.with.a.link.to.i
f6e0 74 73 20 73 6f 75 72 63 65 20 6c 6f 63 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 6f ts.source.location."...(let.((fo
f700 72 6d 61 74 74 65 64 2d 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 rmatted-count..........(format."
f720 25 64 20 72 65 66 65 72 65 6e 63 65 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 %d.reference%s".................
f740 20 72 65 66 2d 63 6f 75 6e 74 20 28 69 66 20 28 3e 20 72 65 66 2d 63 6f 75 6e 74 20 31 29 20 22 .ref-count.(if.(>.ref-count.1)."
f760 73 22 20 22 22 29 29 29 29 0a 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 28 s"."")))).....(propertize......(
f780 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 22 25 73 20 25 73 22 0a 20 20 20 20 20 20 28 73 2d 70 61 format......."%s.%s".......(s-pa
f7a0 64 2d 72 69 67 68 74 20 6c 6f 6e 67 65 73 74 2d 68 65 61 64 20 22 20 22 20 28 68 65 6c 70 66 75 d-right.longest-head.".".(helpfu
f7c0 6c 2d 2d 66 6f 72 6d 61 74 2d 68 65 61 64 20 68 65 61 64 29 29 0a 20 20 20 20 20 20 28 70 72 6f l--format-head.head)).......(pro
f7e0 70 65 72 74 69 7a 65 20 66 6f 72 6d 61 74 74 65 64 2d 63 6f 75 6e 74 20 27 66 61 63 65 20 27 66 pertize.formatted-count.'face.'f
f800 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 0a 20 20 20 20 20 27 68 65 ont-lock-comment-face))......'he
f820 6c 70 66 75 6c 2d 70 61 74 68 20 70 61 74 68 0a 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 70 6f lpful-path.path......'helpful-po
f840 73 20 70 6f 73 69 74 69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 s.position)))..(defun.helpful--f
f860 6f 72 6d 61 74 2d 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 73 20 28 70 6f 73 69 74 69 6f 6e 2d 68 ormat-position-heads.(position-h
f880 65 61 64 73 20 70 61 74 68 29 0a 20 20 22 47 69 76 65 6e 20 61 20 6c 69 73 74 20 6f 66 20 6f 75 eads.path)..."Given.a.list.of.ou
f8a0 74 65 72 20 73 65 78 70 73 2c 20 66 6f 72 6d 61 74 20 74 68 65 6d 20 66 6f 72 20 64 69 73 70 6c ter.sexps,.format.them.for.displ
f8c0 61 79 2e 0a 50 4f 53 49 54 49 4f 4e 2d 48 45 41 44 53 20 74 61 6b 65 73 20 74 68 65 20 66 6f 72 ay..POSITION-HEADS.takes.the.for
f8e0 6d 20 28 28 31 32 33 20 28 64 65 66 75 6e 20 66 6f 6f 29 29 20 28 34 35 36 20 28 64 65 66 75 6e m.((123.(defun.foo)).(456.(defun
f900 20 62 61 72 29 29 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 6e 67 65 73 74 2d 68 65 61 64 0a .bar)))."...(let.((longest-head.
f920 20 20 20 20 20 20 20 20 20 28 2d 3e 3e 20 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 73 0a 20 20 20 .........(->>.position-heads....
f940 20 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 5f 70 6f 73 ...........(-map.(-lambda.((_pos
f960 20 68 65 61 64 29 29 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 .head)).(helpful--format-head.he
f980 61 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 6c 65 6e 67 ad)))...............(-map.#'leng
f9a0 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 th)...............(-max)))).....
f9c0 28 2d 3e 3e 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 75 6e 74 2d 76 61 6c 75 65 73 20 70 6f 73 69 (->>.(helpful--count-values.posi
f9e0 74 69 6f 6e 2d 68 65 61 64 73 29 0a 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d tion-heads)..........(-map.(-lam
fa00 62 64 61 20 28 28 28 70 6f 73 20 68 65 61 64 29 20 2e 20 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 bda.(((pos.head)...count))......
fa20 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 72 65 66 ............(helpful--format-ref
fa40 65 72 65 6e 63 65 20 68 65 61 64 20 6c 6f 6e 67 65 73 74 2d 68 65 61 64 20 63 6f 75 6e 74 20 70 erence.head.longest-head.count.p
fa60 6f 73 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 os.path)))..........(s-join."\n"
fa80 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d ))))..(defun.helpful--primitive-
faa0 70 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 74 20 69 p.(sym.callable-p)..."Return.t.i
fac0 66 20 53 59 4d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 43 2e 22 0a 20 20 28 6c 65 74 20 28 f.SYM.is.defined.in.C."...(let.(
fae0 28 73 75 62 72 70 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 73 75 62 72 2d 70 72 69 6d 69 74 (subrp.(if.(fboundp.'subr-primit
fb00 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 20 23 27 73 75 62 72 ive-p)....................#'subr
fb20 2d 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 23 27 -primitive-p..................#'
fb40 73 75 62 72 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 61 6e 64 20 63 61 subrp))).....(cond......((and.ca
fb60 6c 6c 61 62 6c 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 61 64 76 69 73 65 64 2d 70 20 73 79 6d llable-p.(helpful--advised-p.sym
fb80 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 75 62 72 70 20 28 68 65 6c 70 66 75 6c )).......(funcall.subrp.(helpful
fba0 2d 2d 77 69 74 68 6f 75 74 2d 61 64 76 69 63 65 20 73 79 6d 29 29 29 0a 20 20 20 20 20 28 63 61 --without-advice.sym)))......(ca
fbc0 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 75 62 72 70 20 28 69 llable-p.......(funcall.subrp.(i
fbe0 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 0a 20 20 20 20 20 28 74 0a ndirect-function.sym)))......(t.
fc00 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 6d 65 20 28 66 69 6e 64 2d 6c 69 73 70 ......(let.((filename.(find-lisp
fc20 2d 6f 62 6a 65 63 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 73 79 6d 20 27 64 65 66 76 61 72 29 29 29 -object-file-name.sym.'defvar)))
fc40 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 20 66 69 6c 65 6e 61 6d 65 20 27 43 2d 73 6f 75 .........(or.(eq.filename.'C-sou
fc60 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 66 rce).............(and.(stringp.f
fc80 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 ilename)..................(let.(
fca0 28 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 66 69 6c 65 6e 61 (ext.(file-name-extension.filena
fcc0 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 me)))....................(or.(eq
fce0 75 61 6c 20 65 78 74 20 22 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ual.ext."c")....................
fd00 20 20 20 20 28 65 71 75 61 6c 20 65 78 74 20 22 72 73 22 29 29 29 29 29 29 29 29 29 29 0a 0a 28 ....(equal.ext."rs"))))))))))..(
fd20 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d 76 61 6c 75 65 20 28 73 79 6d 20 62 75 defun.helpful--sym-value.(sym.bu
fd40 66 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 53 59 4d 20 69 6e f)..."Return.the.value.of.SYM.in
fd60 20 42 55 46 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 3b 3b 20 49 66 20 77 65 27 72 65 20 67 69 .BUF."...(cond....;;.If.we're.gi
fd80 76 65 6e 20 61 20 62 75 66 66 65 72 2c 20 6c 6f 6f 6b 20 75 70 20 74 68 65 20 76 61 72 69 61 62 ven.a.buffer,.look.up.the.variab
fda0 6c 65 20 69 6e 20 74 68 61 74 20 62 75 66 66 65 72 2e 0a 20 20 20 28 62 75 66 0a 20 20 20 20 28 le.in.that.buffer.....(buf.....(
fdc0 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 20 28 73 with-current-buffer.buf.......(s
fde0 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 0a 20 20 20 3b 3b 20 49 66 20 77 65 20 64 ymbol-value.sym)))....;;.If.we.d
fe00 6f 6e 27 74 20 68 61 76 65 20 61 20 62 75 66 66 65 72 2c 20 61 6e 64 20 74 68 69 73 20 69 73 20 on't.have.a.buffer,.and.this.is.
fe20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2c 0a 20 20 20 3b 3b 20 65 a.buffer-local.variable,....;;.e
fe40 6e 73 75 72 65 20 77 65 20 72 65 74 75 72 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 nsure.we.return.the.default.valu
fe60 65 2e 0a 20 20 20 28 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 e.....((local-variable-if-set-p.
fe80 73 79 6d 29 0a 20 20 20 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 73 79 6d 29 29 0a 20 20 sym).....(default-value.sym))...
fea0 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 6a 75 73 74 20 72 65 74 75 72 6e 20 74 68 65 20 76 .;;.Otherwise,.just.return.the.v
fec0 61 6c 75 65 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 77 68 69 63 alue.in.the.current.buffer,.whic
fee0 68 20 69 73 0a 20 20 20 3b 3b 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2e 0a 20 20 20 h.is....;;.the.global.value.....
ff00 28 74 0a 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 29 0a 0a 28 64 (t.....(symbol-value.sym))))..(d
ff20 65 66 75 6e 20 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 efun.helpful--insert-section-bre
ff40 61 6b 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 73 65 63 74 69 6f 6e 20 62 72 65 61 6b 20 69 6e ak.()..."Insert.section.break.in
ff60 74 6f 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 73 65 72 74 20 22 5c to.helpful.buffer."...(insert."\
ff80 6e 5c 6e 22 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 74 2d 69 n\n"))..(defun.helpful--insert-i
ffa0 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 28 29 0a 20 20 22 57 68 65 6e 20 60 68 65 6c 70 66 mplementations.()..."When.`helpf
ffc0 75 6c 2d 2d 73 79 6d 27 20 69 73 20 61 20 67 65 6e 65 72 69 63 20 6d 65 74 68 6f 64 2c 20 69 6e ul--sym'.is.a.generic.method,.in
ffe0 73 65 72 74 20 69 74 73 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 sert.its.implementations."...(le
10000 74 20 28 28 66 75 6e 63 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 28 t.((func.helpful--sym).........(
10020 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 23 27 63 content)).....(when.(fboundp.#'c
10040 6c 2d 2d 67 65 6e 65 72 69 63 2d 64 65 73 63 72 69 62 65 29 0a 20 20 20 20 20 20 28 77 69 74 68 l--generic-describe).......(with
10060 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 64 65 63 6c 61 72 65 2d 66 75 -temp-buffer.........(declare-fu
10080 6e 63 74 69 6f 6e 20 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 64 65 73 63 72 69 62 65 20 22 63 6c 2d nction.cl--generic-describe."cl-
100a0 67 65 6e 65 72 69 63 22 20 28 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 63 6c generic".(function)).........(cl
100c0 2d 2d 67 65 6e 65 72 69 63 2d 64 65 73 63 72 69 62 65 20 66 75 6e 63 29 0a 20 20 20 20 20 20 20 --generic-describe.func)........
100e0 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 20 20 20 .(goto-char.(point-min))........
10100 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 49 6d 70 6c .(when.(re-search-forward."^Impl
10120 65 6d 65 6e 74 61 74 69 6f 6e 73 3a 24 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 ementations:$".nil.t)...........
10140 28 73 65 74 71 20 63 6f 6e 74 65 6e 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 (setq.content.(buffer-substring.
10160 28 70 6f 69 6e 74 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 77 (point).(point-max))))).......(w
10180 68 65 6e 20 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e hen.content.........(helpful--in
101a0 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 20 20 28 69 6e 73 sert-section-break).........(ins
101c0 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 49 6d 70 6c 65 6d 65 6e 74 ert.(helpful--heading."Implement
101e0 61 74 69 6f 6e 73 22 29 20 28 73 2d 74 72 69 6d 20 63 6f 6e 74 65 6e 74 29 29 29 29 29 29 0a 0a ations").(s-trim.content))))))..
10200 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 63 75 6c 61 74 65 2d 72 65 66 65 72 65 (defun.helpful--calculate-refere
10220 6e 63 65 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 73 6f 75 72 63 65 2d 70 61 74 68 nces.(sym.callable-p.source-path
10240 29 0a 20 20 22 43 61 6c 63 75 6c 61 74 65 20 72 65 66 65 72 65 6e 63 65 73 20 66 6f 72 20 53 59 )..."Calculate.references.for.SY
10260 4d 20 69 6e 20 53 4f 55 52 43 45 2d 50 41 54 48 2e 22 0a 20 20 28 77 68 65 6e 20 73 6f 75 72 63 M.in.SOURCE-PATH."...(when.sourc
10280 65 2d 70 61 74 68 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 69 6d 69 74 69 76 65 2d 70 20 28 e-path.....(let*.((primitive-p.(
102a0 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 61 62 6c helpful--primitive-p.sym.callabl
102c0 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 65 6c 69 73 70 2d 72 65 66 e-p))............(buf.(elisp-ref
102e0 73 2d 2d 63 6f 6e 74 65 6e 74 73 2d 62 75 66 66 65 72 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 s--contents-buffer.source-path))
10300 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 ............(positions..........
10320 20 20 20 28 69 66 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 ...(if.primitive-p..............
10340 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 72 ...nil...............(helpful--r
10360 65 66 65 72 65 6e 63 65 2d 70 6f 73 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 eference-positions..............
10380 20 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 65 ..helpful--sym.helpful--callable
103a0 2d 70 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 74 75 72 6e 2d 76 61 6c -p.buf)))............(return-val
103c0 75 65 20 28 2d 2d 6d 61 70 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 75 74 65 72 2d 73 65 78 70 20 62 ue.(--map.(helpful--outer-sexp.b
103e0 75 66 20 69 74 29 20 70 6f 73 69 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d uf.it).positions))).......(kill-
10400 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 20 20 72 65 74 75 72 6e 2d 76 61 6c 75 65 29 29 buffer.buf).......return-value))
10420 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 73 68 6f 72 74 64 6f 63 )..(defun.helpful--make-shortdoc
10440 2d 73 65 6e 74 65 6e 63 65 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 61 20 6c 69 6e 65 20 66 -sentence.(sym)..."Make.a.line.f
10460 6f 72 20 73 68 6f 72 74 64 6f 63 20 67 72 6f 75 70 73 20 6f 66 20 53 59 4d 2e 22 0a 20 20 28 77 or.shortdoc.groups.of.SYM."...(w
10480 68 65 6e 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 28 2d 77 hen.(featurep.'shortdoc).....(-w
104a0 68 65 6e 2d 6c 65 74 20 28 67 72 6f 75 70 73 20 28 2d 2d 6d 61 70 20 28 68 65 6c 70 66 75 6c 2d hen-let.(groups.(--map.(helpful-
104c0 2d 62 75 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 20 20 20 -button.........................
104e0 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).........
10500 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-
10520 73 68 6f 72 74 64 6f 63 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 shortdoc-button.................
10540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 68 6f 72 74 64 6f 63 2d 67 72 6f 75 70 20 69 ...............'shortdoc-group.i
10560 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 20 20 t)..............................
10580 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 29 29 .(shortdoc-function-groups.sym))
105a0 29 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 31 20 28 6c 65 6e 67 74 68 20 67 72 6f 75 70 73 29 ).......(if.(=.1.(length.groups)
105c0 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4f 74 68 65 72 20 72 65 6c 65 76 )...........(format."Other.relev
105e0 61 6e 74 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 6f 63 75 6d 65 6e 74 65 64 20 69 6e 20 ant.functions.are.documented.in.
10600 74 68 65 20 25 73 20 67 72 6f 75 70 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 the.%s.group."..................
10620 20 28 63 61 72 20 67 72 6f 75 70 73 29 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 .(car.groups)).........(format."
10640 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 6f 63 Other.relevant.functions.are.doc
10660 75 6d 65 6e 74 65 64 20 69 6e 20 74 68 65 20 25 73 20 67 72 6f 75 70 73 2e 22 0a 20 20 20 20 20 umented.in.the.%s.groups."......
10680 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 73 2d 6a 6f 69 6e 20 22 2c 20 22 20 ...........(concat.(s-join.",.".
106a0 28 62 75 74 6c 61 73 74 20 67 72 6f 75 70 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (butlast.groups))...............
106c0 20 20 20 20 20 20 20 20 20 20 22 20 61 6e 64 20 22 20 28 63 61 72 20 28 6c 61 73 74 20 67 72 6f ..........".and.".(car.(last.gro
106e0 75 70 73 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 6d 61 6b ups))))))))..(defun.helpful--mak
10700 65 2d 6d 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 6d 61 e-manual-button.(sym)..."Make.ma
10720 6e 75 61 6c 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 nual.button.for.SYM."...(helpful
10740 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 56 69 65 77 20 69 6e 20 6d 61 6e 75 61 6c 22 0a 20 20 20 --button...."View.in.manual"....
10760 27 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 27 73 79 6d 62 6f 'helpful-manual-button....'symbo
10780 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 74 6f l.sym))..(defun.helpful--make-to
107a0 67 67 6c 65 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 65 ggle-button.(sym.buffer)..."Make
107c0 20 74 6f 67 67 6c 65 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 .toggle.button.for.SYM.in.BUFFER
107e0 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 54 6f 67 67 6c 65 ."...(helpful--button...."Toggle
10800 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 74 6f 67 67 6c 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 "....'helpful-toggle-button....'
10820 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 27 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 0a symbol.sym....'buffer.buffer))..
10840 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 73 65 74 2d 62 75 74 74 6f 6e 20 (defun.helpful--make-set-button.
10860 28 73 79 6d 20 62 75 66 66 65 72 29 0a 20 20 22 4d 61 6b 65 20 73 65 74 20 62 75 74 74 6f 6e 20 (sym.buffer)..."Make.set.button.
10880 66 6f 72 20 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 for.SYM.in.BUFFER."...(helpful--
108a0 62 75 74 74 6f 6e 0a 20 20 20 22 53 65 74 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 73 65 74 2d button...."Set"....'helpful-set-
108c0 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 65 72 button....'symbol.sym....'buffer
108e0 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 65 2d .buffer))..(defun.helpful--make-
10900 74 6f 67 67 6c 65 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 6f 6e 20 28 29 0a 20 20 22 4d 61 6b 65 toggle-literal-button.()..."Make
10920 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 0a .set.button.for.SYM.in.BUFFER.".
10940 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 28 69 66 20 68 65 6c 70 66 75 ..(helpful--button....(if.helpfu
10960 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 l--view-literal........;;.TODO:.
10980 6f 6e 6c 79 20 6f 66 66 65 72 20 66 6f 72 20 73 74 72 69 6e 67 73 20 74 68 61 74 20 68 61 76 65 only.offer.for.strings.that.have
109a0 20 6e 65 77 6c 69 6e 65 73 2c 20 74 61 62 73 20 6f 72 0a 20 20 20 20 20 20 20 3b 3b 20 70 72 6f .newlines,.tabs.or........;;.pro
109c0 70 65 72 74 69 65 73 2e 0a 20 20 20 20 20 20 20 22 50 72 65 74 74 79 20 76 69 65 77 22 0a 20 20 perties........."Pretty.view"...
109e0 20 20 20 22 56 69 65 77 20 61 73 20 6c 69 74 65 72 61 6c 22 29 0a 20 20 20 27 68 65 6c 70 66 75 ..."View.as.literal")....'helpfu
10a00 6c 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 l-view-literal-button))..(defun.
10a20 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 74 6f 6e 20 28 helpful--make-customize-button.(
10a40 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 63 75 73 74 6f 6d 69 7a 65 20 62 75 74 74 6f 6e 20 66 6f sym)..."Make.customize.button.fo
10a60 72 20 53 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 22 43 r.SYM."...(helpful--button...."C
10a80 75 73 74 6f 6d 69 7a 65 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 63 75 73 74 6f 6d 69 7a 65 2d ustomize"....'helpful-customize-
10aa0 62 75 74 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 button....'symbol.sym))..(defun.
10ac0 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 65 66 65 72 65 6e 63 65 73 2d 62 75 74 74 6f 6e 20 helpful--make-references-button.
10ae0 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 4d 61 6b 65 20 72 65 66 65 72 65 6e (sym.callable-p)..."Make.referen
10b00 63 65 73 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 ces.button.for.SYM."...(helpful-
10b20 2d 62 75 74 74 6f 6e 0a 20 20 20 22 46 69 6e 64 20 61 6c 6c 20 72 65 66 65 72 65 6e 63 65 73 22 -button...."Find.all.references"
10b40 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 61 6c 6c 2d 72 65 66 65 72 65 6e 63 65 73 2d 62 75 74 74 ....'helpful-all-references-butt
10b60 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 on....'symbol.sym....'callable-p
10b80 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d .callable-p))..(defun.helpful--m
10ba0 61 6b 65 2d 65 64 65 62 75 67 2d 62 75 74 74 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 ake-edebug-button.(sym)..."Make.
10bc0 65 64 65 62 75 67 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 edebug.button.for.SYM."...(helpf
10be0 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 65 64 65 62 75 67 ul--button....(format."%s.edebug
10c00 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 68 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 "............(if.(helpful--edebu
10c20 67 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 44 69 73 61 62 6c 65 g-p.sym)................"Disable
10c40 22 20 22 45 6e 61 62 6c 65 22 29 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 65 64 65 62 75 67 2d "."Enable"))....'helpful-edebug-
10c60 62 75 74 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 button....'symbol.sym))..(defun.
10c80 68 65 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 28 73 79 helpful--make-tracing-button.(sy
10ca0 6d 29 0a 20 20 22 4d 61 6b 65 20 74 72 61 63 69 6e 67 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 m)..."Make.tracing.button.for.SY
10cc0 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 61 M."...(helpful--button....(forma
10ce0 74 20 22 25 73 20 74 72 61 63 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 74 t."%s.tracing"............(if.(t
10d00 72 61 63 65 2d 69 73 2d 74 72 61 63 65 64 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 race-is-traced.sym).............
10d20 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 6c 70 ..."Disable"."Enable"))....'help
10d40 66 75 6c 2d 74 72 61 63 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 29 ful-trace-button....'symbol.sym)
10d60 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 64 69 73 61 73 73 65 6d )..(defun.helpful--make-disassem
10d80 62 6c 65 2d 62 75 74 74 6f 6e 20 28 6f 62 6a 29 0a 20 20 22 4d 61 6b 65 20 64 69 73 61 73 73 65 ble-button.(obj)..."Make.disasse
10da0 6d 62 6c 65 20 62 75 74 74 6f 6e 20 66 6f 72 20 4f 42 4a 2e 0a 4f 42 4a 20 6d 61 79 20 62 65 20 mble.button.for.OBJ..OBJ.may.be.
10dc0 61 20 73 79 6d 62 6f 6c 20 6f 72 20 61 20 63 6f 6d 70 69 6c 65 64 20 66 75 6e 63 74 69 6f 6e 20 a.symbol.or.a.compiled.function.
10de0 6f 62 6a 65 63 74 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 object."...(helpful--button...."
10e00 44 69 73 61 73 73 65 6d 62 6c 65 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 64 69 73 61 73 73 65 Disassemble"....'helpful-disasse
10e20 6d 62 6c 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 6f 62 6a 65 63 74 20 6f 62 6a 29 29 0a 0a 28 64 mble-button....'object.obj))..(d
10e40 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 efun.helpful--make-run-test-butt
10e60 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 61 6e 20 45 52 54 20 74 65 73 74 20 62 75 74 on.(sym)..."Make.an.ERT.test.but
10e80 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 74 6f 6e ton.for.SYM."...(helpful--button
10ea0 0a 20 20 20 22 52 75 6e 20 74 65 73 74 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 72 75 6e 2d 74 ...."Run.test"....'helpful-run-t
10ec0 65 73 74 2d 62 75 74 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 est-button....'symbol.sym))..(de
10ee0 66 75 6e 20 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 6f 6e 20 fun.helpful--make-forget-button.
10f00 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 4d 61 6b 65 20 66 6f 72 67 65 74 20 (sym.callable-p)..."Make.forget.
10f20 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
10f40 74 6f 6e 0a 20 20 20 22 46 6f 72 67 65 74 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 66 6f 72 67 ton...."Forget"....'helpful-forg
10f60 65 74 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 63 61 6c et-button....'symbol.sym....'cal
10f80 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 75 6e 20 68 65 6c lable-p.callable-p))..(defun.hel
10fa0 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 61 6c 6c 65 65 73 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 73 pful--make-callees-button.(sym.s
10fc0 6f 75 72 63 65 29 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 ource)...(helpful--button....(fo
10fe0 72 6d 61 74 20 22 46 75 6e 63 74 69 6f 6e 73 20 75 73 65 64 20 62 79 20 25 73 22 20 73 79 6d 29 rmat."Functions.used.by.%s".sym)
11000 0a 20 20 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 20 20 27 ....'helpful-callees-button....'
11020 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 27 73 6f 75 72 63 65 20 73 6f 75 72 63 65 29 29 0a 0a symbol.sym....'source.source))..
11040 3b 3b 20 54 4f 44 4f 3a 20 74 68 69 73 20 6f 6e 6c 79 20 72 65 70 6f 72 74 73 20 69 66 20 61 20 ;;.TODO:.this.only.reports.if.a.
11060 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 75 74 6f 6c 6f 61 64 65 64 20 62 65 63 61 75 73 65 20 77 function.is.autoloaded.because.w
11080 65 0a 3b 3b 20 61 75 74 6f 6c 6f 61 64 65 64 20 69 74 2e 20 54 68 69 73 20 69 67 6e 6f 72 65 73 e.;;.autoloaded.it..This.ignores
110a0 20 6e 65 77 6c 79 20 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 61 72 .newly.defined.functions.that.ar
110c0 65 0a 3b 3b 20 61 75 74 6f 6c 6f 61 64 65 64 2e 20 42 75 69 6c 74 2d 69 6e 20 68 65 6c 70 20 68 e.;;.autoloaded..Built-in.help.h
110e0 61 73 20 74 68 69 73 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 6f 6f 2c 20 62 75 74 20 69 66 20 77 as.this.limitation.too,.but.if.w
11100 65 20 63 61 6e 0a 3b 3b 20 66 69 6e 64 20 74 68 65 20 73 6f 75 72 63 65 2c 20 77 65 20 73 68 6f e.can.;;.find.the.source,.we.sho
11120 75 6c 64 20 69 6e 73 74 65 61 64 20 73 65 65 20 69 66 20 74 68 65 72 65 27 73 20 61 6e 20 61 75 uld.instead.see.if.there's.an.au
11140 74 6f 6c 6f 61 64 0a 3b 3b 20 63 6f 6f 6b 69 65 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c toload.;;.cookie..(defun.helpful
11160 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 28 73 79 6d 20 62 75 66 29 0a 20 20 22 52 65 74 75 --autoloaded-p.(sym.buf)..."Retu
11180 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 20 69 73 20 61 75 rn.non-nil.if.function.SYM.is.au
111a0 74 6f 6c 6f 61 64 65 64 2e 22 0a 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 66 69 6c 65 2d 6e 61 toloaded."...(-when-let.(file-na
111c0 6d 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 29 29 0a 20 20 20 20 28 me.(buffer-file-name.buf)).....(
111e0 73 65 74 71 20 66 69 6c 65 2d 6e 61 6d 65 20 28 73 2d 63 68 6f 70 2d 73 75 66 66 69 78 20 22 2e setq.file-name.(s-chop-suffix.".
11200 67 7a 22 20 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 gz".file-name)).....(condition-c
11220 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 2d 66 6e 73 2d 2d 61 75 74 6f 6c ase.nil.........(help-fns--autol
11240 6f 61 64 65 64 2d 70 20 73 79 6d 20 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 3b 20 6e oaded-p.sym.file-name).......;.n
11260 65 77 20 69 6e 20 45 6d 61 63 73 20 32 39 2e 30 2e 35 30 0a 20 20 20 20 20 20 3b 20 73 65 65 20 ew.in.Emacs.29.0.50.......;.see.
11280 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 65 6c 70 66 https://github.com/Wilfred/helpf
112a0 75 6c 2f 70 75 6c 6c 2f 32 38 33 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 68 65 6c 70 2d 66 ul/pull/283.......(error.(help-f
112c0 6e 73 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 73 79 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 ns--autoloaded-p.sym)))))..(defu
112e0 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 6f 6d 70 69 6c 65 64 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 n.helpful--compiled-p.(sym)..."R
11300 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 20 69 73 eturn.non-nil.if.function.SYM.is
11320 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 64 22 0a 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 .byte-compiled"...(and.(symbolp.
11340 73 79 6d 29 0a 20 20 20 20 20 20 20 28 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d sym)........(byte-code-function-
11360 70 20 28 73 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 p.(symbol-function.sym))))..(def
11380 75 6e 20 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 20 28 73 un.helpful--native-compiled-p.(s
113a0 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 6e 63 74 69 6f ym)..."Return.non-nil.if.functio
113c0 6e 20 53 59 4d 20 69 73 20 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 22 0a 20 20 28 61 6e 64 n.SYM.is.native-compiled"...(and
113e0 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 27 .(symbolp.sym)........(fboundp.'
11400 73 75 62 72 2d 6e 61 74 69 76 65 2d 65 6c 69 73 70 2d 70 29 0a 20 20 20 20 20 20 20 28 73 75 62 subr-native-elisp-p)........(sub
11420 72 2d 6e 61 74 69 76 65 2d 65 6c 69 73 70 2d 70 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f r-native-elisp-p.(symbol-functio
11440 6e 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 6a 6f 69 6e 2d n.sym))))..(defun.helpful--join-
11460 61 6e 64 20 28 69 74 65 6d 73 29 0a 20 20 22 4a 6f 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 73 74 and.(items)..."Join.a.list.of.st
11480 72 69 6e 67 73 20 77 69 74 68 20 63 6f 6d 6d 61 73 20 61 6e 64 20 5c 22 61 6e 64 5c 22 2e 22 0a rings.with.commas.and.\"and\".".
114a0 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 3d 20 28 6c 65 6e 67 74 68 20 69 74 65 6d 73 29 20 30 29 ..(cond....((=.(length.items).0)
114c0 0a 20 20 20 20 22 22 29 0a 20 20 20 28 28 3d 20 28 6c 65 6e 67 74 68 20 69 74 65 6d 73 29 20 31 ....."")....((=.(length.items).1
114e0 29 0a 20 20 20 20 28 63 61 72 20 69 74 65 6d 73 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 66 6f ).....(car.items))....(t.....(fo
11500 72 6d 61 74 20 22 25 73 20 61 6e 64 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d rmat."%s.and.%s".............(s-
11520 6a 6f 69 6e 20 22 2c 20 22 20 28 2d 64 72 6f 70 2d 6c 61 73 74 20 31 20 69 74 65 6d 73 29 29 0a join.",.".(-drop-last.1.items)).
11540 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 69 74 65 6d 73 29 29 29 ............(-last-item.items)))
11560 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 75 6d 6d 61 72 79 20 28 73 79 6d ))..(defun.helpful--summary.(sym
11580 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 .callable-p.buf.pos)..."Return.a
115a0 20 6f 6e 65 20 73 65 6e 74 65 6e 63 65 20 73 75 6d 6d 61 72 79 20 66 6f 72 20 53 59 4d 2e 22 0a .one.sentence.summary.for.SYM.".
115c0 20 20 28 2d 6c 65 74 2a 20 28 28 70 72 69 6d 69 74 69 76 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d ..(-let*.((primitive-p.(helpful-
115e0 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 29 0a 20 20 -primitive-p.sym.callable-p))...
11600 20 20 20 20 20 20 20 20 28 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d ........(canonical-sym.(helpful-
11620 2d 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 62 6f 6c 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 -canonical-symbol.sym.callable-p
11640 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 61 73 2d 70 20 28 6e 6f 74 20 28 65 71 20 63 ))...........(alias-p.(not.(eq.c
11660 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 anonical-sym.sym)))...........(a
11680 6c 69 61 73 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 lias-button............(if.calla
116a0 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 68 6f 77 20 61 20 6c ble-p................;;.Show.a.l
116c0 69 6e 6b 20 74 6f 20 27 64 65 66 61 6c 69 61 73 27 20 69 6e 20 74 68 65 20 6d 61 6e 75 61 6c 2e ink.to.'defalias'.in.the.manual.
116e0 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 62 75 74 74 6f 6e ................(helpful--button
11700 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 ................."function.alias
11720 22 0a 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 6d 61 6e 75 61 ".................'helpful-manua
11740 6c 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c l-button.................'symbol
11760 20 27 64 65 66 61 6c 69 61 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 68 6f 77 .'defalias)..............;;.Show
11780 20 61 20 6c 69 6e 6b 20 74 6f 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 61 6c 69 61 73 65 73 20 .a.link.to.the.variable.aliases.
117a0 73 65 63 74 69 6f 6e 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6d section.in.the..............;;.m
117c0 61 6e 75 61 6c 2e 0a 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 anual...............(helpful--bu
117e0 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6c 69 61 73 22 0a 20 20 20 20 20 tton..............."alias"......
11800 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...
11820 20 20 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 ............'info-node."(elisp)V
11840 61 72 69 61 62 6c 65 20 41 6c 69 61 73 65 73 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 ariable.Aliases")))...........(s
11860 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 pecial-form-button............(h
11880 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 73 70 65 63 elpful--button............."spec
118a0 69 61 6c 20 66 6f 72 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 ial.form".............'helpful-i
118c0 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 6e 6f 64 nfo-button.............'info-nod
118e0 65 20 22 28 65 6c 69 73 70 29 53 70 65 63 69 61 6c 20 46 6f 72 6d 73 22 29 29 0a 20 20 20 20 20 e."(elisp)Special.Forms"))......
11900 20 20 20 20 20 28 75 73 65 72 2d 6f 70 74 69 6f 6e 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 .....(user-option-button........
11920 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 20 20 20 20 ....(helpful--button............
11940 20 22 63 75 73 74 6f 6d 69 7a 61 62 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c ."customizable".............'hel
11960 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 20 20 20 27 69 6e pful-info-button.............'in
11980 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 56 61 72 69 61 62 6c 65 20 44 65 66 69 6e 69 74 fo-node."(elisp)Variable.Definit
119a0 69 6f 6e 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 62 6f 61 72 64 2d 6d 61 63 72 ions"))...........(keyboard-macr
119c0 6f 2d 62 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 o-button............(helpful--bu
119e0 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 6b 65 79 62 6f 61 72 64 20 6d 61 63 72 6f tton............."keyboard.macro
11a00 22 0a 20 20 20 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 ".............'helpful-info-butt
11a20 6f 6e 0a 20 20 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 on.............'info-node."(elis
11a40 70 29 4b 65 79 62 6f 61 72 64 20 4d 61 63 72 6f 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 p)Keyboard.Macros"))...........(
11a60 69 6e 74 65 72 61 63 74 69 76 65 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 interactive-button............(h
11a80 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 69 6e 74 65 elpful--button............."inte
11aa0 72 61 63 74 69 76 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e ractive".............'helpful-in
11ac0 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 6e 6f 64 65 fo-button.............'info-node
11ae0 20 22 28 65 6c 69 73 70 29 55 73 69 6e 67 20 49 6e 74 65 72 61 63 74 69 76 65 22 29 29 0a 20 20 ."(elisp)Using.Interactive"))...
11b00 20 20 20 20 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 ........(autoload-button........
11b20 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 20 20 20 20 ....(helpful--button............
11b40 20 22 61 75 74 6f 6c 6f 61 64 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 ."autoloaded".............'helpf
11b60 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 6f ul-info-button.............'info
11b80 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 41 75 74 6f 6c 6f 61 64 22 29 29 0a 20 20 20 20 20 20 -node."(elisp)Autoload")).......
11ba0 20 20 20 20 28 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 ....(compiled-button............
11bc0 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 79 (helpful--button............."by
11be0 74 65 2d 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 te-compiled".............'helpfu
11c00 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-
11c20 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 42 79 74 65 20 43 6f 6d 70 69 6c 61 74 69 6f 6e 22 29 29 node."(elisp)Byte.Compilation"))
11c40 0a 20 20 20 20 20 20 20 20 20 20 28 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 ...........(native-compiled-butt
11c60 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 6e 0a 20 on............(helpful--button..
11c80 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 74 69 76 65 6c 79 20 63 6f 6d 70 69 6c 65 64 22 0a 20 ..........."natively.compiled"..
11ca0 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 62 75 74 ...........'helpful-describe-but
11cc0 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 27 6e 61 74 69 76 65 2d ton.............'symbol.'native-
11ce0 63 6f 6d 70 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 compile))...........(buffer-loca
11d00 6c 2d 62 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 l-button............(helpful--bu
11d20 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 62 75 66 66 65 72 2d 6c 6f 63 61 6c 22 0a tton............."buffer-local".
11d40 20 20 20 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 ............'helpful-info-button
11d60 0a 20 20 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 .............'info-node."(elisp)
11d80 42 75 66 66 65 72 2d 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 22 29 29 0a 20 20 20 20 20 20 Buffer-Local.Variables")).......
11da0 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e ....(autoloaded-p............(an
11dc0 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 28 68 65 6c 70 66 75 6c 2d 2d 61 75 74 6f 6c d.callable-p.buf.(helpful--autol
11de0 6f 61 64 65 64 2d 70 20 73 79 6d 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f oaded-p.sym.buf)))...........(co
11e00 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 6c mpiled-p............(and.callabl
11e20 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 6d 70 69 6c 65 64 2d 70 20 73 79 6d 29 29 29 0a e-p.(helpful--compiled-p.sym))).
11e40 20 20 20 20 20 20 20 20 20 20 28 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 2d 70 0a 20 20 20 ..........(native-compiled-p....
11e60 20 20 20 20 20 20 20 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 ........(and.callable-p.(helpful
11e80 2d 2d 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 2d 70 20 73 79 6d 29 29 29 0a 20 20 20 20 20 --native-compiled-p.sym)))......
11ea0 20 20 20 20 20 28 62 75 74 74 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 .....(buttons............(list..
11ec0 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 6c 69 61 73 2d 70 20 61 6c 69 61 73 2d 62 75 74 ...........(if.alias-p.alias-but
11ee0 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 63 61 6c 6c 61 62 ton).............(if.(and.callab
11f00 6c 65 2d 70 20 61 75 74 6f 6c 6f 61 64 65 64 2d 70 29 20 61 75 74 6f 6c 6f 61 64 2d 62 75 74 74 le-p.autoloaded-p).autoload-butt
11f20 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c on).............(if.(and.callabl
11f40 65 2d 70 20 28 63 6f 6d 6d 61 6e 64 70 20 73 79 6d 29 29 20 69 6e 74 65 72 61 63 74 69 76 65 2d e-p.(commandp.sym)).interactive-
11f60 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 6d 70 69 6c 65 64 button).............(if.compiled
11f80 2d 70 20 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -p.compiled-button).............
11fa0 28 69 66 20 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 2d 70 20 6e 61 74 69 76 65 2d 63 6f 6d (if.native-compiled-p.native-com
11fc0 70 69 6c 65 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 20 28 61 piled-button).............(if.(a
11fe0 6e 64 20 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 28 63 75 73 74 6f 6d 2d 76 61 72 69 nd.(not.callable-p).(custom-vari
12000 61 62 6c 65 2d 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 able-p.sym)).................use
12020 72 2d 6f 70 74 69 6f 6e 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 r-option-button).............(if
12040 20 28 61 6e 64 20 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 28 6c 6f 63 61 6c 2d 76 61 .(and.(not.callable-p).(local-va
12060 72 69 61 62 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 riable-if-set-p.sym))...........
12080 20 20 20 20 20 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 62 75 74 74 6f 6e 29 29 29 0a 20 20 20 ......buffer-local-button)))....
120a0 20 20 20 20 20 20 20 28 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 .......(description............(
120c0 68 65 6c 70 66 75 6c 2d 2d 6a 6f 69 6e 2d 61 6e 64 20 28 2d 6e 6f 6e 2d 6e 69 6c 20 62 75 74 74 helpful--join-and.(-non-nil.butt
120e0 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b 69 6e 64 0a 20 20 20 20 20 20 20 20 20 ons)))...........(kind..........
12100 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 70 65 63 69 61 6c 2d 66 6f ..(cond.............((special-fo
12120 72 6d 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 69 61 6c 2d 66 rm-p.sym)..............special-f
12140 6f 72 6d 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 61 73 2d 70 orm-button).............(alias-p
12160 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 66 6f 72 20 25 73 2c 22 0a ..............(format."for.%s,".
12180 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 62 .....................(helpful--b
121a0 75 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 20 28 73 79 6d utton.......................(sym
121c0 62 6f 6c 2d 6e 61 6d 65 20 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 bol-name.canonical-sym).........
121e0 20 20 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 ..............'helpful-describe-
12200 65 78 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 20 20 20 20 exactly-button..................
12220 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 0a 20 20 20 20 20 .....'symbol.canonical-sym......
12240 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 65 2d 70 20 63 61 6c .................'callable-p.cal
12260 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 63 61 6c lable-p))).............((not.cal
12280 6c 61 62 6c 65 2d 70 29 20 22 76 61 72 69 61 62 6c 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 lable-p)."variable")............
122a0 20 28 28 6d 61 63 72 6f 70 20 73 79 6d 29 20 22 6d 61 63 72 6f 22 29 0a 20 20 20 20 20 20 20 20 .((macrop.sym)."macro").........
122c0 20 20 20 20 28 28 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d 6d 61 63 72 6f 2d 70 20 73 79 6d 29 20 ....((helpful--kbd-macro-p.sym).
122e0 6b 65 79 62 6f 61 72 64 2d 6d 61 63 72 6f 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 keyboard-macro-button)..........
12300 20 20 20 28 74 20 22 66 75 6e 63 74 69 6f 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 ...(t."function")))...........(d
12320 65 66 69 6e 65 64 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 efined.............(cond........
12340 20 20 20 20 20 20 28 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 ......(buf...............(let.((
12360 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 29 29 0a 20 20 path.(buffer-file-name.buf)))...
12380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 ..............(if.path..........
123a0 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 20 20 20 ...........(format..............
123c0 20 20 20 20 20 20 20 20 22 64 65 66 69 6e 65 64 20 69 6e 20 25 73 22 0a 20 20 20 20 20 20 20 20 ........"defined.in.%s".........
123e0 20 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 .............(helpful--navigate-
12400 62 75 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 20 28 66 69 button.......................(fi
12420 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 20 70 61 74 68 20 le-name-nondirectory.path).path.
12440 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 66 6f 72 6d 61 74 20 pos))...................(format.
12460 22 64 65 66 69 6e 65 64 20 69 6e 20 62 75 66 66 65 72 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 "defined.in.buffer.%s"..........
12480 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 62 75 66 66 65 .................(helpful--buffe
124a0 72 2d 62 75 74 74 6f 6e 20 62 75 66 20 70 6f 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 r-button.buf.pos)))))...........
124c0 20 20 20 28 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 22 64 ...(primitive-p..............."d
124e0 65 66 69 6e 65 64 20 69 6e 20 43 20 73 6f 75 72 63 65 20 63 6f 64 65 22 29 0a 20 20 20 20 20 20 efined.in.C.source.code").......
12500 20 20 20 20 20 20 20 28 28 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d 6d 61 63 72 6f 2d 70 20 73 79 .......((helpful--kbd-macro-p.sy
12520 6d 29 20 6e 69 6c 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 m).nil)..............(t.........
12540 20 20 20 20 20 20 22 77 69 74 68 6f 75 74 20 61 20 73 6f 75 72 63 65 20 66 69 6c 65 22 29 29 29 ......"without.a.source.file")))
12560 29 0a 0a 20 20 20 20 28 73 2d 77 6f 72 64 2d 77 72 61 70 0a 20 20 20 20 20 37 30 0a 20 20 20 20 )......(s-word-wrap......70.....
12580 20 28 66 6f 72 6d 61 74 20 22 25 73 20 69 73 20 25 73 20 25 73 20 25 73 25 73 2e 22 0a 20 20 20 .(format."%s.is.%s.%s.%s%s."....
125a0 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 ..........(if.(symbolp.sym).....
125c0 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 73 79 .............(helpful--format-sy
125e0 6d 62 6f 6c 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 54 68 69 73 20 6c mbol.sym)................"This.l
12600 61 6d 62 64 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 ambda")..............(if.(string
12620 2d 6d 61 74 63 68 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 62 -match-p...................(rx.b
12640 6f 73 20 28 6f 72 20 22 61 22 20 22 65 22 20 22 69 22 20 22 6f 22 20 22 75 22 29 29 0a 20 20 20 os.(or."a"."e"."i"."o"."u"))....
12660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 ...............description).....
12680 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............."an"...............
126a0 20 22 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 ."a")..............description..
126c0 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ............kind..............(i
126e0 66 20 64 65 66 69 6e 65 64 20 28 63 6f 6e 63 61 74 20 22 20 22 20 64 65 66 69 6e 65 64 29 20 22 f.defined.(concat.".".defined)."
12700 22 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 6c 65 65 73 20 ")))))..(defun.helpful--callees.
12720 28 66 6f 72 6d 29 0a 20 20 22 47 69 76 65 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 46 4f 52 4d (form)..."Given.source.code.FORM
12740 2c 20 72 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
12760 69 6f 6e 73 20 63 61 6c 6c 65 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 65 78 70 61 6e 64 65 64 ions.called."...(let*.((expanded
12780 2d 66 6f 72 6d 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 2d 61 6c 6c 20 66 6f 72 6d 29 29 0a 20 20 -form.(macroexpand-all.form))...
127a0 20 20 20 20 20 20 20 3b 3b 20 46 69 6e 64 20 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 .......;;.Find.all.the.functions
127c0 20 63 61 6c 6c 65 64 20 61 66 74 65 72 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 0a 20 .called.after.macro.expansion...
127e0 20 20 20 20 20 20 20 20 28 61 6c 6c 2d 66 6e 73 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 ........(all-fns.(helpful--calle
12800 65 73 2d 31 20 65 78 70 61 6e 64 65 64 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b es-1.expanded-form))..........;;
12820 20 4f 6e 6c 79 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 .Only.consider.the.functions.tha
12840 74 20 77 65 72 65 20 69 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 63 6f 64 65 0a 20 20 20 20 t.were.in.the.original.code.....
12860 20 20 20 20 20 3b 3b 20 62 65 66 6f 72 65 20 6d 61 63 72 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 0a .....;;.before.macro.expansion..
12880 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 2d 73 79 6d 73 20 28 2d 66 69 6c 74 65 72 20 23 27 73 .........(form-syms.(-filter.#'s
128a0 79 6d 62 6f 6c 70 20 28 2d 66 6c 61 74 74 65 6e 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 ymbolp.(-flatten.form)))........
128c0 20 20 28 66 6f 72 6d 2d 66 6e 73 20 28 2d 2d 66 69 6c 74 65 72 20 28 6d 65 6d 71 20 69 74 20 66 ..(form-fns.(--filter.(memq.it.f
128e0 6f 72 6d 2d 73 79 6d 73 29 20 61 6c 6c 2d 66 6e 73 29 29 29 0a 20 20 20 20 28 2d 64 69 73 74 69 orm-syms).all-fns))).....(-disti
12900 6e 63 74 20 66 6f 72 6d 2d 66 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d nct.form-fns)))..(defun.helpful-
12920 2d 63 61 6c 6c 65 65 73 2d 31 20 28 66 6f 72 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 -callees-1.(form)..."Return.a.li
12940 73 74 20 6f 66 20 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 69 st.of.all.the.functions.called.i
12960 6e 20 46 4f 52 4d 2e 0a 41 73 73 75 6d 65 73 20 46 4f 52 4d 20 68 61 73 20 62 65 65 6e 20 6d 61 n.FORM..Assumes.FORM.has.been.ma
12980 63 72 6f 20 65 78 70 61 6e 64 65 64 2e 20 54 68 65 20 72 65 74 75 72 6e 65 64 20 6c 69 73 74 0a cro.expanded..The.returned.list.
129a0 6d 61 79 20 63 6f 6e 74 61 69 6e 20 64 75 70 6c 69 63 61 74 65 73 2e 22 0a 20 20 28 63 6f 6e 64 may.contain.duplicates."...(cond
129c0 0a 20 20 20 28 28 6e 6f 74 20 28 63 6f 6e 73 70 20 66 6f 72 6d 29 29 0a 20 20 20 20 6e 69 6c 29 ....((not.(consp.form)).....nil)
129e0 0a 20 20 20 3b 3b 20 53 65 65 20 60 28 65 6c 69 73 70 29 53 70 65 63 69 61 6c 20 46 6f 72 6d 73 ....;;.See.`(elisp)Special.Forms
12a00 27 2e 20 46 6f 72 20 74 68 65 73 65 20 73 70 65 63 69 61 6c 20 66 6f 72 6d 73 2c 20 77 65 20 72 '..For.these.special.forms,.we.r
12a20 65 63 75 72 73 65 0a 20 20 20 3b 3b 20 6a 75 73 74 20 6c 69 6b 65 20 66 75 6e 63 74 69 6f 6e 73 ecurse....;;.just.like.functions
12a40 20 62 75 74 20 69 67 6e 6f 72 65 20 74 68 65 20 63 61 72 2e 0a 20 20 20 28 28 6d 65 6d 71 20 28 .but.ignore.the.car.....((memq.(
12a60 63 61 72 20 66 6f 72 6d 29 20 27 28 61 6e 64 20 63 61 74 63 68 20 64 65 66 63 6f 6e 73 74 20 64 car.form).'(and.catch.defconst.d
12a80 65 66 76 61 72 20 69 66 20 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 efvar.if.interactive............
12aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 70 72 6f 67 31 20 70 72 6f 67 32 20 70 ................or.prog1.prog2.p
12ac0 72 6f 67 6e 20 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 rogn.save-current-buffer........
12ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 61 76 65 2d 72 65 73 74 72 69 63 ....................save-restric
12b00 74 69 6f 6e 20 73 65 74 71 20 73 65 74 71 2d 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 20 tion.setq.setq-default..........
12b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 2d 6d 6f 75 73 65 20 75 6e ..................track-mouse.un
12b40 77 69 6e 64 2d 70 72 6f 74 65 63 74 20 77 68 69 6c 65 29 29 0a 20 20 20 20 28 2d 66 6c 61 74 74 wind-protect.while)).....(-flatt
12b60 65 6e 0a 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 en......(-map.#'helpful--callees
12b80 2d 31 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 63 61 72 20 66 -1.(cdr.form)))).....((eq.(car.f
12ba0 6f 72 6d 29 20 27 63 6f 6e 64 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6c 61 75 73 65 73 20 orm).'cond).....(let*.((clauses.
12bc0 28 63 64 72 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 61 75 73 65 2d 66 (cdr.form))............(clause-f
12be0 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 61 63 68 20 63 6c 61 75 73 65 20 69 73 ns.............;;.Each.clause.is
12c00 20 61 20 6c 69 73 74 20 6f 66 20 66 6f 72 6d 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d .a.list.of.forms..............(-
12c20 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 -map..............(-map.#'helpfu
12c40 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 69 74 29 20 63 6c 61 75 73 65 73 29 29 29 0a 20 20 20 20 l--callees-1.it).clauses))).....
12c60 20 20 28 2d 66 6c 61 74 74 65 6e 20 63 6c 61 75 73 65 2d 66 6e 73 29 29 29 0a 0a 20 20 20 28 28 ..(-flatten.clause-fns))).....((
12c80 65 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 29 0a 20 eq.(car.form).'condition-case)..
12ca0 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 74 65 63 74 65 64 2d 66 6f 72 6d 20 28 6e 74 68 20 32 ...(let*.((protected-form.(nth.2
12cc0 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 65 63 74 65 64 2d 66 6f .form))............(protected-fo
12ce0 72 6d 2d 66 6e 73 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 70 72 6f 74 65 rm-fns.(helpful--callees-1.prote
12d00 63 74 65 64 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 61 6e 64 6c 65 72 73 cted-form))............(handlers
12d20 20 28 2d 64 72 6f 70 20 33 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 61 6e .(-drop.3.form))............(han
12d40 64 6c 65 72 2d 62 6f 64 69 65 73 20 28 2d 6d 61 70 20 23 27 63 64 72 20 68 61 6e 64 6c 65 72 73 dler-bodies.(-map.#'cdr.handlers
12d60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 61 6e 64 6c 65 72 2d 66 6e 73 0a 20 20 20 20 20 ))............(handler-fns......
12d80 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 2d 6d 61 70 .......(--map..............(-map
12da0 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 68 61 6e 64 6c 65 .#'helpful--callees-1.it).handle
12dc0 72 2d 62 6f 64 69 65 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 r-bodies))).......(append.......
12de0 20 70 72 6f 74 65 63 74 65 64 2d 66 6f 72 6d 2d 66 6e 73 0a 20 20 20 20 20 20 20 28 2d 66 6c 61 .protected-form-fns........(-fla
12e00 74 74 65 6e 20 68 61 6e 64 6c 65 72 2d 66 6e 73 29 29 29 29 0a 0a 20 20 20 3b 3b 20 43 61 6c 6c tten.handler-fns)))).....;;.Call
12e20 69 6e 67 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 61 20 77 65 6c 6c 20 6b 6e 6f 77 6e ing.a.function.with.a.well.known
12e40 20 68 69 67 68 65 72 20 6f 72 64 65 72 20 66 75 6e 63 74 69 6f 6e 2c 20 66 6f 72 0a 20 20 20 3b .higher.order.function,.for....;
12e60 3b 20 65 78 61 6d 70 6c 65 20 28 66 75 6e 63 61 6c 6c 20 27 66 6f 6f 20 31 20 32 29 2e 0a 20 20 ;.example.(funcall.'foo.1.2)....
12e80 20 28 28 61 6e 64 0a 20 20 20 20 20 28 6d 65 6d 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 28 66 .((and......(memq.(car.form).'(f
12ea0 75 6e 63 61 6c 6c 20 61 70 70 6c 79 20 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 0a uncall.apply.call-interactively.
12ec0 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 ................................
12ee0 6d 61 70 63 61 72 20 6d 61 70 63 20 6d 61 70 63 6f 6e 63 61 74 20 2d 6d 61 70 29 29 0a 20 20 20 mapcar.mapc.mapconcat.-map))....
12f00 20 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 28 6e 74 68 20 31 20 66 6f 72 6d 29 29 20 27 71 ..(eq.(car-safe.(nth.1.form)).'q
12f20 75 6f 74 65 29 29 0a 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 28 63 61 64 72 20 28 6e 74 68 uote)).....(cons......(cadr.(nth
12f40 20 31 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 0a 20 20 20 20 20 20 28 .1.form))......(-flatten.......(
12f60 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 63 64 72 20 66 -map.#'helpful--callees-1.(cdr.f
12f80 6f 72 6d 29 29 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 66 75 orm))))).....((eq.(car.form).'fu
12fa0 6e 63 74 69 6f 6e 29 0a 20 20 20 20 28 6c 65 74 20 28 28 61 72 67 20 28 6e 74 68 20 31 20 66 6f nction).....(let.((arg.(nth.1.fo
12fc0 72 6d 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 61 72 67 29 0a 20 20 rm))).......(if.(symbolp.arg)...
12fe0 20 20 20 20 20 20 20 20 3b 3b 20 23 27 66 6f 6f 2c 20 77 68 69 63 68 20 69 73 20 74 68 65 20 73 ........;;.#'foo,.which.is.the.s
13000 61 6d 65 20 61 73 20 28 66 75 6e 63 74 69 6f 6e 20 66 6f 6f 29 2c 20 69 73 20 61 20 66 75 6e 63 ame.as.(function.foo),.is.a.func
13020 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 tion...........;;.reference.....
13040 20 20 20 20 20 20 20 28 6c 69 73 74 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e .......(list.arg).........;;.Han
13060 64 6c 65 20 28 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 2e 2e 2e 29 29 2e 0a 20 20 20 dle.(function.(lambda....)).....
13080 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 61 72 67 29 29 29 29 .....(helpful--callees-1.arg))))
130a0 0a 0a 20 20 20 28 28 65 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 6c 61 6d 62 64 61 29 0a 20 20 .....((eq.(car.form).'lambda)...
130c0 20 20 3b 3b 20 4f 6e 6c 79 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 62 6f 64 79 2c 20 6e 6f 74 ..;;.Only.consider.the.body,.not
130e0 20 74 68 65 20 70 61 72 61 6d 20 6c 69 73 74 2e 0a 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 28 .the.param.list......(-flatten.(
13100 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 70 -map.#'helpful--callees-1.(-drop
13120 20 32 20 66 6f 72 6d 29 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 63 61 72 20 66 6f 72 6d 29 20 .2.form)))).....((eq.(car.form).
13140 27 63 6c 6f 73 75 72 65 29 0a 20 20 20 20 3b 3b 20 53 61 6d 65 20 61 73 20 6c 61 6d 62 64 61 2c 'closure).....;;.Same.as.lambda,
13160 20 62 75 74 20 68 61 73 20 61 6e 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 .but.has.an.additional.argument.
13180 6f 66 20 74 68 65 0a 20 20 20 20 3b 3b 20 63 6c 6f 73 65 64 2d 6f 76 65 72 20 76 61 72 69 61 62 of.the.....;;.closed-over.variab
131a0 6c 65 73 2e 0a 20 20 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 les......(-flatten.(-map.#'helpf
131c0 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 28 2d 64 72 6f 70 20 33 20 66 6f 72 6d 29 29 29 29 0a ul--callees-1.(-drop.3.form)))).
131e0 0a 20 20 20 28 28 6d 65 6d 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 28 6c 65 74 20 6c 65 74 2a ....((memq.(car.form).'(let.let*
13200 29 29 0a 20 20 20 20 3b 3b 20 45 78 74 72 61 63 74 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 )).....;;.Extract.function.calls
13220 20 75 73 65 64 20 74 6f 20 73 65 74 20 74 68 65 20 6c 65 74 2d 62 6f 75 6e 64 20 76 61 72 69 61 .used.to.set.the.let-bound.varia
13240 62 6c 65 73 2e 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 76 61 72 2d 76 61 6c 73 20 28 2d 73 65 63 bles......(let*.((var-vals.(-sec
13260 6f 6e 64 2d 69 74 65 6d 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 76 61 72 2d ond-item.form))............(var-
13280 76 61 6c 2d 63 61 6c 6c 65 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 val-callees.............(--map..
132a0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 69 74 29 0a 20 20 20 20 20 ............(if.(consp.it)......
132c0 20 20 20 20 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 ............(-map.#'helpful--cal
132e0 6c 65 65 73 2d 31 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 lees-1.it)................nil)..
13300 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 2d 76 61 6c 73 29 29 29 0a 20 20 20 20 20 20 28 61 ............var-vals))).......(a
13320 70 70 65 6e 64 0a 20 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 76 61 72 2d 76 61 6c 2d 63 ppend........(-flatten.var-val-c
13340 61 6c 6c 65 65 73 29 0a 20 20 20 20 20 20 20 3b 3b 20 46 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 allees)........;;.Function.calls
13360 20 69 6e 20 74 68 65 20 6c 65 74 20 62 6f 64 79 2e 0a 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 .in.the.let.body.........(-map.#
13380 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 70 20 32 20 66 6f 72 'helpful--callees-1.(-drop.2.for
133a0 6d 29 29 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 71 75 6f 74 m))))).....((eq.(car.form).'quot
133c0 65 29 0a 20 20 20 20 6e 69 6c 29 0a 20 20 20 28 74 0a 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 e).....nil)....(t.....(cons.....
133e0 20 28 63 61 72 20 66 6f 72 6d 29 0a 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 0a 20 20 20 20 20 .(car.form)......(-flatten......
13400 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 20 28 63 64 72 .(-map.#'helpful--callees-1.(cdr
13420 20 66 6f 72 6d 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 65 6e .form)))))))..(defun.helpful--en
13440 73 75 72 65 2d 6c 6f 61 64 65 64 20 28 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 65 20 73 79 6d sure-loaded.()..."Ensure.the.sym
13460 62 6f 6c 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 bol.associated.with.the.current.
13480 62 75 66 66 65 72 20 68 61 73 20 62 65 65 6e 20 6c 6f 61 64 65 64 2e 22 0a 20 20 28 77 68 65 6e buffer.has.been.loaded."...(when
134a0 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.......
134c0 20 20 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 29 0a 20 .......(symbolp.helpful--sym))..
134e0 20 20 20 28 6c 65 74 20 28 28 66 6e 2d 6f 62 6a 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f ...(let.((fn-obj.(symbol-functio
13500 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 n.helpful--sym))).......(when.(a
13520 75 74 6f 6c 6f 61 64 70 20 66 6e 2d 6f 62 6a 29 0a 20 20 20 20 20 20 20 20 28 61 75 74 6f 6c 6f utoloadp.fn-obj).........(autolo
13540 61 64 2d 64 6f 2d 6c 6f 61 64 20 66 6e 2d 6f 62 6a 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 ad-do-load.fn-obj)))))..(defun.h
13560 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d 70 20 28 73 79 6d 62 6f 6c 20 76 61 6c 75 65 29 0a 20 20 elpful--hook-p.(symbol.value)...
13580 22 44 6f 65 73 20 53 59 4d 42 4f 4c 20 6c 6f 6f 6b 20 6c 69 6b 65 20 61 20 68 6f 6f 6b 3f 22 0a "Does.SYMBOL.look.like.a.hook?".
135a0 20 20 28 61 6e 64 0a 20 20 20 28 6f 72 0a 20 20 20 20 28 73 2d 65 6e 64 73 2d 77 69 74 68 2d 70 ..(and....(or.....(s-ends-with-p
135c0 20 22 2d 68 6f 6f 6b 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 29 0a 20 ."-hook".(symbol-name.symbol))..
135e0 20 20 20 3b 3b 20 45 2e 67 2e 20 60 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f ...;;.E.g..`after-change-functio
13600 6e 73 27 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 20 77 69 74 68 0a 20 20 20 20 ns',.which.can.be.used.with.....
13620 3b 3b 20 60 61 64 64 2d 68 6f 6f 6b 27 2e 0a 20 20 20 20 28 73 2d 65 6e 64 73 2d 77 69 74 68 2d ;;.`add-hook'......(s-ends-with-
13640 70 20 22 2d 66 75 6e 63 74 69 6f 6e 73 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 62 p."-functions".(symbol-name.symb
13660 6f 6c 29 29 29 0a 20 20 20 28 63 6f 6e 73 70 20 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 75 6e ol)))....(consp.value)))..(defun
13680 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 73 79 6d 20 76 61 6c 75 .helpful--format-value.(sym.valu
136a0 65 29 0a 20 20 22 46 6f 72 6d 61 74 20 56 41 4c 55 45 20 61 73 20 61 20 73 74 72 69 6e 67 2e 22 e)..."Format.VALUE.as.a.string."
136c0 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 ...(cond....(helpful--view-liter
136e0 61 6c 0a 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 6c 69 67 68 al.....(helpful--syntax-highligh
13700 74 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 76 61 6c 75 65 29 29 t.(helpful--pretty-print.value))
13720 29 0a 20 20 20 3b 3b 20 41 6c 6c 6f 77 20 73 74 72 69 6e 67 73 20 74 6f 20 62 65 20 76 69 65 77 )....;;.Allow.strings.to.be.view
13740 65 64 20 77 69 74 68 20 70 72 6f 70 65 72 74 69 65 73 20 72 65 6e 64 65 72 65 64 20 69 6e 0a 20 ed.with.properties.rendered.in..
13760 20 20 3b 3b 20 45 6d 61 63 73 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 73 20 61 20 6c 69 74 ..;;.Emacs,.rather.than.as.a.lit
13780 65 72 61 6c 2e 0a 20 20 20 28 28 73 74 72 69 6e 67 70 20 76 61 6c 75 65 29 0a 20 20 20 20 76 61 eral.....((stringp.value).....va
137a0 6c 75 65 29 0a 20 20 20 3b 3b 20 41 6c 6c 6f 77 20 6b 65 79 6d 61 70 73 20 74 6f 20 62 65 20 76 lue)....;;.Allow.keymaps.to.be.v
137c0 69 65 77 65 64 20 77 69 74 68 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 73 68 6f 77 6e 20 61 6e 64 iewed.with.keybindings.shown.and
137e0 0a 20 20 20 3b 3b 20 6c 69 6e 6b 73 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 62 6f 75 ....;;.links.to.the.commands.bou
13800 6e 64 2e 0a 20 20 20 28 28 6b 65 79 6d 61 70 70 20 76 61 6c 75 65 29 0a 20 20 20 20 28 68 65 6c nd.....((keymapp.value).....(hel
13820 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6b 65 79 6d 61 70 20 76 61 6c 75 65 29 29 0a 20 20 20 28 pful--format-keymap.value))....(
13840 28 68 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d 70 20 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 (helpful--hook-p.sym.value).....
13860 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 68 6f 6f 6b 20 76 61 6c 75 65 29 29 0a 20 20 (helpful--format-hook.value))...
13880 20 28 74 0a 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 20 76 .(t.....(helpful--pretty-print.v
138a0 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 72 69 67 69 6e alue))))..(defun.helpful--origin
138c0 61 6c 2d 76 61 6c 75 65 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6f 72 69 al-value.(sym)..."Return.the.ori
138e0 67 69 6e 61 6c 20 76 61 6c 75 65 20 66 6f 72 20 53 59 4d 2c 20 69 66 20 61 6e 79 2e 0a 0a 49 66 ginal.value.for.SYM,.if.any...If
13900 20 53 59 4d 20 68 61 73 20 61 6e 20 6f 72 69 67 69 6e 61 6c 20 76 61 6c 75 65 2c 20 72 65 74 75 .SYM.has.an.original.value,.retu
13920 72 6e 20 69 74 20 69 6e 20 61 20 6c 69 73 74 2e 20 52 65 74 75 72 6e 20 6e 69 6c 0a 6f 74 68 65 rn.it.in.a.list..Return.nil.othe
13940 72 77 69 73 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6f 72 69 67 2d 76 61 6c 2d 65 78 70 72 20 rwise."...(let*.((orig-val-expr.
13960 28 67 65 74 20 73 79 6d 20 27 73 74 61 6e 64 61 72 64 2d 76 61 6c 75 65 29 29 29 0a 20 20 20 20 (get.sym.'standard-value))).....
13980 28 77 68 65 6e 20 28 63 6f 6e 73 70 20 6f 72 69 67 2d 76 61 6c 2d 65 78 70 72 29 0a 20 20 20 20 (when.(consp.orig-val-expr).....
139a0 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 ..(ignore-errors.........(list..
139c0 20 20 20 20 20 20 20 20 28 65 76 61 6c 20 28 63 61 72 20 6f 72 69 67 2d 76 61 6c 2d 65 78 70 72 ........(eval.(car.orig-val-expr
139e0 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 6f 72 69 67 69 6e 61 )))))))..(defun.helpful--origina
13a00 6c 2d 76 61 6c 75 65 2d 64 69 66 66 65 72 73 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 l-value-differs-p.(sym)..."Retur
13a20 6e 20 74 20 69 66 20 53 59 4d 20 68 61 73 20 61 6e 20 6f 72 69 67 69 6e 61 6c 20 76 61 6c 75 65 n.t.if.SYM.has.an.original.value
13a40 2c 20 61 6e 64 20 69 74 73 20 63 75 72 72 65 6e 74 0a 76 61 6c 75 65 20 69 73 20 64 69 66 66 65 ,.and.its.current.value.is.diffe
13a60 72 65 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 72 69 67 2d 76 61 6c 2d 6c 69 73 74 20 28 68 rent."...(let.((orig-val-list.(h
13a80 65 6c 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 0a 20 20 elpful--original-value.sym)))...
13aa0 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 6f 72 69 67 2d 76 61 6c 2d 6c 69 73 74 29 0a 20 20 20 ..(and.(consp.orig-val-list)....
13ac0 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 61 72 20 6f 72 69 67 2d 76 61 6c 2d 6c 69 73 ......(not.(eq.(car.orig-val-lis
13ae0 74 29 0a 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 76 61 6c t)...................(symbol-val
13b00 75 65 20 73 79 6d 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 75 70 64 ue.sym))))))..(defun.helpful-upd
13b20 61 74 65 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 2a 48 65 ate.()..."Update.the.current.*He
13b40 6c 70 66 75 6c 2a 20 62 75 66 66 65 72 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 0a 73 74 61 74 lpful*.buffer.to.the.latest.stat
13b60 65 20 6f 66 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 69 6e 74 e.of.the.current.symbol."...(int
13b80 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 6e 6f 74 20 28 6e 75 6c eractive)...(cl-assert.(not.(nul
13ba0 6c 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 62 75 66 l.helpful--sym)))...(unless.(buf
13bc0 66 65 72 2d 6c 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 fer-live-p.helpful--associated-b
13be0 75 66 66 65 72 29 0a 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 uffer).....(setq.helpful--associ
13c00 61 74 65 64 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 65 6e ated-buffer.nil))...(helpful--en
13c20 73 75 72 65 2d 6c 6f 61 64 65 64 29 0a 20 20 28 2d 6c 65 74 2a 20 28 28 76 61 6c 0a 20 20 20 20 sure-loaded)...(-let*.((val.....
13c40 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 61 74 20 74 68 65 20 76 61 6c 75 65 20 62 65 66 6f .......;;.Look.at.the.value.befo
13c60 72 65 20 73 65 74 74 69 6e 67 20 60 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 27 2c 20 re.setting.`inhibit-read-only',.
13c80 73 6f 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 73 65 72 73 20 63 61 6e 20 73 65 65 20 74 so............;;.users.can.see.t
13ca0 68 65 20 63 6f 72 72 65 63 74 20 76 61 6c 75 65 20 6f 66 20 74 68 61 74 20 76 61 72 69 61 62 6c he.correct.value.of.that.variabl
13cc0 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 68 65 6c 70 66 75 6c 2d 2d 63 e.............(unless.helpful--c
13ce0 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d allable-p..............(helpful-
13d00 2d 73 79 6d 2d 76 61 6c 75 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d -sym-value.helpful--sym.helpful-
13d20 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 -associated-buffer)))...........
13d40 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 (inhibit-read-only.t)...........
13d60 28 73 74 61 72 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 (start-line.(line-number-at-pos)
13d80 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 63 6f 6c 75 6d 6e 20 28 63 75 72 72 65 )...........(start-column.(curre
13da0 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6d 69 74 69 76 65 nt-column))...........(primitive
13dc0 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 68 65 6c 70 66 75 6c -p.(helpful--primitive-p.helpful
13de0 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 20 20 20 20 --sym.helpful--callable-p)).....
13e00 20 20 20 20 20 20 28 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 ......(canonical-sym.(helpful--c
13e20 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 62 6f 6c 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c anonical-symbol.helpful--sym.hel
13e40 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 6f pful--callable-p))...........(lo
13e60 6f 6b 2d 66 6f 72 2d 73 72 63 20 28 6f 72 20 28 6e 6f 74 20 70 72 69 6d 69 74 69 76 65 2d 70 29 ok-for-src.(or.(not.primitive-p)
13e80 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 66 69 6e .............................fin
13ea0 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 6f 72 79 29 29 0a d-function-C-source-directory)).
13ec0 20 20 20 20 20 20 20 20 20 20 28 28 62 75 66 20 70 6f 73 20 6f 70 65 6e 65 64 29 0a 20 20 20 20 ..........((buf.pos.opened).....
13ee0 20 20 20 20 20 20 20 28 69 66 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 72 63 0a 20 20 20 20 20 20 20 20 .......(if.look-for-src.........
13f00 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 64 65 66 69 6e 69 74 69 6f 6e 20 68 65 6c 70 .......(helpful--definition.help
13f20 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 0a 20 20 ful--sym.helpful--callable-p)...
13f40 20 20 20 20 20 20 20 20 20 20 20 27 28 6e 69 6c 20 6e 69 6c 20 6e 69 6c 29 29 29 0a 20 20 20 20 ...........'(nil.nil.nil))).....
13f60 20 20 20 20 20 20 28 73 6f 75 72 63 65 20 28 77 68 65 6e 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 72 63 ......(source.(when.look-for-src
13f80 0a 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 73 .....................(helpful--s
13fa0 6f 75 72 63 65 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 ource.helpful--sym.helpful--call
13fc0 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6f 75 able-p.buf.pos)))...........(sou
13fe0 72 63 65 2d 70 61 74 68 20 28 77 68 65 6e 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 rce-path.(when.buf..............
14000 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 ............(buffer-file-name.bu
14020 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 66 65 72 65 6e 63 65 73 20 28 68 65 6c 70 f)))...........(references.(help
14040 66 75 6c 2d 2d 63 61 6c 63 75 6c 61 74 65 2d 72 65 66 65 72 65 6e 63 65 73 0a 20 20 20 20 20 20 ful--calculate-references.......
14060 20 20 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 .................helpful--sym.he
14080 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 20 20 20 20 20 lpful--callable-p...............
140a0 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 .........source-path))..........
140c0 20 28 61 6c 69 61 73 65 73 20 28 68 65 6c 70 66 75 6c 2d 2d 61 6c 69 61 73 65 73 20 68 65 6c 70 .(aliases.(helpful--aliases.help
140e0 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 29 0a ful--sym.helpful--callable-p))).
14100 0a 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 0a 20 20 20 20 28 69 6e 73 65 72 74 .....(erase-buffer)......(insert
14120 20 28 68 65 6c 70 66 75 6c 2d 2d 73 75 6d 6d 61 72 79 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 .(helpful--summary.helpful--sym.
14140 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 0a 0a 20 helpful--callable-p.buf.pos))...
14160 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f ...(when.(helpful--obsolete-info
14180 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 65 2d .helpful--sym.helpful--callable-
141a0 70 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 0a 20 p).......(insert........"\n\n"..
141c0 20 20 20 20 20 20 28 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 ......(helpful--format-obsolete-
141e0 69 6e 66 6f 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 info.helpful--sym.helpful--calla
14200 62 6c 65 2d 70 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 68 65 6c 70 66 75 6c ble-p)))......(when.(and.helpful
14220 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 28 6e 6f 74 --callable-p................(not
14240 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d 6d 61 63 72 6f 2d 70 20 68 65 6c 70 66 75 6c 2d 2d .(helpful--kbd-macro-p.helpful--
14260 73 79 6d 29 29 29 0a 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 sym))).......(helpful--insert-se
14280 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 74 0a 20 20 20 20 20 ction-break).......(insert......
142a0 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 53 69 67 6e 61 74 75 72 65 22 29 ..(helpful--heading."Signature")
142c0 0a 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 6c 69 67 ........(helpful--syntax-highlig
142e0 68 74 20 28 68 65 6c 70 66 75 6c 2d 2d 73 69 67 6e 61 74 75 72 65 20 68 65 6c 70 66 75 6c 2d 2d ht.(helpful--signature.helpful--
14300 73 79 6d 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 68 65 6c 70 66 75 6c 2d sym))))......(when.(not.helpful-
14320 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 -callable-p).......(helpful--ins
14340 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 6c 65 74 2a 20 28 ert-section-break).......(let*.(
14360 28 73 79 6d 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 20 20 20 (sym.helpful--sym)..............
14380 28 6d 75 6c 74 69 70 6c 65 2d 76 69 65 77 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (multiple-views-p...............
143a0 28 6f 72 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 (or.(stringp.val)...............
143c0 20 20 20 20 28 6b 65 79 6d 61 70 70 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(keymapp.val)...............
143e0 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d 70 20 73 79 6d 20 76 61 6c 29 29 29 29 ....(helpful--hook-p.sym.val))))
14400 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 69 72 73 74 2d 64 69 .........(when.helpful--first-di
14420 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 76 61 6c splay...........(if.(stringp.val
14440 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 6f 72 20 73 74 72 69 6e 67 73 2c 20 )...............;;.For.strings,.
14460 69 74 27 73 20 6d 6f 72 65 20 69 6e 74 75 69 74 69 76 65 20 74 6f 20 64 69 73 70 6c 61 79 20 74 it's.more.intuitive.to.display.t
14480 68 65 6d 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 69 74 65 72 61 6c 73 hem.as...............;;.literals
144a0 2c 20 73 6f 20 22 31 22 20 61 6e 64 20 31 20 61 72 65 20 64 69 73 74 69 6e 63 74 2e 0a 20 20 20 ,.so."1".and.1.are.distinct.....
144c0 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 6c ...........(setq.helpful--view-l
144e0 69 74 65 72 61 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 6f 72 20 65 76 65 iteral.t).............;;.For.eve
14500 72 79 74 68 69 6e 67 20 65 6c 73 65 2c 20 70 72 65 66 65 72 20 74 68 65 20 70 72 65 74 74 79 20 rything.else,.prefer.the.pretty.
14520 76 69 65 77 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 view.if.available..............(
14540 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 20 6e 69 6c 29 29 setq.helpful--view-literal.nil))
14560 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 6c 70 ).........(insert..........(help
14580 66 75 6c 2d 2d 68 65 61 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 ful--heading...........(cond....
145a0 20 20 20 20 20 20 20 20 3b 3b 20 42 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 ........;;.Buffer-local.variable
145c0 20 61 6e 64 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 20 76 61 6c 75 65 20 .and.we're.looking.at.the.value.
145e0 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 20 73 70 65 63 69 66 69 63 20 62 75 66 66 in............;;.a.specific.buff
14600 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 er.............((and............
14620 20 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 0a 20 20 20 ..helpful--associated-buffer....
14640 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 2d 70 20 73 79 6d 20 ..........(local-variable-p.sym.
14660 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 20 20 helpful--associated-buffer))....
14680 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 56 61 6c 75 65 20 69 6e 20 25 73 22 0a 20 .........(format."Value.in.%s"..
146a0 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 62 75 74 ...................(helpful--but
146c0 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 66 6f 72 6d 61 74 ton......................(format
146e0 20 22 23 3c 62 75 66 66 65 72 20 25 73 3e 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 68 65 6c ."#<buffer.%s>".(buffer-name.hel
14700 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 20 20 20 20 20 pful--associated-buffer)).......
14720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 ...............'helpful-buffer-b
14740 75 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 27 62 75 66 66 utton......................'buff
14760 65 72 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 0a 20 20 er.helpful--associated-buffer...
14780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 6f 73 69 74 69 6f 6e 20 70 6f 73 ...................'position.pos
147a0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 )))............;;.Buffer-local.v
147c0 61 72 69 61 62 6c 65 20 62 75 74 20 64 65 66 61 75 6c 74 2f 67 6c 6f 62 61 6c 20 76 61 6c 75 65 ariable.but.default/global.value
147e0 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 2d 69 66 .............((local-variable-if
14800 2d 73 65 74 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 47 6c 6f 62 61 6c 20 -set-p.sym)............."Global.
14820 56 61 6c 75 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 76 61 72 69 61 Value")............;;.This.varia
14840 62 6c 65 20 69 73 20 6e 6f 74 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2e 0a 20 20 20 20 20 20 20 ble.is.not.buffer-local.........
14860 20 20 20 20 28 74 20 22 56 61 6c 75 65 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 ....(t."Value")))..........(help
14880 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 73 79 6d 20 76 61 6c 29 0a 20 20 20 20 20 ful--format-value.sym.val)......
148a0 20 20 20 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 ...."\n\n").........(when.(helpf
148c0 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 73 79 6d ul--original-value-differs-p.sym
148e0 29 0a 20 20 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 20 20 28 )...........(insert............(
14900 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 4f 72 69 67 69 6e 61 6c 20 56 61 6c 75 65 helpful--heading."Original.Value
14920 22 29 0a 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 76 ")............(helpful--format-v
14940 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 alue.............sym............
14960 20 28 63 61 72 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 20 73 .(car.(helpful--original-value.s
14980 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 20 20 ym)))............"\n\n")).......
149a0 20 20 28 77 68 65 6e 20 6d 75 6c 74 69 70 6c 65 2d 76 69 65 77 73 2d 70 0a 20 20 20 20 20 20 20 ..(when.multiple-views-p........
149c0 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 74 6f 67 67 6c 65 ...(insert.(helpful--make-toggle
149e0 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 6f 6e 29 20 22 20 22 29 29 0a 0a 20 20 20 20 20 20 20 20 -literal-button)."."))..........
14a00 28 77 68 65 6e 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 (when.(local-variable-if-set-p.s
14a20 79 6d 29 0a 20 20 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 20 ym)...........(insert...........
14a40 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 42 .(helpful--button............."B
14a60 75 66 66 65 72 20 76 61 6c 75 65 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 uffer.values".............'helpf
14a80 75 6c 2d 61 73 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 20 20 ul-associated-buffer-button.....
14aa0 20 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 20 20 20 20 20 ........'symbol.sym.............
14ac0 27 70 72 6f 6d 70 74 2d 70 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 'prompt-p.t)............".".....
14ae0 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 20 .......(helpful--button.........
14b00 20 20 20 20 22 47 6c 6f 62 61 6c 20 76 61 6c 75 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 ...."Global.value".............'
14b20 68 65 6c 70 66 75 6c 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e helpful-associated-buffer-button
14b40 0a 20 20 20 20 20 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 .............'symbol.sym........
14b60 20 20 20 20 20 27 70 72 6f 6d 70 74 2d 70 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 .....'prompt-p.nil)............"
14b80 20 22 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 28 68 65 6c 70 66 75 .")).........(when.(memq.(helpfu
14ba0 6c 2d 2d 73 79 6d 2d 76 61 6c 75 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 l--sym-value.helpful--sym.helpfu
14bc0 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 20 27 28 6e 69 6c 20 74 29 29 0a l--associated-buffer).'(nil.t)).
14be0 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 6d 61 6b 65 ..........(insert.(helpful--make
14c00 2d 74 6f 67 67 6c 65 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 -toggle-button.helpful--sym.help
14c20 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 20 22 20 22 29 29 0a 20 20 ful--associated-buffer)."."))...
14c40 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 73 65 74 ......(insert.(helpful--make-set
14c60 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 61 73 -button.helpful--sym.helpful--as
14c80 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 28 77 68 65 6e 20 sociated-buffer)).........(when.
14ca0 28 63 75 73 74 6f 6d 2d 76 61 72 69 61 62 6c 65 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 (custom-variable-p.helpful--sym)
14cc0 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 20 28 68 65 6c 70 66 75 6c 2d ...........(insert.".".(helpful-
14ce0 2d 6d 61 6b 65 2d 63 75 73 74 6f 6d 69 7a 65 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d -make-customize-button.helpful--
14d00 73 79 6d 29 29 29 29 29 0a 0a 20 20 20 20 28 6c 65 74 20 28 28 64 6f 63 73 74 72 69 6e 67 20 28 sym)))))......(let.((docstring.(
14d20 68 65 6c 70 66 75 6c 2d 2d 64 6f 63 73 74 72 69 6e 67 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 helpful--docstring.helpful--sym.
14d40 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 helpful--callable-p))...........
14d60 28 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 20 28 75 6e 6c 65 73 73 20 68 65 6c 70 66 75 6c 2d 2d 63 (version-info.(unless.helpful--c
14d80 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 20 20 20 20 20 20 allable-p.......................
14da0 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 20 68 65 6c 70 66 ....(helpful--version-info.helpf
14dc0 75 6c 2d 2d 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 64 6f 63 73 ul--sym)))).......(when.(or.docs
14de0 74 72 69 6e 67 20 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 28 68 65 6c tring.version-info).........(hel
14e00 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 20 20 20 20 pful--insert-section-break).....
14e20 20 20 20 20 28 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 68 ....(insert..........(helpful--h
14e40 65 61 64 69 6e 67 20 22 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 eading."Documentation"))........
14e60 20 28 77 68 65 6e 20 64 6f 63 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 .(when.docstring...........(inse
14e80 72 74 20 28 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 64 6f rt.(helpful--format-docstring.do
14ea0 63 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 76 65 72 73 69 6f 6e cstring))).........(when.version
14ec0 2d 69 6e 66 6f 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 20 28 -info...........(insert."\n\n".(
14ee0 73 2d 77 6f 72 64 2d 77 72 61 70 20 37 30 20 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 29 29 29 0a 20 s-word-wrap.70.version-info)))..
14f00 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c 70 66 .......(when.(and.(symbolp.helpf
14f20 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 20 20 20 68 65 6c 70 ul--sym)....................help
14f40 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 20 20 20 20 20 20 20 ful--callable-p.................
14f60 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 61 73 2d 73 68 6f 72 74 64 6f 63 2d 70 20 68 65 6c 70 ...(helpful--has-shortdoc-p.help
14f80 66 75 6c 2d 2d 73 79 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 ful--sym))...........(insert."\n
14fa0 5c 6e 22 29 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 2d \n")...........(insert.(helpful-
14fc0 2d 6d 61 6b 65 2d 73 68 6f 72 74 64 6f 63 2d 73 65 6e 74 65 6e 63 65 20 68 65 6c 70 66 75 6c 2d -make-shortdoc-sentence.helpful-
14fe0 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 79 6d 62 -sym))).........(when.(and.(symb
15000 6f 6c 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 2d 6d olp.helpful--sym).(helpful--in-m
15020 61 6e 75 61 6c 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 20 anual-p.helpful--sym))..........
15040 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 65 .(insert."\n\n")...........(inse
15060 72 74 20 28 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 rt.(helpful--make-manual-button.
15080 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 53 68 6f 77 20 6b helpful--sym)))))......;;.Show.k
150a0 65 79 62 69 6e 64 69 6e 67 73 2e 0a 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 61 6c 6c 6f 77 20 75 eybindings......;;.TODO:.allow.u
150c0 73 65 72 73 20 74 6f 20 63 6f 6e 76 65 6e 69 65 6e 74 6c 79 20 61 64 64 20 61 6e 64 20 72 65 6d sers.to.conveniently.add.and.rem
150e0 6f 76 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 63 6f 6d 6d ove.keybindings......(when.(comm
15100 61 6e 64 70 20 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 andp.helpful--sym).......(helpfu
15120 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 28 l--insert-section-break).......(
15140 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 20 insert........(helpful--heading.
15160 22 4b 65 79 20 42 69 6e 64 69 6e 67 73 22 29 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d "Key.Bindings")........(helpful-
15180 2d 66 6f 72 6d 61 74 2d 6b 65 79 73 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 61 6c 69 61 73 65 -format-keys.helpful--sym.aliase
151a0 73 29 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 s)))......(helpful--insert-secti
151c0 6f 6e 2d 62 72 65 61 6b 29 0a 0a 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 28 68 65 6c on-break)......(insert......(hel
151e0 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 52 65 66 65 72 65 6e 63 65 73 22 29 0a 20 20 20 20 pful--heading."References").....
15200 20 28 6c 65 74 20 28 28 73 72 63 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 .(let.((src-button.............(
15220 77 68 65 6e 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 when.source-path...............(
15240 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 20 20 20 20 helpful--navigate-button........
15260 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 79 20 ........(file-name-nondirectory.
15280 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 73 6f 75 72 source-path)................sour
152a0 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 70 6f 73 0a 20 ce-path................(or.pos..
152c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 29 29 29 29 29 0a 20 20 20 20 20 20 20 ..................0)))))........
152e0 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 73 6f 75 72 63 65 2d 70 61 74 68 20 (cond.........((and.source-path.
15300 72 65 66 65 72 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 52 65 references)..........(format."Re
15320 66 65 72 65 6e 63 65 73 20 69 6e 20 25 73 3a 5c 6e 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 ferences.in.%s:\n%s"............
15340 20 20 20 20 20 20 73 72 63 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......src-button................
15360 20 20 28 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 ..(helpful--format-position-head
15380 73 20 72 65 66 65 72 65 6e 63 65 73 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 29 0a 20 20 20 20 s.references.source-path))).....
153a0 20 20 20 20 28 28 61 6e 64 20 73 6f 75 72 63 65 2d 70 61 74 68 20 70 72 69 6d 69 74 69 76 65 2d ....((and.source-path.primitive-
153c0 70 29 0a 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 22 46 p)..........(format..........."F
153e0 69 6e 64 69 6e 67 20 72 65 66 65 72 65 6e 63 65 73 20 69 6e 20 61 20 2e 25 73 20 66 69 6c 65 20 inding.references.in.a..%s.file.
15400 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 2e 22 0a 20 20 20 20 20 20 20 20 20 20 28 66 2d is.not.supported."...........(f-
15420 65 78 74 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 6f 75 72 ext.source-path))).........(sour
15440 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 69 73 20 ce-path..........(format."%s.is.
15460 75 6e 75 73 65 64 20 69 6e 20 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 unused.in.%s."..................
15480 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 72 helpful--sym..................sr
154a0 63 2d 62 75 74 74 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 70 72 69 6d 69 74 69 c-button)).........((and.primiti
154c0 76 65 2d 70 20 28 6e 75 6c 6c 20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 ve-p.(null.find-function-C-sourc
154e0 65 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 22 43 20 63 6f 64 65 20 69 e-directory)).........."C.code.i
15500 73 20 6e 6f 74 20 79 65 74 20 6c 6f 61 64 65 64 2e 22 29 0a 20 20 20 20 20 20 20 20 28 74 0a 20 s.not.yet.loaded.").........(t..
15520 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 73 6f 75 72 63 65 20 66 ........"Could.not.find.source.f
15540 69 6c 65 2e 22 29 29 29 0a 20 20 20 20 20 22 5c 6e 5c 6e 22 0a 20 20 20 20 20 28 68 65 6c 70 66 ile.")))......"\n\n"......(helpf
15560 75 6c 2d 2d 6d 61 6b 65 2d 72 65 66 65 72 65 6e 63 65 73 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 ul--make-references-button.helpf
15580 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 0a 20 ul--sym.helpful--callable-p))...
155a0 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c ...(when.(and............helpful
155c0 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 --callable-p............(symbolp
155e0 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 20 73 6f 75 72 63 65 .helpful--sym)............source
15600 0a 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 70 29 29 0a 20 ............(not.primitive-p))..
15620 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 28 .....(insert........"."........(
15640 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 61 6c 6c 65 65 73 2d 62 75 74 74 6f 6e 20 68 65 6c helpful--make-callees-button.hel
15660 70 66 75 6c 2d 2d 73 79 6d 20 73 6f 75 72 63 65 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 pful--sym.source)))......(when.(
15680 68 65 6c 70 66 75 6c 2d 2d 61 64 76 69 73 65 64 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 helpful--advised-p.helpful--sym)
156a0 0a 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 .......(helpful--insert-section-
156c0 62 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 break).......(insert........(hel
156e0 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 41 64 76 69 63 65 22 29 0a 20 20 20 20 20 20 20 28 pful--heading."Advice")........(
15700 66 6f 72 6d 61 74 20 22 54 68 69 73 20 25 73 20 69 73 20 61 64 76 69 73 65 64 2e 22 0a 20 20 20 format."This.%s.is.advised."....
15720 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 61 63 72 6f 70 20 68 65 6c 70 66 75 6c 2d ............(if.(macrop.helpful-
15740 2d 73 79 6d 29 20 22 6d 61 63 72 6f 22 20 22 66 75 6e 63 74 69 6f 6e 22 29 29 29 29 0a 0a 20 20 -sym)."macro"."function"))))....
15760 20 20 28 6c 65 74 20 28 28 63 61 6e 2d 65 64 65 62 75 67 0a 20 20 20 20 20 20 20 20 20 20 20 28 ..(let.((can-edebug............(
15780 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 2d 65 64 65 62 75 67 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 helpful--can-edebug-p.helpful--s
157a0 79 6d 20 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 ym.helpful--callable-p.buf.pos))
157c0 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 2d 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 ...........(can-trace...........
157e0 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 0a 20 20 20 .(and.(symbolp.helpful--sym)....
15800 20 20 20 20 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 .............helpful--callable-p
15820 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 72 61 63 69 6e 67 20 75 73 65 73 .................;;.Tracing.uses
15840 20 61 64 76 69 63 65 2c 20 61 6e 64 20 79 6f 75 20 63 61 6e 27 74 20 61 70 70 6c 79 20 61 64 76 .advice,.and.you.can't.apply.adv
15860 69 63 65 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 69 6d 69 74 ice.to.................;;.primit
15880 69 76 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 72 65 70 6c 61 63 65 64 20 ive.functions.that.are.replaced.
158a0 77 69 74 68 20 73 70 65 63 69 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 with.special.................;;.
158c0 6f 70 63 6f 64 65 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 60 6e 61 72 72 6f 77 2d 74 6f opcodes..For.example,.`narrow-to
158e0 2d 72 65 67 69 6f 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 -region'..................(not.(
15900 70 6c 69 73 74 2d 67 65 74 20 28 73 79 6d 62 6f 6c 2d 70 6c 69 73 74 20 68 65 6c 70 66 75 6c 2d plist-get.(symbol-plist.helpful-
15920 2d 73 79 6d 29 20 27 62 79 74 65 2d 6f 70 63 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 -sym).'byte-opcode))))..........
15940 20 28 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e .(can-disassemble............(an
15960 64 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 28 6e 6f 74 20 70 72 69 6d 69 d.helpful--callable-p.(not.primi
15980 74 69 76 65 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 2d 66 6f 72 67 65 74 0a tive-p)))...........(can-forget.
159a0 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 28 73 70 65 63 69 61 6c 2d 66 6f ...........(and.(not.(special-fo
159c0 72 6d 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 20 20 20 20 rm-p.helpful--sym)).............
159e0 20 20 20 20 28 6e 6f 74 20 70 72 69 6d 69 74 69 76 65 2d 70 29 29 29 29 0a 20 20 20 20 20 20 28 ....(not.primitive-p)))).......(
15a00 77 68 65 6e 20 28 6f 72 20 63 61 6e 2d 65 64 65 62 75 67 20 63 61 6e 2d 74 72 61 63 65 20 63 61 when.(or.can-edebug.can-trace.ca
15a20 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 20 63 61 6e 2d 66 6f 72 67 65 74 29 0a 20 20 20 20 20 20 n-disassemble.can-forget).......
15a40 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 72 65 61 6b ..(helpful--insert-section-break
15a60 29 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 ).........(insert.(helpful--head
15a80 69 6e 67 20 22 44 65 62 75 67 67 69 6e 67 22 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 ing."Debugging"))).......(when.c
15aa0 61 6e 2d 65 64 65 62 75 67 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 an-edebug.........(insert.......
15ac0 20 20 20 28 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 ...(helpful--make-edebug-button.
15ae0 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d helpful--sym))).......(when.can-
15b00 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 65 64 65 62 75 67 0a 20 trace.........(when.can-edebug..
15b20 20 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 .........(insert.".")).........(
15b40 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 74 insert..........(helpful--make-t
15b60 72 61 63 69 6e 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 0a 20 racing-button.helpful--sym)))...
15b80 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 .....(when.(and..............(or
15ba0 20 63 61 6e 2d 65 64 65 62 75 67 20 63 61 6e 2d 74 72 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 .can-edebug.can-trace)..........
15bc0 20 20 20 20 28 6f 72 20 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 20 63 61 6e 2d 66 6f 72 67 ....(or.can-disassemble.can-forg
15be0 65 74 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 0a 20 20 20 et)).........(insert."\n")).....
15c00 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 20 20 20 20 20 ...(when.can-disassemble........
15c20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 64 69 73 61 73 73 65 6d .(insert.(helpful--make-disassem
15c40 62 6c 65 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 0a 20 20 20 20 ble-button.helpful--sym)))......
15c60 20 20 28 77 68 65 6e 20 63 61 6e 2d 66 6f 72 67 65 74 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e ..(when.can-forget.........(when
15c80 20 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 .can-disassemble...........(inse
15ca0 72 74 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 66 75 rt.".")).........(insert.(helpfu
15cc0 6c 2d 2d 6d 61 6b 65 2d 66 6f 72 67 65 74 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 l--make-forget-button.helpful--s
15ce0 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 29 0a 0a 20 20 20 20 ym.helpful--callable-p))))......
15d00 28 77 68 65 6e 20 61 6c 69 61 73 65 73 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e (when.aliases.......(helpful--in
15d20 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
15d40 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 6c 69 61 t........(helpful--heading."Alia
15d60 73 65 73 22 29 0a 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 28 2d 2d 6d 61 70 ses")........(s-join."\n".(--map
15d80 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 6c 69 61 73 20 69 74 20 68 65 6c 70 66 .(helpful--format-alias.it.helpf
15da0 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ul--callable-p).................
15dc0 20 20 20 20 20 20 20 20 20 20 20 61 6c 69 61 73 65 73 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 ...........aliases))))......(whe
15de0 6e 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 28 68 65 6c n.helpful--callable-p.......(hel
15e00 70 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 29 29 0a 0a pful--insert-implementations))..
15e20 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 72 65 ....(helpful--insert-section-bre
15e40 61 6b 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 73 6f 75 72 63 65 2d 70 61 74 68 20 70 ak)......(when.(or.source-path.p
15e60 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 rimitive-p).......(insert.......
15e80 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 20 20 28 69 66 20 28 .(helpful--heading.........(if.(
15ea0 65 71 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 29 0a 20 eq.helpful--sym.canonical-sym)..
15ec0 20 20 20 20 20 20 20 20 20 20 20 22 53 6f 75 72 63 65 20 43 6f 64 65 22 0a 20 20 20 20 20 20 20 ..........."Source.Code"........
15ee0 20 20 20 22 41 6c 69 61 73 20 53 6f 75 72 63 65 20 43 6f 64 65 22 29 29 0a 20 20 20 20 20 20 20 ..."Alias.Source.Code"))........
15f00 28 63 6f 6e 64 0a 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 (cond.........(source-path......
15f20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a ....(concat...........(propertiz
15f40 65 20 28 66 6f 72 6d 61 74 20 22 25 73 20 44 65 66 69 6e 65 64 20 69 6e 20 22 20 28 69 66 20 70 e.(format."%s.Defined.in.".(if.p
15f60 72 69 6d 69 74 69 76 65 2d 70 20 22 2f 2f 22 20 22 3b 3b 22 29 29 0a 20 20 20 20 20 20 20 20 20 rimitive-p."//".";;"))..........
15f80 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 63 6b 2d 63 6f .............'face.'font-lock-co
15fa0 6d 6d 65 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d mment-face)...........(helpful--
15fc0 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 28 66 2d 61 62 navigate-button............(f-ab
15fe0 62 72 65 76 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 73 6f 75 brev.source-path)............sou
16000 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 29 0a 20 20 20 20 20 20 20 rce-path............pos)........
16020 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 ..."\n")).........(primitive-p..
16040 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 ........(concat...........(prope
16060 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 22 43 20 63 6f 64 65 20 69 73 20 6e 6f 74 20 rtize............"C.code.is.not.
16080 79 65 74 20 6c 6f 61 64 65 64 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 66 yet.loaded."............'face.'f
160a0 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 20 20 ont-lock-comment-face)..........
160c0 20 22 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 ."\n\n"...........(helpful--butt
160e0 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 22 53 65 74 20 43 20 73 6f 75 72 63 65 20 64 69 72 65 on............"Set.C.source.dire
16100 63 74 6f 72 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 63 2d 73 6f 75 ctory"............'helpful-c-sou
16120 72 63 65 2d 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 6f rce-directory)))))).....(when.so
16140 75 72 63 65 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a urce.......(insert........(cond.
16160 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 ........((stringp.source).......
16180 20 20 20 28 6c 65 74 20 28 28 6d 6f 64 65 20 28 77 68 65 6e 20 70 72 69 6d 69 74 69 76 65 2d 70 ...(let.((mode.(when.primitive-p
161a0 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 70 63 61 73 65 20 28 ........................(pcase.(
161c0 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 73 6f 75 72 63 65 2d 70 61 74 68 29 file-name-extension.source-path)
161e0 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 28 22 63 22 20 27 ..........................("c".'
16200 63 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 20 20 20 20 c-mode).........................
16220 20 28 22 72 73 22 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 72 75 73 74 2d 6d 6f 64 65 .("rs".(when.(fboundp.'rust-mode
16240 29 20 27 72 75 73 74 2d 6d 6f 64 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 ).'rust-mode))))))............(h
16260 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 73 6f 75 72 63 65 20 elpful--syntax-highlight.source.
16280 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 63 6f 6e 73 70 20 73 6f 75 mode))).........((and.(consp.sou
162a0 72 63 65 29 20 28 65 71 20 28 63 61 72 20 73 6f 75 72 63 65 29 20 27 63 6c 6f 73 75 72 65 29 29 rce).(eq.(car.source).'closure))
162c0 0a 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 6c ..........(helpful--syntax-highl
162e0 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 3b 3b 20 43 6c 6f 73 75 ight...........(concat.";;.Closu
16300 72 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 64 65 66 75 6e 20 62 79 20 68 65 6c 70 66 75 6c re.converted.to.defun.by.helpful
16320 2e 5c 6e 22 0a 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 .\n"...................(helpful-
16340 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -pretty-print...................
16360 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6c 6f 73 75 72 65 20 68 65 6c 70 66 75 .(helpful--format-closure.helpfu
16380 6c 2d 2d 73 79 6d 20 73 6f 75 72 63 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 l--sym.source))))).........(t...
163a0 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 6c 69 67 68 .......(helpful--syntax-highligh
163c0 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 t...........(concat............(
163e0 69 66 20 28 65 71 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 if.(eq.helpful--sym.canonical-sy
16400 6d 29 0a 20 20 20 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 m)................";;.Could.not.
16420 66 69 6e 64 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 find.source.code,.showing.raw.fu
16440 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 nction.object.\n".............."
16460 3b 3b 20 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 6c 69 61 73 20 73 6f 75 72 63 65 20 63 ;;.Could.not.find.alias.source.c
16480 6f 64 65 2c 20 73 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 ode,.showing.raw.function.object
164a0 2e 5c 6e 22 29 0a 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 .\n")............(helpful--prett
164c0 79 2d 70 72 69 6e 74 20 73 6f 75 72 63 65 29 29 29 29 29 29 29 0a 0a 20 20 20 20 28 68 65 6c 70 y-print.source)))))))......(help
164e0 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 0a 20 20 20 20 ful--insert-section-break)......
16500 28 2d 77 68 65 6e 2d 6c 65 74 20 28 66 6f 72 6d 61 74 74 65 64 2d 70 72 6f 70 73 20 28 68 65 6c (-when-let.(formatted-props.(hel
16520 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 6f 70 65 72 74 69 65 73 20 68 65 6c 70 66 75 6c 2d pful--format-properties.helpful-
16540 2d 73 79 6d 29 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 -sym)).......(insert........(hel
16560 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 53 79 6d 62 6f 6c 20 50 72 6f 70 65 72 74 69 65 73 pful--heading."Symbol.Properties
16580 22 29 0a 20 20 20 20 20 20 20 66 6f 72 6d 61 74 74 65 64 2d 70 72 6f 70 73 29 29 0a 0a 20 20 20 ")........formatted-props)).....
165a0 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 28 66 6f .(goto-char.(point-min)).....(fo
165c0 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 73 74 61 72 74 2d 6c 69 6e 65 29 29 0a 20 20 20 20 rward-line.(1-.start-line)).....
165e0 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 73 74 61 72 74 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 (forward-char.start-column).....
16600 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 66 69 72 73 74 2d 64 69 73 70 6c 61 79 20 6e 69 6c (setq.helpful--first-display.nil
16620 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 6f 70 65 6e 65 64 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d )......(when.opened.......(kill-
16640 62 75 66 66 65 72 20 62 75 66 29 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 74 68 69 73 20 69 73 buffer.buf))))..;;.TODO:.this.is
16660 6e 27 74 20 73 75 66 66 69 63 69 65 6e 74 20 66 6f 72 20 60 65 64 65 62 75 67 2d 65 76 61 6c 2d n't.sufficient.for.`edebug-eval-
16680 64 65 66 75 6e 27 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 6b 69 70 2d 61 64 76 defun'..(defun.helpful--skip-adv
166a0 69 63 65 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 52 65 6d 6f 76 65 20 6d 65 6e 74 69 6f ice.(docstring)..."Remove.mentio
166c0 6e 73 20 6f 66 20 61 64 76 69 63 65 20 66 72 6f 6d 20 44 4f 43 53 54 52 49 4e 47 2e 22 0a 20 20 ns.of.advice.from.DOCSTRING."...
166e0 28 6c 65 74 2a 20 28 28 6c 69 6e 65 73 20 28 73 2d 6c 69 6e 65 73 20 64 6f 63 73 74 72 69 6e 67 (let*.((lines.(s-lines.docstring
16700 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 6c 65 76 61 6e 74 2d 6c 69 6e 65 73 0a 20 20 20 20 ))..........(relevant-lines.....
16720 20 20 20 20 20 20 28 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 ......(--drop-while............(
16740 6f 72 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 3a 61 72 6f 75 6e 64 20 61 64 76 or.(s-starts-with-p.":around.adv
16760 69 63 65 3a 22 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 73 74 61 72 ice:".it)................(s-star
16780 74 73 2d 77 69 74 68 2d 70 20 22 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 3a 61 72 ts-with-p."This.function.has.:ar
167a0 6f 75 6e 64 20 61 64 76 69 63 65 3a 22 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 6c 69 ound.advice:".it))............li
167c0 6e 65 73 29 29 29 0a 20 20 20 20 28 73 2d 74 72 69 6d 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 nes))).....(s-trim.(s-join."\n".
167e0 72 65 6c 65 76 61 6e 74 2d 6c 69 6e 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 relevant-lines))))..(defun.helpf
16800 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 72 67 75 6d 65 6e 74 20 28 61 72 67 29 0a 20 20 22 46 6f 72 ul--format-argument.(arg)..."For
16820 6d 61 74 20 41 52 47 20 28 61 20 73 79 6d 62 6f 6c 29 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 mat.ARG.(a.symbol).according.to.
16840 45 6d 61 63 73 20 68 65 6c 70 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 Emacs.help.conventions."...(let.
16860 28 28 61 72 67 2d 73 74 72 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 61 72 67 29 29 29 0a 20 20 ((arg-str.(symbol-name.arg)))...
16880 20 20 28 69 66 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 26 22 20 61 72 67 2d 73 ..(if.(s-starts-with-p."&".arg-s
168a0 74 72 29 0a 20 20 20 20 20 20 20 20 61 72 67 2d 73 74 72 0a 20 20 20 20 20 20 28 73 2d 75 70 63 tr).........arg-str.......(s-upc
168c0 61 73 65 20 61 72 67 2d 73 74 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d ase.arg-str))))..(defun.helpful-
168e0 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c 20 28 73 79 6d 29 0a 20 20 22 46 6f 72 6d 61 74 20 73 -format-symbol.(sym)..."Format.s
16900 79 6d 62 6f 6c 20 61 73 20 61 20 73 74 72 69 6e 67 2c 20 65 73 63 61 70 69 6e 67 20 61 73 20 6e ymbol.as.a.string,.escaping.as.n
16920 65 63 65 73 73 61 72 79 2e 22 0a 20 20 3b 3b 20 41 72 67 75 61 62 6c 79 20 74 68 69 73 20 69 73 ecessary."...;;.Arguably.this.is
16940 20 61 6e 20 45 6d 61 63 73 20 62 75 67 2e 20 57 65 20 73 68 6f 75 6c 64 20 62 65 20 61 62 6c 65 .an.Emacs.bug..We.should.be.able
16960 20 74 6f 20 75 73 65 0a 20 20 3b 3b 20 28 66 6f 72 6d 61 74 20 22 25 53 22 20 73 79 6d 29 0a 20 .to.use...;;.(format."%S".sym)..
16980 20 3b 3b 20 62 75 74 20 74 68 61 74 20 63 6f 6e 76 65 72 74 73 20 66 6f 6f 3f 20 74 6f 20 22 66 .;;.but.that.converts.foo?.to."f
169a0 6f 6f 5c 5c 3f 22 2e 20 59 6f 75 20 63 61 6e 20 73 65 65 20 74 68 69 73 20 69 6e 20 6f 74 68 65 oo\\?"..You.can.see.this.in.othe
169c0 72 0a 20 20 3b 3b 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 45 6d 61 63 73 20 55 49 2c 20 73 75 r...;;.parts.of.the.Emacs.UI,.su
169e0 63 68 20 61 73 20 45 52 54 2e 0a 20 20 28 73 2d 72 65 70 6c 61 63 65 20 22 20 22 20 22 5c 5c 20 ch.as.ERT....(s-replace."."."\\.
16a00 22 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 73 79 6d 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 ".(format."%s".sym)))..;;.TODO:.
16a20 74 68 69 73 20 69 73 20 62 72 6f 6b 65 6e 20 66 6f 72 20 2d 61 6e 79 3f 2e 0a 28 64 65 66 75 6e this.is.broken.for.-any?..(defun
16a40 20 68 65 6c 70 66 75 6c 2d 2d 73 69 67 6e 61 74 75 72 65 20 28 73 79 6d 29 0a 20 20 22 47 65 74 .helpful--signature.(sym)..."Get
16a60 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 2c .the.signature.for.function.SYM,
16a80 20 61 73 20 61 20 73 74 72 69 6e 67 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 5c 22 28 73 6f .as.a.string..For.example,.\"(so
16aa0 6d 65 2d 66 75 6e 63 20 46 4f 4f 20 26 6f 70 74 69 6f 6e 61 6c 20 42 41 52 29 5c 22 2e 22 0a 20 me-func.FOO.&optional.BAR)\"."..
16ac0 20 28 6c 65 74 20 28 64 6f 63 73 74 72 69 6e 67 2d 73 69 67 0a 20 20 20 20 20 20 20 20 73 6f 75 .(let.(docstring-sig.........sou
16ae0 72 63 65 2d 73 69 67 0a 20 20 20 20 20 20 20 20 28 61 64 76 65 72 74 69 73 65 64 2d 61 72 67 73 rce-sig.........(advertised-args
16b00 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 ..........(when.(symbolp.sym)...
16b20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 .........(gethash.(symbol-functi
16b40 6f 6e 20 73 79 6d 29 20 61 64 76 65 72 74 69 73 65 64 2d 73 69 67 6e 61 74 75 72 65 2d 74 61 62 on.sym).advertised-signature-tab
16b60 6c 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 47 65 74 20 74 68 65 20 75 73 61 67 65 20 66 72 6f 6d le)))).....;;.Get.the.usage.from
16b80 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 20 20 20 20 28 6c .the.function.definition......(l
16ba0 65 74 2a 20 28 28 66 75 6e 63 74 69 6f 6e 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 et*.((function-args.............
16bc0 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 79 6d 62 6f 6c 70 20 73 79 6d (cond..............((symbolp.sym
16be0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 2d 66 75 6e 63 74 69 6f 6e 2d 61 )...............(help-function-a
16c00 72 67 6c 69 73 74 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 rglist.sym))..............((or.(
16c20 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 byte-code-function-p.sym).......
16c40 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 69 6e 74 65 72 70 ............(if.(fboundp.'interp
16c60 72 65 74 65 64 2d 66 75 6e 63 74 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 reted-function-p)...............
16c80 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 70 72 65 74 65 64 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 ........(interpreted-function-p.
16ca0 73 79 6d 29 29 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 sym)))...............;;.argdesc.
16cc0 63 61 6e 20 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 can.be.a.list.of.arguments.or.an
16ce0 20 69 6e 74 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 .integer...............;;.encodi
16d00 6e 67 20 74 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 ng.the.min/max.number.of.argumen
16d20 74 73 2e 20 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 ts..See...............;;.Byte-Co
16d40 64 65 20 46 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 de.Function.Objects.in.the.elisp
16d60 20 6d 61 6e 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 .manual................(let.((ar
16d80 67 64 65 73 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 gdesc.(aref.sym.0)))............
16da0 20 20 20 20 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 .....(if.(consp.argdesc)........
16dc0 20 20 20 20 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 .............argdesc............
16de0 20 20 20 20 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 .......;;.TODO:.properly.handle.
16e00 61 72 67 64 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 argdesc.values..................
16e20 20 20 6e 69 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 ..nil)))..............(t........
16e40 20 20 20 20 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 .......;;.Interpreted.function.(
16e60 6c 61 6d 62 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 lambda....)...............(cadr.
16e80 73 79 6d 29 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 sym))))............(formatted-ar
16ea0 67 73 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 gs.............(cond............
16ec0 20 20 28 61 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 ..(advertised-args..............
16ee0 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 6e .(-map.#'helpful--format-argumen
16f00 74 20 61 64 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 t.advertised-args)).............
16f20 20 28 28 6c 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 .((listp.function-args).........
16f40 20 20 20 20 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 ......(-map.#'helpful--format-ar
16f60 67 75 6d 65 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 gument.function-args))..........
16f80 20 20 20 20 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 ....(t...............(list.funct
16fa0 69 6f 6e 2d 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 ion-args))))).......(setq.source
16fc0 2d 73 69 67 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 -sig.............(cond..........
16fe0 20 20 20 20 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 ....;;.If.it's.a.function.object
17000 2c 20 6a 75 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 ,.just.show.the.arguments.......
17020 20 20 20 20 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 ........((not.(symbolp.sym))....
17040 20 20 20 20 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 ...........(format."(%s)".......
17060 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 20 66 6f 72 6d ................(s-join.".".form
17080 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 3b 3b 20 49 66 atted-args)))..............;;.If
170a0 20 69 74 20 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 .it.has.multiple.arguments,.join
170c0 20 74 68 65 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 .them.with.spaces...............
170e0 28 66 6f 72 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 (formatted-args...............(f
17100 6f 72 6d 61 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 ormat."(%s.%s)".................
17120 20 20 20 20 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 ......(helpful--format-symbol.sy
17140 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 28 73 2d 6a 6f 69 6e m).......................(s-join
17160 20 22 20 22 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 .".".formatted-args)))..........
17180 20 20 20 20 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 ....;;.Otherwise,.this.function.
171a0 74 61 6b 65 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 takes.no.arguments.when.called..
171c0 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 20 20 20 28 66 .............(t...............(f
171e0 6f 72 6d 61 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 ormat."(%s)".(helpful--format-sy
17200 6d 62 6f 6c 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 mbol.sym))))))......;;.If.the.do
17220 63 73 74 72 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 cstring.ends.with.(fn.FOO.BAR),.
17240 65 78 74 72 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 extract.that......(-when-let.(do
17260 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 29 29 0a 20 20 20 cstring.(documentation.sym))....
17280 20 20 20 28 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 ...(-when-let.(docstring-with-us
172a0 61 67 65 20 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 age.(help-split-fundoc.docstring
172c0 20 73 79 6d 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 .sym)).........(setq.docstring-s
172e0 69 67 20 28 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 ig.(car.docstring-with-usage))))
17300 0a 0a 20 20 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 ......(cond......;;.Advertised.s
17320 69 67 6e 61 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 ignature.always.wins.......(adve
17340 72 74 69 73 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 rtised-args.......source-sig)...
17360 20 20 20 3b 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 ...;;.If.that's.not.set,.use.the
17380 20 75 73 61 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 .usage.specification.in.the.....
173a0 20 3b 3b 20 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 .;;.docstring,.if.present.......
173c0 28 64 6f 63 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 (docstring-sig.......(replace-re
173e0 67 65 78 70 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 gexp-in-string."\\\\=\\(['\\`...
17400 e2 80 99 5d 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 ...]\\)"."\\1".docstring-sig.t))
17420 0a 20 20 20 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 ......(t.......;;.Otherwise,.jus
17440 74 20 75 73 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 t.use.the.signature.from.the.sou
17460 72 63 65 20 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 rce.code........source-sig))))..
17480 28 64 65 66 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 (defun.helpful--format-obsolete-
174a0 69 6e 66 6f 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 info.(sym.callable-p)...(-let.[(
174c0 75 73 65 20 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 use._.date).(helpful--obsolete-i
174e0 6e 66 6f 20 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 nfo.sym.callable-p)].....(helpfu
17500 6c 2d 2d 66 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 l--format-docstring......(s-word
17520 2d 77 72 61 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 -wrap.......70.......(format."Th
17540 69 73 20 25 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 is.%s.is.obsolete%s%s"..........
17560 20 20 20 20 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 .....(helpful--kind-name.sym.cal
17580 6c 61 62 6c 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 lable-p)...............(if.date.
175a0 28 66 6f 72 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 (format.".since.%s".date).......
175c0 20 20 20 20 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 .........."")...............(con
175e0 64 20 28 28 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 d.((stringp.use).(concat.";.".us
17600 65 29 29 0a 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 e)).....................(use.(fo
17620 72 6d 61 74 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 rmat.";.use.`%s'.instead.".use))
17640 0a 20 20 20 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 .....................(t.".")))))
17660 29 29 0a 0a 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 ))..(defun.helpful--docstring.(s
17680 79 6d 20 63 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 ym.callable-p)..."Get.the.docstr
176a0 69 6e 67 20 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 ing.for.SYM..Note.that.this.retu
176c0 72 6e 73 20 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 rns.the.raw.docstring,.including
176e0 20 5c 5c 3d 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 .\\=\\=.escapes.that.are.used.by
17700 20 60 73 75 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 .`substitute-command-keys'."...(
17720 6c 65 74 20 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 let.((text-quoting-style.'grave)
17740 0a 20 20 20 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 .........docstring).....(if.call
17760 61 62 6c 65 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 able-p.........(progn...........
17780 28 73 65 74 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 (setq.docstring.(documentation.s
177a0 79 6d 20 74 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 ym.t))...........(-when-let.(doc
177c0 73 74 72 69 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 string-with-usage.(help-split-fu
177e0 6e 64 6f 63 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 ndoc.docstring.sym))............
17800 20 28 73 65 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 .(setq.docstring.(cdr.docstring-
17820 77 69 74 68 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 with-usage)).............(when.d
17840 6f 63 73 74 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 ocstring...............;;.Advice
17860 20 6d 75 74 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 .mutates.the.docstring,.see.....
17880 20 20 20 20 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 ..........;;.`advice--make-docst
178a0 72 69 6e 67 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 ring'..Undo.that................
178c0 3b 3b 20 54 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 ;;.TODO:.Only.do.this.if.the.fun
178e0 63 74 69 6f 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 ction.is.advised................
17900 28 73 65 74 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 (setq.docstring.(helpful--skip-a
17920 64 76 69 63 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 dvice.docstring))))).......(setq
17940 20 64 6f 63 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 .docstring.............(document
17960 61 74 69 6f 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 ation-property.sym.'variable-doc
17980 75 6d 65 6e 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 umentation.t))).....docstring)).
179a0 0a 28 64 65 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 .(defun.helpful--read-symbol.(pr
179c0 6f 6d 70 74 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 ompt.default-val.predicate)..."R
179e0 65 61 64 20 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 ead.a.symbol.from.the.minibuffer
17a00 2c 20 77 69 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 ,.with.completion..Returns.the.s
17a20 79 6d 62 6f 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 ymbol."...(when.(and.default-val
17a40 0a 20 20 20 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 ..............(not.(funcall.pred
17a60 69 63 61 74 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 icate.default-val))).....(setq.d
17a80 65 66 61 75 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 efault-val.nil))...(when.default
17aa0 2d 76 61 6c 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 -val.....;;.`completing-read'.ex
17ac0 70 65 63 74 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 pects.a.string......(setq.defaul
17ae0 74 2d 76 61 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 t-val.(symbol-name.default-val))
17b00 0a 0a 20 20 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 ......;;.TODO:.Only.modify.the.p
17b20 72 6f 6d 70 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 rompt.when.we.don't.have.ido/ivy
17b40 2f 68 65 6c 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 /helm,.....;;.because.the.defaul
17b60 74 20 69 73 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 t.is.obvious.for.them......(setq
17b80 20 70 72 6f 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 .prompt...........(replace-regex
17ba0 70 2d 69 6e 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 p-in-string............(rx.":.".
17bc0 65 6f 73 29 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 eos)............(format.".(defau
17be0 6c 74 3a 20 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 lt:.%s):.".default-val).........
17c00 20 20 20 70 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 ...prompt)))...(intern.(completi
17c20 6e 67 2d 72 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 ng-read.prompt.obarray..........
17c40 20 20 20 20 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 ..................predicate.t.ni
17c60 6c 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 20 20 20 20 20 20 l.nil...........................
17c80 20 64 65 66 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 .default-val)))..(defun.helpful-
17ca0 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 28 73 79 6d 62 6f -update-and-switch-buffer.(symbo
17cc0 6c 20 63 61 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 l.callable-p)..."Update.and.swit
17ce0 63 68 20 74 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 ch.to.help.buffer.for.SYMBOL."..
17d00 20 28 6c 65 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 .(let.((buf.(helpful--buffer.sym
17d20 62 6f 6c 20 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 bol.callable-p))).....(with-curr
17d40 65 6e 74 2d 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 ent-buffer.buf.......(helpful-up
17d60 64 61 74 65 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 date)).....(funcall.helpful-swit
17d80 63 68 2d 62 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 ch-buffer-function.buf)))..;;;##
17da0 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 66 75 6e 63 74 69 6f #autoload.(defun.helpful-functio
17dc0 6e 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 72 20 66 75 6e 63 n.(symbol)..."Show.help.for.func
17de0 74 69 6f 6e 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 tion.named.SYMBOL...See.also.`he
17e00 6c 70 66 75 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 lpful-macro',.`helpful-command'.
17e20 61 6e 64 20 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 and.`helpful-callable'."...(inte
17e40 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-
17e60 73 79 6d 62 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 symbol..........."Function:."...
17e80 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
17ea0 69 6e 74 29 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 int)...........#'functionp)))...
17ec0 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 68 2d 62 75 66 66 (helpful--update-and-switch-buff
17ee0 65 72 20 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 er.symbol.t))..;;;###autoload.(d
17f00 65 66 75 6e 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 efun.helpful-command.(symbol)...
17f20 22 53 68 6f 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 "Show.help.for.interactive.funct
17f40 69 6f 6e 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 ion.named.SYMBOL...See.also.`hel
17f60 70 66 75 6c 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 pful-function'."...(interactive.
17f80 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 6f 6c 0a 20 ...(list.(helpful--read-symbol..
17fa0 20 20 20 20 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 ........."Command:."...........(
17fc0 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 0a 20 20 20 20 helpful--callable-at-point).....
17fe0 20 20 20 20 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 ......#'commandp)))...(helpful--
18000 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 79 6d 62 6f 6c 20 update-and-switch-buffer.symbol.
18020 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 20 68 65 6c 70 66 t))..;;;###autoload.(defun.helpf
18040 75 6c 2d 6b 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 ul-key.(key-sequence)..."Show.he
18060 6c 70 20 66 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 lp.for.interactive.command.bound
18080 20 74 6f 20 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 .to.KEY-SEQUENCE."...(interactiv
180a0 65 0a 20 20 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 e....(list.(read-key-sequence."P
180c0 72 65 73 73 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 ress.key:.")))...(let.((sym.(key
180e0 2d 62 69 6e 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 -binding.key-sequence))).....(co
18100 6e 64 0a 20 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 nd......((null.sym).......(user-
18120 65 72 72 6f 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 error."No.command.is.bound.to.%s
18140 22 0a 20 20 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 "...................(key-descrip
18160 74 69 6f 6e 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 tion.key-sequence)))......((comm
18180 61 6e 64 70 20 73 79 6d 20 74 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 andp.sym.t).......(helpful--upda
181a0 74 65 2d 61 6e 64 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 te-and-switch-buffer.sym.t))....
181c0 20 20 28 74 0a 20 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 ..(t.......(user-error."%s.is.bo
181e0 75 6e 64 20 74 6f 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 und.to.%s.which.is.not.a.command
18200 22 0a 20 20 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 "...................(key-descrip
18220 74 69 6f 6e 20 6b 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 tion.key-sequence)..............
18240 20 20 20 20 20 73 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 .....sym)))))..;;;###autoload.(d
18260 65 66 75 6e 20 68 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 efun.helpful-macro.(symbol)..."S
18280 68 6f 77 20 68 65 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 how.help.for.macro.named.SYMBOL.
182a0 22 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 "...(interactive....(list.(helpf
182c0 75 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 4d 61 63 72 6f ul--read-symbol..........."Macro
182e0 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 6c 65 :."...........(helpful--callable
18300 2d 61 74 2d 70 6f 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 -at-point)...........#'macrop)))
18320 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 68 2d 62 ...(helpful--update-and-switch-b
18340 75 66 66 65 72 20 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 uffer.symbol.t))..;;;###autoload
18360 0a 28 64 65 66 75 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 .(defun.helpful-callable.(symbol
18380 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 2c 20 6d 61 63 )..."Show.help.for.function,.mac
183a0 72 6f 20 6f 72 20 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 ro.or.special.form.named.SYMBOL.
183c0 0a 0a 53 65 65 20 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 ..See.also.`helpful-macro',.`hel
183e0 70 66 75 6c 2d 66 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 pful-function'.and.`helpful-comm
18400 61 6e 64 27 2e 22 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 and'."...(interactive....(list.(
18420 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 20 20 20 20 20 22 helpful--read-symbol..........."
18440 43 61 6c 6c 61 62 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 Callable:."...........(helpful--
18460 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 20 20 23 27 66 callable-at-point)...........#'f
18480 62 6f 75 6e 64 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 boundp)))...(helpful--update-and
184a0 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 0a 28 64 65 66 75 -switch-buffer.symbol.t))..(defu
184c0 6e 20 68 65 6c 70 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 n.helpful--variable-p.(symbol)..
184e0 20 22 52 65 74 75 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 ."Return.non-nil.if.SYMBOL.is.a.
18500 76 61 72 69 61 62 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 variable."...(or.(get.symbol.'va
18520 72 69 61 62 6c 65 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 riable-documentation).......(and
18540 20 28 62 6f 75 6e 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 .(boundp.symbol)............(not
18560 20 28 6b 65 79 77 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 .(keywordp.symbol))............(
18580 6e 6f 74 20 28 65 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 not.(eq.symbol.nil))............
185a0 28 6e 6f 74 20 28 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 (not.(eq.symbol.t)))))..(defun.h
185c0 65 6c 70 66 75 6c 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 elpful--bound-p.(symbol)..."Retu
185e0 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
18600 6c 65 2c 20 63 61 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 le,.callable,.or.face...This.dif
18620 66 65 72 73 20 66 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 fers.from.`boundp'.because.we.do
18640 20 6e 6f 74 20 63 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 .not.consider.nil,.t.or.:foo."..
18660 20 28 6f 72 20 28 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 .(or.(fboundp.symbol).......(hel
18680 70 66 75 6c 2d 2d 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 pful--variable-p.symbol).......(
186a0 66 61 63 65 70 20 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 facep.symbol)))..(defun.helpful-
186c0 2d 62 6f 6f 6b 6d 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 -bookmark-jump.(bookmark)..."Cre
186e0 61 74 65 20 61 6e 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 ate.and.switch.to.helpful.bookma
18700 72 6b 20 42 4f 4f 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 rk.BOOKMARK."...(let.((callable-
18720 70 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 61 72 6b 20 27 63 p.(bookmark-prop-get.bookmark.'c
18740 61 6c 6c 61 62 6c 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 allable-p)).........(sym.(bookma
18760 72 6b 2d 70 72 6f 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 rk-prop-get.bookmark.'sym)).....
18780 20 20 20 20 28 70 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 ....(position.(bookmark-prop-get
187a0 20 62 6f 6f 6b 6d 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 .bookmark.'position))).....(if.c
187c0 61 6c 6c 61 62 6c 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 allable-p.........(helpful-calla
187e0 62 6c 65 20 73 79 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 ble.sym).......(helpful-variable
18800 20 73 79 6d 29 29 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 .sym)).....(goto-char.position))
18820 29 0a 0a 28 64 65 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 )..(defun.helpful--bookmark-make
18840 2d 72 65 63 6f 72 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 -record.()..."Create.a.bookmark.
18860 72 65 63 6f 72 64 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 record.for.helpful.buffers...See
18880 20 64 6f 63 73 20 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 .docs.of.`bookmark-make-record-f
188a0 75 6e 63 74 69 6f 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 unction'."...`((sym...,helpful--
188c0 73 79 6d 29 0a 20 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 sym).....(callable-p...,helpful-
188e0 2d 63 61 6c 6c 61 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 -callable-p).....(position......
18900 2c 28 70 6f 69 6e 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 ,(point)).....(handler.......hel
18920 70 66 75 6c 2d 2d 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 pful--bookmark-jump)))..(defun.h
18940 65 6c 70 66 75 6c 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 elpful--convert-c-name.(symbol.v
18960 61 72 29 0a 20 20 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 ar)..."Convert.SYMBOL.from.a.C.n
18980 61 6d 65 20 74 6f 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 ame.to.an.Elisp.name..E.g..conve
189a0 72 74 20 60 46 6d 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 rt.`Fmake_string'.to.`make-strin
189c0 67 27 20 6f 72 0a 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 g'.or.`Vgc_cons_percentage'.to.`
189e0 67 63 2d 63 6f 6e 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 gc-cons-percentage'..Interpret.S
18a00 59 4d 42 4f 4c 20 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 YMBOL.as.variable.name.if.VAR,.e
18a20 6c 73 65 20 61 20 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 lse.a.function.name..Return.nil.
18a40 69 66 20 53 59 4d 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 if.SYMBOL.doesn't.begin.with.\"F
18a60 5c 22 20 6f 72 20 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 \".or.\"V\"."...(let.((string.(s
18a80 79 6d 62 6f 6c 2d 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 ymbol-name.symbol)).........(pre
18aa0 66 69 78 20 28 69 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 fix.(if.var."V"."F"))).....(when
18ac0 20 28 73 2d 73 74 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 .(s-starts-with-p.prefix.string)
18ae0 0a 20 20 20 20 20 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 .......(intern........(s-chop-pr
18b00 65 66 69 78 0a 20 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 efix.........prefix.........(s-r
18b20 65 70 6c 61 63 65 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 eplace."_"."-".string))))))..(de
18b40 66 75 6e 20 68 65 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 fun.helpful--disambiguate.(sym.c
18b60 68 6f 69 63 65 73 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 hoices)..."Prompt.the.user.to.di
18b80 73 61 6d 62 69 67 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 sambiguate.SYM.via.a.`read-char-
18ba0 63 68 6f 69 63 65 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 choice'.selection...CHOICES.is.a
18bc0 20 6c 69 73 74 20 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 .list.of.tuples.of.the.form.(FN.
18be0 44 45 53 43 20 43 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 DESC.CHAR),.where....CHAR.is.the
18c00 20 69 6e 70 75 74 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 .input.character.associated.with
18c20 20 74 68 65 20 63 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 .the.choice...DESC.is.a.short.de
18c40 73 63 72 69 70 74 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 scription.of.the.choice.to.displ
18c60 61 79 20 69 6e 20 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 ay.in.the.prompt....FN.is.the.fu
18c80 6e 63 74 69 6f 6e 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 nction.being.chosen,.which.takes
18ca0 20 53 59 4d 20 61 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 .SYM.as.an.argument...For.instan
18cc0 63 65 2c 20 74 68 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 ce,.the.choice.(#'helpful-variab
18ce0 6c 65 20 5c 22 5b 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 le.\"[v]ariable\".?v).calls.(hel
18d00 70 66 75 6c 2d 76 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 pful-variable.SYM).when.the.key.
18d20 60 76 27 20 69 73 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 `v'.is.pressed.in.the.prompt."..
18d40 20 28 6c 65 74 2a 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 .(let*.((prompt.(format."%s.is.a
18d60 6d 62 69 67 75 6f 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 mbiguous:.describe.%s.?"........
18d80 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 20 28 73 ..................(propertize.(s
18da0 79 6d 62 6f 6c 2d 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 ymbol-name.sym).'face.font-lock-
18dc0 6b 65 79 77 6f 72 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 keyword-face)...................
18de0 20 20 20 20 20 20 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 .......(mapconcat.(-lambda.((_.d
18e00 65 73 63 20 5f 29 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 esc._)).desc)...................
18e20 20 20 20 20 20 20 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 ..................choices."./.")
18e40 29 29 0a 20 20 20 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 ))..........(chars.(mapcar.(-lam
18e60 62 64 61 20 28 28 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 bda.((_._.char)).char)..........
18e80 20 20 20 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 ...............choices))........
18ea0 20 20 28 6c 6f 6f 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 ..(lookup.(mapcar.(-lambda.((fn.
18ec0 5f 20 63 68 61 72 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 _.char)).(cons.char.fn))........
18ee0 20 20 20 20 20 20 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 ..................choices)).....
18f00 20 20 20 20 20 28 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 .....(input.(read-char-choice.pr
18f20 6f 6d 70 74 20 63 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 ompt.chars))).....(funcall.(alis
18f40 74 2d 67 65 74 20 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 t-get.input.lookup).sym)))..;;;#
18f60 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 73 79 6d 62 6f 6c ##autoload.(defun.helpful-symbol
18f80 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 72 20 53 59 4d 42 4f .(symbol)..."Show.help.for.SYMBO
18fa0 4c 2c 20 61 20 76 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 L,.a.variable,.function,.macro,.
18fc0 6f 72 20 66 61 63 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 or.face...See.also.`helpful-call
18fe0 61 62 6c 65 27 20 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 able'.and.`helpful-variable'."..
19000 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 6c 2d .(interactive....(list.(helpful-
19020 2d 72 65 61 64 2d 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 -read-symbol..........."Symbol:.
19040 22 0a 20 20 20 20 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 "...........(helpful--symbol-at-
19060 70 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 62 6f 75 6e point)...........#'helpful--boun
19080 64 2d 70 29 29 29 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 d-p)))...(let.(choices).....(whe
190a0 6e 2d 6c 65 74 20 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 n-let.(c-var-sym.(helpful--conve
190c0 72 74 2d 63 2d 6e 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 rt-c-name.symbol.t)).......(push
190e0 20 28 6c 69 73 74 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 .(list.(lambda.(_).(helpful-vari
19100 61 62 6c 65 20 63 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 able.c-var-sym))................
19120 20 20 20 22 63 2d 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 ..."c-style.[V]ariable".?V).....
19140 20 20 20 20 20 20 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 ........choices)).....(when-let.
19160 28 63 2d 66 6e 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 61 (c-fn-sym.(helpful--convert-c-na
19180 6d 65 20 73 79 6d 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 me.symbol.nil)).......(push.(lis
191a0 74 20 28 6c 61 6d 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 t.(lambda.(_).(helpful-callable.
191c0 63 2d 66 6e 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 c-fn-sym))..................."c-
191e0 73 74 79 6c 65 20 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 style.[F]unction".?F)...........
19200 20 20 63 68 6f 69 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 ..choices)).....(when.(fboundp.s
19220 79 6d 62 6f 6c 29 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 ymbol).......(push.(list.#'helpf
19240 75 6c 2d 63 61 6c 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 ul-callable."[c]allable".?c).cho
19260 69 63 65 73 29 29 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 ices)).....(when.(boundp.symbol)
19280 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 76 61 72 .......(push.(list.#'helpful-var
192a0 69 61 62 6c 65 20 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 iable."[v]ariable".?v).choices))
192c0 0a 20 20 20 20 28 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 .....(when.(facep.symbol).......
192e0 28 70 75 73 68 20 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 (push.(list.(lambda.(face)......
19300 20 20 20 20 20 20 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 ...............(describe-face.fa
19320 63 65 29 0a 20 20 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 ce).....................(funcall
19340 20 68 65 6c 70 66 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 .helpful-switch-buffer-function.
19360 28 68 65 6c 70 2d 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 (help-buffer))).................
19380 20 20 22 5b 66 5d 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 .."[f]ace".?f).............choic
193a0 65 73 29 29 0a 20 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 es)).....(cond......((null.choic
193c0 65 73 29 0a 20 20 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 es).......(user-error."Not.bound
193e0 3a 20 25 53 22 20 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 :.%S".symbol))......((=.1.(lengt
19400 68 20 63 68 6f 69 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 h.choices)).......(funcall.(caar
19420 20 63 68 6f 69 63 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 .choices).symbol))......(t.(help
19440 66 75 6c 2d 2d 64 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 ful--disambiguate.symbol.choices
19460 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 65 6c )))))..;;;###autoload.(defun.hel
19480 70 66 75 6c 2d 76 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 pful-variable.(symbol)..."Show.h
194a0 65 6c 70 20 66 6f 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 elp.for.variable.named.SYMBOL.".
194c0 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 6c ..(interactive....(list.(helpful
194e0 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 56 61 72 69 61 62 6c --read-symbol..........."Variabl
19500 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 76 61 72 69 61 62 6c e:."...........(helpful--variabl
19520 65 2d 61 74 2d 70 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 e-at-point)...........#'helpful-
19540 2d 76 61 72 69 61 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 -variable-p)))...(helpful--updat
19560 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 6e 69 6c 29 29 e-and-switch-buffer.symbol.nil))
19580 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 61 74 2d 70 6f ..(defun.helpful--variable-at-po
195a0 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 74 68 65 20 73 79 6d int-exactly.()..."Return.the.sym
195c0 62 6f 6c 20 61 74 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 bol.at.point,.if.it's.a.bound.va
195e0 72 69 61 62 6c 65 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 riable."...(let.((var.(variable-
19600 61 74 2d 70 6f 69 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 at-point))).....;;.`variable-at-
19620 70 6f 69 6e 74 27 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 point'.uses.0.rather.than.nil.to
19640 20 73 69 67 6e 69 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 .signify.no.symbol.....;;.at.poi
19660 6e 74 20 28 70 72 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 nt.(presumably.because.'nil.is.a
19680 20 73 79 6d 62 6f 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 .symbol)......(unless.(symbolp.v
196a0 61 72 29 0a 20 20 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 ar).......(setq.var.nil)).....(w
196c0 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 61 72 29 0a 20 20 hen.(helpful--variable-p.var)...
196e0 20 20 20 20 76 61 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 ....var)))..(defun.helpful--vari
19700 61 62 6c 65 2d 64 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 able-defined-at-point.()..."Retu
19720 72 6e 20 74 68 65 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 rn.the.variable.defined.in.the.f
19740 6f 72 6d 20 65 6e 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 orm.enclosing.point."...;;.TODO:
19760 20 64 6f 20 74 68 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 .do.the.same.thing.if.point.is.j
19780 75 73 74 20 62 65 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 ust.before.a.top-level.form....(
197a0 73 61 76 65 2d 65 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 save-excursion.....(save-restric
197c0 74 69 6f 6e 0a 20 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 tion.......(widen).......(let*.(
197e0 28 70 70 73 73 20 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 (ppss.(syntax-ppss))............
19800 20 20 28 73 65 78 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 ..(sexp-start.(nth.1.ppss)).....
19820 20 20 20 20 20 20 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 .........sexp).........(when.sex
19840 70 2d 73 74 61 72 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 p-start...........(goto-char.sex
19860 70 2d 73 74 61 72 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 p-start)...........(setq.sexp.(c
19880 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ondition-case.nil...............
198a0 20 20 20 20 20 20 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 ...........(read.(current-buffer
198c0 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 28 65 72 72 6f 72 ))........................(error
198e0 20 6e 69 6c 29 29 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 .nil)))...........(when.(memq.(c
19900 61 72 2d 73 61 66 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 ar-safe.sexp)...................
19920 20 20 20 20 28 6c 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 ....(list.'defvar.'defvar-local.
19940 27 64 65 66 63 75 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 'defcustom.'defconst))..........
19960 20 20 20 28 6e 74 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 ...(nth.1.sexp)))))))..(defun.he
19980 6c 70 66 75 6c 2d 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 lpful--variable-at-point.()..."R
199a0 65 74 75 72 6e 20 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 eturn.the.variable.exactly.under
199c0 20 70 6f 69 6e 74 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 .point,.or.defined.at.point."...
199e0 28 6c 65 74 20 28 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 (let.((var.(helpful--variable-at
19a00 2d 70 6f 69 6e 74 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 -point-exactly))).....(if.var...
19a20 20 20 20 20 20 20 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 ......var.......(let.((var.(help
19a40 66 75 6c 2d 2d 76 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 ful--variable-defined-at-point))
19a60 29 0a 20 20 20 20 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 ).........(when.(helpful--variab
19a80 6c 65 2d 70 20 76 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 le-p.var)...........var)))))..(d
19aa0 65 66 75 6e 20 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 20 efun.helpful--callable-at-point.
19ac0 28 29 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 6e 74 ()...(let.((sym.(symbol-at-point
19ae0 29 29 0a 20 20 20 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 )).........(enclosing-sym.(funct
19b00 69 6f 6e 2d 63 61 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 ion-called-at-point))).....(if.(
19b20 66 62 6f 75 6e 64 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 fboundp.sym).........sym.......e
19b40 6e 63 6c 6f 73 69 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 nclosing-sym)))..(defun.helpful-
19b60 2d 73 79 6d 62 6f 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 -symbol-at-point-exactly.()..."R
19b80 65 74 75 72 6e 20 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 eturn.the.symbol.at.point,.if.it
19ba0 27 73 20 62 6f 75 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 's.bound."...(let.((sym.(symbol-
19bc0 61 74 2d 70 6f 69 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 at-point))).....(when.(helpful--
19be0 62 6f 75 6e 64 2d 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 bound-p.sym).......sym)))..(defu
19c00 6e 20 68 65 6c 70 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 n.helpful--symbol-at-point.()...
19c20 22 46 69 6e 64 20 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 "Find.the.most.relevant.symbol.a
19c40 74 20 6f 72 20 61 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 t.or.around.point..Returns.nil.i
19c60 66 20 6e 6f 74 68 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 f.nothing.found."...(or....(help
19c80 66 75 6c 2d 2d 73 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 ful--symbol-at-point-exactly)...
19ca0 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 0a 20 20 .(helpful--callable-at-point)...
19cc0 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 29 29 29 0a .(helpful--variable-at-point))).
19ce0 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 61 .;;;###autoload.(defun.helpful-a
19d00 74 2d 70 6f 69 6e 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 t-point.()..."Show.help.for.the.
19d20 73 79 6d 62 6f 6c 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 symbol.at.point."...(interactive
19d40 29 0a 20 20 28 2d 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 )...(-if-let.(symbol.(helpful--s
19d60 79 6d 62 6f 6c 2d 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 ymbol-at-point)).......(helpful-
19d80 73 79 6d 62 6f 6c 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 symbol.symbol).....(user-error."
19da0 54 68 65 72 65 20 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 There.is.no.symbol.at.point.")))
19dc0 0a 0a 28 64 65 66 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 ..(defun.helpful--imenu-index.()
19de0 0a 20 20 22 52 65 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 ..."Return.a.list.of.headings.in
19e00 20 74 68 65 20 63 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 .the.current.buffer,.suitable.fo
19e20 72 0a 69 6d 65 6e 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 r.imenu."...(let.(headings).....
19e40 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 28 77 68 69 (goto-char.(point-min)).....(whi
19e60 6c 65 20 28 6e 6f 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 le.(not.(eobp)).......(when.(eq.
19e80 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 (get-text-property.(point).'face
19ea0 29 0a 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 68 65 61 64 69 ).................'helpful-headi
19ec0 6e 67 29 0a 20 20 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 ng).........(push..........(cons
19ee0 0a 20 20 20 20 20 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 ...........(buffer-substring-no-
19f00 70 72 6f 70 65 72 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 properties............(line-begi
19f20 6e 6e 69 6e 67 2d 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 nning-position).(line-end-positi
19f40 6f 6e 29 29 0a 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 70 on))...........(line-beginning-p
19f60 6f 73 69 74 69 6f 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 osition))..........headings))...
19f80 20 20 20 20 28 66 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 ....(forward-line)).....(nrevers
19fa0 65 20 68 65 61 64 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 e.headings)))..(defun.helpful--f
19fc0 6c 61 73 68 2d 72 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 lash-region.(start.end)..."Tempo
19fe0 72 61 72 69 6c 79 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 rarily.highlight.region.from.STA
1a000 52 54 20 74 6f 20 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 RT.to.END."...(let.((overlay.(ma
1a020 6b 65 2d 6f 76 65 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 ke-overlay.start.end))).....(ove
1a040 72 6c 61 79 2d 70 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 rlay-put.overlay.'face.'highligh
1a060 74 29 0a 20 20 20 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 t).....(run-with-timer.1.5.nil.'
1a080 64 65 6c 65 74 65 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 delete-overlay.overlay)))..(defu
1a0a0 6e 20 68 65 6c 70 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 n.helpful-visit-reference.()..."
1a0c0 47 6f 20 74 6f 20 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 Go.to.the.reference.at.point."..
1a0e0 20 28 69 6e 74 65 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 .(interactive)...(let*.((sym.hel
1a100 70 66 75 6c 2d 2d 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 pful--sym)..........(path.(get-t
1a120 65 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 61 ext-property.(point).'helpful-pa
1a140 74 68 29 29 0a 20 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 th))..........(pos.(get-text-pro
1a160 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 29 29 0a 20 20 20 perty.(point).'helpful-pos))....
1a180 20 20 20 20 20 20 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 ......(pos-is-start.(get-text-pr
1a1a0 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 2d 69 73 2d 73 operty.(point).'helpful-pos-is-s
1a1c0 74 61 72 74 29 29 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 tart))).....(when.(and.path.pos)
1a1e0 0a 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 61 20 .......;;.If.we're.looking.at.a.
1a200 73 6f 75 72 63 65 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 source.excerpt,.calculate.the.of
1a220 66 73 65 74 20 6f 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 fset.of.......;;.point,.so.we.do
1a240 6e 27 74 20 6a 75 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 n't.just.go.the.start.of.the.exc
1a260 65 72 70 74 2e 0a 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 erpt........(when.pos-is-start..
1a280 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 .......(save-excursion..........
1a2a0 20 28 6c 65 74 20 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 .(let.((offset.0)).............(
1a2c0 77 68 69 6c 65 20 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 while.(and.....................(
1a2e0 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 get-text-property.(point).'helpf
1a300 75 6c 2d 70 6f 73 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 ul-pos).....................(not
1a320 20 28 65 6f 62 70 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 .(eobp)))...............(backwar
1a340 64 2d 63 68 61 72 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 d-char.1)...............(setq.of
1a360 66 73 65 74 20 28 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 fset.(1+.offset))).............;
1a380 3b 20 4f 6e 20 74 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 ;.On.the.last.iteration.we.moved
1a3a0 20 6f 75 74 73 69 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 .outside.the.source.............
1a3c0 3b 3b 20 65 78 63 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 ;;.excerpt,.so.we.overcounted.by
1a3e0 20 6f 6e 65 20 63 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 .one.character..............(set
1a400 71 20 6f 66 66 73 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 q.offset.(1-.offset))...........
1a420 20 20 20 3b 3b 20 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 ...;;.Set.POS.so.we.go.to.exactl
1a440 79 20 74 68 65 20 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 y.the.place.in.the.source.......
1a460 20 20 20 20 20 20 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 ......;;.code.where.point.was.in
1a480 20 74 68 65 20 68 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 .the.helpful.excerpt............
1a4a0 20 20 28 73 65 74 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 ..(setq.pos.(+.pos.offset)))))..
1a4c0 20 20 20 20 20 20 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 ......(find-file.path).......(he
1a4e0 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 29 0a 20 20 20 20 lpful--goto-char-widen.pos).....
1a500 20 20 28 72 65 63 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 ..(recenter.0).......(save-excur
1a520 73 69 6f 6e 0a 20 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 sion.........(let.((defun-end.(s
1a540 63 61 6e 2d 73 65 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 can-sexps.(point).1)))..........
1a560 20 28 77 68 69 6c 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 .(while.(re-search-forward......
1a580 20 20 20 20 20 20 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 .............(rx-to-string.`(seq
1a5a0 20 73 79 6d 62 6f 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 .symbol-start.,(symbol-name.sym)
1a5c0 20 73 79 6d 62 6f 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 .symbol-end))...................
1a5e0 64 65 66 75 6e 2d 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 defun-end.t).............(helpfu
1a600 6c 2d 2d 66 6c 61 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 l--flash-region.(match-beginning
1a620 20 30 29 20 28 6d 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 .0).(match-end.0))))))))..(defun
1a640 20 68 65 6c 70 66 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 .helpful-kill-buffers.()..."Kill
1a660 20 61 6c 6c 20 60 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 .all.`helpful-mode'.buffers...Se
1a680 65 20 61 6c 73 6f 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 e.also.`helpful-max-buffers'."..
1a6a0 20 28 69 6e 74 65 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 .(interactive)...(dolist.(buffer
1a6c0 20 28 62 75 66 66 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 .(buffer-list)).....(when.(eq.(b
1a6e0 75 66 66 65 72 2d 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 uffer-local-value.'major-mode.bu
1a700 66 66 65 72 29 20 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 ffer).'helpful-mode).......(kill
1a720 2d 62 75 66 66 65 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 -buffer.buffer))))..(defvar.help
1a740 66 75 6c 2d 6d 6f 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 ful-mode-map...(let*.((map.(make
1a760 2d 73 70 61 72 73 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 -sparse-keymap))).....(define-ke
1a780 79 20 6d 61 70 20 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 y.map.(kbd."g").#'helpful-update
1a7a0 29 0a 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 76 ).....(define-key.map.[remap.rev
1a7c0 65 72 74 2d 62 75 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 ert-buffer].#'helpful-update)...
1a7e0 20 20 28 77 68 65 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 ..(when.(fboundp.'revert-buffer-
1a800 71 75 69 63 6b 29 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 quick).......(define-key.map.[re
1a820 6d 61 70 20 72 65 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 map.revert-buffer-quick].#'helpf
1a840 75 6c 2d 75 70 64 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 ul-update))......(define-key.map
1a860 20 28 6b 62 64 20 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 .(kbd."RET").#'helpful-visit-ref
1a880 65 72 65 6e 63 65 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 erence)......(define-key.map.(kb
1a8a0 64 20 22 54 41 42 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 d."TAB").#'forward-button).....(
1a8c0 64 65 66 69 6e 65 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 define-key.map.(kbd."<backtab>")
1a8e0 20 23 27 62 61 63 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 .#'backward-button)......(define
1a900 2d 6b 65 79 20 6d 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 -key.map.(kbd."n").#'forward-but
1a920 74 6f 6e 29 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 70 ton).....(define-key.map.(kbd."p
1a940 22 29 20 23 27 62 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 ").#'backward-button).....map)..
1a960 20 22 4b 65 79 6d 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 ."Keymap.for.`helpful-mode'.")..
1a980 28 64 65 63 6c 61 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 (declare-function.bookmark-prop-
1a9a0 67 65 74 20 22 62 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 get."bookmark".(bookmark.prop)).
1a9c0 28 64 65 63 6c 61 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 (declare-function.bookmark-make-
1a9e0 72 65 63 6f 72 64 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 record-default."bookmark".......
1aa00 20 20 20 20 20 20 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 ............(&optional.no-file.n
1aa20 6f 2d 63 6f 6e 74 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 o-context.posn)).;;.Ensure.this.
1aa40 76 61 72 69 61 62 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 variable.is.defined.even.if.book
1aa60 6d 61 72 6b 2e 65 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 mark.el.isn't.loaded.;;.yet..Thi
1aa80 73 20 66 6f 6c 6c 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 s.follows.the.pattern.in.help-mo
1aaa0 64 65 2e 65 6c 2e 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 de.el.gz..;;.TODO:.find.a.cleane
1aac0 72 20 73 6f 6c 75 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 r.solution..(defvar.bookmark-mak
1aae0 65 2d 72 65 63 6f 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 e-record-function)..(defun.helpf
1ab00 75 6c 2d 2d 61 64 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 ul--add-support-for-org-links.()
1ab20 0a 20 20 22 49 6d 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 ..."Improve.support.for.org.\"he
1ab40 6c 70 5c 22 20 6c 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 lp\".links.through.helpful."...(
1ab60 68 65 6c 70 66 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 helpful--support-storing-org-lin
1ab80 6b 73 29 0a 20 20 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 ks)...(helpful--prefer-helpful-w
1aba0 68 65 6e 2d 66 6f 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 hen-following-org-link))..(defun
1abc0 20 68 65 6c 70 66 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 .helpful--support-storing-org-li
1abe0 6e 6b 73 20 28 29 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 nks.()..."Make.`org-store-link'.
1ac00 69 6e 20 61 20 68 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 in.a.helpful.buffer.return.a.\"h
1ac20 65 6c 70 5c 22 20 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 elp\".link."...(when.(and.(fboun
1ac40 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 20 20 dp.'org-link-set-parameters)....
1ac60 20 20 20 20 20 20 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 ..........(not.(-contains-p.(org
1ac80 2d 6c 69 6e 6b 2d 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 -link-types)."helpful"))).....(o
1aca0 72 67 2d 6c 69 6e 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 rg-link-set-parameters."helpful"
1acc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 ..............................:s
1ace0 74 6f 72 65 20 23 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 tore.#'helpful--org-link-store))
1ad00 29 0a 0a 28 64 65 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 )..(defun.helpful--org-link-stor
1ad20 65 20 28 29 0a 20 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 e.()..."Store.\"help\".type.link
1ad40 20 77 68 65 6e 20 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 .when.in.a.helpful.buffer."...(w
1ad60 68 65 6e 20 28 64 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 hen.(derived-mode-p.'helpful-mod
1ad80 65 29 0a 20 20 20 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 e).....;;.Create.a."help".link.i
1ada0 6e 73 74 65 61 64 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 nstead.of.a.dedicated."helpful".
1adc0 6c 69 6e 6b 3a 20 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 link:.the.....;;.author.of.the.O
1ade0 72 67 20 64 6f 63 75 6d 65 6e 74 20 75 73 65 73 20 68 65 6c 70 66 75 6c 2c 20 62 75 74 20 74 68 rg.document.uses.helpful,.but.th
1ae00 69 73 20 69 73 20 6e 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 is.is.not.....;;.necessarily.the
1ae20 20 63 61 73 65 20 6f 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 .case.of.the.reader.of.the.docum
1ae40 65 6e 74 2e 0a 20 20 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 ent......(org-link-store-props.:
1ae60 74 79 70 65 20 22 68 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 type."help".....................
1ae80 20 20 20 20 20 20 3a 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 ......:link.(format."help:%s".he
1aea0 6c 70 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 20 20 20 20 lpful--sym).....................
1aec0 20 20 20 20 20 20 3a 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 ......:description.nil)))..(defu
1aee0 6e 20 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 n.helpful--prefer-helpful-when-f
1af00 6f 6c 6c 6f 77 69 6e 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 ollowing-org-link.()..."Prefer.h
1af20 65 6c 70 66 75 6c 20 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 elpful.when.using.`org-open-at-p
1af40 6f 69 6e 74 27 20 6f 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 oint'.on.a.\"help\".link."...(wh
1af60 65 6e 20 28 66 62 6f 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 en.(fboundp.'org-link-set-parame
1af80 74 65 72 73 29 0a 20 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 ters).....(let.((follow-function
1afa0 20 28 6f 72 67 2d 6c 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 .(org-link-get-parameter."help".
1afc0 3a 66 6f 6c 6c 6f 77 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 :follow))).......(when.(not.(equ
1afe0 61 6c 20 66 6f 6c 6c 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 al.follow-function.#'helpful--or
1b000 67 2d 6c 69 6e 6b 2d 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 g-link-follow)).........(org-lin
1b020 6b 2d 73 65 74 2d 70 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 k-set-parameters."help".........
1b040 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 66 6f 6c 6c 6f 77 .........................:follow
1b060 20 23 27 68 65 6c 70 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 .#'helpful--org-link-follow)))))
1b080 0a 0a 28 64 65 66 75 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 ..(defun.helpful--org-link-follo
1b0a0 77 20 28 6c 69 6e 6b 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 w.(link._)...(helpful-symbol.(in
1b0c0 74 65 72 6e 20 6c 69 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 tern.link)))..(defun.helpful--ou
1b0e0 74 6c 69 6e 65 2d 66 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 tline-function.(&optional.bound.
1b100 6d 6f 76 65 20 62 61 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 move.backward.looking-at)..."`ou
1b120 74 6c 69 6e 65 2d 73 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 tline-search-function'.for.`help
1b140 66 75 6c 2d 6d 6f 64 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 ful-mode`..See.documentation.of.
1b160 60 6f 75 74 6c 69 6e 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 `outline-search-function'.for.BO
1b180 55 4e 44 2c 20 4d 4f 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 UND,.MOVE,.BACKWARD.and.LOOKING-
1b1a0 41 54 2e 22 0a 20 20 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 AT."...(if.looking-at.......(eq.
1b1c0 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 70 65 'helpful-heading.(get-text-prope
1b1e0 72 74 79 20 28 70 6f 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 rty.(point).'face)).....(let.((h
1b200 65 61 64 69 6e 67 2d 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 eading-found.nil)...........(bou
1b220 6e 64 20 28 69 66 20 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 nd.(if.bound.bound.(if.backward.
1b240 28 70 6f 69 6e 74 2d 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 (point-min).(point-max))))).....
1b260 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 28 77 68 65 6e 20 ..(save-excursion.........(when.
1b280 28 65 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 (eq.'helpful-heading.(get-text-p
1b2a0 72 6f 70 65 72 74 79 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 roperty.(point).'face)).........
1b2c0 20 20 28 66 6f 72 77 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 ..(forward-line.(if.backward.-1.
1b2e0 31 29 29 29 0a 20 20 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 1))).........(if.backward.......
1b300 20 20 20 20 20 20 28 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 ......(while.(not.(or.(eq.(point
1b320 29 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 20 20 20 20 20 20 ).bound)........................
1b340 20 20 20 20 20 28 65 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 .....(eq.'helpful-heading.(get-t
1b360 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 29 29 29 0a 20 ext-property.(point).'face))))..
1b380 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 6f 72 20 28 70 72 65 .............(goto-char.(or.(pre
1b3a0 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f vious-single-property-change.(po
1b3c0 69 6e 74 29 20 27 66 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 int).'face.nil.bound)...........
1b3e0 20 20 20 20 20 20 20 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 ...................bound))).....
1b400 20 20 20 20 20 20 28 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 ......(goto-char.(or.(text-prope
1b420 72 74 79 2d 61 6e 79 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 rty-any.(point).bound.'face.'hel
1b440 70 66 75 6c 2d 68 65 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 pful-heading)...................
1b460 20 20 20 20 20 20 20 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 .......bound))).........(when.(e
1b480 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
1b4a0 70 65 72 74 79 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 perty.(point).'face))...........
1b4c0 28 73 65 74 71 20 68 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 (setq.heading-found.(point))))..
1b4e0 20 20 20 20 20 28 69 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 .....(if.heading-found..........
1b500 20 28 70 72 6f 67 6e 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 .(progn.............(goto-char.h
1b520 65 61 64 69 6e 67 2d 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 eading-found).............(set-m
1b540 61 74 63 68 2d 64 61 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 atch-data.(list.heading-found.he
1b560 61 64 69 6e 67 2d 66 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 ading-found))).........(when.mov
1b580 65 0a 20 20 20 20 20 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 e...........(goto-char.bound).ni
1b5a0 6c 29 29 29 29 29 0a 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 l)))))..(define-derived-mode.hel
1b5c0 70 66 75 6c 2d 6d 6f 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 pful-mode.special-mode."Helpful"
1b5e0 0a 20 20 22 4d 61 6a 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 ..."Major.mode.for.*Helpful*.buf
1b600 66 65 72 73 2e 22 0a 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 fers."...(add-hook.'xref-backend
1b620 2d 66 75 6e 63 74 69 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 -functions.#'elisp--xref-backend
1b640 20 6e 69 6c 20 74 29 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 .nil.t)....(setq.imenu-create-in
1b660 64 65 78 2d 66 75 6e 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 dex-function.#'helpful--imenu-in
1b680 64 65 78 29 0a 20 20 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 dex)...;;.Prevent.imenu.converti
1b6a0 6e 67 20 22 53 6f 75 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 ng."Source.Code".to."Source.Code
1b6c0 22 2e 0a 20 20 28 73 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 "....(setq-local.imenu-space-rep
1b6e0 6c 61 63 65 6d 65 6e 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 lacement.".")....;;.Enable.users
1b700 20 74 6f 20 62 6f 6f 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 .to.bookmark.helpful.buffers....
1b720 28 73 65 74 20 28 6d 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 (set.(make-local-variable.'bookm
1b740 61 72 6b 2d 6d 61 6b 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 ark-make-record-function).......
1b760 20 23 27 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 64 .#'helpful--bookmark-make-record
1b780 29 0a 0a 20 20 3b 3b 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 )....;;.Enable.outline.support.f
1b7a0 6f 72 20 45 6d 61 63 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 or.Emacs.29.and.newer...(unless.
1b7c0 28 3c 20 65 6d 61 63 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 (<.emacs-major-version.29).....(
1b7e0 73 65 74 71 2d 6c 6f 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 setq-local.outline-search-functi
1b800 6f 6e 20 23 27 68 65 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 on.#'helpful--outline-function))
1b820 0a 0a 20 20 3b 3b 20 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 ....;;.This.function.should.norm
1b840 61 6c 6c 79 20 6f 6e 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 ally.only.be.called.once.after.O
1b860 72 67 20 61 6e 64 0a 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 rg.and...;;.helpful.are.loaded..
1b880 54 6f 20 61 76 6f 69 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 To.avoid.using.`eval-after-load'
1b8a0 20 28 77 68 69 63 68 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 .(which.is...;;.only.recommended
1b8c0 20 69 6e 20 75 73 65 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 .in.user.init.files),.the.functi
1b8e0 6f 6e 20 69 73 20 63 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 on.is.called.each...;;.time.the.
1b900 6d 61 6a 6f 72 20 6d 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 major.mode.is.used....(helpful--
1b920 61 64 64 2d 73 75 70 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 add-support-for-org-links))..(pr
1b940 6f 76 69 64 65 20 27 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 ovide.'helpful).;;;.helpful.el.e
1b960 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nds.here........................
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 ................................