summaryrefslogtreecommitdiff
path: root/localrepo/helpful-20231028.516.tar
blob: 1191a1663cc7fc7dacb881c5c29bfaf2673d2894 (plain)
ofshex dumpascii
0000 68 65 6c 70 66 75 6c 2d 32 30 32 33 31 30 32 38 2e 35 31 36 2f 00 00 00 00 00 00 00 00 00 00 00 helpful-20231028.516/...........
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 33 36 35 00 20 35 00 00 00 0000000.00000000000.012365..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 68 65 6c 70 66 75 6c 2d 32 30 32 33 31 30 32 38 2e 35 31 36 2f 68 65 6c 70 66 75 6c 2e 65 6c 00 helpful-20231028.516/helpful.el.
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 33 32 37 35 34 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 36 33 00 20 30 00 00 00 0327542.00000000000.014363..0...
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 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
0420 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
0440 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.(
0460 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..;;
0480 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
04a0 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
04c0 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
04e0 73 3a 20 68 65 6c 70 2c 20 6c 69 73 70 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 32 32 0a 3b s:.help,.lisp.;;.Version:.0.22.;
0500 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 35 22 ;.Package-Requires:.((emacs."25"
0520 29 20 28 64 61 73 68 20 22 32 2e 31 38 2e 30 22 29 20 28 73 20 22 31 2e 31 31 2e 30 22 29 20 28 ).(dash."2.18.0").(s."1.11.0").(
0540 66 20 22 30 2e 32 30 2e 30 22 29 20 28 65 6c 69 73 70 2d 72 65 66 73 20 22 31 2e 32 22 29 29 0a f."0.20.0").(elisp-refs."1.2")).
0560 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 .;;.This.program.is.free.softwar
0580 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f e;.you.can.redistribute.it.and/o
05a0 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f r.modify.;;.it.under.the.terms.o
05c0 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 f.the.GNU.General.Public.License
05e0 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 .as.published.by.;;.the.Free.Sof
0600 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e tware.Foundation,.either.version
0620 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 .3.of.the.License,.or.;;.(at.you
0640 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b r.option).any.later.version...;;
0660 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 .This.program.is.distributed.in.
0680 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c the.hope.that.it.will.be.useful,
06a0 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 .;;.but.WITHOUT.ANY.WARRANTY;.wi
06c0 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 thout.even.the.implied.warranty.
06e0 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 of.;;.MERCHANTABILITY.or.FITNESS
0700 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 .FOR.A.PARTICULAR.PURPOSE...See.
0720 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 the.;;.GNU.General.Public.Licens
0740 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 e.for.more.details...;;.You.shou
0760 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
0780 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
07a0 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 ng.with.this.program...If.not,.s
07c0 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f ee.<http://www.gnu.org/licenses/
07e0 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 48 65 6c 70 66 75 6c 20 >...;;;.Commentary:..;;.Helpful.
0800 69 73 20 61 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 66 6f 72 20 2a 68 65 6c 70 2a 20 62 75 66 66 is.a.replacement.for.*help*.buff
0820 65 72 73 20 74 68 61 74 20 70 72 6f 76 69 64 65 73 20 6d 75 63 68 20 6d 6f 72 65 0a 3b 3b 20 63 ers.that.provides.much.more.;;.c
0840 6f 6e 74 65 78 74 75 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 54 6f 20 67 65 74 20 73 ontextual.information...To.get.s
0860 74 61 72 74 65 64 2c 20 74 72 79 3a 0a 3b 3b 20 60 4d 2d 78 20 68 65 6c 70 66 75 6c 2d 66 75 6e tarted,.try:.;;.`M-x.helpful-fun
0880 63 74 69 6f 6e 20 52 45 54 20 68 65 6c 70 66 75 6c 2d 66 75 6e 63 74 69 6f 6e 0a 3b 3b 0a 3b 3b ction.RET.helpful-function.;;.;;
08a0 20 54 68 65 20 66 75 6c 6c 20 73 65 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 79 6f 75 20 63 61 .The.full.set.of.commands.you.ca
08c0 6e 20 74 72 79 20 69 73 3a 0a 3b 3b 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 66 75 6e 63 74 69 n.try.is:.;;.;;.*.helpful-functi
08e0 6f 6e 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 63 6f 6d 6d 61 6e 64 0a 3b 3b 20 2a 20 68 65 6c on.;;.*.helpful-command.;;.*.hel
0900 70 66 75 6c 2d 6b 65 79 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 6d 61 63 72 6f 0a 3b 3b 20 2a pful-key.;;.*.helpful-macro.;;.*
0920 20 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 76 .helpful-callable.;;.*.helpful-v
0940 61 72 69 61 62 6c 65 0a 3b 3b 20 2a 20 68 65 6c 70 66 75 6c 2d 61 74 2d 70 6f 69 6e 74 0a 3b 3b ariable.;;.*.helpful-at-point.;;
0960 0a 3b 3b 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 73 63 72 .;;.For.more.information.and.scr
0980 65 65 6e 73 68 6f 74 73 2c 20 73 65 65 0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e eenshots,.see.;;.https://github.
09a0 63 6f 6d 2f 77 69 6c 66 72 65 64 2f 68 65 6c 70 66 75 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a com/wilfred/helpful..;;;.Code:..
09c0 28 72 65 71 75 69 72 65 20 27 65 6c 69 73 70 2d 72 65 66 73 29 0a 28 72 65 71 75 69 72 65 20 27 (require.'elisp-refs).(require.'
09e0 68 65 6c 70 29 0a 28 72 65 71 75 69 72 65 20 27 68 65 6c 70 2d 66 6e 73 29 0a 28 72 65 71 75 69 help).(require.'help-fns).(requi
0a00 72 65 20 27 64 61 73 68 29 0a 28 72 65 71 75 69 72 65 20 27 73 29 0a 28 72 65 71 75 69 72 65 20 re.'dash).(require.'s).(require.
0a20 27 66 29 0a 28 72 65 71 75 69 72 65 20 27 66 69 6e 64 2d 66 75 6e 63 29 0a 28 72 65 71 75 69 72 'f).(require.'find-func).(requir
0a40 65 20 27 6e 61 64 76 69 63 65 29 0a 28 72 65 71 75 69 72 65 20 27 69 6e 66 6f 2d 6c 6f 6f 6b 29 e.'nadvice).(require.'info-look)
0a60 0a 28 72 65 71 75 69 72 65 20 27 65 64 65 62 75 67 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 61 .(require.'edebug).(require.'tra
0a80 63 65 29 0a 28 72 65 71 75 69 72 65 20 27 69 6d 65 6e 75 29 0a 28 72 65 71 75 69 72 65 20 27 63 ce).(require.'imenu).(require.'c
0aa0 63 2d 6c 61 6e 67 73 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d c-langs)..(declare-function.org-
0ac0 6c 69 6e 6b 2d 74 79 70 65 73 20 22 6f 6c 22 20 28 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e link-types."ol".()).(declare-fun
0ae0 63 74 69 6f 6e 20 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 2d 70 72 6f 70 73 20 22 6f 6c 22 20 ction.org-link-store-props."ol".
0b00 28 26 72 65 73 74 20 70 6c 69 73 74 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e (&rest.plist)).(declare-function
0b20 20 6f 72 67 2d 6c 69 6e 6b 2d 67 65 74 2d 70 61 72 61 6d 65 74 65 72 20 22 6f 6c 22 20 28 74 79 .org-link-get-parameter."ol".(ty
0b40 70 65 20 6b 65 79 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d pe.key))..(defvar-local.helpful-
0b60 2d 73 79 6d 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d -sym.nil).(defvar-local.helpful-
0b80 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 -callable-p.nil).(defvar-local.h
0ba0 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 elpful--associated-buffer.nil...
0bc0 22 54 68 65 20 62 75 66 66 65 72 20 62 65 69 6e 67 20 75 73 65 64 20 77 68 65 6e 20 73 68 6f 77 "The.buffer.being.used.when.show
0be0 69 6e 67 20 69 6e 73 70 65 63 74 69 6e 67 0a 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 ing.inspecting.buffer-local.vari
0c00 61 62 6c 65 73 2e 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d 2d ables.").(defvar-local.helpful--
0c20 73 74 61 72 74 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 62 75 66 66 65 72 20 77 start-buffer.nil..."The.buffer.w
0c40 65 20 77 65 72 65 20 6f 72 69 67 69 6e 61 6c 6c 79 20 63 61 6c 6c 65 64 20 66 72 6f 6d 2e 22 29 e.were.originally.called.from.")
0c60 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 .(defvar-local.helpful--view-lit
0c80 65 72 61 6c 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 73 68 6f 77 20 61 20 76 61 eral.nil..."Whether.to.show.a.va
0ca0 6c 75 65 20 61 73 20 61 20 6c 69 74 65 72 61 6c 2c 20 6f 72 20 61 20 70 72 65 74 74 79 20 69 6e lue.as.a.literal,.or.a.pretty.in
0cc0 74 65 72 61 63 74 69 76 65 0a 76 69 65 77 2e 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 teractive.view.").(defvar-local.
0ce0 68 65 6c 70 66 75 6c 2d 2d 66 69 72 73 74 2d 64 69 73 70 6c 61 79 20 74 0a 20 20 22 57 68 65 74 helpful--first-display.t..."Whet
0d00 68 65 72 20 74 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 74 68 69 73 20 her.this.is.the.first.time.this.
0d20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 20 68 61 73 20 62 65 65 6e 0a 64 69 73 70 6c 61 79 65 results.buffer.has.been.displaye
0d40 64 2e 0a 0a 4e 69 6c 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 27 72 65 20 72 65 66 72 65 73 68 d...Nil.means.that.we're.refresh
0d60 69 6e 67 2c 20 73 6f 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 63 6c 6f 62 62 65 72 ing,.so.we.don't.want.to.clobber
0d80 20 61 6e 79 0a 73 65 74 74 69 6e 67 73 20 63 68 61 6e 67 65 64 20 62 79 20 74 68 65 20 75 73 65 .any.settings.changed.by.the.use
0da0 72 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 68 65 6c 70 66 75 6c 20 6e 69 6c 0a 20 20 22 41 r.")..(defgroup.helpful.nil..."A
0dc0 20 72 69 63 68 20 68 65 6c 70 20 73 79 73 74 65 6d 20 77 69 74 68 20 63 6f 6e 74 65 78 74 75 61 .rich.help.system.with.contextua
0de0 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 3a 6c 69 6e 6b 20 27 28 75 72 6c 2d 6c 69 l.information."...:link.'(url-li
0e00 6e 6b 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 57 69 6c 66 72 65 64 2f 68 nk."https://github.com/Wilfred/h
0e20 65 6c 70 66 75 6c 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 68 65 6c 70 29 0a 0a 28 64 65 66 63 75 elpful")...:group.'help)..(defcu
0e40 73 74 6f 6d 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 0a 20 20 35 0a 20 20 22 stom.helpful-max-buffers...5..."
0e60 48 65 6c 70 66 75 6c 20 77 69 6c 6c 20 6b 69 6c 6c 20 74 68 65 20 6c 65 61 73 74 20 72 65 63 65 Helpful.will.kill.the.least.rece
0e80 6e 74 6c 79 20 75 73 65 64 20 48 65 6c 70 66 75 6c 20 62 75 66 66 65 72 0a 69 66 20 74 68 65 72 ntly.used.Helpful.buffer.if.ther
0ea0 65 20 61 72 65 20 6d 6f 72 65 20 74 68 61 6e 20 74 68 69 73 20 6d 61 6e 79 2e 0a 0a 54 6f 20 64 e.are.more.than.this.many...To.d
0ec0 69 73 61 62 6c 65 20 63 6c 65 61 6e 75 70 20 65 6e 74 69 72 65 6c 79 2c 20 73 65 74 20 74 68 69 isable.cleanup.entirely,.set.thi
0ee0 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 6e 69 6c 2e 20 53 65 65 20 61 6c 73 6f 0a 60 68 65 6c s.variable.to.nil..See.also.`hel
0f00 70 66 75 6c 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 27 20 66 6f 72 20 61 20 6f 6e 65 2d 6f 66 66 pful-kill-buffers'.for.a.one-off
0f20 20 63 6c 65 61 6e 75 70 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e .cleanup."...:type.'(choice.(con
0f40 73 74 20 6e 69 6c 29 20 6e 75 6d 62 65 72 29 0a 20 20 3a 67 72 6f 75 70 20 27 68 65 6c 70 66 75 st.nil).number)...:group.'helpfu
0f60 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 65 6c 70 66 75 6c 2d 73 77 69 74 63 68 2d 62 75 l)..(defcustom.helpful-switch-bu
0f80 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 0a ffer-function...#'pop-to-buffer.
0fa0 20 20 22 46 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 .."Function.called.to.display.th
0fc0 65 20 2a 48 65 6c 70 66 75 6c 2a 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 e.*Helpful*.buffer."...:type.'fu
0fe0 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 68 65 6c 70 66 75 6c 29 0a 0a 28 64 65 66 63 nction...:group.'helpful)..(defc
1000 75 73 74 6f 6d 20 68 65 6c 70 66 75 6c 2d 73 65 74 2d 76 61 72 69 61 62 6c 65 2d 66 75 6e 63 74 ustom.helpful-set-variable-funct
1020 69 6f 6e 0a 20 20 28 69 66 20 28 3c 20 32 39 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 ion...(if.(<.29.emacs-major-vers
1040 69 6f 6e 29 20 23 27 73 65 74 6f 70 74 20 23 27 73 65 74 71 29 0a 20 20 22 46 75 6e 63 74 69 6f ion).#'setopt.#'setq)..."Functio
1060 6e 20 75 73 65 64 20 62 79 20 60 68 65 6c 70 66 75 6c 2d 2d 73 65 74 27 20 74 6f 20 69 6e 74 65 n.used.by.`helpful--set'.to.inte
1080 72 61 63 74 69 76 65 6c 79 20 73 65 74 20 76 61 72 69 61 62 6c 65 73 2e 22 0a 20 20 3a 74 79 70 ractively.set.variables."...:typ
10a0 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 68 65 6c 70 66 75 6c 29 0a 0a e.'function...:group.'helpful)..
10c0 3b 3b 20 54 4f 44 4f 3a 20 65 78 70 6c 6f 72 65 20 77 68 65 74 68 65 72 20 6d 6f 72 65 20 62 61 ;;.TODO:.explore.whether.more.ba
10e0 73 69 63 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 69 73 20 66 61 73 74 20 65 6e 6f 75 67 68 20 sic.highlighting.is.fast.enough.
1100 74 6f 0a 3b 3b 20 68 61 6e 64 6c 65 20 6c 61 72 67 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 20 53 to.;;.handle.larger.functions..S
1120 65 65 20 60 63 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 69 6e 69 74 27 20 61 6e 64 20 69 74 73 20 75 73 ee.`c-font-lock-init'.and.its.us
1140 65 20 6f 66 0a 3b 3b 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 2d 31 2e 0a 28 64 e.of.;;.font-lock-keywords-1..(d
1160 65 66 63 6f 6e 73 74 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 67 68 74 20 35 30 efconst.helpful-max-highlight.50
1180 30 30 0a 20 20 22 44 6f 6e 27 74 20 68 69 67 68 6c 69 67 68 74 20 63 6f 64 65 20 77 69 74 68 20 00..."Don't.highlight.code.with.
11a0 6d 6f 72 65 20 74 68 61 6e 20 74 68 69 73 20 6d 61 6e 79 20 63 68 61 72 61 63 74 65 72 73 2e 0a more.than.this.many.characters..
11c0 0a 54 68 69 73 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 75 73 65 64 20 66 6f 72 .This.is.currently.only.used.for
11e0 20 43 20 63 6f 64 65 2c 20 61 73 20 6c 69 73 70 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 73 65 .C.code,.as.lisp.highlighting.se
1200 65 6d 73 20 74 6f 20 62 65 20 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 2e 20 54 68 69 73 20 6d ems.to.be.more.efficient..This.m
1220 61 79 20 63 68 61 6e 67 65 20 61 67 61 69 6e 20 69 6e 20 66 75 74 75 72 65 2e 0a 0a 53 65 65 20 ay.change.again.in.future...See.
1240 60 74 68 69 73 2d 63 6f 6d 6d 61 6e 64 27 20 61 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 `this-command'.as.an.example.of.
1260 61 20 6c 61 72 67 65 20 70 69 65 63 65 20 6f 66 20 43 20 63 6f 64 65 20 74 68 61 74 0a 63 61 6e a.large.piece.of.C.code.that.can
1280 20 6d 61 6b 65 20 48 65 6c 70 66 75 6c 20 76 65 72 79 20 73 6c 6f 77 2e 22 29 0a 0a 28 64 65 66 .make.Helpful.very.slow.")..(def
12a0 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e 64 2d 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 20 63 61 un.helpful--kind-name.(symbol.ca
12c0 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 77 68 61 74 20 6b 69 6e 64 20 llable-p)..."Describe.what.kind.
12e0 6f 66 20 73 79 6d 62 6f 6c 20 74 68 69 73 20 69 73 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 of.symbol.this.is."...(cond....(
1300 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 22 76 61 72 69 61 62 6c 65 22 29 0a 20 20 20 (not.callable-p)."variable")....
1320 28 28 63 6f 6d 6d 61 6e 64 70 20 73 79 6d 62 6f 6c 29 20 22 63 6f 6d 6d 61 6e 64 22 29 0a 20 20 ((commandp.symbol)."command")...
1340 20 28 28 6d 61 63 72 6f 70 20 73 79 6d 62 6f 6c 29 20 22 6d 61 63 72 6f 22 29 0a 20 20 20 28 28 .((macrop.symbol)."macro")....((
1360 66 75 6e 63 74 69 6f 6e 70 20 73 79 6d 62 6f 6c 29 20 22 66 75 6e 63 74 69 6f 6e 22 29 0a 20 20 functionp.symbol)."function")...
1380 20 28 28 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 70 20 73 79 6d 62 6f 6c 29 20 22 73 70 65 63 69 .((special-form-p.symbol)."speci
13a0 61 6c 20 66 6f 72 6d 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 75 66 al.form")))..(defun.helpful--buf
13c0 66 65 72 20 28 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 52 65 74 75 72 fer.(symbol.callable-p)..."Retur
13e0 6e 20 61 20 62 75 66 66 65 72 20 74 6f 20 73 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 53 59 4d 42 n.a.buffer.to.show.help.for.SYMB
1400 4f 4c 20 69 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 OL.in."...(let*.((current-buffer
1420 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 .(current-buffer))..........(buf
1440 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2a 68 65 6c 70 66 75 -name...........(format."*helpfu
1460 6c 20 25 73 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 l.%s*"...................(if.(sy
1480 6d 62 6f 6c 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mbolp.symbol)...................
14a0 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 ....(format."%s:.%s"............
14c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e ...................(helpful--kin
14e0 64 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 d-name.symbol.callable-p).......
1500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 62 6f 6c 29 0a ........................symbol).
1520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6c 61 6d 62 64 61 22 29 29 29 0a ...................."lambda"))).
1540 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 2d 6e 61 .........(buf.(get-buffer.buf-na
1560 6d 65 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 62 75 66 0a 20 20 20 20 20 20 3b 3b 20 49 me))).....(unless.buf.......;;.I
1580 66 20 77 65 20 6e 65 65 64 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 62 75 66 66 65 72 2c 20 f.we.need.to.create.the.buffer,.
15a0 65 6e 73 75 72 65 20 77 65 20 64 6f 6e 27 74 20 65 78 63 65 65 64 0a 20 20 20 20 20 20 3b 3b 20 ensure.we.don't.exceed.......;;.
15c0 60 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 27 20 62 79 20 6b 69 6c 6c 69 6e 67 `helpful-max-buffers'.by.killing
15e0 20 74 68 65 20 6c 65 61 73 74 20 72 65 63 65 6e 74 6c 79 20 75 73 65 64 2e 0a 20 20 20 20 20 20 .the.least.recently.used........
1600 28 77 68 65 6e 20 28 6e 75 6d 62 65 72 70 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 (when.(numberp.helpful-max-buffe
1620 72 73 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 75 66 66 65 72 73 20 28 62 75 66 rs).........(let*.((buffers.(buf
1640 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 fer-list))................(helpf
1660 75 6c 2d 62 75 66 73 20 28 2d 2d 66 69 6c 74 65 72 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d ul-bufs.(--filter.(with-current-
1680 62 75 66 66 65 72 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 buffer.it.......................
16a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 ...................(eq.major-mod
16c0 65 20 27 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.'helpful-mode))...............
16e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 73 .........................buffers
1700 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 62 75 66 66 65 72 2d 6c 69 73 ))................;;.`buffer-lis
1720 74 27 20 73 65 65 6d 73 20 74 6f 20 62 65 20 6f 72 64 65 72 65 64 20 62 79 20 6d 6f 73 74 20 72 t'.seems.to.be.ordered.by.most.r
1740 65 63 65 6e 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 76 69 73 69 74 65 ecently................;;.visite
1760 64 20 66 69 72 73 74 2c 20 73 6f 20 6b 65 65 70 20 74 68 6f 73 65 2e 0a 20 20 20 20 20 20 20 20 d.first,.so.keep.those..........
1780 20 20 20 20 20 20 20 28 65 78 63 65 73 73 2d 62 75 66 66 65 72 73 20 28 2d 64 72 6f 70 20 28 31 .......(excess-buffers.(-drop.(1
17a0 2d 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 29 20 68 65 6c 70 66 75 6c 2d 62 -.helpful-max-buffers).helpful-b
17c0 75 66 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4b 69 6c 6c 20 62 75 66 66 65 72 73 ufs)))...........;;.Kill.buffers
17e0 20 73 6f 20 77 65 20 68 61 76 65 20 6f 6e 65 20 62 75 66 66 65 72 20 6c 65 73 73 20 74 68 61 6e .so.we.have.one.buffer.less.than
1800 20 74 68 65 20 6d 61 78 69 6d 75 6d 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 66 6f 72 65 .the.maximum...........;;.before
1820 20 77 65 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 2e 0a 20 20 20 20 20 20 20 20 20 20 .we.create.a.new.one............
1840 28 2d 65 61 63 68 20 65 78 63 65 73 73 2d 62 75 66 66 65 72 73 20 23 27 6b 69 6c 6c 2d 62 75 66 (-each.excess-buffers.#'kill-buf
1860 66 65 72 29 29 29 0a 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 28 67 65 74 2d 62 75 66 fer)))........(setq.buf.(get-buf
1880 66 65 72 2d 63 72 65 61 74 65 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 20 20 3b 3b 20 49 fer-create.buf-name)))......;;.I
18a0 6e 69 74 69 61 6c 69 73 65 20 74 68 65 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 73 79 nitialise.the.buffer.with.the.sy
18c0 6d 62 6f 6c 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 61 74 61 2e 0a 20 20 20 20 28 77 mbol.and.associated.data......(w
18e0 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 68 65 ith-current-buffer.buf.......(he
1900 6c 70 66 75 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d lpful-mode).......(setq.helpful-
1920 2d 73 79 6d 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c -sym.symbol).......(setq.helpful
1940 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 28 --callable-p.callable-p).......(
1960 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 73 74 61 72 74 2d 62 75 66 66 65 72 20 63 75 72 72 65 setq.helpful--start-buffer.curre
1980 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d nt-buffer).......(setq.helpful--
19a0 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 20 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 associated-buffer.current-buffer
19c0 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 73 74 2d 62 75 66 66 65 72 73 2d 64 69 72 65 63 ).......(setq.list-buffers-direc
19e0 74 6f 72 79 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 62 6f 6c tory.........(if.(symbolp.symbol
1a00 29 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 20 25 73 22 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e ).(format."%s:.%s".(helpful--kin
1a20 64 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 73 79 6d 62 6f 6c d-name.symbol.callable-p).symbol
1a40 29 20 22 6c 61 6d 62 64 61 22 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 68 65 6c 70 66 75 6c 2d )."lambda")).......(if.(helpful-
1a60 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 62 6f 6c 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a -primitive-p.symbol.callable-p).
1a80 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 63 6f 6d 6d 65 6e 74 2d 73 74 ..........(setq-local.comment-st
1aa0 61 72 74 20 22 2f 2f 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 63 6f art."//").........(setq-local.co
1ac0 6d 6d 65 6e 74 2d 73 74 61 72 74 20 22 3b 22 29 29 29 0a 20 20 20 20 62 75 66 29 29 0a 0a 28 64 mment-start.";"))).....buf))..(d
1ae0 65 66 66 61 63 65 20 68 65 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 0a 20 20 27 28 28 74 20 28 3a efface.helpful-heading...'((t.(:
1b00 77 65 69 67 68 74 20 62 6f 6c 64 29 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 weight.bold)))..."Face.used.for.
1b20 68 65 61 64 69 6e 67 73 20 69 6e 20 48 65 6c 70 66 75 6c 20 62 75 66 66 65 72 73 2e 22 29 0a 0a headings.in.Helpful.buffers.")..
1b40 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 28 74 65 78 74 29 0a 20 (defun.helpful--heading.(text)..
1b60 20 22 50 72 6f 70 65 72 74 69 7a 65 20 54 45 58 54 20 61 73 20 61 20 68 65 61 64 69 6e 67 2e 22 ."Propertize.TEXT.as.a.heading."
1b80 0a 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 74 65 78 74 20 22 5c 6e 22 ...(propertize.(concat.text."\n"
1ba0 29 20 27 66 61 63 65 20 27 68 65 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 29 29 0a 0a 28 64 65 66 ).'face.'helpful-heading))..(def
1bc0 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6c 6f 73 75 72 65 20 28 73 79 6d 20 un.helpful--format-closure.(sym.
1be0 66 6f 72 6d 29 0a 20 20 22 47 69 76 65 6e 20 61 20 63 6c 6f 73 75 72 65 2c 20 72 65 74 75 72 6e form)..."Given.a.closure,.return
1c00 20 61 6e 20 65 71 75 69 76 61 6c 65 6e 74 20 64 65 66 75 6e 20 66 6f 72 6d 2e 22 0a 20 20 28 2d .an.equivalent.defun.form."...(-
1c20 6c 65 74 20 28 28 28 5f 6b 65 79 77 6f 72 64 20 5f 65 6e 76 20 61 72 67 73 20 2e 20 62 6f 64 79 let.(((_keyword._env.args...body
1c40 29 20 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 28 64 6f 63 73 74 72 69 6e 67 20 6e 69 6c 29 ).form)..........(docstring.nil)
1c60 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 62 6f 64 79 29 29 ).....(when.(stringp.(car.body))
1c80 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 63 73 74 72 69 6e 67 20 28 63 61 72 20 62 6f 64 79 .......(setq.docstring.(car.body
1ca0 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 6f 64 79 20 28 63 64 72 20 62 6f 64 79 29 29 0a )).......(setq.body.(cdr.body)).
1cc0 20 20 20 20 20 20 3b 3b 20 45 6e 73 75 72 65 20 74 68 61 74 20 74 68 65 20 64 6f 63 73 74 72 69 ......;;.Ensure.that.the.docstri
1ce0 6e 67 20 64 6f 65 73 6e 27 74 20 68 61 76 65 20 6c 69 6e 65 73 20 73 74 61 72 74 69 6e 67 20 77 ng.doesn't.have.lines.starting.w
1d00 69 74 68 20 28 2c 0a 20 20 20 20 20 20 3b 3b 20 6f 72 20 69 74 20 62 72 65 61 6b 73 20 69 6e 64 ith.(,.......;;.or.it.breaks.ind
1d20 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 63 73 74 72 69 6e 67 0a entation........(setq.docstring.
1d40 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 72 65 70 6c 61 63 65 20 22 5c 6e 28 22 20 22 5c 6e ............(s-replace."\n("."\n
1d60 5c 5c 28 22 20 64 6f 63 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 28 69 66 20 64 6f 63 73 74 72 \\(".docstring))).....(if.docstr
1d80 69 6e 67 0a 20 20 20 20 20 20 20 20 60 28 64 65 66 75 6e 20 2c 73 79 6d 20 2c 61 72 67 73 20 2c ing.........`(defun.,sym.,args.,
1da0 64 6f 63 73 74 72 69 6e 67 20 2c 40 62 6f 64 79 29 0a 20 20 20 20 20 20 60 28 64 65 66 75 6e 20 docstring.,@body).......`(defun.
1dc0 2c 73 79 6d 20 2c 61 72 67 73 20 2c 40 62 6f 64 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 ,sym.,args.,@body))))..(defun.he
1de0 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 28 76 61 6c 75 65 29 0a 20 20 22 50 lpful--pretty-print.(value)..."P
1e00 72 65 74 74 79 2d 70 72 69 6e 74 20 56 41 4c 55 45 2e 0a 0a 49 66 20 56 41 4c 55 45 20 69 73 20 retty-print.VALUE...If.VALUE.is.
1e20 76 65 72 79 20 62 69 67 2c 20 74 68 65 20 75 73 65 72 20 6d 61 79 20 70 72 65 73 73 20 5c 5c 5b very.big,.the.user.may.press.\\[
1e40 6b 65 79 62 6f 61 72 64 2d 71 75 69 74 5d 20 74 6f 0a 67 72 61 63 65 66 75 6c 6c 79 20 73 74 6f keyboard-quit].to.gracefully.sto
1e60 70 20 74 68 65 20 70 72 69 6e 74 69 6e 67 2e 20 49 66 20 56 41 4c 55 45 20 69 73 20 73 65 6c 66 p.the.printing..If.VALUE.is.self
1e80 2d 72 65 66 65 72 65 6e 74 69 61 6c 2c 20 74 68 65 0a 65 72 72 6f 72 20 77 69 6c 6c 20 62 65 20 -referential,.the.error.will.be.
1ea0 63 61 75 67 68 74 20 61 6e 64 20 64 69 73 70 6c 61 79 65 64 2e 22 0a 20 20 3b 3b 20 49 6e 73 70 caught.and.displayed."...;;.Insp
1ec0 69 72 65 64 20 62 79 20 60 69 65 6c 6d 2d 65 76 61 6c 2d 69 6e 70 75 74 27 2e 0a 20 20 28 63 6f ired.by.`ielm-eval-input'....(co
1ee0 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 28 73 2d 74 72 69 6d 2d 72 ndition-case.err.......(s-trim-r
1f00 69 67 68 74 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 ight.(pp-to-string.value)).....(
1f20 65 72 72 6f 72 0a 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 error......(propertize.(format."
1f40 28 44 69 73 70 6c 61 79 20 65 72 72 6f 72 3a 20 25 73 29 22 20 28 63 61 64 72 20 65 72 72 29 29 (Display.error:.%s)".(cadr.err))
1f60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f ..................'face.'font-lo
1f80 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 0a 20 20 20 20 28 71 75 69 74 0a 20 20 20 20 ck-comment-face)).....(quit.....
1fa0 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 28 55 73 65 72 20 71 75 69 74 20 64 75 72 69 6e 67 20 .(propertize."(User.quit.during.
1fc0 70 72 65 74 74 79 2d 70 72 69 6e 74 69 6e 67 2e 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pretty-printing.)"..............
1fe0 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
2000 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 6f 72 74 2d 73 79 6d 62 e))))..(defun.helpful--sort-symb
2020 6f 6c 73 20 28 73 79 6d 2d 6c 69 73 74 29 0a 20 20 22 53 6f 72 74 20 73 79 6d 62 6f 6c 73 20 69 ols.(sym-list)..."Sort.symbols.i
2040 6e 20 53 59 4d 2d 4c 49 53 54 20 61 6c 70 68 61 62 65 74 69 63 61 6c 6c 79 2e 22 0a 20 20 28 2d n.SYM-LIST.alphabetically."...(-
2060 2d 73 6f 72 74 0a 20 20 20 28 73 74 72 69 6e 67 3c 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 69 -sort....(string<.(symbol-name.i
2080 74 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6f 74 68 65 72 29 29 0a 20 20 20 73 79 6d 2d 6c t).(symbol-name.other))....sym-l
20a0 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 20 28 74 ist))..(defun.helpful--button.(t
20c0 65 78 74 20 74 79 70 65 20 26 72 65 73 74 20 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 3b 3b 20 ext.type.&rest.properties)...;;.
20e0 60 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 27 20 6d 75 74 61 74 65 73 20 6f 75 72 20 73 `make-text-button'.mutates.our.s
2100 74 72 69 6e 67 20 74 6f 20 61 64 64 20 70 72 6f 70 65 72 74 69 65 73 2e 20 43 6f 70 79 0a 20 20 tring.to.add.properties..Copy...
2120 3b 3b 20 54 45 58 54 20 74 6f 20 70 72 65 76 65 6e 74 20 6d 75 74 61 74 69 6e 67 20 6f 75 72 20 ;;.TEXT.to.prevent.mutating.our.
2140 61 72 67 75 6d 65 6e 74 73 2c 20 61 6e 64 20 74 6f 20 73 75 70 70 6f 72 74 20 27 70 75 72 65 27 arguments,.and.to.support.'pure'
2160 0a 20 20 3b 3b 20 73 74 72 69 6e 67 73 2c 20 77 68 69 63 68 20 61 72 65 20 72 65 61 64 2d 6f 6e ...;;.strings,.which.are.read-on
2180 6c 79 2e 0a 20 20 28 73 65 74 71 20 74 65 78 74 20 28 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 ly....(setq.text.(substring-no-p
21a0 72 6f 70 65 72 74 69 65 73 20 74 65 78 74 29 29 0a 20 20 28 61 70 70 6c 79 20 23 27 6d 61 6b 65 roperties.text))...(apply.#'make
21c0 2d 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 74 65 78 74 20 6e 69 6c 0a 20 -text-button..........text.nil..
21e0 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 70 72 6f 70 ........:type.type..........prop
2200 65 72 74 69 65 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 erties))..(defun.helpful--canoni
2220 63 61 6c 2d 73 79 6d 62 6f 6c 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 49 cal-symbol.(sym.callable-p)..."I
2240 66 20 53 59 4d 20 69 73 20 61 6e 20 61 6c 69 61 73 2c 20 72 65 74 75 72 6e 20 74 68 65 20 75 6e f.SYM.is.an.alias,.return.the.un
2260 64 65 72 6c 79 69 6e 67 20 73 79 6d 62 6f 6c 2e 0a 52 65 74 75 72 6e 20 53 59 4d 20 6f 74 68 65 derlying.symbol..Return.SYM.othe
2280 72 77 69 73 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 70 74 68 20 30 29 29 0a 20 20 20 20 28 rwise."...(let.((depth.0)).....(
22a0 69 66 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 20 63 61 6c 6c 61 62 6c 65 2d 70 if.(and.(symbolp.sym).callable-p
22c0 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 6f ).........(progn...........;;.Fo
22e0 6c 6c 6f 77 20 74 68 65 20 63 68 61 69 6e 20 6f 66 20 73 79 6d 62 6f 6c 73 20 75 6e 74 69 6c 20 llow.the.chain.of.symbols.until.
2300 77 65 20 66 69 6e 64 20 61 20 73 79 6d 62 6f 6c 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 we.find.a.symbol.that...........
2320 3b 3b 20 69 73 6e 27 74 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 61 20 73 79 6d 62 6f 6c 2e 0a 20 ;;.isn't.pointing.to.a.symbol...
2340 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 28 73 .........(while.(and.(symbolp.(s
2360 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ymbol-function.sym))............
2380 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 64 65 70 74 68 20 31 30 29 29 0a 20 20 20 20 20 20 20 ...........(<.depth.10))........
23a0 20 20 20 20 20 28 73 65 74 71 20 73 79 6d 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 .....(setq.sym.(symbol-function.
23c0 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 70 74 68 20 28 31 sym)).............(setq.depth.(1
23e0 2b 20 64 65 70 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 +.depth)))...........;;.If.this.
2400 69 73 20 61 6e 20 61 6c 69 61 73 20 74 6f 20 61 20 70 72 69 6d 69 74 69 76 65 2c 20 72 65 74 75 is.an.alias.to.a.primitive,.retu
2420 72 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 69 6d 69 74 69 76 65 27 73 20 rn.the...........;;.primitive's.
2440 73 79 6d 62 6f 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 75 62 72 70 20 28 symbol............(when.(subrp.(
2460 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 symbol-function.sym))...........
2480 20 20 28 73 65 74 71 20 73 79 6d 20 28 69 6e 74 65 72 6e 20 28 73 75 62 72 2d 6e 61 6d 65 20 28 ..(setq.sym.(intern.(subr-name.(
24a0 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 29 29 29 0a 20 20 20 20 20 20 symbol-function.sym)))))).......
24c0 28 73 65 74 71 20 73 79 6d 20 28 69 6e 64 69 72 65 63 74 2d 76 61 72 69 61 62 6c 65 20 73 79 6d (setq.sym.(indirect-variable.sym
24e0 29 29 29 29 0a 20 20 73 79 6d 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 6c 69 ))))...sym)..(defun.helpful--ali
2500 61 73 65 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 ases.(sym.callable-p)..."Return.
2520 61 6c 6c 20 74 68 65 20 61 6c 69 61 73 65 73 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 6c 65 74 all.the.aliases.for.SYM."...(let
2540 20 28 28 63 61 6e 6f 6e 69 63 61 6c 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 63 61 6c .((canonical.(helpful--canonical
2560 2d 73 79 6d 62 6f 6c 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 -symbol.sym.callable-p))........
2580 20 61 6c 69 61 73 65 73 29 0a 20 20 20 20 28 6d 61 70 61 74 6f 6d 73 0a 20 20 20 20 20 28 6c 61 .aliases).....(mapatoms......(la
25a0 6d 62 64 61 20 28 73 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 mbda.(s)........(when.(and......
25c0 20 20 20 20 20 20 20 20 20 3b 3b 20 53 6b 69 70 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 .........;;.Skip.variables.that.
25e0 61 72 65 6e 27 74 20 62 6f 75 6e 64 2c 20 73 6f 20 77 65 27 72 65 20 66 61 73 74 65 72 2e 0a 20 aren't.bound,.so.we're.faster...
2600 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 66 62 6f .............(if.callable-p.(fbo
2620 75 6e 64 70 20 73 29 20 28 62 6f 75 6e 64 70 20 73 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 undp.s).(boundp.s)).............
2640 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 73 79 6d 62 6f 6c 20 69 73 20 61 20 6e 65 77 20 61 6c ...;;.If.this.symbol.is.a.new.al
2660 69 61 73 20 66 6f 72 20 6f 75 72 20 74 61 72 67 65 74 20 73 79 6d 2c 0a 20 20 20 20 20 20 20 20 ias.for.our.target.sym,.........
2680 20 20 20 20 20 20 3b 3b 20 61 64 64 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ......;;.add.it................(
26a0 65 71 20 63 61 6e 6f 6e 69 63 61 6c 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 63 61 6c eq.canonical.(helpful--canonical
26c0 2d 73 79 6d 62 6f 6c 20 73 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 0a 20 20 20 20 20 20 20 20 -symbol.s.callable-p))..........
26e0 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 69 6e 63 6c 75 64 65 20 53 59 4d 2e 0a 20 20 20 20 ......;;.Don't.include.SYM......
2700 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 73 79 6d 20 73 29 29 29 0a 20 20 20 20 ..........(not.(eq.sym.s))).....
2720 20 20 20 20 20 28 70 75 73 68 20 73 20 61 6c 69 61 73 65 73 29 29 29 29 0a 20 20 20 20 28 68 65 .....(push.s.aliases)))).....(he
2740 6c 70 66 75 6c 2d 2d 73 6f 72 74 2d 73 79 6d 62 6f 6c 73 20 61 6c 69 61 73 65 73 29 29 29 0a 0a lpful--sort-symbols.aliases)))..
2760 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 28 73 (defun.helpful--obsolete-info.(s
2780 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 ym.callable-p)...(when.(symbolp.
27a0 73 79 6d 29 0a 20 20 20 20 28 67 65 74 20 73 79 6d 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 sym).....(get.sym.(if.callable-p
27c0 20 27 62 79 74 65 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 27 62 79 74 65 2d 6f 62 73 6f 6c .'byte-obsolete-info.'byte-obsol
27e0 65 74 65 2d 76 61 72 69 61 62 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c ete-variable))))..(defun.helpful
2800 2d 2d 66 6f 72 6d 61 74 2d 61 6c 69 61 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a --format-alias.(sym.callable-p).
2820 20 20 28 6c 65 74 20 28 28 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 28 68 65 6c 70 66 75 6c 2d ..(let.((obsolete-info.(helpful-
2840 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a -obsolete-info.sym.callable-p)).
2860 20 20 20 20 20 20 20 20 28 73 79 6d 2d 62 75 74 74 6f 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 ........(sym-button.(helpful--bu
2880 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f tton......................(symbo
28a0 6c 2d 6e 61 6d 65 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l-name.sym).....................
28c0 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f .'helpful-describe-exactly-butto
28e0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 n......................'symbol.s
2900 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c ym......................'callabl
2920 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 e-p.callable-p))).....(cond.....
2940 20 28 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 0a 20 20 20 20 20 20 28 2d 69 66 2d 6c 65 74 20 28 .(obsolete-info.......(-if-let.(
2960 76 65 72 73 69 6f 6e 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 version.(-last-item.obsolete-inf
2980 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 28 6f 62 73 6f 6c o))...........(format."%s.(obsol
29a0 65 74 65 20 73 69 6e 63 65 20 25 73 29 22 20 73 79 6d 2d 62 75 74 74 6f 6e 20 76 65 72 73 69 6f ete.since.%s)".sym-button.versio
29c0 6e 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 28 6f 62 73 6f 6c 65 74 65 n).........(format."%s.(obsolete
29e0 29 22 20 73 79 6d 2d 62 75 74 74 6f 6e 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 73 )".sym-button)))......(t.......s
2a00 79 6d 2d 62 75 74 74 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 ym-button))))..(defun.helpful--i
2a20 6e 64 65 6e 74 2d 72 69 67 69 64 6c 79 20 28 73 20 61 6d 6f 75 6e 74 29 0a 20 20 22 49 6e 64 65 ndent-rigidly.(s.amount)..."Inde
2a40 6e 74 20 73 74 72 69 6e 67 20 53 20 62 79 20 61 64 64 69 6e 67 20 41 4d 4f 55 4e 54 20 73 70 61 nt.string.S.by.adding.AMOUNT.spa
2a60 63 65 73 20 74 6f 20 65 61 63 68 20 6c 69 6e 65 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d ces.to.each.line."...(with-temp-
2a80 62 75 66 66 65 72 0a 20 20 20 20 28 69 6e 73 65 72 74 20 73 29 0a 20 20 20 20 28 69 6e 64 65 6e buffer.....(insert.s).....(inden
2aa0 74 2d 72 69 67 69 64 6c 79 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 t-rigidly.(point-min).(point-max
2ac0 29 20 61 6d 6f 75 6e 74 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a ).amount).....(buffer-string))).
2ae0 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 6f 70 65 72 74 69 .(defun.helpful--format-properti
2b00 65 73 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 64 es.(symbol)..."Return.a.string.d
2b20 65 73 63 72 69 62 69 6e 67 20 61 6c 6c 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 escribing.all.the.properties.of.
2b40 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 SYMBOL."...(let*.((syms-and-vals
2b60 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 20 32 20 28 61 6e 64 20 28 73 ...........(-partition.2.(and.(s
2b80 79 6d 62 6f 6c 70 20 73 79 6d 62 6f 6c 29 20 28 73 79 6d 62 6f 6c 2d 70 6c 69 73 74 20 73 79 6d ymbolp.symbol).(symbol-plist.sym
2ba0 62 6f 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 0a bol))))..........(syms-and-vals.
2bc0 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 2d 6c 61 6d 62 64 61 20 28 28 73 79 6d 31 ..........(-sort.(-lambda.((sym1
2be0 20 5f 29 20 28 73 79 6d 32 20 5f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ._).(sym2._))...................
2c00 20 28 73 74 72 69 6e 67 2d 6c 65 73 73 70 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 31 .(string-lessp.(symbol-name.sym1
2c20 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 ).(symbol-name.sym2)))..........
2c40 20 20 20 20 20 20 20 20 73 79 6d 73 2d 61 6e 64 2d 76 61 6c 73 29 29 0a 20 20 20 20 20 20 20 20 ........syms-and-vals)).........
2c60 20 28 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 .(lines...........(--map........
2c80 20 20 20 20 28 2d 6c 65 74 2a 20 28 28 28 73 79 6d 20 76 61 6c 29 20 69 74 29 0a 20 20 20 20 20 ....(-let*.(((sym.val).it)......
2ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 74 74 79 2d 76 61 6c 0a 20 20 20 20 20 20 ..............(pretty-val.......
2cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 ..............(helpful--pretty-p
2ce0 72 69 6e 74 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 rint.val)))..............(format
2d00 20 22 25 73 5c 6e 25 73 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."%s\n%s%s".....................
2d20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 0a 20 .(propertize.(symbol-name.sym)..
2d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d60 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 'face.'font-lock-constant-face).
2d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 .....................(helpful--i
2da0 6e 64 65 6e 74 2d 72 69 67 69 64 6c 79 20 70 72 65 74 74 79 2d 76 61 6c 20 32 29 0a 20 20 20 20 ndent-rigidly.pretty-val.2).....
2dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 .................(cond..........
2de0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 6c 73 6f 20 6f 66 66 65 72 20 74 6f 20 64 69 .............;;.Also.offer.to.di
2e00 73 61 73 73 65 6d 62 6c 65 20 62 79 74 65 2d 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 sassemble.byte-code.............
2e20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 20 20 20 20 20 20 20 ..........;;.properties.........
2e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 ...............((byte-code-funct
2e60 69 6f 6e 2d 70 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion-p.val)......................
2e80 20 20 28 66 6f 72 6d 61 74 20 22 5c 6e 20 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(format."\n..%s"..............
2ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 ..................(helpful--make
2ec0 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 20 76 61 6c 29 29 29 0a 20 20 20 20 20 -disassemble-button.val)))......
2ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 73 79 6d 20 27 65 72 74 2d 2d .................((eq.sym.'ert--
2f00 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f test)........................(fo
2f20 72 6d 61 74 20 22 5c 6e 20 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rmat."\n..%s"...................
2f40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 75 6e 2d .............(helpful--make-run-
2f60 74 65 73 74 2d 62 75 74 74 6f 6e 20 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 test-button.symbol)))...........
2f80 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............(t..................
2fa0 20 20 20 20 20 20 22 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 73 2d 61 6e 64 ......""))))............syms-and
2fc0 2d 76 61 6c 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6c 69 6e 65 73 0a 20 20 20 20 20 20 28 -vals))).....(when.lines.......(
2fe0 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 6c 69 6e 65 73 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 s-join."\n".lines))))..(define-b
3000 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 66 6f 72 67 65 74 2d 62 75 74 74 6f utton-type.'helpful-forget-butto
3020 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 67 65 74 0a 20 20 n...'action.#'helpful--forget...
3040 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 6c 0a 20 20 'symbol.nil...'callable-p.nil...
3060 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 55 6e 62 'follow-link.t...'help-echo."Unb
3080 69 6e 64 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 22 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 69 74 ind.this.function")..;;.TODO:.it
30a0 20 77 6f 75 6c 64 20 62 65 20 6e 69 63 65 20 74 6f 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 64 65 6c .would.be.nice.to.optionally.del
30c0 65 74 65 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 74 6f 6f 2e 0a 28 64 65 66 75 6e 20 ete.the.source.code.too..(defun.
30e0 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 67 65 74 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 55 6e 62 69 helpful--forget.(button)..."Unbi
3100 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 6c 65 74 2a 20 nd.the.current.symbol."...(let*.
3120 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c ((sym.(button-get.button.'symbol
3140 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 20 28 62 75 74 74 6f 6e 2d ))..........(callable-p.(button-
3160 67 65 74 20 62 75 74 74 6f 6e 20 27 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 get.button.'callable-p))........
3180 20 20 28 6b 69 6e 64 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e 64 2d 6e 61 6d 65 20 73 79 6d 20 ..(kind.(helpful--kind-name.sym.
31a0 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 79 65 73 2d 6f 72 2d callable-p))).....(when.(yes-or-
31c0 6e 6f 2d 70 20 28 66 6f 72 6d 61 74 20 22 46 6f 72 67 65 74 20 25 73 20 25 73 3f 22 20 6b 69 6e no-p.(format."Forget.%s.%s?".kin
31e0 64 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 d.sym)).......(if.callable-p....
3200 20 20 20 20 20 20 20 28 66 6d 61 6b 75 6e 62 6f 75 6e 64 20 73 79 6d 29 0a 20 20 20 20 20 20 20 .......(fmakunbound.sym)........
3220 20 28 6d 61 6b 75 6e 62 6f 75 6e 64 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 .(makunbound.sym)).......(messag
3240 65 20 22 46 6f 72 67 6f 74 20 25 73 20 25 73 2e 22 20 6b 69 6e 64 20 73 79 6d 29 0a 20 20 20 20 e."Forgot.%s.%s.".kind.sym).....
3260 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 ..(kill-buffer.(current-buffer))
3280 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 )))..(define-button-type.'helpfu
32a0 6c 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 27 61 63 74 69 6f 6e 20 23 l-c-source-directory...'action.#
32c0 27 68 65 6c 70 66 75 6c 2d 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 27 'helpful--c-source-directory...'
32e0 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 53 65 74 20 follow-link.t...'help-echo."Set.
3300 64 69 72 65 63 74 6f 72 79 20 74 6f 20 45 6d 61 63 73 20 43 20 73 6f 75 72 63 65 20 63 6f 64 65 directory.to.Emacs.C.source.code
3320 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 ")..(defun.helpful--c-source-dir
3340 65 63 74 6f 72 79 20 28 5f 62 75 74 74 6f 6e 29 0a 20 20 22 53 65 74 20 60 66 69 6e 64 2d 66 75 ectory.(_button)..."Set.`find-fu
3360 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 27 20 73 6f 20 77 65 nction-C-source-directory'.so.we
3380 20 63 61 6e 20 73 68 6f 77 20 74 68 65 0a 73 6f 75 72 63 65 20 63 6f 64 65 20 74 6f 20 70 72 69 .can.show.the.source.code.to.pri
33a0 6d 69 74 69 76 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 mitives."...(let.((emacs-src-dir
33c0 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 50 61 74 68 20 74 6f 20 45 .(read-directory-name."Path.to.E
33e0 6d 61 63 73 20 73 6f 75 72 63 65 20 63 6f 64 65 3a 20 22 29 29 29 0a 20 20 20 20 3b 3b 20 4c 65 macs.source.code:."))).....;;.Le
3400 74 20 74 68 65 20 75 73 65 72 20 73 70 65 63 69 66 79 20 74 68 65 20 73 6f 75 72 63 65 20 70 61 t.the.user.specify.the.source.pa
3420 74 68 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 73 72 63 2f 2c 0a 20 20 20 20 3b 3b 20 th.with.or.without.src/,.....;;.
3440 77 68 69 63 68 20 69 73 20 61 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 69 6e 20 74 68 65 20 45 which.is.a.subdirectory.in.the.E
3460 6d 61 63 73 20 74 72 65 65 2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 66 macs.tree......(unless.(equal.(f
3480 2d 66 69 6c 65 6e 61 6d 65 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 29 20 22 73 72 63 22 29 0a -filename.emacs-src-dir)."src").
34a0 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 20 28 66 2d 6a 6f 69 ......(setq.emacs-src-dir.(f-joi
34c0 6e 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 20 22 73 72 63 22 29 29 29 0a 20 20 20 20 28 73 65 n.emacs-src-dir."src"))).....(se
34e0 74 71 20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 tq.find-function-C-source-direct
3500 6f 72 79 20 65 6d 61 63 73 2d 73 72 63 2d 64 69 72 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 75 ory.emacs-src-dir))...(helpful-u
3520 70 64 61 74 65 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 pdate))..(define-button-type.'he
3540 6c 70 66 75 6c 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 lpful-disassemble-button...'acti
3560 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 20 27 66 6f 6c on.#'helpful--disassemble...'fol
3580 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 6f 62 6a 65 63 74 20 6e 69 6c 0a 20 20 27 68 65 6c 70 low-link.t...'object.nil...'help
35a0 2d 65 63 68 6f 20 22 53 68 6f 77 20 64 69 73 61 73 73 65 6d 62 6c 65 64 20 62 79 74 65 63 6f 64 -echo."Show.disassembled.bytecod
35c0 65 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 69 73 61 73 73 65 6d 62 6c 65 e")..(defun.helpful--disassemble
35e0 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 44 69 73 61 73 73 65 6d 62 6c 65 20 74 68 65 20 63 75 72 .(button)..."Disassemble.the.cur
3600 72 65 6e 74 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 3b 3b 20 60 64 69 73 61 73 73 65 6d 62 6c 65 27 rent.symbol."...;;.`disassemble'
3620 20 63 61 6e 20 68 61 6e 64 6c 65 20 62 6f 74 68 20 73 79 6d 62 6f 6c 73 20 28 65 2e 67 2e 20 27 .can.handle.both.symbols.(e.g..'
3640 77 68 65 6e 29 20 61 6e 64 20 72 61 77 0a 20 20 3b 3b 20 62 79 74 65 2d 63 6f 64 65 20 6f 62 6a when).and.raw...;;.byte-code.obj
3660 65 63 74 73 2e 0a 20 20 28 64 69 73 61 73 73 65 6d 62 6c 65 20 28 62 75 74 74 6f 6e 2d 67 65 74 ects....(disassemble.(button-get
3680 20 62 75 74 74 6f 6e 20 27 6f 62 6a 65 63 74 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 .button.'object)))..(define-butt
36a0 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 6f 6e on-type.'helpful-run-test-button
36c0 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 72 75 6e 2d 74 65 73 74 0a 20 ...'action.#'helpful--run-test..
36e0 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 .'follow-link.t...'symbol.nil...
3700 27 68 65 6c 70 2d 65 63 68 6f 20 22 52 75 6e 20 45 52 54 20 74 65 73 74 22 29 0a 0a 28 64 65 66 'help-echo."Run.ERT.test")..(def
3720 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 72 75 6e 2d 74 65 73 74 20 28 62 75 74 74 6f 6e 29 0a 20 20 un.helpful--run-test.(button)...
3740 22 44 69 73 61 73 73 65 6d 62 6c 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 6f 6c 2e "Disassemble.the.current.symbol.
3760 22 0a 20 20 28 65 72 74 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d "...(ert.(button-get.button.'sym
3780 62 6f 6c 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c bol)))..(define-button-type.'hel
37a0 70 66 75 6c 2d 65 64 65 62 75 67 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 pful-edebug-button...'action.#'h
37c0 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a elpful--edebug...'follow-link.t.
37e0 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 54 6f 67 67 ..'symbol.nil...'help-echo."Togg
3800 6c 65 20 65 64 65 62 75 67 20 28 72 65 2d 65 76 61 6c 75 61 74 65 73 20 64 65 66 69 6e 69 74 69 le.edebug.(re-evaluates.definiti
3820 6f 6e 29 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d 6d 61 63 72 6f on)")..(defun.helpful--kbd-macro
3840 2d 70 20 28 73 79 6d 29 0a 20 20 22 49 73 20 53 59 4d 20 61 20 6b 65 79 62 6f 61 72 64 20 6d 61 -p.(sym)..."Is.SYM.a.keyboard.ma
3860 63 72 6f 3f 22 0a 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 cro?"...(and.(symbolp.sym)......
3880 20 20 28 6c 65 74 20 28 28 66 75 6e 63 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 ..(let.((func.(symbol-function.s
38a0 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 70 20 66 75 6e 63 ym)))..........(or.(stringp.func
38c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 70 20 66 75 6e 63 29 29 29 29 )..............(vectorp.func))))
38e0 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 2d 70 20 28 73 79 6d )..(defun.helpful--edebug-p.(sym
3900 29 0a 20 20 22 44 6f 65 73 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 20 68 61 76 65 20 69 74 73 20 )..."Does.function.SYM.have.its.
3920 64 65 66 69 6e 69 74 69 6f 6e 20 70 61 74 63 68 65 64 20 62 79 20 65 64 65 62 75 67 3f 22 0a 20 definition.patched.by.edebug?"..
3940 20 28 6c 65 74 20 28 28 66 6e 2d 64 65 66 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f .(let.((fn-def.(indirect-functio
3960 6e 20 73 79 6d 29 29 29 0a 20 20 20 20 3b 3b 20 45 64 65 62 75 67 20 72 65 70 6c 61 63 65 73 20 n.sym))).....;;.Edebug.replaces.
3980 66 75 6e 63 74 69 6f 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 77 69 74 68 20 61 20 73 65 78 70 function.source.code.with.a.sexp
39a0 20 74 68 61 74 20 68 61 73 0a 20 20 20 20 3b 3b 20 60 65 64 65 62 75 67 2d 65 6e 74 65 72 27 2c .that.has.....;;.`edebug-enter',
39c0 20 60 65 64 65 62 75 67 2d 61 66 74 65 72 27 20 65 74 63 20 69 6e 74 65 72 6c 65 61 76 65 64 2e .`edebug-after'.etc.interleaved.
39e0 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 65 0a 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 .This.means.the.....;;.function.
3a00 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 2c 20 73 6f 20 60 69 6e 64 69 72 65 63 74 2d 66 75 6e is.interpreted,.so.`indirect-fun
3a20 63 74 69 6f 6e 27 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 2e 0a 20 20 20 20 28 77 68 65 6e ction'.returns.a.list......(when
3a40 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 66 6e 2d 64 65 66 29 20 28 63 6f 6e 73 70 20 28 63 64 72 .(and.(consp.fn-def).(consp.(cdr
3a60 20 66 6e 2d 64 65 66 29 29 29 0a 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 66 6e 2d 65 6e 64 20 28 .fn-def))).......(-let.[fn-end.(
3a80 2d 6c 61 73 74 2d 69 74 65 6d 20 66 6e 2d 64 65 66 29 5d 0a 20 20 20 20 20 20 20 20 28 61 6e 64 -last-item.fn-def)].........(and
3aa0 20 28 63 6f 6e 73 70 20 66 6e 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 .(consp.fn-end)..............(eq
3ac0 20 28 63 61 72 20 66 6e 2d 65 6e 64 29 20 27 65 64 65 62 75 67 2d 65 6e 74 65 72 29 29 29 29 29 .(car.fn-end).'edebug-enter)))))
3ae0 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 2d 65 64 65 62 75 67 2d 70 20 )..(defun.helpful--can-edebug-p.
3b00 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 29 0a 20 20 22 43 61 6e 20 (sym.callable-p.buf.pos)..."Can.
3b20 77 65 20 75 73 65 20 65 64 65 62 75 67 20 77 69 74 68 20 53 59 4d 3f 22 0a 20 20 28 61 6e 64 0a we.use.edebug.with.SYM?"...(and.
3b40 20 20 20 3b 3b 20 53 59 4d 20 6d 75 73 74 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 ...;;.SYM.must.be.a.function....
3b60 20 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 3b 3b 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 .callable-p....;;.The.function.c
3b80 61 6e 6e 6f 74 20 62 65 20 61 20 70 72 69 6d 69 74 69 76 65 2c 20 69 74 20 6d 75 73 74 20 62 65 annot.be.a.primitive,.it.must.be
3ba0 20 64 65 66 69 6e 65 64 20 69 6e 20 65 6c 69 73 70 2e 0a 20 20 20 28 6e 6f 74 20 28 68 65 6c 70 .defined.in.elisp.....(not.(help
3bc0 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 ful--primitive-p.sym.callable-p)
3be0 29 0a 20 20 20 3b 3b 20 57 65 20 6e 65 65 64 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 66 69 )....;;.We.need.to.be.able.to.fi
3c00 6e 64 20 69 74 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 6f 72 20 77 65 20 63 61 6e 27 74 20 73 nd.its.definition,.or.we.can't.s
3c20 74 65 70 0a 20 20 20 3b 3b 20 74 68 72 6f 75 67 68 20 74 68 65 20 73 6f 75 72 63 65 2e 0a 20 20 tep....;;.through.the.source....
3c40 20 62 75 66 20 70 6f 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 6f 67 67 .buf.pos))..(defun.helpful--togg
3c60 6c 65 2d 65 64 65 62 75 67 20 28 73 79 6d 29 0a 20 20 22 45 6e 61 62 6c 65 20 65 64 65 62 75 67 le-edebug.(sym)..."Enable.edebug
3c80 20 77 68 65 6e 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 20 69 73 20 63 61 6c 6c 65 64 2c 0a 6f 72 .when.function.SYM.is.called,.or
3ca0 20 64 69 73 61 62 6c 65 20 69 66 20 61 6c 72 65 61 64 79 20 65 6e 61 62 6c 65 64 2e 22 0a 20 20 .disable.if.already.enabled."...
3cc0 28 2d 6c 65 74 20 28 28 73 68 6f 75 6c 64 2d 65 64 65 62 75 67 20 28 6e 6f 74 20 28 68 65 6c 70 (-let.((should-edebug.(not.(help
3ce0 66 75 6c 2d 2d 65 64 65 62 75 67 2d 70 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 ful--edebug-p.sym)))..........((
3d00 62 75 66 20 70 6f 73 20 63 72 65 61 74 65 64 29 20 28 68 65 6c 70 66 75 6c 2d 2d 64 65 66 69 6e buf.pos.created).(helpful--defin
3d20 69 74 69 6f 6e 20 73 79 6d 20 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 62 75 66 20 ition.sym.t))).....(if.(and.buf.
3d40 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 77 pos).........(progn...........(w
3d60 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 ith-current-buffer.buf..........
3d80 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(save-excursion..............
3da0 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(save-restriction..............
3dc0 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f ...(widen).................(goto
3de0 2d 63 68 61 72 20 70 6f 73 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 -char.pos)..................(let
3e00 2a 20 28 28 65 64 65 62 75 67 2d 61 6c 6c 2d 66 6f 72 6d 73 20 73 68 6f 75 6c 64 2d 65 64 65 62 *.((edebug-all-forms.should-edeb
3e20 75 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 64 65 62 ug)........................(edeb
3e40 75 67 2d 61 6c 6c 2d 64 65 66 73 20 73 68 6f 75 6c 64 2d 65 64 65 62 75 67 29 0a 20 20 20 20 20 ug-all-defs.should-edebug)......
3e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 20 28 65 64 65 62 75 67 2d ..................(form.(edebug-
3e80 72 65 61 64 2d 74 6f 70 2d 6c 65 76 65 6c 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 read-top-level-form)))..........
3ea0 20 20 20 20 20 20 20 20 20 3b 3b 20 42 61 73 65 64 20 6f 6e 20 60 65 64 65 62 75 67 2d 65 76 61 .........;;.Based.on.`edebug-eva
3ec0 6c 2d 64 65 66 75 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 76 61 l-defun'....................(eva
3ee0 6c 20 28 65 76 61 6c 2d 73 65 78 70 2d 61 64 64 2d 64 65 66 76 61 72 73 20 66 6f 72 6d 29 20 6c l.(eval-sexp-add-defvars.form).l
3f00 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b exical-binding)))))...........;;
3f20 20 49 66 20 77 65 27 72 65 20 65 6e 61 62 6c 69 6e 67 20 65 64 65 62 75 67 2c 20 77 65 20 6e 65 .If.we're.enabling.edebug,.we.ne
3f40 65 64 20 74 68 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 20 74 6f 0a 20 20 20 20 20 20 20 20 ed.the.source.buffer.to.........
3f60 20 20 3b 3b 20 65 78 69 73 74 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 77 65 20 63 61 6e 20 63 6c ..;;.exist..Otherwise,.we.can.cl
3f80 65 61 6e 20 69 74 20 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 ean.it.up............(when.(and.
3fa0 63 72 65 61 74 65 64 20 28 6e 6f 74 20 73 68 6f 75 6c 64 2d 65 64 65 62 75 67 29 29 0a 20 20 20 created.(not.should-edebug))....
3fc0 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 29 29 0a 0a 20 20 .........(kill-buffer.buf)))....
3fe0 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 ....(user-error."Could.not.find.
4000 73 6f 75 72 63 65 20 66 6f 72 20 65 64 65 62 75 67 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 source.for.edebug"))))..(defun.h
4020 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 6f 67 67 6c elpful--edebug.(button)..."Toggl
4040 65 20 65 64 65 62 75 67 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 6f 6c 2e e.edebug.for.the.current.symbol.
4060 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 74 6f 67 67 6c 65 2d 65 64 65 62 75 67 20 28 62 75 74 "...(helpful--toggle-edebug.(but
4080 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 0a 20 20 28 68 65 6c 70 ton-get.button.'symbol))...(help
40a0 66 75 6c 2d 75 70 64 61 74 65 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 ful-update))..(define-button-typ
40c0 65 20 27 68 65 6c 70 66 75 6c 2d 74 72 61 63 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f e.'helpful-trace-button...'actio
40e0 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 74 72 61 63 65 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e n.#'helpful--trace...'follow-lin
4100 6b 20 74 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 k.t...'symbol.nil...'help-echo."
4120 54 6f 67 67 6c 65 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 63 69 6e 67 22 29 0a 0a 28 64 65 66 75 Toggle.function.tracing")..(defu
4140 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 72 61 63 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 6f 67 n.helpful--trace.(button)..."Tog
4160 67 6c 65 20 74 72 61 63 69 6e 67 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6d 62 gle.tracing.for.the.current.symb
4180 6f 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 ol."...(let.((sym.(button-get.bu
41a0 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 28 69 66 20 28 74 72 61 63 65 2d 69 tton.'symbol))).....(if.(trace-i
41c0 73 2d 74 72 61 63 65 64 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 28 75 6e 74 72 61 63 65 2d 66 s-traced.sym).........(untrace-f
41e0 75 6e 63 74 69 6f 6e 20 73 79 6d 29 0a 20 20 20 20 20 20 28 74 72 61 63 65 2d 66 75 6e 63 74 69 unction.sym).......(trace-functi
4200 6f 6e 20 73 79 6d 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 29 0a 0a 28 on.sym)))...(helpful-update))..(
4220 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 6e 61 76 69 define-button-type.'helpful-navi
4240 67 61 74 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d gate-button...'action.#'helpful-
4260 2d 6e 61 76 69 67 61 74 65 0a 20 20 27 70 61 74 68 20 6e 69 6c 0a 20 20 27 70 6f 73 69 74 69 6f -navigate...'path.nil...'positio
4280 6e 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 n.nil...'follow-link.t...'help-e
42a0 63 68 6f 20 22 4e 61 76 69 67 61 74 65 20 74 6f 20 64 65 66 69 6e 69 74 69 6f 6e 22 29 0a 0a 28 cho."Navigate.to.definition")..(
42c0 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 28 defun.helpful--goto-char-widen.(
42e0 70 6f 73 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 50 4f 53 20 69 6e 20 74 68 65 pos)..."Move.point.to.POS.in.the
4300 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 49 66 20 6e 61 72 72 6f 77 69 6e 67 20 69 73 .current.buffer..If.narrowing.is
4320 20 69 6e 20 65 66 66 65 63 74 2c 20 77 69 64 65 6e 20 69 66 20 50 4f 53 20 69 73 6e 27 74 20 69 .in.effect,.widen.if.POS.isn't.i
4340 6e 20 74 68 65 20 6e 61 72 72 6f 77 65 64 20 61 72 65 61 2e 22 0a 20 20 28 77 68 65 6e 20 28 6f n.the.narrowed.area."...(when.(o
4360 72 20 28 3c 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 r.(<.pos.(point-min))...........
4380 20 20 28 3e 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 28 77 69 64 65 ..(>.pos.(point-max))).....(wide
43a0 6e 29 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 n))...(goto-char.pos))..(defun.h
43c0 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 61 74 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 4e 61 76 elpful--navigate.(button)..."Nav
43e0 69 67 61 74 65 20 74 6f 20 74 68 65 20 70 61 74 68 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 igate.to.the.path.this.BUTTON.re
4400 70 72 65 73 65 6e 74 73 2e 22 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 28 73 75 62 73 74 72 69 presents."...(find-file.(substri
4420 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 ng-no-properties.(button-get.but
4440 74 6f 6e 20 27 70 61 74 68 29 29 29 0a 20 20 3b 3b 20 57 65 20 75 73 65 20 60 67 65 74 2d 74 65 ton.'path)))...;;.We.use.`get-te
4460 78 74 2d 70 72 6f 70 65 72 74 79 27 20 74 6f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 61 6e 20 45 xt-property'.to.work.around.an.E
4480 6d 61 63 73 20 32 35 20 62 75 67 3a 0a 20 20 3b 3b 20 68 74 74 70 3a 2f 2f 67 69 74 2e 73 61 76 macs.25.bug:...;;.http://git.sav
44a0 61 6e 6e 61 68 2e 67 6e 75 2e 6f 72 67 2f 63 67 69 74 2f 65 6d 61 63 73 2e 67 69 74 2f 63 6f 6d annah.gnu.org/cgit/emacs.git/com
44c0 6d 69 74 2f 3f 69 64 3d 66 37 63 34 62 61 64 31 37 64 38 33 32 39 37 65 65 39 61 31 62 35 37 35 mit/?id=f7c4bad17d83297ee9a1b575
44e0 35 32 62 31 39 34 34 30 32 30 66 32 33 61 65 61 0a 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 70 52b1944020f23aea...(-when-let.(p
4500 6f 73 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 75 74 74 6f 6e 20 27 70 6f os.(get-text-property.button.'po
4520 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sition..........................
4540 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 62 75 74 74 6f ............(marker-buffer.butto
4560 6e 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 n))).....(helpful--goto-char-wid
4580 65 6e 20 70 6f 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 en.pos)))..(defun.helpful--navig
45a0 61 74 65 2d 62 75 74 74 6f 6e 20 28 74 65 78 74 20 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 ate-button.(text.path.&optional.
45c0 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 75 74 74 6f 6e 20 74 68 61 74 20 6f 70 65 pos)..."Return.a.button.that.ope
45e0 6e 73 20 50 41 54 48 20 61 6e 64 20 70 75 74 73 20 70 6f 69 6e 74 20 61 74 20 50 4f 53 2e 22 0a ns.PATH.and.puts.point.at.POS.".
4600 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 74 65 78 74 0a 20 20 20 27 68 ..(helpful--button....text....'h
4620 65 6c 70 66 75 6c 2d 6e 61 76 69 67 61 74 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 70 61 74 68 20 elpful-navigate-button....'path.
4640 70 61 74 68 0a 20 20 20 27 70 6f 73 69 74 69 6f 6e 20 70 6f 73 29 29 0a 0a 28 64 65 66 69 6e 65 path....'position.pos))..(define
4660 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 75 74 -button-type.'helpful-buffer-but
4680 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 73 77 69 74 63 68 2d ton...'action.#'helpful--switch-
46a0 74 6f 2d 62 75 66 66 65 72 0a 20 20 27 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 27 70 6f 73 69 74 to-buffer...'buffer.nil...'posit
46c0 69 6f 6e 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 ion.nil...'follow-link.t...'help
46e0 2d 65 63 68 6f 20 22 53 77 69 74 63 68 20 74 6f 20 74 68 69 73 20 62 75 66 66 65 72 22 29 0a 0a -echo."Switch.to.this.buffer")..
4700 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 (defun.helpful--switch-to-buffer
4720 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 4e 61 76 69 67 61 74 65 20 74 6f 20 74 68 65 20 62 75 66 .(button)..."Navigate.to.the.buf
4740 66 65 72 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 0a 20 20 28 fer.this.BUTTON.represents."...(
4760 6c 65 74 20 28 28 62 75 66 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 62 75 let.((buf.(button-get.button.'bu
4780 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 ffer)).........(pos.(button-get.
47a0 62 75 74 74 6f 6e 20 27 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 73 77 69 74 63 68 2d button.'position))).....(switch-
47c0 74 6f 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 28 77 68 65 6e 20 70 6f 73 0a 20 20 20 to-buffer.buf).....(when.pos....
47e0 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 70 6f 73 ...(helpful--goto-char-widen.pos
4800 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 75 66 66 65 72 2d 62 75 74 ))))..(defun.helpful--buffer-but
4820 74 6f 6e 20 28 62 75 66 66 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20 20 22 52 65 ton.(buffer.&optional.pos)..."Re
4840 74 75 72 6e 20 61 20 62 75 74 74 6f 6e 20 74 68 61 74 20 73 77 69 74 63 68 65 73 20 74 6f 20 42 turn.a.button.that.switches.to.B
4860 55 46 46 45 52 20 61 6e 64 20 70 75 74 73 20 70 6f 69 6e 74 20 61 74 20 50 4f 53 2e 22 0a 20 20 UFFER.and.puts.point.at.POS."...
4880 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 (helpful--button....(buffer-name
48a0 20 62 75 66 66 65 72 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 75 74 74 .buffer)....'helpful-buffer-butt
48c0 6f 6e 0a 20 20 20 27 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 27 70 6f 73 69 74 69 6f on....'buffer.buffer....'positio
48e0 6e 20 70 6f 73 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 n.pos))..(define-button-type.'he
4900 6c 70 66 75 6c 2d 63 75 73 74 6f 6d 69 7a 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e lpful-customize-button...'action
4920 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 75 73 74 6f 6d 69 7a 65 0a 20 20 27 73 79 6d 62 6f 6c 20 .#'helpful--customize...'symbol.
4940 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 nil...'follow-link.t...'help-ech
4960 6f 20 22 4f 70 65 6e 20 43 75 73 74 6f 6d 69 7a 65 20 66 6f 72 20 74 68 69 73 20 73 79 6d 62 6f o."Open.Customize.for.this.symbo
4980 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 75 73 74 6f 6d 69 7a 65 20 28 l")..(defun.helpful--customize.(
49a0 62 75 74 74 6f 6e 29 0a 20 20 22 4f 70 65 6e 20 43 75 73 74 6f 6d 69 7a 65 20 66 6f 72 20 74 68 button)..."Open.Customize.for.th
49c0 69 73 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 63 75 73 74 6f 6d 69 7a 65 2d 76 61 72 69 61 62 6c is.symbol."...(customize-variabl
49e0 65 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a e.(button-get.button.'symbol))).
4a00 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 61 73 .(define-button-type.'helpful-as
4a20 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e sociated-buffer-button...'action
4a40 20 23 27 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 0a 20 20 .#'helpful--associated-buffer...
4a60 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 70 72 6f 6d 70 74 2d 70 20 6e 69 6c 0a 20 20 27 66 'symbol.nil...'prompt-p.nil...'f
4a80 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 43 68 61 6e 67 ollow-link.t...'help-echo."Chang
4aa0 65 20 61 73 73 6f 63 69 61 74 65 64 20 62 75 66 66 65 72 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 e.associated.buffer")..(defun.he
4ac0 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 6c 69 76 65 2d 62 75 66 66 65 72 20 28 70 72 6f 6d 70 74 20 lpful--read-live-buffer.(prompt.
4ae0 70 72 65 64 69 63 61 74 65 29 0a 20 20 22 52 65 61 64 20 61 20 6c 69 76 65 20 62 75 66 66 65 72 predicate)..."Read.a.live.buffer
4b00 20 6e 61 6d 65 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 62 75 66 66 65 72 20 6f 62 6a .name,.and.return.the.buffer.obj
4b20 65 63 74 2e 0a 0a 54 68 69 73 20 69 73 20 6c 61 72 67 65 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 ect...This.is.largely.equivalent
4b40 20 74 6f 20 60 72 65 61 64 2d 62 75 66 66 65 72 27 2c 20 62 75 74 20 63 6f 75 6e 73 65 6c 2e 65 .to.`read-buffer',.but.counsel.e
4b60 6c 0a 6f 76 65 72 72 69 64 65 73 20 74 68 61 74 20 74 6f 20 69 6e 63 6c 75 64 65 20 70 72 65 76 l.overrides.that.to.include.prev
4b80 69 6f 75 73 6c 79 20 6f 70 65 6e 65 64 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 6c 65 74 2a 20 iously.opened.buffers."...(let*.
4ba0 28 28 6e 61 6d 65 73 20 28 2d 6d 61 70 20 23 27 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 62 75 66 ((names.(-map.#'buffer-name.(buf
4bc0 66 65 72 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 0a 20 20 fer-list)))..........(default...
4be0 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 .........(cond.............;;.If
4c00 20 77 65 27 72 65 20 61 6c 72 65 61 64 79 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 61 20 62 75 66 66 .we're.already.looking.at.a.buff
4c20 65 72 2d 6c 6f 63 61 6c 20 76 61 6c 75 65 2c 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 er-local.value,.start...........
4c40 20 20 3b 3b 20 74 68 65 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 74 68 65 20 72 65 6c 65 76 61 6e ..;;.the.prompt.from.the.relevan
4c60 74 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 68 65 6c 70 t.buffer..............((and.help
4c80 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 ful--associated-buffer..........
4ca0 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d .........(buffer-live-p.helpful-
4cc0 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 -associated-buffer))............
4ce0 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 ..(buffer-name.helpful--associat
4d00 65 64 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 ed-buffer)).............;;.If.we
4d20 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2c 're.looking.at.the.global.value,
4d40 20 6f 66 66 65 72 20 74 68 65 20 69 6e 69 74 69 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b .offer.the.initial.............;
4d60 3b 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 68 65 6c 70 ;.buffer..............((and.help
4d80 66 75 6c 2d 2d 73 74 61 72 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ful--start-buffer...............
4da0 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 74 61 72 ....(buffer-live-p.helpful--star
4dc0 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d t-buffer))..............(buffer-
4de0 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 2d 73 74 61 72 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 name.helpful--start-buffer))....
4e00 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 .........;;.If.we're.looking.at.
4e20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 6c 75 65 20 61 6e 64 20 68 61 76 65 20 6e 6f 20 69 6e 69 the.global.value.and.have.no.ini
4e40 74 69 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2c 20 63 68 6f 6f tial.............;;.buffer,.choo
4e60 73 65 20 74 68 65 20 66 69 72 73 74 20 6e 6f 72 6d 61 6c 20 62 75 66 66 65 72 2e 0a 20 20 20 20 se.the.first.normal.buffer......
4e80 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 72 73 74 ........(t..............(--first
4ea0 20 28 61 6e 64 20 28 6e 6f 74 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 20 22 20 .(and.(not.(s-starts-with-p.".".
4ec0 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 it))............................
4ee0 28 6e 6f 74 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 2a 22 20 69 74 29 29 29 0a (not.(s-starts-with-p."*".it))).
4f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 73 29 29 0a 20 20 ......................names))...
4f20 20 20 20 20 20 20 20 20 20 20 29 29 29 0a 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 0a 20 20 ..........))).....(get-buffer...
4f40 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 70 72 6f 6d 70 74 ...(completing-read.......prompt
4f60 0a 20 20 20 20 20 20 6e 61 6d 65 73 0a 20 20 20 20 20 20 70 72 65 64 69 63 61 74 65 0a 20 20 20 .......names.......predicate....
4f80 20 20 20 74 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 64 ...t.......nil.......nil.......d
4fa0 65 66 61 75 6c 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f efault))))..(defun.helpful--asso
4fc0 63 69 61 74 65 64 2d 62 75 66 66 65 72 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 43 68 61 6e 67 65 ciated-buffer.(button)..."Change
4fe0 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 64 20 62 75 66 66 65 72 2c 20 73 6f 20 77 65 20 63 61 .the.associated.buffer,.so.we.ca
5000 6e 20 73 65 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 6c 75 65 73 2e 22 0a 20 20 28 6c n.see.buffer-local.values."...(l
5020 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d et.((sym.(button-get.button.'sym
5040 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 2d 70 20 28 62 75 74 74 6f 6e 2d bol)).........(prompt-p.(button-
5060 67 65 74 20 62 75 74 74 6f 6e 20 27 70 72 6f 6d 70 74 2d 70 29 29 29 0a 20 20 20 20 28 69 66 20 get.button.'prompt-p))).....(if.
5080 70 72 6f 6d 70 74 2d 70 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d prompt-p.........(setq.helpful--
50a0 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 associated-buffer...............
50c0 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 6c 69 76 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 (helpful--read-live-buffer......
50e0 20 20 20 20 20 20 20 20 20 20 22 56 69 65 77 20 76 61 72 69 61 62 6c 65 20 69 6e 3a 20 22 0a 20 .........."View.variable.in:."..
5100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 75 66 2d 6e 61 6d 65 29 ..............(lambda.(buf-name)
5120 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c ..................(local-variabl
5140 65 2d 70 20 73 79 6d 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 29 e-p.sym.(get-buffer.buf-name))))
5160 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 ).......(setq.helpful--associate
5180 64 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 d-buffer.nil)))...(helpful-updat
51a0 65 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 e))..(define-button-type.'helpfu
51c0 6c 2d 74 6f 67 67 6c 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 l-toggle-button...'action.#'help
51e0 66 75 6c 2d 2d 74 6f 67 67 6c 65 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 62 75 66 ful--toggle...'symbol.nil...'buf
5200 66 65 72 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 fer.nil...'follow-link.t...'help
5220 2d 65 63 68 6f 20 22 54 6f 67 67 6c 65 20 74 68 69 73 20 73 79 6d 62 6f 6c 20 62 65 74 77 65 65 -echo."Toggle.this.symbol.betwee
5240 6e 20 74 20 61 6e 64 20 6e 69 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 74 n.t.and.nil")..(defun.helpful--t
5260 6f 67 67 6c 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 6f 67 67 6c 65 20 74 68 65 20 73 79 6d oggle.(button)..."Toggle.the.sym
5280 62 6f 6c 20 62 65 74 77 65 65 6e 20 6e 69 6c 20 61 6e 64 20 74 2e 22 0a 20 20 28 6c 65 74 20 28 bol.between.nil.and.t."...(let.(
52a0 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)
52c0 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f ).........(buf.(button-get.butto
52e0 6e 20 27 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 62 n.'buffer))).....(save-current-b
5300 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
5320 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.
5340 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....
5360 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
5380 72 20 62 75 66 29 29 0a 20 20 20 20 20 20 28 73 65 74 20 73 79 6d 20 28 6e 6f 74 20 28 73 79 6d r.buf)).......(set.sym.(not.(sym
53a0 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 75 bol-value.sym)))).....(helpful-u
53c0 70 64 61 74 65 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 pdate)))..(define-button-type.'h
53e0 65 6c 70 66 75 6c 2d 73 65 74 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 elpful-set-button...'action.#'he
5400 6c 70 66 75 6c 2d 2d 73 65 74 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 62 75 66 66 lpful--set...'symbol.nil...'buff
5420 65 72 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d er.nil...'follow-link.t...'help-
5440 65 63 68 6f 20 22 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 73 79 6d 62 echo."Set.the.value.of.this.symb
5460 6f 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 65 74 20 28 62 75 74 74 6f ol")..(defun.helpful--set.(butto
5480 6e 29 0a 20 20 22 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 73 79 6d 62 n)..."Set.the.value.of.this.symb
54a0 6f 6c 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 ol."...(let*.((sym.(button-get.b
54c0 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 62 utton.'symbol))..........(buf.(b
54e0 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 utton-get.button.'buffer))......
5500 20 20 20 20 28 73 79 6d 2d 76 61 6c 75 65 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d 76 61 6c ....(sym-value.(helpful--sym-val
5520 75 65 20 73 79 6d 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 66 75 6e 63 20 ue.sym.buf))..........(set-func.
5540 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 73 65 74 2d 76 61 72 69 61 62 6c (symbol-name.helpful-set-variabl
5560 65 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 70 69 72 65 e-function))..........;;.Inspire
5580 64 20 62 79 20 60 63 6f 75 6e 73 65 6c 2d 72 65 61 64 2d 73 65 74 71 2d 65 78 70 72 65 73 73 69 d.by.`counsel-read-setq-expressi
55a0 6f 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 28 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 28 6d on'...........(expr...........(m
55c0 69 6e 69 62 75 66 66 65 72 2d 77 69 74 68 2d 73 65 74 75 70 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 inibuffer-with-setup-hook.......
55e0 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(lambda.()..............
5600 20 20 20 28 61 64 64 2d 66 75 6e 63 74 69 6f 6e 20 3a 62 65 66 6f 72 65 2d 75 6e 74 69 6c 20 28 ...(add-function.:before-until.(
5620 6c 6f 63 61 6c 20 27 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 75 6e 63 74 local.'eldoc-documentation-funct
5640 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion)............................
5660 20 20 20 23 27 65 6c 69 73 70 2d 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 ...#'elisp-eldoc-documentation-f
5680 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f unction).................(run-ho
56a0 6f 6b 73 20 27 65 76 61 6c 2d 65 78 70 72 65 73 73 69 6f 6e 2d 6d 69 6e 69 62 75 66 66 65 72 2d oks.'eval-expression-minibuffer-
56c0 73 65 74 75 70 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 setup-hook).................(got
56e0 6f 2d 63 68 61 72 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a o-char.(minibuffer-prompt-end)).
5700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 28 6c ................(forward-char.(l
5720 65 6e 67 74 68 20 28 66 6f 72 6d 61 74 20 22 28 25 73 20 25 53 20 22 20 73 65 74 2d 66 75 6e 63 ength.(format."(%s.%S.".set-func
5740 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d .sym)))).............(read-from-
5760 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 45 76 61 6c 3a 20 22 minibuffer.............."Eval:."
5780 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 ..............(format...........
57a0 20 20 20 20 28 69 66 20 28 6f 72 20 28 63 6f 6e 73 70 20 73 79 6d 2d 76 61 6c 75 65 29 0a 20 20 ....(if.(or.(consp.sym-value)...
57c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c ....................(and.(symbol
57e0 70 20 73 79 6d 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.sym-value)....................
5800 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 73 79 6d 2d 76 61 6c 75 65 29 29 0a 20 ........(not.(null.sym-value))..
5820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 ..........................(not.(
5840 6b 65 79 77 6f 72 64 70 20 73 79 6d 2d 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 keywordp.sym-value))))..........
5860 20 20 20 20 20 20 20 20 20 22 28 25 73 20 25 73 20 27 25 53 29 22 0a 20 20 20 20 20 20 20 20 20 ........."(%s.%s.'%S)"..........
5880 20 20 20 20 20 20 20 22 28 25 73 20 25 73 20 25 53 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......."(%s.%s.%S)")............
58a0 20 20 20 73 65 74 2d 66 75 6e 63 20 73 79 6d 20 73 79 6d 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 ...set-func.sym.sym-value)......
58c0 20 20 20 20 20 20 20 20 72 65 61 64 2d 65 78 70 72 65 73 73 69 6f 6e 2d 6d 61 70 20 74 0a 20 20 ........read-expression-map.t...
58e0 20 20 20 20 20 20 20 20 20 20 20 27 72 65 61 64 2d 65 78 70 72 65 73 73 69 6f 6e 2d 68 69 73 74 ...........'read-expression-hist
5900 6f 72 79 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ory)))).....(save-current-buffer
5920 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 69 73 20 61 20 62 75 66 66 65 72 2d 6c 6f .......;;.If.this.is.a.buffer-lo
5940 63 61 6c 20 76 61 72 69 61 62 6c 65 2c 20 65 6e 73 75 72 65 20 77 65 27 72 65 20 69 6e 20 74 68 cal.variable,.ensure.we're.in.th
5960 65 20 72 69 67 68 74 0a 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 28 e.right.......;;.buffer........(
5980 77 68 65 6e 20 62 75 66 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 62 75 66 when.buf.........(set-buffer.buf
59a0 29 29 0a 20 20 20 20 20 20 28 65 76 61 6c 2d 65 78 70 72 65 73 73 69 6f 6e 20 65 78 70 72 29 29 )).......(eval-expression.expr))
59c0 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 29 29 0a 0a 28 64 65 66 69 6e 65 .....(helpful-update)))..(define
59e0 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 76 69 65 77 2d 6c 69 74 65 72 -button-type.'helpful-view-liter
5a00 61 6c 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 76 al-button...'action.#'helpful--v
5a20 69 65 77 2d 6c 69 74 65 72 61 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 54 6f 67 67 6c 65 iew-literal...'help-echo."Toggle
5a40 20 76 69 65 77 69 6e 67 20 61 73 20 61 20 6c 69 74 65 72 61 6c 22 29 0a 0a 28 64 65 66 75 6e 20 .viewing.as.a.literal")..(defun.
5a60 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 20 28 5f 62 75 74 74 6f 6e 29 0a helpful--view-literal.(_button).
5a80 20 20 22 53 65 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 73 79 6d 62 6f 6c 2e .."Set.the.value.of.this.symbol.
5aa0 22 0a 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 0a "...(setq.helpful--view-literal.
5ac0 20 20 20 20 20 20 20 20 28 6e 6f 74 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 ........(not.helpful--view-liter
5ae0 61 6c 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 29 0a 0a 28 64 65 66 69 6e al))...(helpful-update))..(defin
5b00 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 61 6c 6c 2d 72 65 66 65 72 e-button-type.'helpful-all-refer
5b20 65 6e 63 65 73 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c ences-button...'action.#'helpful
5b40 2d 2d 61 6c 6c 2d 72 65 66 65 72 65 6e 63 65 73 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 --all-references...'symbol.nil..
5b60 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 .'callable-p.nil...'follow-link.
5b80 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 46 69 6e 64 20 61 6c 6c 20 72 65 66 65 72 65 6e t...'help-echo."Find.all.referen
5ba0 63 65 73 20 74 6f 20 74 68 69 73 20 73 79 6d 62 6f 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c ces.to.this.symbol")..(defun.hel
5bc0 70 66 75 6c 2d 2d 61 6c 6c 2d 72 65 66 65 72 65 6e 63 65 73 20 28 62 75 74 74 6f 6e 29 0a 20 20 pful--all-references.(button)...
5be0 22 46 69 6e 64 20 61 6c 6c 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 74 68 65 20 "Find.all.the.references.to.the.
5c00 73 79 6d 62 6f 6c 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e symbol.that.this.BUTTON.represen
5c20 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 ts."...(let.((sym.(button-get.bu
5c40 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 63 61 6c 6c 61 62 6c 65 tton.'symbol)).........(callable
5c60 2d 70 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 63 61 6c 6c 61 62 6c 65 2d -p.(button-get.button.'callable-
5c80 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6e 6f 74 20 63 61 6c 6c 61 62 p))).....(cond......((not.callab
5ca0 6c 65 2d 70 29 0a 20 20 20 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 76 61 72 69 61 62 6c 65 le-p).......(elisp-refs-variable
5cc0 20 73 79 6d 29 29 0a 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 73 79 6d 29 0a 20 20 20 .sym))......((functionp.sym)....
5ce0 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 0a 20 20 ...(elisp-refs-function.sym))...
5d00 20 20 20 28 28 6d 61 63 72 6f 70 20 73 79 6d 29 0a 20 20 20 20 20 20 28 65 6c 69 73 70 2d 72 65 ...((macrop.sym).......(elisp-re
5d20 66 73 2d 6d 61 63 72 6f 20 73 79 6d 29 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f fs-macro.sym)))))..(define-butto
5d40 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 65 65 73 2d 62 75 74 74 6f 6e 0a 20 n-type.'helpful-callees-button..
5d60 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 73 68 6f 77 2d 63 61 6c 6c 65 65 73 .'action.#'helpful--show-callees
5d80 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 73 6f 75 72 63 65 20 6e 69 6c 0a 20 20 27 ...'symbol.nil...'source.nil...'
5da0 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 46 69 6e 64 follow-link.t...'help-echo."Find
5dc0 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 62 79 20 74 68 69 73 20 66 75 .the.functions.called.by.this.fu
5de0 6e 63 74 69 6f 6e 2f 6d 61 63 72 6f 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d nction/macro")..(defun.helpful--
5e00 64 69 73 70 6c 61 79 2d 63 61 6c 6c 65 65 2d 67 72 6f 75 70 20 28 63 61 6c 6c 65 65 73 29 0a 20 display-callee-group.(callees)..
5e20 20 22 49 6e 73 65 72 74 20 65 76 65 72 79 20 65 6e 74 72 79 20 69 6e 20 43 41 4c 4c 45 45 53 2e ."Insert.every.entry.in.CALLEES.
5e40 22 0a 20 20 28 64 6f 6c 69 73 74 20 28 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 73 6f 72 74 2d "...(dolist.(sym.(helpful--sort-
5e60 73 79 6d 62 6f 6c 73 20 63 61 6c 6c 65 65 73 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 symbols.callees)).....(insert.".
5e80 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a .".............(helpful--button.
5ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 0a 20 .............(symbol-name.sym)..
5ec0 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 ............'helpful-describe-ex
5ee0 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f actly-button..............'symbo
5f00 6c 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 74 l.sym..............'callable-p.t
5f20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 )............."\n")))..(defun.he
5f40 6c 70 66 75 6c 2d 2d 73 68 6f 77 2d 63 61 6c 6c 65 65 73 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 lpful--show-callees.(button)..."
5f60 46 69 6e 64 20 61 6c 6c 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 74 68 65 20 73 Find.all.the.references.to.the.s
5f80 79 6d 62 6f 6c 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 ymbol.that.this.BUTTON.represent
5fa0 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 s."...(let*.((buf.(get-buffer-cr
5fc0 65 61 74 65 20 22 2a 68 65 6c 70 66 75 6c 20 63 61 6c 6c 65 65 73 2a 22 29 29 0a 20 20 20 20 20 eate."*helpful.callees*"))......
5fe0 20 20 20 20 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d ....(sym.(button-get.button.'sym
6000 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 61 77 2d 73 6f 75 72 63 65 20 28 62 75 74 74 bol))..........(raw-source.(butt
6020 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 on-get.button.'source)).........
6040 20 28 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 .(source...........(if.(stringp.
6060 72 61 77 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 20 raw-source)...............(read.
6080 72 61 77 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77 2d 73 6f 75 72 raw-source).............raw-sour
60a0 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 6d 73 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 ce))..........(syms.(helpful--ca
60c0 6c 6c 65 65 73 20 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 69 6d 69 74 69 llees.source))..........(primiti
60e0 76 65 73 20 28 2d 66 69 6c 74 65 72 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 29 20 28 68 65 6c 70 ves.(-filter.(lambda.(sym).(help
6100 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 74 29 29 20 73 79 6d 73 29 29 0a ful--primitive-p.sym.t)).syms)).
6120 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6f 75 6e 64 73 20 28 2d 72 65 6d 6f 76 65 20 28 6c 61 .........(compounds.(-remove.(la
6140 6d 62 64 61 20 28 73 79 6d 29 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 mbda.(sym).(helpful--primitive-p
6160 20 73 79 6d 20 74 29 29 20 73 79 6d 73 29 29 29 0a 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 .sym.t)).syms)))......(pop-to-bu
6180 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 ffer.buf).....(let.((inhibit-rea
61a0 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a d-only.t)).......(erase-buffer).
61c0 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 4d 61 63 72 6f 73 20 75 73 65 64 2c 20 73 70 65 .......;;.TODO:.Macros.used,.spe
61e0 63 69 61 6c 20 66 6f 72 6d 73 20 75 73 65 64 2c 20 67 6c 6f 62 61 6c 20 76 61 72 73 20 75 73 65 cial.forms.used,.global.vars.use
6200 64 2e 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 46 75 6e 63 74 69 d........(insert.(format."Functi
6220 6f 6e 73 20 63 61 6c 6c 65 64 20 62 79 20 25 73 3a 5c 6e 5c 6e 22 20 73 79 6d 29 29 0a 20 20 20 ons.called.by.%s:\n\n".sym))....
6240 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 64 69 73 70 6c 61 79 2d 63 61 6c 6c 65 65 2d 67 72 6f 75 ...(helpful--display-callee-grou
6260 70 20 63 6f 6d 70 6f 75 6e 64 73 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 69 6d 69 74 p.compounds)........(when.primit
6280 69 76 65 73 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 ives.........(insert."\n")......
62a0 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 50 72 69 6d 69 74 69 76 65 73 20 63 ...(insert.(format."Primitives.c
62c0 61 6c 6c 65 64 20 62 79 20 25 73 3a 5c 6e 5c 6e 22 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 alled.by.%s:\n\n".sym)).........
62e0 28 68 65 6c 70 66 75 6c 2d 2d 64 69 73 70 6c 61 79 2d 63 61 6c 6c 65 65 2d 67 72 6f 75 70 20 70 (helpful--display-callee-group.p
6300 72 69 6d 69 74 69 76 65 73 29 29 0a 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 rimitives))........(goto-char.(p
6320 6f 69 6e 74 2d 6d 69 6e 29 29 0a 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 oint-min))........(helpful-mode)
6340 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 )))..(define-button-type.'helpfu
6360 6c 2d 6d 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 l-manual-button...'action.#'help
6380 66 75 6c 2d 2d 6d 61 6e 75 61 6c 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 66 6f 6c ful--manual...'symbol.nil...'fol
63a0 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 56 69 65 77 20 74 68 low-link.t...'help-echo."View.th
63c0 69 73 20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 65 20 45 6d 61 63 73 20 6d 61 6e 75 61 6c 22 29 0a is.symbol.in.the.Emacs.manual").
63e0 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6e 75 61 6c 20 28 62 75 74 74 6f 6e 29 .(defun.helpful--manual.(button)
6400 0a 20 20 22 4f 70 65 6e 20 74 68 65 20 6d 61 6e 75 61 6c 20 66 6f 72 20 74 68 65 20 73 79 73 74 ..."Open.the.manual.for.the.syst
6420 65 6d 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 em.that.this.BUTTON.represents."
6440 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e ...(let.((sym.(button-get.button
6460 20 27 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 28 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 20 27 73 79 .'symbol))).....(info-lookup.'sy
6480 6d 62 6f 6c 20 73 79 6d 20 23 27 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 29 29 29 0a 0a 28 mbol.sym.#'emacs-lisp-mode)))..(
64a0 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 define-button-type.'helpful-desc
64c0 72 69 62 65 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d ribe-button...'action.#'helpful-
64e0 2d 64 65 73 63 72 69 62 65 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f -describe...'symbol.nil...'follo
6500 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 44 65 73 63 72 69 62 65 20 w-link.t...'help-echo."Describe.
6520 74 68 69 73 20 73 79 6d 62 6f 6c 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 this.symbol")..(defun.helpful--d
6540 65 73 63 72 69 62 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 escribe.(button)..."Describe.the
6560 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
6580 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
65a0 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 73 79 utton.'symbol))).....(helpful-sy
65c0 6d 62 6f 6c 20 73 79 6d 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 mbol.sym)))..(define-button-type
65e0 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f .'helpful-describe-exactly-butto
6600 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 64 65 73 63 72 69 62 65 2d n...'action.#'helpful--describe-
6620 65 78 61 63 74 6c 79 0a 20 20 27 73 79 6d 62 6f 6c 20 6e 69 6c 0a 20 20 27 63 61 6c 6c 61 62 6c exactly...'symbol.nil...'callabl
6640 65 2d 70 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 e-p.nil...'follow-link.t...'help
6660 2d 65 63 68 6f 20 22 44 65 73 63 72 69 62 65 20 74 68 69 73 20 73 79 6d 62 6f 6c 22 29 0a 0a 28 -echo."Describe.this.symbol")..(
6680 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 20 defun.helpful--describe-exactly.
66a0 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.
66c0 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 0a 54 68 69 that.this.BUTTON.represents..Thi
66e0 73 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 60 68 65 6c 70 66 75 6c 2d 2d 64 65 73 63 72 69 62 s.differs.from.`helpful--describ
6700 65 27 20 62 65 63 61 75 73 65 20 68 65 72 65 20 77 65 20 6b 6e 6f 77 0a 77 68 65 74 68 65 72 20 e'.because.here.we.know.whether.
6720 74 68 65 20 73 79 6d 62 6f 6c 20 72 65 70 72 65 73 65 6e 74 73 20 61 20 76 61 72 69 61 62 6c 65 the.symbol.represents.a.variable
6740 20 6f 72 20 61 20 63 61 6c 6c 61 62 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 62 .or.a.callable."...(let.((sym.(b
6760 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 utton-get.button.'symbol))......
6780 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f ...(callable-p.(button-get.butto
67a0 6e 20 27 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c n.'callable-p))).....(if.callabl
67c0 65 2d 70 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 20 73 79 e-p.........(helpful-callable.sy
67e0 6d 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 29 m).......(helpful-variable.sym))
6800 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
6820 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c -info-button...'action.#'helpful
6840 2d 2d 69 6e 66 6f 0a 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f --info...'info-node.nil...'follo
6860 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 56 69 65 77 20 74 68 69 73 w-link.t...'help-echo."View.this
6880 20 49 6e 66 6f 20 6e 6f 64 65 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6e .Info.node")..(defun.helpful--in
68a0 66 6f 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 73 79 6d 62 fo.(button)..."Describe.the.symb
68c0 6f 6c 20 74 68 61 74 20 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 ol.that.this.BUTTON.represents."
68e0 0a 20 20 28 69 6e 66 6f 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 69 6e 66 ...(info.(button-get.button.'inf
6900 6f 2d 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 o-node)))..(define-button-type.'
6920 68 65 6c 70 66 75 6c 2d 73 68 6f 72 74 64 6f 63 2d 62 75 74 74 6f 6e 0a 20 20 27 61 63 74 69 6f helpful-shortdoc-button...'actio
6940 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 73 68 6f 72 74 64 6f 63 0a 20 20 27 69 6e 66 6f 2d 6e 6f n.#'helpful--shortdoc...'info-no
6960 64 65 20 6e 69 6c 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d de.nil...'follow-link.t...'help-
6980 65 63 68 6f 20 22 56 69 65 77 20 74 68 69 73 20 53 68 6f 72 74 64 6f 63 20 67 72 6f 75 70 22 29 echo."View.this.Shortdoc.group")
69a0 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 68 6f 72 74 64 6f 63 20 28 62 75 74 74 ..(defun.helpful--shortdoc.(butt
69c0 6f 6e 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 73 79 6d 62 6f 6c 20 74 68 61 74 20 on)..."Describe.the.symbol.that.
69e0 74 68 69 73 20 42 55 54 54 4f 4e 20 72 65 70 72 65 73 65 6e 74 73 2e 22 0a 20 20 28 73 68 6f 72 this.BUTTON.represents."...(shor
6a00 74 64 6f 63 2d 64 69 73 70 6c 61 79 2d 67 72 6f 75 70 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 tdoc-display-group.(button-get.b
6a20 75 74 74 6f 6e 20 27 73 68 6f 72 74 64 6f 63 2d 67 72 6f 75 70 29 0a 20 20 20 20 20 20 20 20 20 utton.'shortdoc-group)..........
6a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 .................(button-get.but
6a60 74 6f 6e 20 27 73 79 6d 62 6f 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d ton.'symbol)))..(defun.helpful--
6a80 73 70 6c 69 74 2d 66 69 72 73 74 2d 6c 69 6e 65 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 split-first-line.(docstring)..."
6aa0 49 66 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 69 73 20 61 20 73 74 61 6e 64 61 6c 6f 6e If.the.first.line.is.a.standalon
6ac0 65 20 73 65 6e 74 65 6e 63 65 2c 20 65 6e 73 75 72 65 20 77 65 20 68 61 76 65 20 61 0a 62 6c 61 e.sentence,.ensure.we.have.a.bla
6ae0 6e 6b 20 6c 69 6e 65 20 61 66 74 65 72 77 61 72 64 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c nk.line.afterwards."...(let*.((l
6b00 69 6e 65 73 20 28 73 2d 6c 69 6e 65 73 20 64 6f 63 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 ines.(s-lines.docstring)).......
6b20 20 20 20 28 66 69 72 73 74 2d 6c 69 6e 65 20 28 2d 66 69 72 73 74 2d 69 74 65 6d 20 6c 69 6e 65 ...(first-line.(-first-item.line
6b40 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 63 6f 6e 64 2d 6c 69 6e 65 20 28 77 68 65 6e 20 s))..........(second-line.(when.
6b60 28 3e 20 28 6c 65 6e 67 74 68 20 6c 69 6e 65 73 29 20 31 29 20 28 6e 74 68 20 31 20 6c 69 6e 65 (>.(length.lines).1).(nth.1.line
6b80 73 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 2d 65 6e 64 73 2d 77 69 74 68 2d s)))).....(if.(and.(s-ends-with-
6ba0 70 20 22 2e 22 20 66 69 72 73 74 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 p.".".first-line)..............(
6bc0 73 74 72 69 6e 67 70 20 73 65 63 6f 6e 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 stringp.second-line)............
6be0 20 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 73 65 63 6f 6e 64 2d 6c 69 6e 65 20 22 22 29 29 29 0a ..(not.(equal.second-line.""))).
6c00 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 ........(s-join."\n"............
6c20 20 20 20 20 20 28 2d 63 6f 6e 73 2a 20 66 69 72 73 74 2d 6c 69 6e 65 20 22 22 20 28 63 64 72 20 .....(-cons*.first-line."".(cdr.
6c40 6c 69 6e 65 73 29 29 29 0a 20 20 20 20 20 20 64 6f 63 73 74 72 69 6e 67 29 29 29 0a 0a 28 64 65 lines))).......docstring)))..(de
6c60 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 73 79 6d 2d 72 65 66 20 fun.helpful--propertize-sym-ref.
6c80 28 73 79 6d 2d 6e 61 6d 65 20 62 65 66 6f 72 65 2d 74 78 74 20 61 66 74 65 72 2d 74 78 74 29 0a (sym-name.before-txt.after-txt).
6ca0 20 20 22 47 69 76 65 6e 20 61 20 73 79 6d 62 6f 6c 20 6e 61 6d 65 20 66 72 6f 6d 20 61 20 64 6f .."Given.a.symbol.name.from.a.do
6cc0 63 73 74 72 69 6e 67 2c 20 63 6f 6e 76 65 72 74 20 74 6f 20 61 20 62 75 74 74 6f 6e 20 28 69 66 cstring,.convert.to.a.button.(if
6ce0 0a 62 6f 75 6e 64 29 20 6f 72 20 65 6c 73 65 20 68 69 67 68 6c 69 67 68 74 2e 22 0a 20 20 28 6c .bound).or.else.highlight."...(l
6d00 65 74 2a 20 28 28 73 79 6d 20 28 69 6e 74 65 72 6e 20 73 79 6d 2d 6e 61 6d 65 29 29 29 0a 20 20 et*.((sym.(intern.sym-name)))...
6d20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 48 69 67 68 6c 69 67 68 74 20 6b 65 79 77 6f 72 ..(cond......;;.Highlight.keywor
6d40 64 73 2e 0a 20 20 20 20 20 28 28 73 2d 6d 61 74 63 68 65 73 2d 70 0a 20 20 20 20 20 20 20 28 72 ds.......((s-matches-p........(r
6d60 78 20 22 3a 22 0a 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 62 6f 6c 2d 73 74 61 72 74 0a 20 20 x.":"............symbol-start...
6d80 20 20 20 20 20 20 20 20 20 28 2b 3f 20 28 6f 72 20 28 73 79 6e 74 61 78 20 77 6f 72 64 29 20 28 .........(+?.(or.(syntax.word).(
6da0 73 79 6e 74 61 78 20 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 62 syntax.symbol)))............symb
6dc0 6f 6c 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 ol-end)........sym-name).......(
6de0 70 72 6f 70 65 72 74 69 7a 65 20 73 79 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 propertize.sym-name.............
6e00 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 ......'face.'font-lock-builtin-f
6e20 61 63 65 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 20 28 73 ace))......((and.(boundp.sym).(s
6e40 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 76 61 72 69 61 62 6c 65 20 22 20 28 64 6f 77 6e 63 61 -ends-with-p."variable.".(downca
6e60 73 65 20 62 65 66 6f 72 65 2d 74 78 74 29 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d se.before-txt))).......(helpful-
6e80 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 27 -button........sym-name........'
6ea0 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a helpful-describe-exactly-button.
6ec0 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 20 20 20 20 27 63 61 6c 6c 61 .......'symbol.sym........'calla
6ee0 62 6c 65 2d 70 20 6e 69 6c 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 ble-p.nil))......((and.(fboundp.
6f00 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 sym)............(or.............
6f20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 20 63 6f 6d 6d 61 6e 64 22 20 28 64 6f 77 (s-starts-with-p.".command".(dow
6f40 6e 63 61 73 65 20 61 66 74 65 72 2d 74 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ncase.after-txt)).............(s
6f60 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 63 6f 6d 6d 61 6e 64 20 22 20 28 64 6f 77 6e 63 61 73 -ends-with-p."command.".(downcas
6f80 65 20 62 65 66 6f 72 65 2d 74 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 65 6e e.before-txt)).............(s-en
6fa0 64 73 2d 77 69 74 68 2d 70 20 22 66 75 6e 63 74 69 6f 6e 20 22 20 28 64 6f 77 6e 63 61 73 65 20 ds-with-p."function.".(downcase.
6fc0 62 65 66 6f 72 65 2d 74 78 74 29 29 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 before-txt)))).......(helpful--b
6fe0 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 27 68 65 utton........sym-name........'he
7000 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 20 lpful-describe-exactly-button...
7020 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c .....'symbol.sym........'callabl
7040 65 2d 70 20 74 29 29 0a 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 63 72 65 61 74 65 20 61 20 6c 69 e-p.t))......;;.Only.create.a.li
7060 6e 6b 20 69 66 20 74 68 69 73 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 74 68 61 74 20 69 73 20 62 nk.if.this.is.a.symbol.that.is.b
7080 6f 75 6e 64 20 61 73 20 61 0a 20 20 20 20 20 3b 3b 20 76 61 72 69 61 62 6c 65 20 6f 72 20 63 61 ound.as.a......;;.variable.or.ca
70a0 6c 6c 61 62 6c 65 2e 0a 20 20 20 20 20 28 28 6f 72 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 20 28 llable.......((or.(boundp.sym).(
70c0 66 62 6f 75 6e 64 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 fboundp.sym)).......(helpful--bu
70e0 74 74 6f 6e 0a 20 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 27 68 65 6c tton........sym-name........'hel
7100 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 27 73 79 6d pful-describe-button........'sym
7120 62 6f 6c 20 73 79 6d 29 29 0a 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 69 73 20 61 6c 72 bol.sym))......;;.If.this.is.alr
7140 65 61 64 79 20 61 20 62 75 74 74 6f 6e 2c 20 64 6f 6e 27 74 20 6d 6f 64 69 66 79 20 69 74 2e 0a eady.a.button,.don't.modify.it..
7160 20 20 20 20 20 28 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 30 20 27 62 75 74 74 .....((get-text-property.0.'butt
7180 6f 6e 20 73 79 6d 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 73 79 6d 2d 6e 61 6d 65 29 0a 20 20 20 on.sym-name).......sym-name)....
71a0 20 20 3b 3b 20 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 71 75 6f 74 65 64 20 73 74 72 69 6e 67 ..;;.Highlight.the.quoted.string
71c0 2e 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 79 6d 2d .......(t.......(propertize.sym-
71e0 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f name...................'face.'fo
7200 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 29 29 29 0a 0a 28 64 65 66 nt-lock-constant-face)))))..(def
7220 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 69 6e 66 6f 20 28 64 6f 63 un.helpful--propertize-info.(doc
7240 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 69 6e 66 6f 20 72 65 66 65 72 65 6e 63 string)..."Convert.info.referenc
7260 65 73 20 69 6e 20 44 4f 43 53 54 52 49 4e 47 20 74 6f 20 62 75 74 74 6f 6e 73 2e 22 0a 20 20 28 es.in.DOCSTRING.to.buttons."...(
7280 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 3b 3b 20 52 replace-regexp-in-string....;;.R
72a0 65 70 6c 61 63 65 20 61 6c 6c 20 74 65 78 74 20 74 68 61 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 eplace.all.text.that.looks.like.
72c0 61 20 6c 69 6e 6b 20 74 6f 20 61 6e 20 49 6e 66 6f 20 70 61 67 65 2e 0a 20 20 20 28 72 78 20 28 a.link.to.an.Info.page.....(rx.(
72e0 73 65 71 20 28 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 77 0a 20 20 20 20 seq.(group..............bow.....
7300 20 20 20 20 20 20 20 20 20 28 61 6e 79 20 22 49 69 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........(any."Ii").............
7320 20 22 6e 66 6f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 ."nfo"..............(one-or-more
7340 20 77 68 69 74 65 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 .whitespace)).............(group
7360 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 22 6e 6f 64 65 22 20 22 61 6e 63 68 6f 72 ..............(or."node"."anchor
7380 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 77 68 69 ")..............(one-or-more.whi
73a0 74 65 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 79 20 22 27 60 e2 80 tespace)).............(any."'`..
73c0 98 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 .").............(group..........
73e0 20 20 20 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ....(one-or-more...............(
7400 6e 6f 74 20 28 61 6e 79 20 22 27 e2 80 99 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 not.(any."'...")))).............
7420 28 61 6e 79 20 22 27 e2 80 99 22 29 29 29 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 69 74 29 0a 20 (any."'...")))....(lambda.(it)..
7440 20 20 20 20 3b 3b 20 69 6e 66 6f 2d 6e 61 6d 65 20 6d 61 74 63 68 65 73 20 22 5b 49 69 5d 6e 66 ....;;.info-name.matches."[Ii]nf
7460 6f 20 22 2e 0a 20 20 20 20 20 3b 3b 20 73 70 61 63 65 20 6d 61 74 63 68 65 73 20 22 6e 6f 64 65 o.".......;;.space.matches."node
7480 20 22 20 6f 72 20 22 61 6e 63 68 6f 72 20 22 2e 0a 20 20 20 20 20 3b 3b 20 69 6e 66 6f 2d 6e 6f .".or."anchor.".......;;.info-no
74a0 64 65 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 22 28 63 6c 29 4c 6f 6f 70 20 46 61 63 69 6c 69 de.has.the.form."(cl)Loop.Facili
74c0 74 79 22 2e 0a 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 2d 6e 61 6d 65 20 28 6d 61 74 63 ty".......(let.((info-name.(matc
74e0 68 2d 73 74 72 69 6e 67 20 31 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 70 61 63 h-string.1.it))............(spac
7500 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 e.(match-string.2.it))..........
7520 20 20 28 69 6e 66 6f 2d 6e 6f 64 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 20 69 74 29 ..(info-node.(match-string.3.it)
7540 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 20 64 6f ))........;;.If.the.docstring.do
7560 65 73 6e 27 74 20 73 70 65 63 69 66 79 20 61 20 6d 61 6e 75 61 6c 2c 20 61 73 73 75 6d 65 20 74 esn't.specify.a.manual,.assume.t
7580 68 65 20 45 6d 61 63 73 20 6d 61 6e 75 61 6c 2e 0a 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 he.Emacs.manual.........(save-ma
75a0 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e tch-data..........(unless.(strin
75c0 67 2d 6d 61 74 63 68 20 22 5e 28 5b 5e 29 5d 2b 29 22 20 69 6e 66 6f 2d 6e 6f 64 65 29 0a 20 20 g-match."^([^)]+)".info-node)...
75e0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 66 6f 2d 6e 6f 64 65 20 28 63 6f 6e 63 61 74 .........(setq.info-node.(concat
7600 20 22 28 65 6d 61 63 73 29 22 20 69 6e 66 6f 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 ."(emacs)".info-node))))........
7620 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 6e 61 6d 65 0a 20 20 20 20 20 20 (concat.........info-name.......
7640 20 20 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e ..space.........(helpful--button
7660 0a 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 27 68 65 ..........info-node..........'he
7680 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f lpful-info-button..........'info
76a0 2d 6e 6f 64 65 20 69 6e 66 6f 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20 64 6f 63 73 74 72 69 6e 67 -node.info-node))))....docstring
76c0 0a 20 20 20 74 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 ....t.t))..(defun.helpful--keyma
76e0 70 2d 6b 65 79 73 20 28 6b 65 79 6d 61 70 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 74 68 p-keys.(keymap)..."Return.all.th
7700 65 20 6b 65 79 73 20 61 6e 64 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 4b 45 59 4d 41 50 2e 0a 46 e.keys.and.commands.in.KEYMAP..F
7720 6c 61 74 74 65 6e 73 20 6e 65 73 74 65 64 20 6b 65 79 6d 61 70 73 20 61 6e 64 20 66 6f 6c 6c 6f lattens.nested.keymaps.and.follo
7740 77 73 20 72 65 6d 61 70 70 65 64 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a 52 65 74 75 72 6e 73 20 61 ws.remapped.commands...Returns.a
7760 20 6c 69 73 74 20 6f 66 20 70 61 69 72 73 20 28 4b 45 59 43 4f 44 45 53 20 43 4f 4d 4d 41 4e 44 .list.of.pairs.(KEYCODES.COMMAND
7780 29 2c 20 77 68 65 72 65 20 4b 45 59 43 4f 44 45 53 20 69 73 20 61 0a 76 65 63 74 6f 72 20 73 75 ),.where.KEYCODES.is.a.vector.su
77a0 69 74 61 62 6c 65 20 66 6f 72 20 60 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 61 6e itable.for.`key-description',.an
77c0 64 20 43 4f 4d 4d 41 4e 44 20 69 73 20 61 20 73 6d 62 6f 6c 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 d.COMMAND.is.a.smbol."...(cond..
77e0 20 20 3b 3b 20 50 72 65 66 69 78 20 6b 65 79 73 2e 0a 20 20 20 28 28 61 6e 64 0a 20 20 20 20 20 ..;;.Prefix.keys.....((and......
7800 28 73 79 6d 62 6f 6c 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 6b (symbolp.keymap)......(fboundp.k
7820 65 79 6d 61 70 29 0a 20 20 20 20 20 3b 3b 20 50 72 65 66 69 78 20 6b 65 79 73 20 75 73 65 20 61 eymap)......;;.Prefix.keys.use.a
7840 20 6b 65 79 6d 61 70 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 6c 6f 74 20 6f 66 20 .keymap.in.the.function.slot.of.
7860 61 20 73 79 6d 62 6f 6c 2e 0a 20 20 20 20 20 28 6b 65 79 6d 61 70 70 20 28 73 79 6d 62 6f 6c 2d a.symbol.......(keymapp.(symbol-
7880 66 75 6e 63 74 69 6f 6e 20 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d function.keymap))).....(helpful-
78a0 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 6b 65 -keymap-keys.(symbol-function.ke
78c0 79 6d 61 70 29 29 29 0a 20 20 20 3b 3b 20 4f 74 68 65 72 20 73 79 6d 62 6f 6c 73 20 6f 72 20 63 ymap)))....;;.Other.symbols.or.c
78e0 6f 6d 70 69 6c 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 6d 65 61 6e 20 77 65 27 76 65 20 72 65 61 ompiled.functions.mean.we've.rea
7900 63 68 65 64 20 61 20 6c 65 61 66 2c 0a 20 20 20 3b 3b 20 73 6f 20 74 68 69 73 20 69 73 20 61 20 ched.a.leaf,....;;.so.this.is.a.
7920 63 6f 6d 6d 61 6e 64 20 77 65 20 63 61 6e 20 63 61 6c 6c 2e 0a 20 20 20 28 28 6f 72 0a 20 20 20 command.we.can.call.....((or....
7940 20 20 28 73 79 6d 62 6f 6c 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 28 66 75 6e 63 74 69 6f ..(symbolp.keymap)......(functio
7960 6e 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 3b 3b 20 53 74 72 69 6e 67 73 20 6f 72 20 76 65 np.keymap)......;;.Strings.or.ve
7980 63 74 6f 72 73 20 6d 65 61 6e 20 61 20 6b 65 79 62 6f 61 72 64 20 6d 61 63 72 6f 2e 0a 20 20 20 ctors.mean.a.keyboard.macro.....
79a0 20 20 28 73 74 72 69 6e 67 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 28 76 65 63 74 6f 72 70 ..(stringp.keymap)......(vectorp
79c0 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 60 28 28 5b 5d 20 2c 6b 65 79 6d 61 70 29 29 29 0a 20 .keymap)).....`(([].,keymap)))..
79e0 20 20 28 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 28 68 ..((stringp.(car.keymap)).....(h
7a00 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 20 28 63 64 72 20 6b 65 79 6d 61 70 29 elpful--keymap-keys.(cdr.keymap)
7a20 29 29 0a 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 63 75 72 73 65 20 6f 6e 20 74 ))....;;.Otherwise,.recurse.on.t
7a40 68 65 20 6b 65 79 73 20 61 74 20 74 68 69 73 20 6c 65 76 65 6c 20 6f 66 20 74 68 65 20 6b 65 79 he.keys.at.this.level.of.the.key
7a60 6d 61 70 2e 0a 20 20 20 28 74 0a 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 map.....(t.....(let.(result)....
7a80 20 20 20 28 64 6f 6c 69 73 74 20 28 69 74 65 6d 20 28 63 64 72 20 6b 65 79 6d 61 70 29 29 0a 20 ...(dolist.(item.(cdr.keymap))..
7aa0 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 63 6f 6e .......(cond..........((and.(con
7ac0 73 70 20 69 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 61 72 sp.item)................(eq.(car
7ae0 20 69 74 65 6d 29 20 27 6d 65 6e 75 2d 62 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .item).'menu-bar))...........;;.
7b00 53 6b 69 70 20 6d 65 6e 75 20 62 61 72 20 69 74 65 6d 73 2e 0a 20 20 20 20 20 20 20 20 20 20 6e Skip.menu.bar.items............n
7b20 69 6c 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 53 70 61 72 73 65 20 6b 65 79 6d 61 70 73 20 61 il)..........;;.Sparse.keymaps.a
7b40 72 65 20 6c 69 73 74 73 2e 0a 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 69 74 65 6d 29 re.lists...........((consp.item)
7b60 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 6b 65 79 63 6f 64 65 20 2e 20 76 61 6c ...........(-let.[(keycode...val
7b80 75 65 29 20 69 74 65 6d 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 65 61 63 68 20 28 68 65 ue).item].............(-each.(he
7ba0 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 lpful--keymap-keys.value).......
7bc0 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b 65 79 63 6f 64 65 73 20 63 6f 6d 6d ........(-lambda.((keycodes.comm
7be0 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 and)).................(push.(lis
7c00 74 20 28 76 63 6f 6e 63 61 74 20 28 76 65 63 74 6f 72 20 6b 65 79 63 6f 64 65 29 20 6b 65 79 63 t.(vconcat.(vector.keycode).keyc
7c20 6f 64 65 73 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 odes).command)..................
7c40 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 65 6e .....result)))))..........;;.Den
7c60 73 65 20 6b 65 79 6d 61 70 73 20 61 72 65 20 63 68 61 72 2d 74 61 62 6c 65 73 2e 0a 20 20 20 20 se.keymaps.are.char-tables......
7c80 20 20 20 20 20 28 28 63 68 61 72 2d 74 61 62 6c 65 2d 70 20 69 74 65 6d 29 0a 20 20 20 20 20 20 .....((char-table-p.item).......
7ca0 20 20 20 20 28 6d 61 70 2d 63 68 61 72 2d 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 ....(map-char-table............(
7cc0 6c 61 6d 62 64 61 20 28 6b 65 79 63 6f 64 65 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 lambda.(keycode.value)..........
7ce0 20 20 20 20 28 2d 65 61 63 68 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 ....(-each.(helpful--keymap-keys
7d00 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 .value)................(-lambda.
7d20 28 28 6b 65 79 63 6f 64 65 73 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ((keycodes.command))............
7d40 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 28 76 63 6f 6e 63 61 74 20 28 76 65 63 74 ......(push.(list.(vconcat.(vect
7d60 6f 72 20 6b 65 79 63 6f 64 65 29 20 6b 65 79 63 6f 64 65 73 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 or.keycode).keycodes).command)..
7d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 ......................result))))
7da0 0a 20 20 20 20 20 20 20 20 20 20 20 69 74 65 6d 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 46 6f ............item)))).......;;.Fo
7dc0 72 20 65 76 65 72 79 20 63 6f 6d 6d 61 6e 64 20 60 6e 65 77 2d 66 75 6e 63 27 20 6d 61 70 70 65 r.every.command.`new-func'.mappe
7de0 64 20 74 6f 20 61 20 63 6f 6d 6d 61 6e 64 20 60 6f 72 69 67 2d 66 75 6e 63 27 2c 20 73 68 6f 77 d.to.a.command.`orig-func',.show
7e00 20 60 6e 65 77 2d 66 75 6e 63 27 20 77 69 74 68 0a 20 20 20 20 20 20 3b 3b 20 74 68 65 20 6b 65 .`new-func'.with.......;;.the.ke
7e20 79 20 73 65 71 75 65 6e 63 65 20 66 6f 72 20 60 6f 72 69 67 2d 66 75 6e 63 27 2e 0a 20 20 20 20 y.sequence.for.`orig-func'......
7e40 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 ..(setq.result.............(-map
7e60 2d 77 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b 65 -when..............(-lambda.((ke
7e80 79 63 6f 64 65 73 20 5f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 ycodes._))................(and.(
7ea0 3e 20 28 6c 65 6e 67 74 68 20 6b 65 79 63 6f 64 65 73 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 >.(length.keycodes).1)..........
7ec0 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 65 6c 74 20 6b 65 79 63 6f 64 65 73 20 30 29 20 ...........(eq.(elt.keycodes.0).
7ee0 27 72 65 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 'remap)))..............(-lambda.
7f00 28 28 6b 65 79 63 6f 64 65 73 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ((keycodes.command))............
7f20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 72 65 ....(list.................(where
7f40 2d 69 73 2d 69 6e 74 65 72 6e 61 6c 20 28 65 6c 74 20 6b 65 79 63 6f 64 65 73 20 31 29 20 67 6c -is-internal.(elt.keycodes.1).gl
7f60 6f 62 61 6c 2d 6d 61 70 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d obal-map.t).................comm
7f80 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 and))..............result)).....
7fa0 20 20 3b 3b 20 50 72 65 73 65 72 76 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6f 72 64 65 72 ..;;.Preserve.the.original.order
7fc0 20 6f 66 20 74 68 65 20 6b 65 79 6d 61 70 2e 0a 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 .of.the.keymap........(nreverse.
7fe0 72 65 73 75 6c 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 result)))))..(defun.helpful--for
8000 6d 61 74 2d 68 6f 6f 6b 20 28 68 6f 6f 6b 2d 76 61 6c 29 0a 20 20 22 47 69 76 65 6e 20 61 20 6c mat-hook.(hook-val)..."Given.a.l
8020 69 73 74 20 76 61 6c 75 65 20 61 73 73 69 67 6e 65 64 20 74 6f 20 61 20 68 6f 6f 6b 2c 20 66 6f ist.value.assigned.to.a.hook,.fo
8040 72 6d 61 74 20 69 74 20 77 69 74 68 20 6c 69 6e 6b 73 20 74 6f 20 66 75 6e 63 74 69 6f 6e 73 2e rmat.it.with.links.to.functions.
8060 22 0a 20 20 28 6c 65 74 20 28 28 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 "...(let.((lines..........(--map
8080 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 69 74 29 ...........(if.(and.(symbolp.it)
80a0 20 28 66 62 6f 75 6e 64 70 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 .(fboundp.it))...............(he
80c0 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 lpful--button................(sy
80e0 6d 62 6f 6c 2d 6e 61 6d 65 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 mbol-name.it)................'he
8100 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 20 lpful-describe-exactly-button...
8120 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 69 74 0a 20 20 20 20 20 20 20 20 .............'symbol.it.........
8140 20 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 .......'callable-p.t)...........
8160 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 20 28 68 65 ..(helpful--syntax-highlight.(he
8180 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 69 74 29 29 29 0a 20 20 20 20 20 20 lpful--pretty-print.it))).......
81a0 20 20 20 20 68 6f 6f 6b 2d 76 61 6c 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 28 25 73 ....hook-val))).....(format."(%s
81c0 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 20 22 20 6c 69 6e )".............(s-join."\n.".lin
81e0 65 73 29 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 75 6e 6c 69 6b 65 20 60 73 75 62 73 74 69 74 es))))..;;.TODO:.unlike.`substit
8200 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 27 2c 20 74 68 69 73 20 73 68 6f 77 73 20 6b 65 ute-command-keys',.this.shows.ke
8220 79 62 69 6e 64 69 6e 67 73 0a 3b 3b 20 77 68 69 63 68 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 ybindings.;;.which.are.currently
8240 20 73 68 61 64 6f 77 65 64 20 28 65 2e 67 2e 20 61 20 67 6c 6f 62 61 6c 20 6d 69 6e 6f 72 20 6d .shadowed.(e.g..a.global.minor.m
8260 6f 64 65 20 6d 61 70 29 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 ode.map)..(defun.helpful--format
8280 2d 6b 65 79 6d 61 70 20 28 6b 65 79 6d 61 70 29 0a 20 20 22 46 6f 72 6d 61 74 20 4b 45 59 4d 41 -keymap.(keymap)..."Format.KEYMA
82a0 50 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 73 2d 61 6e 64 2d 63 6f 6d 6d 61 6e 64 73 20 P."...(let*.((keys-and-commands.
82c0 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 2d 6b 65 79 73 20 6b 65 79 6d 61 70 29 29 0a 20 (helpful--keymap-keys.keymap))..
82e0 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6e 76 65 72 74 20 6b 65 79 63 6f 64 65 73 20 5b 32 37 20 ........;;.Convert.keycodes.[27.
8300 69 5d 20 74 6f 20 22 43 2d 4d 2d 69 22 2e 0a 20 20 20 20 20 20 20 20 20 28 6b 65 79 73 20 28 2d i].to."C-M-i"...........(keys.(-
8320 6d 61 70 20 23 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 6b 65 79 73 2d 61 6e 64 2d 63 6f 6d 6d 61 map.#'-first-item.keys-and-comma
8340 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 64 20 70 61 64 64 69 6e 67 20 73 6f nds))..........;;.Add.padding.so
8360 20 61 6c 6c 20 6f 75 72 20 73 74 72 69 6e 67 73 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 6c 65 .all.our.strings.are.the.same.le
8380 6e 67 74 68 2e 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 2d 6b 65 79 73 20 28 ngth...........(formatted-keys.(
83a0 2d 6d 61 70 20 23 27 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 6b 65 79 73 29 29 0a 20 20 -map.#'key-description.keys))...
83c0 20 20 20 20 20 20 20 28 6d 61 78 2d 66 6f 72 6d 61 74 74 65 64 2d 6c 65 6e 67 74 68 20 28 2d 6d .......(max-formatted-length.(-m
83e0 61 78 20 28 63 6f 6e 73 20 30 20 28 2d 6d 61 70 20 23 27 6c 65 6e 67 74 68 20 66 6f 72 6d 61 74 ax.(cons.0.(-map.#'length.format
8400 74 65 64 2d 6b 65 79 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 6c 69 67 6e 65 64 2d 6b ted-keys))))..........(aligned-k
8420 65 79 73 20 28 2d 2d 6d 61 70 20 28 73 2d 70 61 64 2d 72 69 67 68 74 20 28 31 2b 20 6d 61 78 2d eys.(--map.(s-pad-right.(1+.max-
8440 66 6f 72 6d 61 74 74 65 64 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 formatted-length)...............
8460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 ............................."."
8480 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .it)............................
84a0 20 20 20 66 6f 72 6d 61 74 74 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 ...formatted-keys))..........;;.
84c0 46 6f 72 6d 61 74 20 63 6f 6d 6d 61 6e 64 73 20 61 73 20 62 75 74 74 6f 6e 73 2e 0a 20 20 20 20 Format.commands.as.buttons......
84e0 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 73 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 28 .....(commands.(-map.(-lambda.((
8500 5f 20 63 6f 6d 6d 61 6e 64 29 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 _.command)).command)............
8520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 73 2d 61 6e 64 2d 63 6f 6d 6d 61 6e 64 73 29 ..............keys-and-commands)
8540 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 2d 63 6f 6d 6d 61 6e 64 73 0a 20 )..........(formatted-commands..
8560 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 .........(--map............(cond
8580 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 79 6d 62 6f 6c 70 20 69 74 29 0a 20 20 20 20 20 .............((symbolp.it)......
85a0 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 ........(helpful--button........
85c0 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).........
85e0 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 62 75 74 74 6f 6e 0a 20 ......'helpful-describe-button..
8600 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 69 74 29 29 0a 20 20 20 20 20 20 .............'symbol.it)).......
8620 20 20 20 20 20 20 28 28 6f 72 20 28 73 74 72 69 6e 67 70 20 69 74 29 20 28 76 65 63 74 6f 72 70 ......((or.(stringp.it).(vectorp
8640 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4b 65 79 62 6f 61 72 64 20 4d 61 63 .it)).............."Keyboard.Mac
8660 72 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 ro").............(t.............
8680 20 22 23 3c 61 6e 6f 6e 79 6d 6f 75 73 2d 66 75 6e 63 74 69 6f 6e 3e 22 29 29 0a 20 20 20 20 20 ."#<anonymous-function>"))......
86a0 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 69 ......commands))..........;;.Bui
86c0 6c 64 20 6c 69 6e 65 73 20 66 6f 72 20 64 69 73 70 6c 61 79 2e 0a 20 20 20 20 20 20 20 20 20 28 ld.lines.for.display...........(
86e0 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 lines...........(-map.(-lambda.(
8700 28 6b 65 79 20 2e 20 63 6f 6d 6d 61 6e 64 29 29 20 28 66 6f 72 6d 61 74 20 22 25 73 20 25 73 22 (key...command)).(format."%s.%s"
8720 20 6b 65 79 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .key.command)).................(
8740 2d 7a 69 70 2d 70 61 69 72 20 61 6c 69 67 6e 65 64 2d 6b 65 79 73 20 66 6f 72 6d 61 74 74 65 64 -zip-pair.aligned-keys.formatted
8760 2d 63 6f 6d 6d 61 6e 64 73 29 29 29 29 0a 20 20 20 20 3b 3b 20 54 68 65 20 66 6c 61 74 74 65 6e -commands)))).....;;.The.flatten
8780 65 64 20 6b 65 79 6d 61 70 20 77 69 6c 6c 20 68 61 76 65 20 6e 6f 72 6d 61 6c 20 62 69 6e 64 69 ed.keymap.will.have.normal.bindi
87a0 6e 67 73 20 66 69 72 73 74 2c 20 61 6e 64 0a 20 20 20 20 3b 3b 20 69 6e 68 65 72 69 74 65 64 20 ngs.first,.and.....;;.inherited.
87c0 62 69 6e 64 69 6e 67 73 20 6c 61 73 74 2e 20 53 6f 72 74 20 73 6f 20 74 68 61 74 20 77 65 20 67 bindings.last..Sort.so.that.we.g
87e0 72 6f 75 70 20 62 79 20 70 72 65 66 69 78 2e 0a 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 roup.by.prefix......(s-join."\n"
8800 20 28 2d 73 6f 72 74 20 23 27 73 74 72 69 6e 67 3c 20 6c 69 6e 65 73 29 29 29 29 0a 0a 28 64 65 .(-sort.#'string<.lines))))..(de
8820 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6f 6d 6d 61 6e 64 73 20 28 73 74 fun.helpful--format-commands.(st
8840 72 20 6b 65 79 6d 61 70 29 0a 20 20 22 52 65 70 6c 61 63 65 20 61 6c 6c 20 74 68 65 20 5c 5c 5b r.keymap)..."Replace.all.the.\\[
8860 20 72 65 66 65 72 65 6e 63 65 73 20 69 6e 20 53 54 52 20 77 69 74 68 20 62 75 74 74 6f 6e 73 2e .references.in.STR.with.buttons.
8880 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...
88a0 20 3b 3b 20 54 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 5c 5b 66 6f 6f 2d 63 6f 6d 6d .;;.Text.of.the.form.\\[foo-comm
88c0 61 6e 64 5d 0a 20 20 20 28 72 78 20 22 5c 5c 5b 22 20 28 67 72 6f 75 70 20 28 2b 20 28 6e 6f 74 and]....(rx."\\[".(group.(+.(not
88e0 20 28 69 6e 20 22 5d 22 29 29 29 29 20 22 5d 22 29 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 69 74 .(in."]"))))."]")....(lambda.(it
8900 29 0a 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 75 74 74 6f 6e 2d 66 61 63 65 20 28 69 66 20 28 )......(let*.((button-face.(if.(
8920 3e 3d 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 38 29 20 27 68 65 6c 70 >=.emacs-major-version.28).'help
8940 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 20 27 62 75 74 74 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 -key-binding.'button))..........
8960 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 ...(symbol-name.(match-string.1.
8980 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 69 6e 74 65 72 6e it)).............(symbol.(intern
89a0 20 73 79 6d 62 6f 6c 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 20 .symbol-name)).............(key.
89c0 28 77 68 65 72 65 2d 69 73 2d 69 6e 74 65 72 6e 61 6c 20 73 79 6d 62 6f 6c 20 6b 65 79 6d 61 70 (where-is-internal.symbol.keymap
89e0 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f .t)).............(key-descriptio
8a00 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 n..............(if.key..........
8a20 20 20 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 6b 65 79 29 0a 20 20 ........(key-description.key)...
8a40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4d 2d 78 20 25 73 22 20 73 79 .............(format."M-x.%s".sy
8a60 6d 62 6f 6c 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 mbol-name))))........(helpful--b
8a80 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 utton.........key-description...
8aa0 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d ......'helpful-describe-exactly-
8ac0 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 62 6f 6c 0a 20 20 button.........'symbol.symbol...
8ae0 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 74 0a 20 20 20 20 20 20 20 20 27 66 61 63 ......'callable-p.t.........'fac
8b00 65 20 62 75 74 74 6f 6e 2d 66 61 63 65 29 29 29 0a 20 20 20 73 74 72 0a 20 20 20 74 0a 20 20 20 e.button-face)))....str....t....
8b20 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 68 61 72 73 2d 62 65 66 6f 72 t))..(defun.helpful--chars-befor
8b40 65 20 28 70 6f 73 20 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 75 70 20 74 6f 20 4e 20 63 68 61 72 e.(pos.n)..."Return.up.to.N.char
8b60 73 20 62 65 66 6f 72 65 20 50 4f 53 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 s.before.POS.in.the.current.buff
8b80 65 72 2e 0a 54 68 65 20 73 74 72 69 6e 67 20 6d 61 79 20 62 65 20 73 68 6f 72 74 65 72 20 74 68 er..The.string.may.be.shorter.th
8ba0 61 6e 20 4e 20 6f 72 20 65 6d 70 74 79 20 69 66 20 6f 75 74 2d 6f 66 2d 72 61 6e 67 65 2e 22 0a an.N.or.empty.if.out-of-range.".
8bc0 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 0a 20 20 20 28 6d 61 78 20 28 70 6f 69 ..(buffer-substring....(max.(poi
8be0 6e 74 2d 6d 69 6e 29 20 28 2d 20 70 6f 73 20 6e 29 29 0a 20 20 20 70 6f 73 29 29 0a 0a 28 64 65 nt-min).(-.pos.n))....pos))..(de
8c00 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 68 61 72 73 2d 61 66 74 65 72 20 28 70 6f 73 20 6e 29 fun.helpful--chars-after.(pos.n)
8c20 0a 20 20 22 52 65 74 75 72 6e 20 75 70 20 74 6f 20 4e 20 63 68 61 72 73 20 61 66 74 65 72 20 50 ..."Return.up.to.N.chars.after.P
8c40 4f 53 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 54 68 65 20 73 74 OS.in.the.current.buffer..The.st
8c60 72 69 6e 67 20 6d 61 79 20 62 65 20 73 68 6f 72 74 65 72 20 74 68 61 6e 20 4e 20 6f 72 20 65 6d ring.may.be.shorter.than.N.or.em
8c80 70 74 79 20 69 66 20 6f 75 74 2d 6f 66 2d 72 61 6e 67 65 2e 22 0a 20 20 28 62 75 66 66 65 72 2d pty.if.out-of-range."...(buffer-
8ca0 73 75 62 73 74 72 69 6e 67 0a 20 20 20 70 6f 73 0a 20 20 20 28 6d 69 6e 20 28 70 6f 69 6e 74 2d substring....pos....(min.(point-
8cc0 6d 61 78 29 20 28 2b 20 70 6f 73 20 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 max).(+.pos.n))))..(defun.helpfu
8ce0 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 28 64 6f 63 73 74 72 69 6e l--format-command-keys.(docstrin
8d00 67 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 63 6f 6d 6d 61 6e 64 20 6b 65 79 20 72 65 66 65 72 65 g)..."Convert.command.key.refere
8d20 6e 63 65 73 20 61 6e 64 20 6b 65 79 6d 61 70 20 72 65 66 65 72 65 6e 63 65 73 0a 69 6e 20 44 4f nces.and.keymap.references.in.DO
8d40 43 53 54 52 49 4e 47 20 74 6f 20 62 75 74 74 6f 6e 73 2e 0a 0a 45 6d 61 63 73 20 75 73 65 73 20 CSTRING.to.buttons...Emacs.uses.
8d60 5c 5c 3d 20 74 6f 20 65 73 63 61 70 65 20 5c 5c 5b 20 72 65 66 65 72 65 6e 63 65 73 2c 20 73 6f \\=.to.escape.\\[.references,.so
8d80 20 72 65 70 6c 61 63 65 20 74 68 61 74 0a 75 6e 65 73 63 61 70 69 6e 67 20 74 6f 6f 2e 22 0a 20 .replace.that.unescaping.too."..
8da0 20 3b 3b 20 4c 6f 6f 73 65 6c 79 20 62 61 73 65 64 20 6f 6e 20 60 73 75 62 73 74 69 74 75 74 65 .;;.Loosely.based.on.`substitute
8dc0 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 27 2c 20 62 75 74 20 63 6f 6e 76 65 72 74 73 0a 20 20 3b -command-keys',.but.converts...;
8de0 3b 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 62 75 74 74 6f 6e 73 2e 0a 20 20 28 6c 65 74 20 ;.references.to.buttons....(let.
8e00 28 28 6b 65 79 6d 61 70 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 ((keymap.nil)).....(with-temp-bu
8e20 66 66 65 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 ffer.......(insert.docstring)...
8e40 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
8e60 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 28 63 ..(while.(not.(eobp)).........(c
8e80 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 ond..........((looking-at.......
8ea0 20 20 20 20 20 3b 3b 20 54 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 22 66 6f 6f 22 0a 20 .....;;.Text.of.the.form."foo"..
8ec0 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 5c 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b ..........(rx."\""))...........;
8ee0 3b 20 46 6f 72 20 6c 69 74 65 72 61 6c 20 73 74 72 69 6e 67 73 2c 20 65 73 63 61 70 65 20 62 61 ;.For.literal.strings,.escape.ba
8f00 63 6b 73 6c 61 73 68 65 73 20 73 6f 20 6f 75 72 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 20 ckslashes.so.our.output.........
8f20 20 20 3b 3b 20 73 68 6f 77 73 20 63 6f 70 79 2d 70 61 73 74 65 61 62 6c 65 20 6c 69 74 65 72 61 ..;;.shows.copy-pasteable.litera
8f40 6c 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 70 6f 73 20 ls............(let*.((start-pos.
8f60 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 70 (point))..................(end-p
8f80 6f 73 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 20 28 73 65 61 72 63 68 os.(progn.(forward-char).(search
8fa0 2d 66 6f 72 77 61 72 64 20 22 5c 22 22 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 -forward."\"".nil.t)))..........
8fc0 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ........contents).............(i
8fe0 66 20 65 6e 64 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e f.end-pos.................(progn
9000 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 65 6e 74 ...................(setq.content
9020 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 73 74 61 72 74 2d 70 6f 73 20 65 6e s.(buffer-substring.start-pos.en
9040 64 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 d-pos))...................(delet
9060 65 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 2d 70 6f 73 20 65 6e 64 2d 70 6f 73 29 0a 20 20 20 20 e-region.start-pos.end-pos).....
9080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 73 2d 72 65 70 6c 61 63 65 ..............(insert.(s-replace
90a0 20 22 5c 5c 22 20 22 5c 5c 5c 5c 22 20 63 6f 6e 74 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 ."\\"."\\\\".contents)))........
90c0 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 29 0a 20 20 20 20 20 .......(forward-char.1))))......
90e0 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 ....((looking-at............;;.T
9100 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 3d 58 0a 20 20 20 20 20 20 20 20 20 20 20 28 ext.of.the.form.\=X............(
9120 72 78 20 22 5c 5c 3d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 6f 76 65 20 74 rx."\\="))...........;;.Remove.t
9140 68 65 20 65 73 63 61 70 69 6e 67 2c 20 74 68 65 6e 20 73 74 65 70 20 6f 76 65 72 20 74 68 65 20 he.escaping,.then.step.over.the.
9160 65 73 63 61 70 65 64 20 63 68 61 72 2e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 65 70 20 escaped.char............;;.Step.
9180 6f 76 65 72 20 74 68 65 20 65 73 63 61 70 65 64 20 63 68 61 72 61 63 74 65 72 2e 0a 20 20 20 20 over.the.escaped.character......
91a0 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 2b 20 ......(delete-region.(point).(+.
91c0 28 70 6f 69 6e 74 29 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 (point).2))...........(forward-c
91e0 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 har.1))..........((looking-at...
9200 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 60 66 6f .........;;.Text.of.the.form.`fo
9220 6f 27 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 60 22 29 29 0a 20 20 20 20 20 20 20 20 o'............(rx."`")).........
9240 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 ..(let*.((start-pos.(point))....
9260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 70 6f 73 20 28 73 65 61 72 63 68 2d 66 ..............(end-pos.(search-f
9280 6f 72 77 61 72 64 20 22 27 22 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 orward."'".nil.t))..............
92a0 20 20 20 20 28 63 6f 6e 74 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(contents...................
92c0 28 77 68 65 6e 20 65 6e 64 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (when.end-pos...................
92e0 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 31 2b 20 73 74 61 72 74 2d 70 6f ..(buffer-substring.(1+.start-po
9300 73 29 20 28 31 2d 20 65 6e 64 2d 70 6f 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 s).(1-.end-pos))))).............
9320 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 63 6f 6e 74 65 6e (cond..............((null.conten
9340 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 72 65 27 73 20 ts)...............;;.If.there's.
9360 6e 6f 20 63 6c 6f 73 69 6e 67 20 27 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 6f 70 65 6e 69 6e no.closing.'.to.match.the.openin
9380 67 20 60 2c 20 6a 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 65 61 76 65 g.`,.just...............;;.leave
93a0 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 31 .it................(goto-char.(1
93c0 2b 20 73 74 61 72 74 2d 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 2d +.start-pos)))..............((s-
93e0 63 6f 6e 74 61 69 6e 73 2d 70 20 22 60 22 20 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 contains-p."`".contents)........
9400 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 68 61 76 65 20 72 65 70 65 61 74 65 64 20 62 61 .......;;.If.we.have.repeated.ba
9420 63 6b 74 69 63 6b 73 20 60 66 6f 6f 20 60 62 61 72 27 2c 20 6c 65 61 76 65 20 74 68 65 0a 20 20 ckticks.`foo.`bar',.leave.the...
9440 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 72 73 74 20 6f 6e 65 2e 0a 20 20 20 20 20 20 ............;;.first.one........
9460 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 31 2b 20 73 74 61 72 74 2d 70 6f 73 ........(goto-char.(1+.start-pos
9480 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 )))..............((s-contains-p.
94a0 22 5c 5c 5b 22 20 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 "\\[".contents)...............(d
94c0 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 2d 70 6f 73 20 65 6e 64 2d 70 6f 73 29 0a elete-region.start-pos.end-pos).
94e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d ..............(insert.(helpful--
9500 66 6f 72 6d 61 74 2d 63 6f 6d 6d 61 6e 64 73 20 63 6f 6e 74 65 6e 74 73 20 6b 65 79 6d 61 70 29 format-commands.contents.keymap)
9520 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 69 67 68 6c 69 67 68 74 20 61 20 6e ))..............;;.Highlight.a.n
9540 6f 72 6d 61 6c 20 60 66 6f 6f 27 2c 20 65 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 73 75 72 72 ormal.`foo',.extracting.the.surr
9560 6f 75 6e 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 65 78 74 20 73 6f 20 ounding..............;;.text.so.
9580 77 65 20 63 61 6e 20 64 65 74 65 63 74 20 65 2e 67 2e 20 22 66 75 6e 63 74 69 6f 6e 20 60 66 6f we.can.detect.e.g.."function.`fo
95a0 6f 27 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 o'"...............(t............
95c0 20 20 20 28 6c 65 74 20 28 28 62 65 66 6f 72 65 20 28 68 65 6c 70 66 75 6c 2d 2d 63 68 61 72 73 ...(let.((before.(helpful--chars
95e0 2d 62 65 66 6f 72 65 20 73 74 61 72 74 2d 70 6f 73 20 31 30 29 29 0a 20 20 20 20 20 20 20 20 20 -before.start-pos.10))..........
9600 20 20 20 20 20 20 20 20 20 20 20 28 61 66 74 65 72 20 28 68 65 6c 70 66 75 6c 2d 2d 63 68 61 72 ...........(after.(helpful--char
9620 73 2d 61 66 74 65 72 20 65 6e 64 2d 70 6f 73 20 31 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 s-after.end-pos.10)))...........
9640 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 2d 70 6f 73 20 65 ......(delete-region.start-pos.e
9660 6e 64 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 nd-pos).................(insert.
9680 28 68 65 6c 70 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 73 79 6d 2d 72 65 66 20 63 6f 6e (helpful--propertize-sym-ref.con
96a0 74 65 6e 74 73 20 62 65 66 6f 72 65 20 61 66 74 65 72 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 tents.before.after))))))).......
96c0 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 ...((looking-at............;;.Te
96e0 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 5c 3c 66 6f 6f 2d 6b 65 79 6d 61 70 3e 0a 20 20 xt.of.the.form.\\<foo-keymap>...
9700 20 20 20 20 20 20 20 20 20 28 72 78 20 22 5c 5c 3c 22 20 28 67 72 6f 75 70 20 28 2b 20 28 6e 6f .........(rx."\\<".(group.(+.(no
9720 74 20 28 69 6e 20 22 3e 22 29 29 29 29 20 22 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.(in.">")))).">"...............
9740 20 28 3f 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 .(?."\n")))...........(let*.((sy
9760 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 mbol-with-parens.(match-string.0
9780 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 ))..................(symbol-name
97a0 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(match-string.1))).............
97c0 3b 3b 20 52 65 6d 6f 76 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 73 74 72 69 6e 67 2e 0a 20 ;;.Remove.the.original.string...
97e0 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 ...........(delete-region.(point
9800 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 )............................(+.
9820 28 70 6f 69 6e 74 29 20 28 6c 65 6e 67 74 68 20 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 (point).(length.symbol-with-pare
9840 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 74 20 74 68 65 20 6e 65 77 ns))).............;;.Set.the.new
9860 20 6b 65 79 6d 61 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 6d 61 .keymap..............(setq.keyma
9880 70 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 28 69 6e 74 65 72 6e 20 73 79 6d 62 6f 6c 2d 6e p.(symbol-value.(intern.symbol-n
98a0 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 ame)))))..........((looking-at..
98c0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 5c ..........;;.Text.of.the.form.\\
98e0 7b 66 6f 6f 2d 6d 6f 64 65 2d 6d 61 70 7d 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 5c {foo-mode-map}............(rx."\
9900 5c 7b 22 20 28 67 72 6f 75 70 20 28 2b 20 28 6e 6f 74 20 28 69 6e 20 22 7d 22 29 29 29 29 20 22 \{".(group.(+.(not.(in."}"))))."
9920 7d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 62 6f 6c 2d 77 69 }"))...........(let*.((symbol-wi
9940 74 68 2d 70 61 72 65 6e 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 0a 20 20 20 20 th-parens.(match-string.0)).....
9960 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 6d 61 74 63 68 .............(symbol-name.(match
9980 2d 73 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 -string.1))..................(ke
99a0 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 47 72 61 63 65 66 ymap...................;;.Gracef
99c0 75 6c 6c 79 20 68 61 6e 64 6c 65 20 76 61 72 69 61 62 6c 65 73 20 6e 6f 74 20 62 65 69 6e 67 20 ully.handle.variables.not.being.
99e0 64 65 66 69 6e 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f defined....................(igno
9a00 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 re-errors.....................(s
9a20 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 28 69 6e 74 65 72 6e 20 73 79 6d 62 6f 6c 2d 6e 61 6d 65 29 ymbol-value.(intern.symbol-name)
9a40 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 6f 76 65 20 74 68 65 20 6f )))).............;;.Remove.the.o
9a60 72 69 67 69 6e 61 6c 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c riginal.string..............(del
9a80 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ete-region.(point)..............
9aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 70 6f 69 6e 74 29 20 28 6c 65 6e 67 74 68 ..............(+.(point).(length
9ac0 20 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 .symbol-with-parens)))..........
9ae0 20 20 20 28 69 66 20 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ...(if.keymap.................(i
9b00 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6b 65 79 6d 61 70 20 6b 65 nsert.(helpful--format-keymap.ke
9b20 79 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f ymap))...............(insert.(fo
9b40 72 6d 61 74 20 22 4b 65 79 6d 61 70 20 25 73 20 69 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 rmat."Keymap.%s.is.not.currently
9b60 20 64 65 66 69 6e 65 64 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .defined."......................
9b80 20 20 20 20 20 20 20 20 20 73 79 6d 62 6f 6c 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 .........symbol-name))))).......
9ba0 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 ...((looking-at............;;.Te
9bc0 78 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 5c 5c 5b 66 6f 6f 2d 63 6f 6d 6d 61 6e 64 5d 0a 20 xt.of.the.form.\\[foo-command]..
9be0 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 5c 5c 5b 22 20 28 67 72 6f 75 70 20 28 2b 20 28 6e ..........(rx."\\[".(group.(+.(n
9c00 6f 74 20 28 69 6e 20 22 5d 22 29 29 29 29 20 22 5d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 ot.(in."]"))))."]"))...........(
9c20 6c 65 74 2a 20 28 28 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 20 28 6d 61 74 63 68 let*.((symbol-with-parens.(match
9c40 2d 73 74 72 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 6f -string.0))).............;;.Remo
9c60 76 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 ve.the.original.string..........
9c80 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 ....(delete-region.(point)......
9ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 70 6f 69 6e 74 29 ......................(+.(point)
9cc0 20 28 6c 65 6e 67 74 68 20 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 29 29 29 0a 20 .(length.symbol-with-parens)))..
9ce0 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 64 20 61 20 62 75 74 74 6f 6e 2e 0a 20 20 20 20 ...........;;.Add.a.button......
9d00 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 ........(insert.(helpful--format
9d20 2d 63 6f 6d 6d 61 6e 64 73 20 73 79 6d 62 6f 6c 2d 77 69 74 68 2d 70 61 72 65 6e 73 20 6b 65 79 -commands.symbol-with-parens.key
9d40 6d 61 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 6d 6f 64 69 66 79 map))))..........;;.Don't.modify
9d60 20 6f 74 68 65 72 20 63 68 61 72 61 63 74 65 72 73 2e 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 .other.characters...........(t..
9d80 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 29 0a 20 20 20 .........(forward-char.1))))....
9da0 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 ...(buffer-string))))..;;.TODO:.
9dc0 66 69 78 20 75 70 73 74 72 65 61 6d 20 45 6d 61 63 73 20 62 75 67 20 74 68 61 74 20 6d 65 61 6e fix.upstream.Emacs.bug.that.mean
9de0 73 20 60 2d 6d 61 70 27 20 69 73 20 6e 6f 74 20 68 69 67 68 6c 69 67 68 74 65 64 0a 3b 3b 20 69 s.`-map'.is.not.highlighted.;;.i
9e00 6e 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 20 66 6f 72 20 60 2d 2d 6d 61 70 27 2e 0a 28 64 65 n.the.docstring.for.`--map'..(de
9e20 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 64 6f 63 73 74 72 69 6e 67 20 28 64 fun.helpful--format-docstring.(d
9e40 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 52 65 70 6c 61 63 65 20 63 72 6f 73 73 2d 72 65 66 65 72 ocstring)..."Replace.cross-refer
9e60 65 6e 63 65 73 20 77 69 74 68 20 6c 69 6e 6b 73 20 69 6e 20 44 4f 43 53 54 52 49 4e 47 2e 22 0a ences.with.links.in.DOCSTRING.".
9e80 20 20 28 2d 3e 20 64 6f 63 73 74 72 69 6e 67 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d ..(->.docstring.......(helpful--
9ea0 73 70 6c 69 74 2d 66 69 72 73 74 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c split-first-line).......(helpful
9ec0 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 --propertize-info).......(helpfu
9ee0 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 6c 69 6e 6b 73 29 0a 20 20 20 20 20 20 28 68 65 6c 70 l--propertize-links).......(help
9f00 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 62 61 72 65 2d 6c 69 6e 6b 73 29 0a 20 20 20 20 ful--propertize-bare-links).....
9f20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 29 ..(helpful--format-command-keys)
9f40 0a 20 20 20 20 20 20 28 73 2d 74 72 69 6d 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f .......(s-trim)))..(define-butto
9f60 6e 2d 74 79 70 65 20 27 68 65 6c 70 66 75 6c 2d 6c 69 6e 6b 2d 62 75 74 74 6f 6e 0a 20 20 27 61 n-type.'helpful-link-button...'a
9f80 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 0a 20 20 27 ction.#'helpful--follow-link...'
9fa0 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 46 6f 6c 6c follow-link.t...'help-echo."Foll
9fc0 6f 77 20 74 68 69 73 20 6c 69 6e 6b 22 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d ow.this.link")..(defun.helpful--
9fe0 70 72 6f 70 65 72 74 69 7a 65 2d 6c 69 6e 6b 73 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 propertize-links.(docstring)..."
a000 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.
a020 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
a040 6e 2d 73 74 72 69 6e 67 0a 20 20 20 28 72 78 20 22 55 52 4c 20 60 22 20 28 67 72 6f 75 70 20 28 n-string....(rx."URL.`".(group.(
a060 2a 3f 20 61 6e 79 29 29 20 22 27 22 29 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 6d 61 74 63 68 29 *?.any))."'")....(lambda.(match)
a080 0a 20 20 20 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 ......(let.((url.(match-string.1
a0a0 20 6d 61 74 63 68 29 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 55 52 4c 20 22 0a .match)))........(concat."URL.".
a0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a ...............(helpful--button.
a0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................url.............
a100 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 6c 69 6e 6b 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 ....'helpful-link-button........
a120 20 20 20 20 20 20 20 20 20 27 75 72 6c 20 75 72 6c 29 29 29 29 0a 20 20 20 64 6f 63 73 74 72 69 .........'url.url))))....docstri
a140 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 70 72 6f 70 65 72 74 69 7a 65 ng))..(defun.helpful--propertize
a160 2d 62 61 72 65 2d 6c 69 6e 6b 73 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6e 76 65 -bare-links.(docstring)..."Conve
a180 72 74 20 55 52 4c 20 6c 69 6e 6b 73 20 69 6e 20 64 6f 63 73 74 72 69 6e 67 73 20 74 6f 20 62 75 rt.URL.links.in.docstrings.to.bu
a1a0 74 74 6f 6e 73 2e 22 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 ttons."...(replace-regexp-in-str
a1c0 69 6e 67 0a 20 20 20 28 72 78 20 28 67 72 6f 75 70 20 28 6f 72 20 73 74 72 69 6e 67 2d 73 74 61 ing....(rx.(group.(or.string-sta
a1e0 72 74 20 73 70 61 63 65 20 22 3c 22 29 29 0a 20 20 20 20 20 20 20 28 67 72 6f 75 70 20 22 68 74 rt.space."<"))........(group."ht
a200 74 70 22 20 28 3f 20 22 73 22 29 20 22 3a 2f 2f 22 20 28 2b 3f 20 28 6e 6f 74 20 28 61 6e 79 20 tp".(?."s")."://".(+?.(not.(any.
a220 73 70 61 63 65 29 29 29 29 0a 20 20 20 20 20 20 20 28 67 72 6f 75 70 20 28 3f 20 28 61 6e 79 20 space))))........(group.(?.(any.
a240 22 2e 22 20 22 3e 22 20 22 29 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 ".".">".")"))...............(or.
a260 73 70 61 63 65 20 73 74 72 69 6e 67 2d 65 6e 64 20 22 3e 22 29 29 29 0a 20 20 20 28 6c 61 6d 62 space.string-end.">")))....(lamb
a280 64 61 20 28 6d 61 74 63 68 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 73 70 61 63 65 2d 62 65 66 da.(match)......(let.((space-bef
a2a0 6f 72 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 6d 61 74 63 68 29 29 0a 20 20 20 20 ore.(match-string.1.match)).....
a2c0 20 20 20 20 20 20 20 28 75 72 6c 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 6d 61 74 63 .......(url.(match-string.2.matc
a2e0 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 66 74 65 72 20 28 6d 61 74 63 68 2d 73 74 72 h))............(after.(match-str
a300 69 6e 67 20 33 20 6d 61 74 63 68 29 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 ing.3.match)))........(concat...
a320 20 20 20 20 20 20 73 70 61 63 65 2d 62 65 66 6f 72 65 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 ......space-before.........(help
a340 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 75 72 6c 0a 20 20 20 20 20 20 20 ful--button..........url........
a360 20 20 27 68 65 6c 70 66 75 6c 2d 6c 69 6e 6b 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 ..'helpful-link-button..........
a380 27 75 72 6c 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 61 66 74 65 72 29 29 29 0a 20 20 20 64 6f 'url.url).........after)))....do
a3a0 63 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 6c 6c 6f cstring))..(defun.helpful--follo
a3c0 77 2d 6c 69 6e 6b 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 46 6f 6c 6c 6f 77 20 74 68 65 20 55 52 w-link.(button)..."Follow.the.UR
a3e0 4c 20 73 70 65 63 69 66 69 65 64 20 62 79 20 42 55 54 54 4f 4e 2e 22 0a 20 20 28 62 72 6f 77 73 L.specified.by.BUTTON."...(brows
a400 65 2d 75 72 6c 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 75 72 6c 29 29 29 e-url.(button-get.button.'url)))
a420 0a 0a 28 64 65 66 63 6f 6e 73 74 20 68 65 6c 70 66 75 6c 2d 2d 68 69 67 68 6c 69 67 68 74 69 6e ..(defconst.helpful--highlightin
a440 67 2d 66 75 6e 63 73 0a 20 20 27 28 65 72 74 2d 2d 61 63 74 69 76 61 74 65 2d 66 6f 6e 74 2d 6c g-funcs...'(ert--activate-font-l
a460 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 0a 20 20 20 20 68 69 67 68 6c 69 67 68 74 2d 71 75 6f 74 65 ock-keywords.....highlight-quote
a480 64 2d 6d 6f 64 65 0a 20 20 20 20 72 61 69 6e 62 6f 77 2d 64 65 6c 69 6d 69 74 65 72 73 2d 6d 6f d-mode.....rainbow-delimiters-mo
a4a0 64 65 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 de)..."Highlighting.functions.th
a4c0 61 74 20 61 72 65 20 73 61 66 65 20 74 6f 20 72 75 6e 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72 at.are.safe.to.run.in.a.temporar
a4e0 79 20 62 75 66 66 65 72 2e 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 69 6e 20 60 68 65 6c 70 66 y.buffer..This.is.used.in.`helpf
a500 75 6c 2d 2d 73 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 27 20 74 6f 20 73 75 70 70 6f 72 74 ul--syntax-highlight'.to.support
a520 20 65 78 74 72 61 0a 68 69 67 68 6c 69 67 68 74 69 6e 67 20 74 68 61 74 20 74 68 65 20 75 73 65 .extra.highlighting.that.the.use
a540 72 20 6d 61 79 20 68 61 76 65 20 63 6f 6e 66 69 67 75 72 65 64 20 69 6e 20 74 68 65 69 72 20 6d r.may.have.configured.in.their.m
a560 6f 64 65 0a 68 6f 6f 6b 73 2e 22 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 63 72 61 73 68 65 73 20 6f ode.hooks.")..;;.TODO:.crashes.o
a580 6e 20 60 62 61 63 6b 74 72 61 63 65 2d 66 72 61 6d 65 27 20 6f 6e 20 61 20 72 65 63 65 6e 74 20 n.`backtrace-frame'.on.a.recent.
a5a0 63 68 65 63 6b 6f 75 74 2e 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6e 74 61 checkout...(defun.helpful--synta
a5c0 78 2d 68 69 67 68 6c 69 67 68 74 20 28 73 6f 75 72 63 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 6f x-highlight.(source.&optional.mo
a5e0 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 6f 70 65 72 74 69 7a 65 64 20 76 65 72 73 de)..."Return.a.propertized.vers
a600 69 6f 6e 20 6f 66 20 53 4f 55 52 43 45 20 69 6e 20 4d 4f 44 45 2e 22 0a 20 20 28 75 6e 6c 65 73 ion.of.SOURCE.in.MODE."...(unles
a620 73 20 6d 6f 64 65 0a 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 20 23 27 65 6d 61 63 73 2d 6c 69 s.mode.....(setq.mode.#'emacs-li
a640 73 70 2d 6d 6f 64 65 29 29 0a 20 20 28 69 66 20 28 6f 72 0a 20 20 20 20 20 20 20 28 3c 20 28 6c sp-mode))...(if.(or........(<.(l
a660 65 6e 67 74 68 20 73 6f 75 72 63 65 29 20 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 ength.source).helpful-max-highli
a680 67 68 74 29 0a 20 20 20 20 20 20 20 28 65 71 20 6d 6f 64 65 20 27 65 6d 61 63 73 2d 6c 69 73 70 ght)........(eq.mode.'emacs-lisp
a6a0 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a -mode)).......(with-temp-buffer.
a6c0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 73 6f 75 72 63 65 29 0a 0a 20 20 20 20 20 20 20 ........(insert.source).........
a6e0 20 3b 3b 20 53 77 69 74 63 68 20 74 6f 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 4d 4f 44 45 2c 20 62 .;;.Switch.to.major-mode.MODE,.b
a700 75 74 20 64 6f 6e 27 74 20 72 75 6e 20 61 6e 79 20 68 6f 6f 6b 73 2e 0a 20 20 20 20 20 20 20 20 ut.don't.run.any.hooks..........
a720 28 64 65 6c 61 79 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 28 66 75 6e 63 61 6c 6c 20 6d 6f 64 65 29 (delay-mode-hooks.(funcall.mode)
a740 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 60 64 65 6c 61 79 65 64 2d 6d 6f 64 65 2d 68 6f 6f 6b )..........;;.`delayed-mode-hook
a760 73 27 20 63 6f 6e 74 61 69 6e 73 20 6d 6f 64 65 20 68 6f 6f 6b 73 20 6c 69 6b 65 0a 20 20 20 20 s'.contains.mode.hooks.like.....
a780 20 20 20 20 3b 3b 20 60 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 2d 68 6f 6f 6b 27 2e 20 42 ....;;.`emacs-lisp-mode-hook'..B
a7a0 75 69 6c 64 20 61 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 61 72 uild.a.list.of.functions.that.ar
a7c0 65 20 72 75 6e 0a 20 20 20 20 20 20 20 20 3b 3b 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 65 20 68 e.run.........;;.when.the.mode.h
a7e0 6f 6f 6b 73 20 72 75 6e 2e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 68 6f 6f 6b 2d 66 75 6e ooks.run..........(let.(hook-fun
a800 63 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 68 6f 6f 6b 20 64 65 6c 61 cs)...........(dolist.(hook.dela
a820 79 65 64 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 yed-mode-hooks).............(let
a840 20 28 28 66 75 6e 63 73 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 68 6f 6f 6b 29 29 29 0a 20 .((funcs.(symbol-value.hook)))..
a860 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 6f 6f 6b 2d 66 75 6e 63 73 20 28 61 .............(setq.hook-funcs.(a
a880 70 70 65 6e 64 20 68 6f 6f 6b 2d 66 75 6e 63 73 20 66 75 6e 63 73 29 29 29 29 0a 0a 20 20 20 20 ppend.hook-funcs.funcs))))......
a8a0 20 20 20 20 20 20 3b 3b 20 46 69 6c 74 65 72 20 68 6f 6f 6b 73 20 74 6f 20 74 68 6f 73 65 20 74 ......;;.Filter.hooks.to.those.t
a8c0 68 61 74 20 72 65 6c 61 74 65 20 74 6f 20 68 69 67 68 6c 69 67 68 74 69 6e 67 2c 20 61 6e 64 20 hat.relate.to.highlighting,.and.
a8e0 72 75 6e 20 74 68 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 6f 6f 6b 2d 66 run.them............(setq.hook-f
a900 75 6e 63 73 20 28 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 68 6f 6f 6b 2d 66 75 6e 63 73 20 68 uncs.(-intersection.hook-funcs.h
a920 65 6c 70 66 75 6c 2d 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 75 6e 63 73 29 29 0a 20 20 20 elpful--highlighting-funcs))....
a940 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 66 75 6e 63 61 6c 6c 20 68 6f 6f 6b 2d 66 75 6e 63 .......(-map.#'funcall.hook-func
a960 73 29 29 0a 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 66 6f 6e 74 2d s))..........(if.(fboundp.'font-
a980 6c 6f 63 6b 2d 65 6e 73 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c lock-ensure).............(font-l
a9a0 6f 63 6b 2d 65 6e 73 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 ock-ensure)...........(with-no-w
a9c0 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 arnings.............(font-lock-f
a9e0 6f 6e 74 69 66 79 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 ontify-buffer))).........(buffer
aa00 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 3b 3b 20 53 4f 55 52 43 45 20 77 61 73 20 74 6f 6f 20 -string)).....;;.SOURCE.was.too.
aa20 6c 6f 6e 67 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 69 6e 20 61 20 72 65 61 73 6f 6e 61 62 6c long.to.highlight.in.a.reasonabl
aa40 65 20 61 6d 6f 75 6e 74 20 6f 66 0a 20 20 20 20 3b 3b 20 74 69 6d 65 2e 0a 20 20 20 20 28 63 6f e.amount.of.....;;.time......(co
aa60 6e 63 61 74 0a 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 22 2f 2f 20 ncat......(propertize......."//.
aa80 53 6b 69 70 70 69 6e 67 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 64 75 65 20 74 6f 20 22 0a 20 Skipping.highlighting.due.to."..
aaa0 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 .....'face.'font-lock-comment-fa
aac0 63 65 29 0a 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 ce)......(helpful--button.......
aae0 22 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 67 68 74 22 0a 20 20 20 20 20 20 27 68 "helpful-max-highlight".......'h
ab00 65 6c 70 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 elpful-describe-exactly-button..
ab20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 27 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 68 69 67 68 6c 69 .....'symbol.'helpful-max-highli
ab40 67 68 74 0a 20 20 20 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 6e 69 6c 29 0a 20 20 20 20 20 ght.......'callable-p.nil)......
ab60 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 22 2e 5c 6e 22 0a 20 20 20 20 20 20 27 66 (propertize.......".\n".......'f
ab80 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 0a 20 20 20 ace.'font-lock-comment-face)....
aba0 20 20 73 6f 75 72 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 6f 75 ..source)))..(defun.helpful--sou
abc0 72 63 65 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 29 0a 20 20 22 rce.(sym.callable-p.buf.pos)..."
abe0 52 65 74 75 72 6e 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 66 20 53 59 4d 2e 0a 49 Return.the.source.code.of.SYM..I
ac00 66 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e f.the.source.code.cannot.be.foun
ac20 64 2c 20 72 65 74 75 72 6e 20 74 68 65 20 73 65 78 70 20 75 73 65 64 2e 22 0a 20 20 28 63 61 74 d,.return.the.sexp.used."...(cat
ac40 63 68 20 27 73 6f 75 72 63 65 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 79 6d 62 6f 6c 70 20 ch.'source.....(unless.(symbolp.
ac60 73 79 6d 29 0a 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 73 6f 75 72 63 65 20 73 79 6d 29 29 0a sym).......(throw.'source.sym)).
ac80 0a 20 20 20 20 28 6c 65 74 20 28 28 73 6f 75 72 63 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 .....(let.((source.nil)).......(
aca0 77 68 65 6e 20 28 61 6e 64 20 62 75 66 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 when.(and.buf.pos).........(with
acc0 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 73 -current-buffer.buf...........(s
ace0 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d ave-excursion.............(save-
ad00 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d restriction...............(goto-
ad20 63 68 61 72 20 70 6f 73 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e char.pos)................(if.(an
ad40 64 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 63 61 6c 6c d.(helpful--primitive-p.sym.call
ad60 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 able-p)........................(
ad80 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 not.callable-p))................
ada0 20 20 20 3b 3b 20 46 6f 72 20 76 61 72 69 61 62 6c 65 73 20 64 65 66 69 6e 65 64 20 69 6e 20 2e ...;;.For.variables.defined.in..
adc0 63 20 66 69 6c 65 73 2c 20 6f 6e 6c 79 20 73 68 6f 77 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 c.files,.only.show.the..........
ade0 20 20 20 20 20 20 20 20 20 3b 3b 20 44 45 46 56 41 52 20 65 78 70 72 65 73 73 69 6f 6e 20 72 61 .........;;.DEFVAR.expression.ra
ae00 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 68 75 67 65 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 20 20 ther.than.the.huge.containing...
ae20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 ................;;.function.....
ae40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 ...............(progn...........
ae60 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e ..........(setq.pos.(line-beginn
ae80 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ing-position))..................
aea0 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(forward-list)...............
aec0 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......(forward-char)............
aee0 20 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 70 6f 73 20 28 .........(narrow-to-region.pos.(
af00 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 61 72 72 point))).................;;.Narr
af20 6f 77 20 74 6f 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a ow.to.the.top-level.definition..
af40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 73 65 2d 73 65 78 ................(let.((parse-sex
af60 70 2d 69 67 6e 6f 72 65 2d 63 6f 6d 6d 65 6e 74 73 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 p-ignore-comments.t))...........
af80 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 64 65 66 75 6e 20 74 29 29 29 0a 0a 20 ........(narrow-to-defun.t)))...
afa0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 72 65 20 77 61 73 20 61 20 70 .............;;.If.there.was.a.p
afc0 72 65 63 65 64 69 6e 67 20 63 6f 6d 6d 65 6e 74 2c 20 50 4f 53 20 77 69 6c 6c 20 62 65 0a 20 20 receding.comment,.POS.will.be...
afe0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 20 74 68 61 74 20 63 6f 6d 6d 65 6e ............;;.after.that.commen
b000 74 2e 20 4d 6f 76 65 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 74 6f 20 69 6e 63 6c 75 64 65 20 t..Move.the.position.to.include.
b020 74 68 61 74 20 63 6f 6d 6d 65 6e 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 that.comment................(set
b040 71 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 q.pos.(point-min))..............
b060 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 ..(setq.source.(buffer-substring
b080 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e -no-properties.(point-min).(poin
b0a0 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 t-max)))))).........(setq.source
b0c0 20 28 73 2d 74 72 69 6d 2d 72 69 67 68 74 20 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 .(s-trim-right.source)).........
b0e0 28 77 68 65 6e 20 28 61 6e 64 20 73 6f 75 72 63 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e (when.(and.source.(buffer-file-n
b100 61 6d 65 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 ame.buf))...........(setq.source
b120 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(propertize.source.............
b140 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-
b160 70 61 74 68 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 29 0a 20 20 20 20 path.(buffer-file-name.buf).....
b180 20 20 20 20 20 20 20 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 ...............................'
b1a0 68 65 6c 70 66 75 6c 2d 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 helpful-pos.pos.................
b1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 2d ...................'helpful-pos-
b1e0 69 73 2d 73 74 61 72 74 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 73 6f is-start.t))).........(throw.'so
b200 75 72 63 65 20 73 6f 75 72 63 65 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 63 61 6c 6c 61 62 urce.source)))......(when.callab
b220 6c 65 2d 70 0a 20 20 20 20 20 20 3b 3b 20 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 73 6f 75 le-p.......;;.Could.not.find.sou
b240 72 63 65 20 2d 2d 20 70 72 6f 62 61 62 6c 79 20 64 65 66 69 6e 65 64 20 69 6e 74 65 72 61 63 74 rce.--.probably.defined.interact
b260 69 76 65 6c 79 2c 20 6f 72 20 76 69 61 0a 20 20 20 20 20 20 3b 3b 20 61 20 6d 61 63 72 6f 2c 20 ively,.or.via.......;;.a.macro,.
b280 6f 72 20 66 69 6c 65 20 68 61 73 20 63 68 61 6e 67 65 64 2e 0a 20 20 20 20 20 20 3b 3b 20 54 4f or.file.has.changed........;;.TO
b2a0 44 4f 3a 20 76 65 72 69 66 79 20 74 68 61 74 20 74 68 65 20 73 6f 75 72 63 65 20 68 61 73 6e 27 DO:.verify.that.the.source.hasn'
b2c0 74 20 63 68 61 6e 67 65 64 20 62 65 66 6f 72 65 20 73 68 6f 77 69 6e 67 2e 0a 20 20 20 20 20 20 t.changed.before.showing........
b2e0 3b 3b 20 54 4f 44 4f 3a 20 6f 66 66 65 72 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 43 20 73 6f 75 ;;.TODO:.offer.to.download.C.sou
b300 72 63 65 73 20 66 6f 72 20 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 2e 0a 20 20 20 20 20 20 rces.for.current.version........
b320 28 74 68 72 6f 77 20 27 73 6f 75 72 63 65 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f (throw.'source.(indirect-functio
b340 6e 20 73 79 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 68 61 73 2d n.sym)))))..(defun.helpful--has-
b360 73 68 6f 72 74 64 6f 63 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e shortdoc-p.(sym)..."Return.non-n
b380 69 6c 20 69 66 20 73 68 6f 72 74 64 6f 63 2e 65 6c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 il.if.shortdoc.el.is.available.a
b3a0 6e 64 20 53 59 4d 20 69 73 20 69 6e 20 61 20 73 68 6f 72 74 64 6f 63 20 67 72 6f 75 70 2e 22 0a nd.SYM.is.in.a.shortdoc.group.".
b3c0 20 20 28 61 6e 64 20 28 66 65 61 74 75 72 65 70 20 27 73 68 6f 72 74 64 6f 63 29 0a 20 20 20 20 ..(and.(featurep.'shortdoc).....
b3e0 20 20 20 28 73 68 6f 72 74 64 6f 63 2d 66 75 6e 63 74 69 6f 6e 2d 67 72 6f 75 70 73 20 73 79 6d ...(shortdoc-function-groups.sym
b400 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6e 2d 6d 61 6e 75 61 6c 2d 70 )))..(defun.helpful--in-manual-p
b420 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 53 59 4d 20 .(sym)..."Return.non-nil.if.SYM.
b440 69 73 20 69 6e 20 61 6e 20 49 6e 66 6f 20 6d 61 6e 75 61 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 is.in.an.Info.manual."...(let.((
b460 63 6f 6d 70 6c 65 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 65 74 66 20 28 28 completions..........(cl-letf.((
b480 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6d 65 73 73 61 67 65 29 0a 20 20 20 20 (symbol-function.#'message).....
b4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 66 6f 72 6d 61 74 ................(lambda.(_format
b4c0 2d 73 74 72 69 6e 67 20 26 72 65 73 74 20 5f 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 -string.&rest._args)))).........
b4e0 20 20 20 28 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 2d 3e 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 27 73 79 ...(info-lookup->completions.'sy
b500 6d 62 6f 6c 20 27 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 29 29 29 29 0a 20 20 20 20 28 2d mbol.'emacs-lisp-mode)))).....(-
b520 77 68 65 6e 2d 6c 65 74 20 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 22 20 74 65 6d 70 when-let.(buf.(get-buffer.".temp
b540 2d 69 6e 66 6f 2d 6c 6f 6f 6b 22 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 -info-look")).......(kill-buffer
b560 20 62 75 66 29 29 0a 20 20 20 20 28 6f 72 20 28 61 73 73 6f 63 20 73 79 6d 20 63 6f 6d 70 6c 65 .buf)).....(or.(assoc.sym.comple
b580 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 2d 73 74 72 69 6e 67 20 73 79 6d tions).........(assoc-string.sym
b5a0 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c .completions))))..(defun.helpful
b5c0 2d 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 20 28 73 79 6d 29 0a 20 20 22 49 66 20 53 59 4d 20 68 --version-info.(sym)..."If.SYM.h
b5e0 61 73 20 76 65 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 66 6f 72 6d 61 74 20 61 as.version.information,.format.a
b600 6e 64 20 72 65 74 75 72 6e 20 69 74 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 6f 74 68 65 72 77 69 nd.return.it..Return.nil.otherwi
b620 73 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 28 se."...(when.(symbolp.sym).....(
b640 6c 65 74 20 28 28 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 let.((package-version...........
b660 20 28 67 65 74 20 73 79 6d 20 27 63 75 73 74 6f 6d 2d 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f .(get.sym.'custom-package-versio
b680 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 0a 20 20 20 n))...........(emacs-version....
b6a0 20 20 20 20 20 20 20 20 28 67 65 74 20 73 79 6d 20 27 63 75 73 74 6f 6d 2d 76 65 72 73 69 6f 6e ........(get.sym.'custom-version
b6c0 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 70 61 63 6b 61 67 65 2d ))).......(cond........(package-
b6e0 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 version.........(format.........
b700 20 22 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 77 61 73 20 61 64 64 65 64 2c 20 6f 72 20 69 74 ."This.variable.was.added,.or.it
b720 73 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 63 68 61 6e 67 65 64 2c 20 69 6e 20 25 73 20 76 s.default.value.changed,.in.%s.v
b740 65 72 73 69 6f 6e 20 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 28 63 61 72 20 70 61 63 6b 61 67 ersion.%s."..........(car.packag
b760 65 2d 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 28 63 64 72 20 70 61 63 6b 61 67 65 e-version)..........(cdr.package
b780 2d 76 65 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 28 65 6d 61 63 73 2d 76 65 72 73 69 6f -version)))........(emacs-versio
b7a0 6e 0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 22 54 68 69 73 n.........(format.........."This
b7c0 20 76 61 72 69 61 62 6c 65 20 77 61 73 20 61 64 64 65 64 2c 20 6f 72 20 69 74 73 20 64 65 66 61 .variable.was.added,.or.its.defa
b7e0 75 6c 74 20 76 61 6c 75 65 20 63 68 61 6e 67 65 64 2c 20 69 6e 20 45 6d 61 63 73 20 25 73 2e 22 ult.value.changed,.in.Emacs.%s."
b800 0a 20 20 20 20 20 20 20 20 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 29 29 29 29 29 29 0a 0a 28 ..........emacs-version))))))..(
b820 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6c 69 62 72 61 72 79 2d 70 61 74 68 20 28 6c 69 62 defun.helpful--library-path.(lib
b840 72 61 72 79 2d 6e 61 6d 65 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 rary-name)..."Find.the.absolute.
b860 70 61 74 68 20 66 6f 72 20 74 68 65 20 73 6f 75 72 63 65 20 6f 66 20 4c 49 42 52 41 52 59 2d 4e path.for.the.source.of.LIBRARY-N
b880 41 4d 45 2e 0a 0a 4c 49 42 52 41 52 59 2d 4e 41 4d 45 20 74 61 6b 65 73 20 74 68 65 20 66 6f 72 AME...LIBRARY-NAME.takes.the.for
b8a0 6d 20 5c 22 66 6f 6f 2e 65 6c 5c 22 20 2c 20 5c 22 66 6f 6f 2e 65 6c 5c 22 20 6f 72 0a 5c 22 73 m.\"foo.el\".,.\"foo.el\".or.\"s
b8c0 72 63 2f 66 6f 6f 2e 63 5c 22 2e 0a 0a 49 66 20 2e 65 6c 63 20 66 69 6c 65 73 20 65 78 69 73 74 rc/foo.c\"...If..elc.files.exist
b8e0 20 77 69 74 68 6f 75 74 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 2e 65 6c 2c 20 .without.the.corresponding..el,.
b900 72 65 74 75 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 28 66 2d return.nil."...(when.(member.(f-
b920 65 78 74 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 20 27 28 22 63 22 20 22 72 73 22 29 29 0a 20 ext.library-name).'("c"."rs"))..
b940 20 20 20 28 73 65 74 71 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 ...(setq.library-name...........
b960 28 66 2d 65 78 70 61 6e 64 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 (f-expand.library-name..........
b980 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 70 61 72 65 6e 74 20 66 69 6e 64 2d 66 75 6e 63 74 69 ...........(f-parent.find-functi
b9a0 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 29 29 29 29 0a 20 20 28 63 6f 6e on-C-source-directory))))...(con
b9c0 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 66 69 6e 64 2d 6c 69 62 72 dition-case.nil.......(find-libr
b9e0 61 72 79 2d 6e 61 6d 65 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 0a 20 20 20 20 28 65 72 72 6f ary-name.library-name).....(erro
ba00 72 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 63 72 6f 65 r.nil)))..(defun.helpful--macroe
ba20 78 70 61 6e 64 2d 74 72 79 20 28 66 6f 72 6d 29 0a 20 20 22 54 72 79 20 74 6f 20 66 75 6c 6c 79 xpand-try.(form)..."Try.to.fully
ba40 20 6d 61 63 72 6f 65 78 70 61 6e 64 20 46 4f 52 4d 2e 0a 49 66 20 69 74 20 66 61 69 6c 73 2c 20 .macroexpand.FORM..If.it.fails,.
ba60 61 74 74 65 6d 70 74 20 74 6f 20 70 61 72 74 69 61 6c 6c 79 20 6d 61 63 72 6f 65 78 70 61 6e 64 attempt.to.partially.macroexpand
ba80 20 46 4f 52 4d 2e 22 0a 20 20 28 63 61 74 63 68 20 27 72 65 73 75 6c 74 0a 20 20 20 20 28 69 67 .FORM."...(catch.'result.....(ig
baa0 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 3b 3b 20 48 61 70 70 79 20 70 61 74 68 3a nore-errors.......;;.Happy.path:
bac0 20 77 65 20 63 61 6e 20 66 75 6c 6c 79 20 65 78 70 61 6e 64 20 74 68 65 20 66 6f 72 6d 2e 0a 20 .we.can.fully.expand.the.form...
bae0 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 73 75 6c 74 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 .....(throw.'result.(macroexpand
bb00 2d 61 6c 6c 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a -all.form))).....(ignore-errors.
bb20 20 20 20 20 20 20 3b 3b 20 41 74 74 65 6d 70 74 20 6f 6e 65 20 6c 65 76 65 6c 20 6f 66 20 6d 61 ......;;.Attempt.one.level.of.ma
bb40 63 72 6f 65 78 70 61 6e 73 69 6f 6e 2e 0a 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 73 75 croexpansion........(throw.'resu
bb60 6c 74 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 2d 31 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 3b 3b lt.(macroexpand-1.form))).....;;
bb80 20 46 61 6c 6c 62 61 63 6b 3a 20 6a 75 73 74 20 72 65 74 75 72 6e 20 74 68 65 20 6f 72 69 67 69 .Fallback:.just.return.the.origi
bba0 6e 61 6c 20 66 6f 72 6d 2e 0a 20 20 20 20 66 6f 72 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c nal.form......form))..(defun.hel
bbc0 70 66 75 6c 2d 2d 74 72 65 65 2d 61 6e 79 2d 70 20 28 70 72 65 64 20 74 72 65 65 29 0a 20 20 22 pful--tree-any-p.(pred.tree)..."
bbe0 57 61 6c 6b 20 54 52 45 45 2c 20 61 70 70 6c 79 69 6e 67 20 50 52 45 44 20 74 6f 20 65 76 65 72 Walk.TREE,.applying.PRED.to.ever
bc00 79 20 73 75 62 74 72 65 65 2e 0a 52 65 74 75 72 6e 20 74 20 69 66 20 50 52 45 44 20 65 76 65 72 y.subtree..Return.t.if.PRED.ever
bc20 20 72 65 74 75 72 6e 73 20 74 2e 22 0a 20 20 28 63 61 74 63 68 20 27 66 6f 75 6e 64 0a 20 20 20 .returns.t."...(catch.'found....
bc40 20 28 6c 65 74 20 28 28 73 74 61 63 6b 20 28 6c 69 73 74 20 74 72 65 65 29 29 29 0a 20 20 20 20 .(let.((stack.(list.tree))).....
bc60 20 20 28 77 68 69 6c 65 20 73 74 61 63 6b 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 ..(while.stack.........(let.((ne
bc80 78 74 20 28 70 6f 70 20 73 74 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 xt.(pop.stack)))...........(cond
bca0 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 6e 65 78 74 29 ............((funcall.pred.next)
bcc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 74 29 29 0a 20 .............(throw.'found.t))..
bce0 20 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 ..........((consp.next).........
bd00 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 6e 65 78 74 29 20 73 74 61 63 6b 29 0a 20 20 20 20 ....(push.(car.next).stack).....
bd20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 64 72 20 6e 65 78 74 29 20 73 74 61 63 6b 29 29 ........(push.(cdr.next).stack))
bd40 29 29 29 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d )))).....nil))..(defun.helpful--
bd60 66 69 6e 64 2d 62 79 2d 6d 61 63 72 6f 65 78 70 61 6e 64 69 6e 67 20 28 62 75 66 20 73 79 6d 20 find-by-macroexpanding.(buf.sym.
bd80 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 53 65 61 72 63 68 20 42 55 46 20 66 6f 72 20 74 68 callable-p)..."Search.BUF.for.th
bda0 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 53 59 4d 20 62 79 20 6d 61 63 72 6f 65 78 70 61 e.definition.of.SYM.by.macroexpa
bdc0 6e 64 69 6e 67 0a 69 6e 74 65 72 65 73 74 69 6e 67 20 66 6f 72 6d 73 20 69 6e 20 42 55 46 2e 22 nding.interesting.forms.in.BUF."
bde0 0a 20 20 28 63 61 74 63 68 20 27 66 6f 75 6e 64 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 ...(catch.'found.....(with-curre
be00 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 nt-buffer.buf.......(save-excurs
be20 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 ion.........(goto-char.(point-mi
be40 6e 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a n)).........(condition-case.nil.
be60 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 ............(while.t............
be80 20 20 20 28 6c 65 74 20 28 28 66 6f 72 6d 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 ...(let.((form.(read.(current-bu
bea0 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 72 ffer))).....................(var
bec0 2d 64 65 66 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d -def-p......................(lam
bee0 62 64 61 20 28 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bda.(sexp)......................
bf00 20 20 28 61 6e 64 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 73 65 78 70 29 20 27 64 65 66 76 ..(and.(eq.(car-safe.sexp).'defv
bf20 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar).............................
bf40 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 28 63 64 72 20 73 65 78 70 29 29 20 73 79 6d 29 29 29 (eq.(car-safe.(cdr.sexp)).sym)))
bf60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6e 2d 64 65 66 2d 70 0a ).....................(fn-def-p.
bf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 65 .....................(lambda.(se
bfa0 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 64 xp)........................;;.`d
bfc0 65 66 75 6e 27 20 75 6c 74 69 6d 61 74 65 6c 79 20 65 78 70 61 6e 64 73 20 74 6f 20 60 64 65 66 efun'.ultimately.expands.to.`def
bfe0 61 6c 69 61 73 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 alias'.........................(
c000 61 6e 64 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 73 65 78 70 29 20 27 64 65 66 61 6c 69 61 and.(eq.(car-safe.sexp).'defalia
c020 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 s).............................(
c040 65 71 75 61 6c 20 28 63 61 72 2d 73 61 66 65 20 28 63 64 72 20 73 65 78 70 29 29 20 60 28 71 75 equal.(car-safe.(cdr.sexp)).`(qu
c060 6f 74 65 20 2c 73 79 6d 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ote.,sym)))))).................(
c080 73 65 74 71 20 66 6f 72 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 63 72 6f 65 78 70 61 6e 64 2d setq.form.(helpful--macroexpand-
c0a0 74 72 79 20 66 6f 72 6d 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 try.form))..................(whe
c0c0 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 74 72 65 65 2d 61 6e 79 2d 70 0a 20 20 20 20 20 20 20 20 20 n.(helpful--tree-any-p..........
c0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 20 66 6e 2d ..............(if.callable-p.fn-
c100 64 65 66 2d 70 20 76 61 72 2d 64 65 66 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 def-p.var-def-p)................
c120 20 20 20 20 20 20 20 20 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........form)...................
c140 3b 3b 20 60 72 65 61 64 27 20 70 75 74 73 20 70 6f 69 6e 74 20 61 74 20 74 68 65 20 65 6e 64 20 ;;.`read'.puts.point.at.the.end.
c160 6f 66 20 74 68 65 20 66 6f 72 6d 2c 20 73 6f 20 67 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 of.the.form,.so.go..............
c180 20 20 20 20 20 3b 3b 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 74 61 72 74 2e 0a 20 20 20 20 20 .....;;.back.to.the.start.......
c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 28 73 63 61 6e .............(throw.'found.(scan
c1c0 2d 73 65 78 70 73 20 28 70 6f 69 6e 74 29 20 2d 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 -sexps.(point).-1)))))..........
c1e0 20 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 6e 69 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 .(end-of-file.nil))))))..(defun.
c200 68 65 6c 70 66 75 6c 2d 2d 6f 70 65 6e 2d 69 66 2d 6e 65 65 64 65 64 20 28 70 61 74 68 29 0a 20 helpful--open-if-needed.(path)..
c220 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 28 42 55 46 20 4f 50 45 4e 45 44 29 20 77 68 65 ."Return.a.list.(BUF.OPENED).whe
c240 72 65 20 42 55 46 20 69 73 20 61 20 62 75 66 66 65 72 20 76 69 73 69 74 69 6e 67 20 50 41 54 48 re.BUF.is.a.buffer.visiting.PATH
c260 2e 0a 49 66 20 61 20 62 75 66 66 65 72 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2c 20 72 65 ..If.a.buffer.already.exists,.re
c280 74 75 72 6e 20 74 68 61 74 2e 20 49 66 20 6e 6f 74 2c 20 6f 70 65 6e 20 50 41 54 48 20 77 69 74 turn.that..If.not,.open.PATH.wit
c2a0 68 0a 74 68 65 20 60 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 27 20 73 79 6e 74 61 78 20 74 h.the.`emacs-lisp-mode'.syntax.t
c2c0 61 62 6c 65 20 61 63 74 69 76 65 20 62 75 74 20 73 6b 69 70 20 61 6e 79 20 68 6f 6f 6b 73 2e 22 able.active.but.skip.any.hooks."
c2e0 0a 20 20 28 6c 65 74 20 28 28 69 6e 69 74 69 61 6c 2d 62 75 66 66 65 72 73 20 28 62 75 66 66 65 ...(let.((initial-buffers.(buffe
c300 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 20 6e 69 6c 29 0a 20 20 20 20 20 r-list)).........(buf.nil)......
c320 20 20 20 28 6f 70 65 6e 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 6b 69 70 20 ...(opened.nil).........;;.Skip.
c340 72 75 6e 6e 69 6e 67 20 68 6f 6f 6b 73 20 74 68 61 74 20 6d 61 79 20 70 72 6f 6d 70 74 20 74 68 running.hooks.that.may.prompt.th
c360 65 20 75 73 65 72 2e 0a 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 e.user..........(find-file-hook.
c380 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 65 6e 64 20 75 70 20 6f 70 65 nil).........;;.If.we.end.up.ope
c3a0 6e 69 6e 67 20 61 20 62 75 66 66 65 72 2c 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 77 69 74 68 ning.a.buffer,.don't.bother.with
c3c0 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 76 61 72 69 61 62 6c 65 73 2e 20 49 74 20 70 .file.........;;.variables..It.p
c3e0 72 6f 6d 70 74 73 20 74 68 65 20 75 73 65 72 2c 20 61 6e 64 20 77 65 20 64 69 73 63 61 72 64 20 rompts.the.user,.and.we.discard.
c400 74 68 65 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 77 61 72 64 73 the.buffer.........;;.afterwards
c420 20 61 6e 79 77 61 79 2e 0a 20 20 20 20 20 20 20 20 28 65 6e 61 62 6c 65 2d 6c 6f 63 61 6c 2d 76 .anyway..........(enable-local-v
c440 61 72 69 61 62 6c 65 73 20 6e 69 6c 29 29 0a 20 20 20 20 3b 3b 20 4f 70 65 6e 69 6e 67 20 6c 61 ariables.nil)).....;;.Opening.la
c460 72 67 65 20 2e 63 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20 73 6c 6f 77 20 28 65 2e 67 2e 20 77 rge..c.files.can.be.slow.(e.g..w
c480 68 65 6e 20 6c 6f 6f 6b 69 6e 67 20 61 74 0a 20 20 20 20 3b 3b 20 60 64 65 66 61 6c 69 61 73 27 hen.looking.at.....;;.`defalias'
c4a0 29 2c 20 65 73 70 65 63 69 61 6c 6c 79 20 69 66 20 74 68 65 20 75 73 65 72 20 68 61 73 20 63 6f ),.especially.if.the.user.has.co
c4c0 6e 66 69 67 75 72 65 64 20 6d 6f 64 65 20 68 6f 6f 6b 73 2e 0a 20 20 20 20 3b 3b 0a 20 20 20 20 nfigured.mode.hooks......;;.....
c4e0 3b 3b 20 42 69 6e 64 20 60 61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 27 20 74 6f 20 6e 69 6c ;;.Bind.`auto-mode-alist'.to.nil
c500 2c 20 73 6f 20 77 65 20 6f 70 65 6e 20 74 68 65 20 62 75 66 66 65 72 20 69 6e 0a 20 20 20 20 3b ,.so.we.open.the.buffer.in.....;
c520 3b 20 60 66 75 6e 64 61 6d 65 6e 74 61 6c 2d 6d 6f 64 65 27 20 69 66 20 69 74 20 69 73 6e 27 74 ;.`fundamental-mode'.if.it.isn't
c540 20 61 6c 72 65 61 64 79 20 6f 70 65 6e 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 61 75 74 6f 2d 6d .already.open......(let.((auto-m
c560 6f 64 65 2d 61 6c 69 73 74 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 ode-alist.nil)).......(setq.buf.
c580 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 70 61 74 68 29 29 29 0a 0a 20 20 20 (find-file-noselect.path))).....
c5a0 20 28 75 6e 6c 65 73 73 20 28 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 69 6e 69 74 69 61 6c 2d 62 75 .(unless.(-contains-p.initial-bu
c5c0 66 66 65 72 73 20 62 75 66 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 65 6e 65 64 20 74 29 ffers.buf).......(setq.opened.t)
c5e0 0a 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 65 6d 61 63 ........(let.((syntax-table.emac
c600 73 2d 6c 69 73 70 2d 6d 6f 64 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 s-lisp-mode-syntax-table))......
c620 20 20 20 28 77 68 65 6e 20 28 73 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 2e 63 22 20 70 61 74 ...(when.(s-ends-with-p.".c".pat
c640 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 h)...........(setq.syntax-table.
c660 28 6d 61 6b 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 (make-syntax-table))...........(
c680 63 2d 70 6f 70 75 6c 61 74 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 73 79 6e 74 61 78 2d 74 c-populate-syntax-table.syntax-t
c6a0 61 62 6c 65 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 69 74 27 73 20 61 20 66 72 65 able))..........;;.If.it's.a.fre
c6c0 73 68 6c 79 20 6f 70 65 6e 65 64 20 62 75 66 66 65 72 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 73 shly.opened.buffer,.we.need.to.s
c6e0 65 74 20 74 68 65 20 73 79 6e 74 61 78 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 61 62 6c 65 20 73 et.the.syntax.........;;.table.s
c700 6f 20 77 65 20 63 61 6e 20 73 65 61 72 63 68 20 63 6f 72 72 65 63 74 6c 79 2e 0a 20 20 20 20 20 o.we.can.search.correctly.......
c720 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 ...(with-current-buffer.buf.....
c740 20 20 20 20 20 20 28 73 65 74 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 73 79 6e 74 61 78 2d 74 ......(set-syntax-table.syntax-t
c760 61 62 6c 65 29 29 29 29 0a 0a 20 20 20 20 28 6c 69 73 74 20 62 75 66 20 6f 70 65 6e 65 64 29 29 able))))......(list.buf.opened))
c780 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 65 66 69 6e 69 74 69 6f 6e 20 28 73 )..(defun.helpful--definition.(s
c7a0 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 ym.callable-p)..."Return.a.list.
c7c0 28 42 55 46 20 50 4f 53 20 4f 50 45 4e 45 44 29 20 77 68 65 72 65 20 53 59 4d 20 69 73 20 64 65 (BUF.POS.OPENED).where.SYM.is.de
c7e0 66 69 6e 65 64 2e 0a 0a 42 55 46 20 69 73 20 74 68 65 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 fined...BUF.is.the.buffer.contai
c800 6e 69 6e 67 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 2e 20 49 66 20 74 68 65 20 75 73 65 72 ning.the.definition..If.the.user
c820 20 77 61 73 6e 27 74 0a 61 6c 72 65 61 64 79 20 76 69 73 69 74 69 6e 67 20 74 68 69 73 20 62 75 .wasn't.already.visiting.this.bu
c840 66 66 65 72 2c 20 4f 50 45 4e 45 44 20 69 73 20 74 20 61 6e 64 20 63 61 6c 6c 65 72 73 20 73 68 ffer,.OPENED.is.t.and.callers.sh
c860 6f 75 6c 64 20 6b 69 6c 6c 0a 74 68 65 20 62 75 66 66 65 72 20 77 68 65 6e 20 64 6f 6e 65 2e 0a ould.kill.the.buffer.when.done..
c880 0a 50 4f 53 20 69 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 74 61 72 .POS.is.the.position.of.the.star
c8a0 74 20 6f 66 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 74 68 69 6e 20 74 68 65 0a 62 t.of.the.definition.within.the.b
c8c0 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 69 6d 69 74 69 76 65 2d 70 20 28 68 65 uffer."...(let.((primitive-p.(he
c8e0 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d lpful--primitive-p.sym.callable-
c900 70 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 62 72 61 72 79 2d 6e 61 6d 65 20 6e 69 6c 29 0a 20 p)).........(library-name.nil)..
c920 20 20 20 20 20 20 20 28 73 72 63 2d 70 61 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 62 .......(src-path.nil).........(b
c940 75 66 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 70 6f 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 uf.nil).........(pos.nil).......
c960 20 20 28 6f 70 65 6e 65 64 20 6e 69 6c 29 29 0a 20 20 20 20 3b 3b 20 57 65 20 73 68 6f 75 6c 64 ..(opened.nil)).....;;.We.should
c980 6e 27 74 20 62 65 20 63 61 6c 6c 65 64 20 6f 6e 20 70 72 69 6d 69 74 69 76 65 20 66 75 6e 63 74 n't.be.called.on.primitive.funct
c9a0 69 6f 6e 73 20 69 66 20 77 65 20 64 6f 6e 27 74 20 68 61 76 65 0a 20 20 20 20 3b 3b 20 61 20 64 ions.if.we.don't.have.....;;.a.d
c9c0 69 72 65 63 74 6f 72 79 20 6f 66 20 45 6d 61 63 73 20 43 20 73 6f 75 72 63 65 63 6f 64 65 2e 0a irectory.of.Emacs.C.sourcecode..
c9e0 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 0a 20 20 20 20 20 28 6f 72 20 66 69 6e 64 2d 66 75 6e ....(cl-assert......(or.find-fun
ca00 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 ction-C-source-directory........
ca20 20 20 28 6e 6f 74 20 70 72 69 6d 69 74 69 76 65 2d 70 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e ..(not.primitive-p)))......(when
ca40 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c .(symbolp.sym).......(if.callabl
ca60 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 e-p...........(setq.library-name
ca80 20 28 63 64 72 20 28 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 6c 69 62 72 61 72 79 20 73 79 6d .(cdr.(find-function-library.sym
caa0 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 42 61 73 65 64 20 6f 6e 20 60 66 69 6e 64 2d 76 61 ))).........;;.Based.on.`find-va
cac0 72 69 61 62 6c 65 2d 6e 6f 73 65 6c 65 63 74 27 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 riable-noselect'..........(setq.
cae0 6c 69 62 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 library-name...............(or..
cb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 66 69 6c 65 20 73 79 6d 20 27 ..............(symbol-file.sym.'
cb20 64 65 66 76 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 2d 43 2d 66 defvar)................(help-C-f
cb40 69 6c 65 2d 6e 61 6d 65 20 73 79 6d 20 27 76 61 72 29 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 ile-name.sym.'var)))))......(whe
cb60 6e 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 72 63 2d 70 n.library-name.......(setq.src-p
cb80 61 74 68 20 28 68 65 6c 70 66 75 6c 2d 2d 6c 69 62 72 61 72 79 2d 70 61 74 68 20 6c 69 62 72 61 ath.(helpful--library-path.libra
cba0 72 79 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 61 6e 64 ry-name)))......(cond......((and
cbc0 20 28 6e 6f 74 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 29 20 28 66 75 6e 63 74 69 6f 6e 70 20 .(not.(symbolp.sym)).(functionp.
cbe0 73 79 6d 29 29 0a 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 29 29 0a sym)).......(list.nil.nil.nil)).
cc00 20 20 20 20 20 28 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 6c 69 62 72 61 72 79 2d 6e 61 .....((and.callable-p.library-na
cc20 6d 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 73 72 63 2d 70 61 74 68 0a 20 20 20 20 20 20 20 me).......(when.src-path........
cc40 20 28 2d 6c 65 74 20 5b 28 73 72 63 2d 62 75 66 20 73 72 63 2d 6f 70 65 6e 65 64 29 20 28 68 65 .(-let.[(src-buf.src-opened).(he
cc60 6c 70 66 75 6c 2d 2d 6f 70 65 6e 2d 69 66 2d 6e 65 65 64 65 64 20 73 72 63 2d 70 61 74 68 29 5d lpful--open-if-needed.src-path)]
cc80 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 73 72 63 2d 62 75 66 29 0a 20 20 ...........(setq.buf.src-buf)...
cca0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 65 6e 65 64 20 73 72 63 2d 6f 70 65 6e 65 64 29 ........(setq.opened.src-opened)
ccc0 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 42 61 73 65 64 20 6f 6e 20 60 66 69 6e 64 2d 66 75 6e )..........;;.Based.on.`find-fun
cce0 63 74 69 6f 6e 2d 6e 6f 73 65 6c 65 63 74 27 2e 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 ction-noselect'..........(with-c
cd00 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 urrent-buffer.buf...........;;.`
cd20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 73 65 61 72 63 68 2d 66 6f 72 2d 73 79 6d 62 6f 6c 27 find-function-search-for-symbol'
cd40 20 6d 6f 76 65 73 20 70 6f 69 6e 74 2e 20 50 72 65 76 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 .moves.point..Prevent...........
cd60 3b 3b 20 74 68 61 74 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 ;;.that............(save-excursi
cd80 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 61 72 72 6f 77 69 6e 67 20 68 61 73 20 on.............;;.Narrowing.has.
cda0 62 65 65 6e 20 66 69 78 65 64 20 75 70 73 74 72 65 61 6d 3a 0a 20 20 20 20 20 20 20 20 20 20 20 been.fixed.upstream:............
cdc0 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/
cde0 63 67 69 74 2f 65 6d 61 63 73 2e 67 69 74 2f 63 6f 6d 6d 69 74 2f 3f 69 64 3d 61 62 64 31 38 32 cgit/emacs.git/commit/?id=abd182
ce00 35 34 61 65 63 37 36 62 32 36 65 38 36 61 65 32 37 65 39 31 64 32 63 39 31 36 65 63 32 30 63 63 54aec76b26e86ae27e91d2c916ec20cc
ce20 34 36 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 46.............(save-restriction
ce40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 20 ...............(widen)..........
ce60 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(setq.pos..................
ce80 20 20 20 28 63 64 72 20 28 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 73 65 61 72 63 68 2d 66 6f ...(cdr.(find-function-search-fo
cea0 72 2d 73 79 6d 62 6f 6c 20 73 79 6d 20 6e 69 6c 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 29 29 r-symbol.sym.nil.library-name)))
cec0 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 66 6f 75 6e 64 20 74 68 65 20 63 ))).........;;.If.we.found.the.c
cee0 6f 6e 74 61 69 6e 69 6e 67 20 62 75 66 66 65 72 2c 20 62 75 74 20 6e 6f 74 20 74 68 65 20 73 79 ontaining.buffer,.but.not.the.sy
cf00 6d 62 6f 6c 2c 20 61 74 74 65 6d 70 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 66 69 6e 64 mbol,.attempt.........;;.to.find
cf20 20 69 74 20 62 79 20 6d 61 63 72 6f 65 78 70 61 6e 64 69 6e 67 20 69 6e 74 65 72 65 73 74 69 6e .it.by.macroexpanding.interestin
cf40 67 20 66 6f 72 6d 73 2e 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 62 75 66 20 g.forms..........(when.(and.buf.
cf60 28 6e 6f 74 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 (not.pos))...........(setq.pos.(
cf80 68 65 6c 70 66 75 6c 2d 2d 66 69 6e 64 2d 62 79 2d 6d 61 63 72 6f 65 78 70 61 6e 64 69 6e 67 20 helpful--find-by-macroexpanding.
cfa0 62 75 66 20 73 79 6d 20 74 29 29 29 29 29 0a 20 20 20 20 20 3b 3b 20 41 20 66 75 6e 63 74 69 6f buf.sym.t)))))......;;.A.functio
cfc0 6e 2c 20 62 75 74 20 6e 6f 20 66 69 6c 65 20 66 6f 75 6e 64 2e 0a 20 20 20 20 20 28 63 61 6c 6c n,.but.no.file.found.......(call
cfe0 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 3b 3b 20 46 75 6e 63 74 69 6f 6e 73 20 64 65 66 69 6e 65 able-p.......;;.Functions.define
d000 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 6d 61 79 20 68 61 76 65 20 61 6e 20 65 64 65 62 d.interactively.may.have.an.edeb
d020 75 67 20 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 20 3b 3b 20 74 68 61 74 20 63 6f 6e 74 61 69 ug.property.......;;.that.contai
d040 6e 73 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f ns.the.location.of.the.definitio
d060 6e 2e 0a 20 20 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 65 64 65 62 75 67 2d 69 6e 66 6f n........(-when-let.(edebug-info
d080 20 28 67 65 74 20 73 79 6d 20 27 65 64 65 62 75 67 29 29 0a 20 20 20 20 20 20 20 20 28 2d 6c 65 .(get.sym.'edebug)).........(-le
d0a0 74 20 5b 6d 61 72 6b 65 72 20 28 69 66 20 28 63 6f 6e 73 70 20 65 64 65 62 75 67 2d 69 6e 66 6f t.[marker.(if.(consp.edebug-info
d0c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 )...........................(car
d0e0 20 65 64 65 62 75 67 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .edebug-info)...................
d100 20 20 20 20 20 20 65 64 65 62 75 67 2d 69 6e 66 6f 29 5d 0a 20 20 20 20 20 20 20 20 20 20 28 73 ......edebug-info)]...........(s
d120 65 74 71 20 62 75 66 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 6d 61 72 6b 65 72 29 29 0a etq.buf.(marker-buffer.marker)).
d140 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 ..........(setq.pos.(marker-posi
d160 74 69 6f 6e 20 6d 61 72 6b 65 72 29 29 29 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 6e 6f 74 tion.marker)))))......((and.(not
d180 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 73 72 63 2d 70 61 74 68 29 0a 20 20 20 20 20 20 28 2d 6c .callable-p).src-path).......(-l
d1a0 65 74 20 5b 28 73 72 63 2d 62 75 66 20 73 72 63 2d 6f 70 65 6e 65 64 29 20 28 68 65 6c 70 66 75 et.[(src-buf.src-opened).(helpfu
d1c0 6c 2d 2d 6f 70 65 6e 2d 69 66 2d 6e 65 65 64 65 64 20 73 72 63 2d 70 61 74 68 29 5d 0a 20 20 20 l--open-if-needed.src-path)]....
d1e0 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 73 72 63 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 .....(setq.buf.src-buf).........
d200 28 73 65 74 71 20 6f 70 65 6e 65 64 20 73 72 63 2d 6f 70 65 6e 65 64 29 0a 0a 20 20 20 20 20 20 (setq.opened.src-opened)........
d220 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 ..(with-current-buffer.buf......
d240 20 20 20 20 20 3b 3b 20 60 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 73 65 61 72 63 68 2d 66 6f .....;;.`find-function-search-fo
d260 72 2d 73 79 6d 62 6f 6c 27 20 6d 6f 76 65 73 20 70 6f 69 6e 74 2e 20 50 72 65 76 65 6e 74 0a 20 r-symbol'.moves.point..Prevent..
d280 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 61 74 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 .........;;.that............(sav
d2a0 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 e-excursion.............(conditi
d2c0 6f 6e 2d 63 61 73 65 20 5f 65 72 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 on-case._err.................(se
d2e0 74 71 20 70 6f 73 20 28 63 64 72 20 28 66 69 6e 64 2d 76 61 72 69 61 62 6c 65 2d 6e 6f 73 65 6c tq.pos.(cdr.(find-variable-nosel
d300 65 63 74 20 73 79 6d 20 6c 69 62 72 61 72 79 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 ect.sym.library-name))).........
d320 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 61 69 6c 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 ......(search-failed.nil).......
d340 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 45 6d 61 63 73 ........;;.If.your.current.Emacs
d360 20 69 6e 73 74 61 6e 63 65 20 64 6f 65 73 6e 27 74 20 6d 61 74 63 68 20 74 68 65 20 73 6f 75 72 .instance.doesn't.match.the.sour
d380 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 64 65 20 63 6f 6e 66 69 67 75 ce...............;;.code.configu
d3a0 72 65 64 20 69 6e 20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 red.in.find-function-C-source-di
d3c0 72 65 63 74 6f 72 79 2c 20 77 65 20 63 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b rectory,.we.can...............;;
d3e0 20 67 65 74 20 61 6e 20 65 72 72 6f 72 20 61 62 6f 75 74 20 6e 6f 74 20 66 69 6e 64 69 6e 67 20 .get.an.error.about.not.finding.
d400 73 6f 75 72 63 65 2e 20 54 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 64 65 source..Try...............;;.`de
d420 66 61 75 6c 74 2d 74 61 62 2d 77 69 64 74 68 27 20 61 67 61 69 6e 73 74 20 45 6d 61 63 73 20 74 fault-tab-width'.against.Emacs.t
d440 72 75 6e 6b 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 runk................(error.nil))
d460 29 29 29 29 29 0a 0a 20 20 20 20 28 6c 69 73 74 20 62 75 66 20 70 6f 73 20 6f 70 65 6e 65 64 29 )))))......(list.buf.pos.opened)
d480 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 72 65 66 65 72 65 6e 63 65 2d 70 6f ))..(defun.helpful--reference-po
d4a0 73 69 74 69 6f 6e 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 29 0a 20 20 22 sitions.(sym.callable-p.buf)..."
d4c0 52 65 74 75 72 6e 20 61 6c 6c 20 74 68 65 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 73 20 Return.all.the.buffer.positions.
d4e0 6f 66 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 53 59 4d 20 69 6e 20 42 55 46 2e 22 0a 20 20 of.references.to.SYM.in.BUF."...
d500 28 2d 6c 65 74 2a 20 28 28 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 73 0a 20 20 20 20 20 20 20 20 (-let*.((forms-and-bufs.........
d520 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 2d 73 65 61 72 63 68 2d 31 0a 20 20 20 20 20 20 20 ...(elisp-refs--search-1........
d540 20 20 20 20 20 28 6c 69 73 74 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d .....(list.buf).............(lam
d560 62 64 61 20 28 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6c 69 73 70 2d 72 bda.(buf)...............(elisp-r
d580 65 66 73 2d 2d 72 65 61 64 2d 61 6e 64 2d 66 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 efs--read-and-find..............
d5a0 20 20 62 75 66 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 61 6c ..buf.sym................(if.cal
d5c0 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6c 69 lable-p....................#'eli
d5e0 73 70 2d 72 65 66 73 2d 2d 66 75 6e 63 74 69 6f 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 sp-refs--function-p.............
d600 20 20 20 20 20 23 27 65 6c 69 73 70 2d 72 65 66 73 2d 2d 76 61 72 69 61 62 6c 65 2d 70 29 29 29 .....#'elisp-refs--variable-p)))
d620 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 69 6e 63 65 20 77 65 20 6f 6e 6c 79 20 73 65 ))...........;;.Since.we.only.se
d640 61 72 63 68 65 64 20 6f 6e 65 20 62 75 66 66 65 72 2c 20 77 65 20 6b 6e 6f 77 20 74 68 61 74 0a arched.one.buffer,.we.know.that.
d660 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 73 20 68 61 73 20 ..........;;.forms-and-bufs.has.
d680 6f 6e 6c 79 20 6f 6e 65 20 69 74 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 73 2d only.one.item............(forms-
d6a0 61 6e 64 2d 62 75 66 20 28 2d 66 69 72 73 74 2d 69 74 65 6d 20 66 6f 72 6d 73 2d 61 6e 64 2d 62 and-buf.(-first-item.forms-and-b
d6c0 75 66 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 66 6f 72 6d 73 20 2e 20 5f 62 75 66 29 20 ufs))...........((forms..._buf).
d6e0 66 6f 72 6d 73 2d 61 6e 64 2d 62 75 66 29 29 0a 20 20 20 20 28 2d 6d 61 70 0a 20 20 20 20 20 28 forms-and-buf)).....(-map......(
d700 2d 6c 61 6d 62 64 61 20 28 28 5f 63 6f 64 65 20 73 74 61 72 74 2d 70 6f 73 20 5f 65 6e 64 2d 70 -lambda.((_code.start-pos._end-p
d720 6f 73 29 29 20 73 74 61 72 74 2d 70 6f 73 29 0a 20 20 20 20 20 66 6f 72 6d 73 29 29 29 0a 0a 28 os)).start-pos)......forms)))..(
d740 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 6c 6c 2d 6b 65 79 6d 61 70 2d 73 79 6d 73 20 28 defun.helpful--all-keymap-syms.(
d760 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c 20 6b 65 79 6d 61 70 73 20 64 65 66 69 6e 65 64 20 )..."Return.all.keymaps.defined.
d780 69 6e 20 74 68 69 73 20 45 6d 61 63 73 20 69 6e 73 74 61 6e 63 65 2e 22 0a 20 20 28 6c 65 74 20 in.this.Emacs.instance."...(let.
d7a0 28 6b 65 79 6d 61 70 73 29 0a 20 20 20 20 28 6d 61 70 61 74 6f 6d 73 0a 20 20 20 20 20 28 6c 61 (keymaps).....(mapatoms......(la
d7c0 6d 62 64 61 20 28 73 79 6d 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 62 6f mbda.(sym)........(when.(and.(bo
d7e0 75 6e 64 70 20 73 79 6d 29 20 28 6b 65 79 6d 61 70 70 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 undp.sym).(keymapp.(symbol-value
d800 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 73 79 6d 20 6b 65 79 6d 61 .sym)))..........(push.sym.keyma
d820 70 73 29 29 29 29 0a 20 20 20 20 6b 65 79 6d 61 70 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c ps)))).....keymaps))..(defun.hel
d840 70 66 75 6c 2d 2d 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d pful--key-sequences.(command-sym
d860 20 6b 65 79 6d 61 70 20 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 29 0a 20 20 22 52 65 74 75 .keymap.global-keycodes)..."Retu
d880 72 6e 20 61 6c 6c 20 74 68 65 20 6b 65 79 20 73 65 71 75 65 6e 63 65 73 20 6f 66 20 43 4f 4d 4d rn.all.the.key.sequences.of.COMM
d8a0 41 4e 44 2d 53 59 4d 20 69 6e 20 4b 45 59 4d 41 50 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 AND-SYM.in.KEYMAP."...(let*.((ke
d8c0 79 63 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 75 70 20 74 68 69 73 ycodes...........;;.Look.up.this
d8e0 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 6b 65 79 6d 61 70 2c 20 69 74 73 20 70 61 72 65 .command.in.the.keymap,.its.pare
d900 6e 74 20 61 6e 64 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 6c 6f 62 61 6c 20 6d nt.and.the...........;;.global.m
d920 61 70 2e 20 57 65 20 6e 65 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 20 67 6c 6f 62 61 ap..We.need.to.include.the.globa
d940 6c 20 6d 61 70 20 74 6f 20 66 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 61 70 l.map.to.find...........;;.remap
d960 70 65 64 20 63 6f 6d 6d 61 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 72 65 2d 69 ped.commands............(where-i
d980 73 2d 69 6e 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 6d 61 70 20 6e 69 s-internal.command-sym.keymap.ni
d9a0 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 75 70 20 74 68 69 73 20 63 l.t))..........;;.Look.up.this.c
d9c0 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 70 61 72 65 6e 74 20 6b 65 79 6d 61 70 2e 0a 20 20 20 ommand.in.the.parent.keymap.....
d9e0 20 20 20 20 20 20 28 70 61 72 65 6e 74 2d 6b 65 79 6d 61 70 20 28 6b 65 79 6d 61 70 2d 70 61 72 ......(parent-keymap.(keymap-par
da00 65 6e 74 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 2d 6b 65 ent.keymap))..........(parent-ke
da20 79 63 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 6e 74 2d 6b 65 ycodes...........(when.parent-ke
da40 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 72 65 2d 69 73 2d 69 6e 74 65 72 ymap.............(where-is-inter
da60 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 28 6c 69 nal..............command-sym.(li
da80 73 74 20 70 61 72 65 6e 74 2d 6b 65 79 6d 61 70 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 st.parent-keymap).nil.t)))......
daa0 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
dac0 68 65 20 67 6c 6f 62 61 6c 20 6d 61 70 2e 0a 20 20 20 20 20 20 20 20 20 28 67 6c 6f 62 61 6c 2d he.global.map...........(global-
dae0 6b 65 79 63 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 6b keycodes...........(unless.(eq.k
db00 65 79 6d 61 70 20 67 6c 6f 62 61 6c 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6c eymap.global-map).............gl
db20 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 29 29 29 0a 20 20 20 20 28 2d 3e 3e 20 6b 65 79 63 6f 64 obal-keycodes))).....(->>.keycod
db40 65 73 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 67 6e 6f 72 65 20 6b 65 79 62 69 6e 64 69 6e 67 es..........;;.Ignore.keybinding
db60 73 20 66 72 6f 6d 20 74 68 65 20 70 61 72 65 6e 74 20 6f 72 20 67 6c 6f 62 61 6c 20 6d 61 70 2e s.from.the.parent.or.global.map.
db80 0a 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 6d 6f 76 65 20 28 6f 72 20 28 2d 63 6f 6e 74 61 69 ..........(--remove.(or.(-contai
dba0 6e 73 2d 70 20 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 20 69 74 29 0a 20 20 20 20 20 20 20 ns-p.global-keycodes.it)........
dbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 70 61 72 ................(-contains-p.par
dbe0 65 6e 74 2d 6b 65 79 63 6f 64 65 73 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 43 ent-keycodes.it)))..........;;.C
dc00 6f 6e 76 65 72 74 20 72 61 77 20 6b 65 79 63 6f 64 65 20 76 65 63 74 6f 72 73 20 69 6e 74 6f 20 onvert.raw.keycode.vectors.into.
dc20 68 75 6d 61 6e 2d 72 65 61 64 61 62 6c 65 20 73 74 72 69 6e 67 73 2e 0a 20 20 20 20 20 20 20 20 human-readable.strings..........
dc40 20 28 2d 6d 61 70 20 23 27 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 29 29 29 29 0a 0a 28 64 .(-map.#'key-description))))..(d
dc60 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 efun.helpful--keymaps-containing
dc80 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 .(command-sym)..."Return.a.list.
dca0 6f 66 20 70 61 69 72 73 20 6c 69 73 74 69 6e 67 20 6b 65 79 6d 61 70 20 6e 61 6d 65 73 20 74 68 of.pairs.listing.keymap.names.th
dcc0 61 74 20 63 6f 6e 74 61 69 6e 20 43 4f 4d 4d 41 4e 44 2d 53 59 4d 2c 0a 61 6c 6f 6e 67 20 77 69 at.contain.COMMAND-SYM,.along.wi
dce0 74 68 20 74 68 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 69 6e 20 65 61 63 68 20 6b 65 79 6d 61 th.the.keybindings.in.each.keyma
dd00 70 2e 0a 0a 4b 65 79 6d 61 70 20 6e 61 6d 65 73 20 61 72 65 20 74 79 70 69 63 61 6c 6c 79 20 76 p...Keymap.names.are.typically.v
dd20 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 2c 20 62 75 74 20 6d 61 79 20 61 6c 73 6f 20 62 65 0a 64 ariable.names,.but.may.also.be.d
dd40 65 73 63 72 69 70 74 69 6f 6e 73 20 6f 66 20 76 61 6c 75 65 73 20 69 6e 20 60 6d 69 6e 6f 72 2d escriptions.of.values.in.`minor-
dd60 6d 6f 64 65 2d 6d 61 70 2d 61 6c 69 73 74 27 2e 0a 0a 57 65 20 69 67 6e 6f 72 65 20 6b 65 79 62 mode-map-alist'...We.ignore.keyb
dd80 69 6e 64 69 6e 67 73 20 74 68 61 74 20 61 72 65 20 6d 65 6e 75 20 69 74 65 6d 73 2c 20 61 6e 64 indings.that.are.menu.items,.and
dda0 20 69 67 6e 6f 72 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 0a 66 72 6f 6d 20 70 61 72 65 6e 74 20 .ignore.keybindings.from.parent.
ddc0 6b 65 79 6d 61 70 73 2e 0a 0a 60 77 69 64 67 65 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 27 20 69 73 keymaps...`widget-global-map'.is
dde0 20 61 6c 73 6f 20 69 67 6e 6f 72 65 64 20 61 73 20 69 74 20 67 65 6e 65 72 61 6c 6c 79 20 63 6f .also.ignored.as.it.generally.co
de00 6e 74 61 69 6e 73 20 74 68 65 0a 73 61 6d 65 20 62 69 6e 64 69 6e 67 73 20 61 73 20 60 67 6c 6f ntains.the.same.bindings.as.`glo
de20 62 61 6c 2d 6d 61 70 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 6d 61 70 2d 73 79 6d 73 bal-map'."...(let*.((keymap-syms
de40 20 28 68 65 6c 70 66 75 6c 2d 2d 61 6c 6c 2d 6b 65 79 6d 61 70 2d 73 79 6d 73 29 29 0a 20 20 20 .(helpful--all-keymap-syms))....
de60 20 20 20 20 20 20 28 6b 65 79 6d 61 70 2d 73 79 6d 2d 76 61 6c 73 20 28 2d 6d 61 70 20 23 27 73 ......(keymap-sym-vals.(-map.#'s
de80 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 6b 65 79 6d 61 70 2d 73 79 6d 73 29 29 0a 20 20 20 20 20 20 ymbol-value.keymap-syms)).......
dea0 20 20 20 28 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 20 28 77 68 65 72 65 2d 69 73 2d 69 6e ...(global-keycodes.(where-is-in
dec0 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ternal..........................
dee0 20 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 28 6c 69 73 74 20 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 ..command-sym.(list.global-map).
df00 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 69 6e 67 2d 6b 65 79 6d 61 70 nil.t))..........matching-keymap
df20 73 29 0a 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 66 6f 72 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 s).....;;.Look.for.this.command.
df40 69 6e 20 61 6c 6c 20 6b 65 79 6d 61 70 73 20 62 6f 75 6e 64 20 74 6f 20 76 61 72 69 61 62 6c 65 in.all.keymaps.bound.to.variable
df60 73 2e 0a 20 20 20 20 28 2d 6d 61 70 0a 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b 65 79 s......(-map......(-lambda.((key
df80 6d 61 70 2d 73 79 6d 20 2e 20 6b 65 79 6d 61 70 29 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 map-sym...keymap))........(let.(
dfa0 28 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 2d 73 65 71 (key-sequences.(helpful--key-seq
dfc0 75 65 6e 63 65 73 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 6d 61 70 20 67 6c 6f 62 61 6c uences.command-sym.keymap.global
dfe0 2d 6b 65 79 63 6f 64 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 -keycodes)))..........(when.(and
e000 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 28 6e 6f 74 20 28 65 71 20 6b 65 79 6d 61 70 2d 73 .key-sequences.(not.(eq.keymap-s
e020 79 6d 20 27 77 69 64 67 65 74 2d 67 6c 6f 62 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 ym.'widget-global-map)))........
e040 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 ....(push.(cons.(symbol-name.key
e060 6d 61 70 2d 73 79 6d 29 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 20 map-sym).key-sequences).........
e080 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 69 6e 67 2d 6b 65 79 6d 61 70 73 29 29 29 29 0a 20 20 .........matching-keymaps))))...
e0a0 20 20 20 28 2d 7a 69 70 2d 70 61 69 72 20 6b 65 79 6d 61 70 2d 73 79 6d 73 20 6b 65 79 6d 61 70 ...(-zip-pair.keymap-syms.keymap
e0c0 2d 73 79 6d 2d 76 61 6c 73 29 29 0a 0a 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 66 6f 72 20 74 68 69 -sym-vals))......;;.Look.for.thi
e0e0 73 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 6b 65 79 6d 61 70 73 20 75 73 65 64 20 62 79 20 6d 69 6e s.command.in.keymaps.used.by.min
e100 6f 72 20 6d 6f 64 65 73 20 74 68 61 74 0a 20 20 20 20 3b 3b 20 61 72 65 6e 27 74 20 62 6f 75 6e or.modes.that.....;;.aren't.boun
e120 64 20 74 6f 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 28 2d 6d 61 70 0a 20 20 20 20 20 28 d.to.variables......(-map......(
e140 2d 6c 61 6d 62 64 61 20 28 28 6d 69 6e 6f 72 2d 6d 6f 64 65 20 2e 20 6b 65 79 6d 61 70 29 29 0a -lambda.((minor-mode...keymap)).
e160 20 20 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 20 6b 65 79 .......;;.Only.consider.this.key
e180 6d 61 70 20 69 66 20 77 65 20 64 69 64 6e 27 74 20 66 69 6e 64 20 69 74 20 62 6f 75 6e 64 20 74 map.if.we.didn't.find.it.bound.t
e1a0 6f 20 61 20 76 61 72 69 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 o.a.variable.........(when.(and.
e1c0 28 6b 65 79 6d 61 70 70 20 6b 65 79 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (keymapp.keymap)................
e1e0 20 20 20 28 6e 6f 74 20 28 6d 65 6d 71 20 6b 65 79 6d 61 70 20 6b 65 79 6d 61 70 2d 73 79 6d 2d ...(not.(memq.keymap.keymap-sym-
e200 76 61 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 2d 73 65 71 75 vals)))..........(let.((key-sequ
e220 65 6e 63 65 73 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 20 63 6f ences.(helpful--key-sequences.co
e240 6d 6d 61 6e 64 2d 73 79 6d 20 6b 65 79 6d 61 70 20 67 6c 6f 62 61 6c 2d 6b 65 79 63 6f 64 65 73 mmand-sym.keymap.global-keycodes
e260 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6b 65 79 2d 73 65 71 75 65 6e 63 )))............(when.key-sequenc
e280 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 66 6f 72 es..............(push.(cons.(for
e2a0 6d 61 74 20 22 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 6d 61 70 2d 61 6c 69 73 74 20 28 25 73 29 22 20 mat."minor-mode-map-alist.(%s)".
e2c0 6d 69 6e 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 minor-mode).....................
e2e0 20 20 20 20 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....key-sequences).............
e300 20 20 20 20 20 20 20 6d 61 74 63 68 69 6e 67 2d 6b 65 79 6d 61 70 73 29 29 29 29 29 0a 20 20 20 .......matching-keymaps)))))....
e320 20 20 3b 3b 20 54 4f 44 4f 3a 20 65 78 61 6d 69 6e 65 20 60 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 6f ..;;.TODO:.examine.`minor-mode-o
e340 76 65 72 72 69 64 69 6e 67 2d 6d 61 70 2d 61 6c 69 73 74 27 20 74 6f 6f 2e 0a 20 20 20 20 20 6d verriding-map-alist'.too.......m
e360 69 6e 6f 72 2d 6d 6f 64 65 2d 6d 61 70 2d 61 6c 69 73 74 29 0a 0a 20 20 20 20 6d 61 74 63 68 69 inor-mode-map-alist)......matchi
e380 6e 67 2d 6b 65 79 6d 61 70 73 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 65 ng-keymaps))..(defun.helpful--me
e3a0 72 67 65 2d 61 6c 69 73 74 73 20 28 6c 31 20 6c 32 29 0a 20 20 22 47 69 76 65 6e 20 74 77 6f 20 rge-alists.(l1.l2)..."Given.two.
e3c0 61 6c 69 73 74 73 20 6d 61 70 70 69 6e 67 20 73 79 6d 62 6f 6c 73 20 74 6f 20 6c 69 73 74 73 2c alists.mapping.symbols.to.lists,
e3e0 20 72 65 74 75 72 6e 20 61 20 73 69 6e 67 6c 65 0a 61 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 .return.a.single.alist.with.the.
e400 6c 69 73 74 73 20 63 6f 6e 63 61 74 65 6e 61 74 65 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c lists.concatenated."...(let*.((l
e420 31 2d 6b 65 79 73 20 28 2d 6d 61 70 20 23 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 6c 31 29 29 0a 1-keys.(-map.#'-first-item.l1)).
e440 20 20 20 20 20 20 20 20 20 28 6c 32 2d 6b 65 79 73 20 28 2d 6d 61 70 20 23 27 2d 66 69 72 73 74 .........(l2-keys.(-map.#'-first
e460 2d 69 74 65 6d 20 6c 32 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 32 2d 65 78 74 72 61 2d 6b 65 -item.l2))..........(l2-extra-ke
e480 79 73 20 28 2d 64 69 66 66 65 72 65 6e 63 65 20 6c 32 2d 6b 65 79 73 20 6c 31 2d 6b 65 79 73 29 ys.(-difference.l2-keys.l1-keys)
e4a0 29 0a 20 20 20 20 20 20 20 20 20 28 6c 32 2d 65 78 74 72 61 2d 76 61 6c 75 65 73 0a 20 20 20 20 )..........(l2-extra-values.....
e4c0 20 20 20 20 20 20 28 2d 2d 6d 61 70 20 28 61 73 73 6f 63 20 69 74 20 6c 32 29 20 6c 32 2d 65 78 ......(--map.(assoc.it.l2).l2-ex
e4e0 74 72 61 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 31 2d 77 69 74 68 2d 76 61 6c tra-keys))..........(l1-with-val
e500 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 28 6b ues...........(-map.(-lambda.((k
e520 65 79 20 2e 20 76 61 6c 75 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ey...values))...................
e540 28 63 6f 6e 73 20 6b 65 79 20 28 61 70 70 65 6e 64 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 (cons.key.(append.values........
e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 .............................(cd
e580 72 20 28 61 73 73 6f 63 20 6b 65 79 20 6c 32 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 r.(assoc.key.l2)))))............
e5a0 20 20 20 20 20 6c 31 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 20 6c 31 2d 77 69 74 68 2d 76 .....l1))).....(append.l1-with-v
e5c0 61 6c 75 65 73 20 6c 32 2d 65 78 74 72 61 2d 76 61 6c 75 65 73 29 29 29 0a 0a 28 64 65 66 75 6e alues.l2-extra-values)))..(defun
e5e0 20 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 2d 61 6c 69 .helpful--keymaps-containing-ali
e600 61 73 65 73 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 20 22 52 65 ases.(command-sym.aliases)..."Re
e620 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 61 69 72 73 20 6d 61 70 70 69 6e 67 20 6b 65 79 turn.a.list.of.pairs.mapping.key
e640 6d 61 70 20 73 79 6d 62 6f 6c 73 20 74 6f 20 74 68 65 0a 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 map.symbols.to.the.keybindings.f
e660 6f 72 20 43 4f 4d 4d 41 4e 44 2d 53 59 4d 20 69 6e 20 65 61 63 68 20 6b 65 79 6d 61 70 2e 0a 0a or.COMMAND-SYM.in.each.keymap...
e680 49 6e 63 6c 75 64 65 73 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 61 6c 69 61 73 65 73 Includes.keybindings.for.aliases
e6a0 2c 20 75 6e 6c 69 6b 65 0a 60 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 ,.unlike.`helpful--keymaps-conta
e6c0 69 6e 69 6e 67 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 73 20 28 63 6f 6e 73 20 63 6f ining'."...(let*.((syms.(cons.co
e6e0 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 mmand-sym.aliases))..........(sy
e700 6d 73 2d 6b 65 79 6d 61 70 73 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d ms-keymaps.(-map.#'helpful--keym
e720 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e 67 20 73 79 6d 73 29 29 29 0a 20 20 20 20 28 2d 72 65 64 aps-containing.syms))).....(-red
e740 75 63 65 20 23 27 68 65 6c 70 66 75 6c 2d 2d 6d 65 72 67 65 2d 61 6c 69 73 74 73 20 73 79 6d 73 uce.#'helpful--merge-alists.syms
e760 2d 6b 65 79 6d 61 70 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 -keymaps)))..(defun.helpful--for
e780 6d 61 74 2d 6b 65 79 73 20 28 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 mat-keys.(command-sym.aliases)..
e7a0 20 22 44 65 73 63 72 69 62 65 20 61 6c 6c 20 74 68 65 20 6b 65 79 73 20 74 68 61 74 20 63 61 6c ."Describe.all.the.keys.that.cal
e7c0 6c 20 43 4f 4d 4d 41 4e 44 2d 53 59 4d 2e 22 0a 20 20 28 6c 65 74 20 28 6d 6f 64 65 2d 6c 69 6e l.COMMAND-SYM."...(let.(mode-lin
e7e0 65 73 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 73 29 0a 20 20 20 20 28 2d 2d es.........global-lines).....(--
e800 65 61 63 68 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 65 79 6d 61 70 73 2d 63 6f 6e 74 61 69 6e 69 6e each.(helpful--keymaps-containin
e820 67 2d 61 6c 69 61 73 65 73 20 63 6f 6d 6d 61 6e 64 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 0a 20 g-aliases.command-sym.aliases)..
e840 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 6d 61 70 20 2e 20 6b 65 79 73 29 20 69 74 5d 0a 20 20 20 .....(-let.[(map...keys).it]....
e860 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 65 79 20 6b 65 79 73 29 0a 20 20 20 20 20 20 20 20 .....(dolist.(key.keys).........
e880 20 20 28 70 75 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 25 ..(push............(format."%s.%
e8a0 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a s"....................(propertiz
e8c0 65 20 6d 61 70 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d e.map.'face.'font-lock-variable-
e8e0 6e 61 6d 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 name-face)....................(i
e900 66 20 28 3e 3d 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 38 29 0a 20 20 f.(>=.emacs-major-version.28)...
e920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 .....................(propertize
e940 20 6b 65 79 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 .key.'face.'help-key-binding)...
e960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 ...................key))........
e980 20 20 20 20 28 69 66 20 28 65 71 20 6d 61 70 20 27 67 6c 6f 62 61 6c 2d 6d 61 70 29 20 67 6c 6f ....(if.(eq.map.'global-map).glo
e9a0 62 61 6c 2d 6c 69 6e 65 73 20 6d 6f 64 65 2d 6c 69 6e 65 73 29 29 29 29 29 0a 20 20 20 20 28 73 bal-lines.mode-lines))))).....(s
e9c0 65 74 71 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 73 20 28 2d 73 6f 72 74 20 23 27 73 74 72 69 6e 67 etq.global-lines.(-sort.#'string
e9e0 3c 20 67 6c 6f 62 61 6c 2d 6c 69 6e 65 73 29 29 0a 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d <.global-lines)).....(setq.mode-
ea00 6c 69 6e 65 73 20 28 2d 73 6f 72 74 20 23 27 73 74 72 69 6e 67 3c 20 6d 6f 64 65 2d 6c 69 6e 65 lines.(-sort.#'string<.mode-line
ea20 73 29 29 0a 20 20 20 20 28 2d 6c 65 74 20 5b 6c 69 6e 65 73 20 28 2d 63 6f 6e 63 61 74 20 67 6c s)).....(-let.[lines.(-concat.gl
ea40 6f 62 61 6c 2d 6c 69 6e 65 73 20 6d 6f 64 65 2d 6c 69 6e 65 73 29 5d 0a 20 20 20 20 20 20 28 69 obal-lines.mode-lines)].......(i
ea60 66 20 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 6c f.lines...........(s-join."\n".l
ea80 69 6e 65 73 29 0a 20 20 20 20 20 20 20 20 22 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e ines)........."This.command.is.n
eaa0 6f 74 20 69 6e 20 61 6e 79 20 6b 65 79 6d 61 70 73 2e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 ot.in.any.keymaps."))))..(defun.
eac0 68 65 6c 70 66 75 6c 2d 2d 6f 75 74 65 72 2d 73 65 78 70 20 28 62 75 66 20 70 6f 73 29 0a 20 20 helpful--outer-sexp.(buf.pos)...
eae0 22 46 69 6e 64 20 70 6f 73 69 74 69 6f 6e 20 50 4f 53 20 69 6e 20 42 55 46 2c 20 61 6e 64 20 72 "Find.position.POS.in.BUF,.and.r
eb00 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6f 75 74 65 72 20 73 65 78 70 eturn.the.name.of.the.outer.sexp
eb20 2c 0a 61 6c 6f 6e 67 20 77 69 74 68 20 69 74 73 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 4d 6f 76 65 ,.along.with.its.position...Move
eb40 73 20 70 6f 69 6e 74 20 69 6e 20 42 55 46 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 s.point.in.BUF."...(with-current
eb60 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a -buffer.buf.....(goto-char.pos).
eb80 20 20 20 20 28 6c 65 74 2a 20 28 28 70 70 73 73 20 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 0a ....(let*.((ppss.(syntax-ppss)).
eba0 20 20 20 20 20 20 20 20 20 20 20 28 6f 75 74 65 72 2d 73 65 78 70 2d 70 6f 73 6e 73 20 28 6e 74 ...........(outer-sexp-posns.(nt
ebc0 68 20 39 20 70 70 73 73 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6f 75 74 65 72 2d 73 65 h.9.ppss))).......(when.outer-se
ebe0 78 70 2d 70 6f 73 6e 73 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 63 61 72 xp-posns.........(goto-char.(car
ec00 20 6f 75 74 65 72 2d 73 65 78 70 2d 70 6f 73 6e 73 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 .outer-sexp-posns)))).....(list.
ec20 28 70 6f 69 6e 74 29 20 28 2d 74 61 6b 65 20 32 20 28 72 65 61 64 20 62 75 66 29 29 29 29 29 0a (point).(-take.2.(read.buf))))).
ec40 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 6f 75 6e 74 2d 76 61 6c 75 65 73 20 28 69 .(defun.helpful--count-values.(i
ec60 74 65 6d 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 tems)..."Return.an.alist.of.the.
ec80 63 6f 75 6e 74 20 6f 66 20 65 61 63 68 20 76 61 6c 75 65 20 69 6e 20 49 54 45 4d 53 2e 0a 45 2e count.of.each.value.in.ITEMS..E.
eca0 67 2e 20 28 78 20 78 20 79 20 7a 20 79 29 20 2d 3e 20 28 28 78 20 2e 20 32 29 20 28 79 20 2e 20 g..(x.x.y.z.y).->.((x...2).(y...
ecc0 32 29 20 28 7a 20 2e 20 31 29 29 22 0a 20 20 28 6c 65 74 20 28 63 6f 75 6e 74 73 29 0a 20 20 20 2).(z...1))"...(let.(counts)....
ece0 20 28 64 6f 6c 69 73 74 20 28 69 74 65 6d 20 69 74 65 6d 73 20 28 6e 72 65 76 65 72 73 65 20 63 .(dolist.(item.items.(nreverse.c
ed00 6f 75 6e 74 73 29 29 0a 20 20 20 20 20 20 28 2d 69 66 2d 6c 65 74 20 28 69 74 65 6d 2d 61 6e 64 ounts)).......(-if-let.(item-and
ed20 2d 63 6f 75 6e 74 20 28 61 73 73 6f 63 20 69 74 65 6d 20 63 6f 75 6e 74 73 29 29 0a 20 20 20 20 -count.(assoc.item.counts)).....
ed40 20 20 20 20 20 20 28 73 65 74 63 64 72 20 69 74 65 6d 2d 61 6e 64 2d 63 6f 75 6e 74 20 28 31 2b ......(setcdr.item-and-count.(1+
ed60 20 28 63 64 72 20 69 74 65 6d 2d 61 6e 64 2d 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 .(cdr.item-and-count))).........
ed80 28 70 75 73 68 20 28 63 6f 6e 73 20 69 74 65 6d 20 31 29 20 63 6f 75 6e 74 73 29 29 29 29 29 0a (push.(cons.item.1).counts))))).
eda0 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 77 69 74 68 6f 75 74 2d 61 64 76 69 63 65 20 .(defun.helpful--without-advice.
edc0 28 73 79 6d 29 0a 20 20 22 47 69 76 65 6e 20 61 64 76 69 73 65 64 20 66 75 6e 63 74 69 6f 6e 20 (sym)..."Given.advised.function.
ede0 53 59 4d 2c 20 72 65 74 75 72 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 0a SYM,.return.the.function.object.
ee00 77 69 74 68 6f 75 74 20 74 68 65 20 61 64 76 69 63 65 2e 20 41 73 73 75 6d 65 73 20 66 75 6e 63 without.the.advice..Assumes.func
ee20 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 6c 6f 61 64 65 64 2e 22 0a 20 20 28 61 64 76 69 63 65 tion.has.been.loaded."...(advice
ee40 2d 2d 63 64 2a 72 0a 20 20 20 28 61 64 76 69 63 65 2d 2d 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 --cd*r....(advice--symbol-functi
ee60 6f 6e 20 73 79 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 64 76 69 73 on.sym)))..(defun.helpful--advis
ee80 65 64 2d 70 20 28 73 79 6d 29 0a 20 20 22 44 6f 65 73 20 53 59 4d 20 68 61 76 65 20 61 64 76 69 ed-p.(sym)..."Does.SYM.have.advi
eea0 63 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 69 74 3f 22 0a 20 20 28 61 6e 64 20 28 ce.associated.with.it?"...(and.(
eec0 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 28 61 64 76 69 63 65 2d 2d 70 20 28 symbolp.sym)........(advice--p.(
eee0 61 64 76 69 63 65 2d 2d 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 29 0a advice--symbol-function.sym)))).
ef00 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 68 65 61 64 20 28 68 65 .(defun.helpful--format-head.(he
ef20 61 64 29 0a 20 20 22 47 69 76 65 6e 20 61 20 27 68 65 61 64 27 20 28 74 68 65 20 66 69 72 73 74 ad)..."Given.a.'head'.(the.first
ef40 20 74 77 6f 20 73 79 6d 62 6f 6c 73 20 6f 66 20 61 20 73 65 78 70 29 20 66 6f 72 6d 61 74 20 61 .two.symbols.of.a.sexp).format.a
ef60 6e 64 0a 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 20 69 74 2e 22 0a 20 20 28 2d 6c 65 74 nd.syntax.highlight.it."...(-let
ef80 2a 20 28 28 28 64 65 66 20 6e 61 6d 65 29 20 68 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 *.(((def.name).head)...........(
efa0 66 6f 72 6d 61 74 74 65 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 formatted-name............(if.(a
efc0 6e 64 20 28 63 6f 6e 73 70 20 6e 61 6d 65 29 20 28 65 71 20 28 63 61 72 20 6e 61 6d 65 29 20 27 nd.(consp.name).(eq.(car.name).'
efe0 71 75 6f 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 quote))................(format."
f000 27 25 53 22 20 28 63 61 64 72 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 '%S".(cadr.name))..............(
f020 66 6f 72 6d 61 74 20 22 25 53 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 format."%S".name)))...........(f
f040 6f 72 6d 61 74 74 65 64 2d 64 65 66 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 ormatted-def............(format.
f060 22 28 25 73 20 25 73 20 2e 2e 2e 29 22 20 64 65 66 20 66 6f 72 6d 61 74 74 65 64 2d 6e 61 6d 65 "(%s.%s....)".def.formatted-name
f080 29 29 0a 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6e ))...........).....(helpful--syn
f0a0 74 61 78 2d 68 69 67 68 6c 69 67 68 74 20 66 6f 72 6d 61 74 74 65 64 2d 64 65 66 29 29 29 0a 0a tax-highlight.formatted-def)))..
f0c0 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 72 65 66 65 72 65 6e 63 65 (defun.helpful--format-reference
f0e0 20 28 68 65 61 64 20 6c 6f 6e 67 65 73 74 2d 68 65 61 64 20 72 65 66 2d 63 6f 75 6e 74 20 70 6f .(head.longest-head.ref-count.po
f100 73 69 74 69 6f 6e 20 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 79 6e 74 61 78 2d sition.path)..."Return.a.syntax-
f120 68 69 67 68 6c 69 67 68 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 48 45 41 44 2c 20 77 69 74 highlighted.version.of.HEAD,.wit
f140 68 20 61 20 6c 69 6e 6b 0a 74 6f 20 69 74 73 20 73 6f 75 72 63 65 20 6c 6f 63 61 74 69 6f 6e 2e h.a.link.to.its.source.location.
f160 22 0a 20 20 28 6c 65 74 20 28 28 66 6f 72 6d 61 74 74 65 64 2d 63 6f 75 6e 74 0a 20 20 20 20 20 "...(let.((formatted-count......
f180 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 64 20 72 65 66 65 72 65 6e 63 65 25 73 22 0a 20 20 20 ....(format."%d.reference%s"....
f1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 66 2d 63 6f 75 6e 74 20 28 69 66 20 28 3e 20 72 ..............ref-count.(if.(>.r
f1c0 65 66 2d 63 6f 75 6e 74 20 31 29 20 22 73 22 20 22 22 29 29 29 29 0a 20 20 20 20 28 70 72 6f 70 ef-count.1)."s"."")))).....(prop
f1e0 65 72 74 69 7a 65 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 22 25 73 20 25 73 ertize......(format......."%s.%s
f200 22 0a 20 20 20 20 20 20 28 73 2d 70 61 64 2d 72 69 67 68 74 20 6c 6f 6e 67 65 73 74 2d 68 65 61 ".......(s-pad-right.longest-hea
f220 64 20 22 20 22 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 68 65 61 64 20 68 65 61 64 d.".".(helpful--format-head.head
f240 29 29 0a 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 66 6f 72 6d 61 74 74 65 64 2d 63 )).......(propertize.formatted-c
f260 6f 75 6e 74 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 ount.'face.'font-lock-comment-fa
f280 63 65 29 29 0a 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 70 61 74 68 20 70 61 74 68 0a 20 20 20 ce))......'helpful-path.path....
f2a0 20 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 20 70 6f 73 69 74 69 6f 6e 29 29 29 0a 0a 28 64 65 66 ..'helpful-pos.position)))..(def
f2c0 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 un.helpful--format-position-head
f2e0 73 20 28 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 73 20 70 61 74 68 29 0a 20 20 22 47 69 76 65 6e s.(position-heads.path)..."Given
f300 20 61 20 6c 69 73 74 20 6f 66 20 6f 75 74 65 72 20 73 65 78 70 73 2c 20 66 6f 72 6d 61 74 20 74 .a.list.of.outer.sexps,.format.t
f320 68 65 6d 20 66 6f 72 20 64 69 73 70 6c 61 79 2e 0a 50 4f 53 49 54 49 4f 4e 2d 48 45 41 44 53 20 hem.for.display..POSITION-HEADS.
f340 74 61 6b 65 73 20 74 68 65 20 66 6f 72 6d 20 28 28 31 32 33 20 28 64 65 66 75 6e 20 66 6f 6f 29 takes.the.form.((123.(defun.foo)
f360 29 20 28 34 35 36 20 28 64 65 66 75 6e 20 62 61 72 29 29 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 ).(456.(defun.bar)))."...(let.((
f380 6c 6f 6e 67 65 73 74 2d 68 65 61 64 0a 20 20 20 20 20 20 20 20 20 28 2d 3e 3e 20 70 6f 73 69 74 longest-head..........(->>.posit
f3a0 69 6f 6e 2d 68 65 61 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d ion-heads...............(-map.(-
f3c0 6c 61 6d 62 64 61 20 28 28 5f 70 6f 73 20 68 65 61 64 29 29 20 28 68 65 6c 70 66 75 6c 2d 2d 66 lambda.((_pos.head)).(helpful--f
f3e0 6f 72 6d 61 74 2d 68 65 61 64 20 68 65 61 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ormat-head.head)))..............
f400 20 28 2d 6d 61 70 20 23 27 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .(-map.#'length)...............(
f420 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 28 2d 3e 3e 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 75 6e -max)))).....(->>.(helpful--coun
f440 74 2d 76 61 6c 75 65 73 20 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 73 29 0a 20 20 20 20 20 20 20 t-values.position-heads)........
f460 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 28 28 70 6f 73 20 68 65 61 64 29 20 2e 20 ..(-map.(-lambda.(((pos.head)...
f480 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 count))..................(helpfu
f4a0 6c 2d 2d 66 6f 72 6d 61 74 2d 72 65 66 65 72 65 6e 63 65 20 68 65 61 64 20 6c 6f 6e 67 65 73 74 l--format-reference.head.longest
f4c0 2d 68 65 61 64 20 63 6f 75 6e 74 20 70 6f 73 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 -head.count.pos.path))).........
f4e0 20 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 .(s-join."\n"))))..(defun.helpfu
f500 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a l--primitive-p.(sym.callable-p).
f520 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 53 59 4d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e .."Return.t.if.SYM.is.defined.in
f540 20 43 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 75 62 72 70 20 28 69 66 20 28 66 62 6f 75 6e 64 70 .C."...(let.((subrp.(if.(fboundp
f560 20 27 73 75 62 72 2d 70 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .'subr-primitive-p).............
f580 20 20 20 20 20 20 20 23 27 73 75 62 72 2d 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 20 20 20 20 20 .......#'subr-primitive-p.......
f5a0 20 20 20 20 20 20 20 20 20 20 20 23 27 73 75 62 72 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a ...........#'subrp))).....(cond.
f5c0 20 20 20 20 20 28 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d .....((and.callable-p.(helpful--
f5e0 61 64 76 69 73 65 64 2d 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 advised-p.sym)).......(funcall.s
f600 75 62 72 70 20 28 68 65 6c 70 66 75 6c 2d 2d 77 69 74 68 6f 75 74 2d 61 64 76 69 63 65 20 73 79 ubrp.(helpful--without-advice.sy
f620 6d 29 29 29 0a 20 20 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 28 66 75 6e m)))......(callable-p.......(fun
f640 63 61 6c 6c 20 73 75 62 72 70 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 73 79 call.subrp.(indirect-function.sy
f660 6d 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 m)))......(t.......(let.((filena
f680 6d 65 20 28 66 69 6e 64 2d 6c 69 73 70 2d 6f 62 6a 65 63 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 73 me.(find-lisp-object-file-name.s
f6a0 79 6d 20 27 64 65 66 76 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 20 66 69 ym.'defvar))).........(or.(eq.fi
f6c0 6c 65 6e 61 6d 65 20 27 43 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 lename.'C-source).............(a
f6e0 6e 64 20 28 73 74 72 69 6e 67 70 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 nd.(stringp.filename)...........
f700 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 .......(let.((ext.(file-name-ext
f720 65 6e 73 69 6f 6e 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ension.filename)))..............
f740 20 20 20 20 20 20 28 6f 72 20 28 65 71 75 61 6c 20 65 78 74 20 22 63 22 29 0a 20 20 20 20 20 20 ......(or.(equal.ext."c").......
f760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 65 78 74 20 22 72 73 22 .................(equal.ext."rs"
f780 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d ))))))))))..(defun.helpful--sym-
f7a0 76 61 6c 75 65 20 28 73 79 6d 20 62 75 66 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 value.(sym.buf)..."Return.the.va
f7c0 6c 75 65 20 6f 66 20 53 59 4d 20 69 6e 20 42 55 46 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 3b lue.of.SYM.in.BUF."...(cond....;
f7e0 3b 20 49 66 20 77 65 27 72 65 20 67 69 76 65 6e 20 61 20 62 75 66 66 65 72 2c 20 6c 6f 6f 6b 20 ;.If.we're.given.a.buffer,.look.
f800 75 70 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 61 74 20 62 75 66 66 65 72 2e 0a up.the.variable.in.that.buffer..
f820 20 20 20 28 62 75 66 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ...(buf.....(with-current-buffer
f840 20 62 75 66 0a 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 0a .buf.......(symbol-value.sym))).
f860 20 20 20 3b 3b 20 49 66 20 77 65 20 64 6f 6e 27 74 20 68 61 76 65 20 61 20 62 75 66 66 65 72 2c ...;;.If.we.don't.have.a.buffer,
f880 20 61 6e 64 20 74 68 69 73 20 69 73 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 .and.this.is.a.buffer-local.vari
f8a0 61 62 6c 65 2c 0a 20 20 20 3b 3b 20 65 6e 73 75 72 65 20 77 65 20 72 65 74 75 72 6e 20 74 68 65 able,....;;.ensure.we.return.the
f8c0 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2e 0a 20 20 20 28 28 6c 6f 63 61 6c 2d 76 61 72 69 61 .default.value.....((local-varia
f8e0 62 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d 29 0a 20 20 20 20 28 64 65 66 61 75 6c 74 2d 76 ble-if-set-p.sym).....(default-v
f900 61 6c 75 65 20 73 79 6d 29 29 0a 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 6a 75 73 74 alue.sym))....;;.Otherwise,.just
f920 20 72 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 .return.the.value.in.the.current
f940 20 62 75 66 66 65 72 2c 20 77 68 69 63 68 20 69 73 0a 20 20 20 3b 3b 20 74 68 65 20 67 6c 6f 62 .buffer,.which.is....;;.the.glob
f960 61 6c 20 76 61 6c 75 65 2e 0a 20 20 20 28 74 0a 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 al.value.....(t.....(symbol-valu
f980 65 20 73 79 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 e.sym))))..(defun.helpful--inser
f9a0 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 73 65 63 t-section-break.()..."Insert.sec
f9c0 74 69 6f 6e 20 62 72 65 61 6b 20 69 6e 74 6f 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 2e 22 tion.break.into.helpful.buffer."
f9e0 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 ...(insert."\n\n"))..(defun.help
fa00 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 28 29 0a 20 ful--insert-implementations.()..
fa20 20 22 57 68 65 6e 20 60 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 27 20 69 73 20 61 20 67 65 6e 65 72 ."When.`helpful--sym'.is.a.gener
fa40 69 63 20 6d 65 74 68 6f 64 2c 20 69 6e 73 65 72 74 20 69 74 73 20 69 6d 70 6c 65 6d 65 6e 74 61 ic.method,.insert.its.implementa
fa60 74 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 75 6e 63 20 68 65 6c 70 66 75 6c 2d 2d 73 tions."...(let.((func.helpful--s
fa80 79 6d 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 28 77 68 65 6e ym).........(content)).....(when
faa0 20 28 66 62 6f 75 6e 64 70 20 23 27 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 64 65 73 63 72 69 62 65 .(fboundp.#'cl--generic-describe
fac0 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 ).......(with-temp-buffer.......
fae0 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 63 6c 2d 2d 67 65 6e 65 72 69 63 2d ..(declare-function.cl--generic-
fb00 64 65 73 63 72 69 62 65 20 22 63 6c 2d 67 65 6e 65 72 69 63 22 20 28 66 75 6e 63 74 69 6f 6e 29 describe."cl-generic".(function)
fb20 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 64 65 73 63 72 69 62 65 20 ).........(cl--generic-describe.
fb40 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d func).........(goto-char.(point-
fb60 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 min)).........(when.(re-search-f
fb80 6f 72 77 61 72 64 20 22 5e 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 3a 24 22 20 6e 69 6c 20 orward."^Implementations:$".nil.
fba0 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 65 6e 74 20 28 62 75 66 66 t)...........(setq.content.(buff
fbc0 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 er-substring.(point).(point-max)
fbe0 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 )))).......(when.content........
fc00 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 .(helpful--insert-section-break)
fc20 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 .........(insert.(helpful--headi
fc40 6e 67 20 22 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 22 29 20 28 73 2d 74 72 69 6d 20 63 6f ng."Implementations").(s-trim.co
fc60 6e 74 65 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c ntent))))))..(defun.helpful--cal
fc80 63 75 6c 61 74 65 2d 72 65 66 65 72 65 6e 63 65 73 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d culate-references.(sym.callable-
fca0 70 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 20 22 43 61 6c 63 75 6c 61 74 65 20 72 65 66 65 p.source-path)..."Calculate.refe
fcc0 72 65 6e 63 65 73 20 66 6f 72 20 53 59 4d 20 69 6e 20 53 4f 55 52 43 45 2d 50 41 54 48 2e 22 0a rences.for.SYM.in.SOURCE-PATH.".
fce0 20 20 28 77 68 65 6e 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 ..(when.source-path.....(let*.((
fd00 70 72 69 6d 69 74 69 76 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d primitive-p.(helpful--primitive-
fd20 70 20 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 p.sym.callable-p))............(b
fd40 75 66 20 28 65 6c 69 73 70 2d 72 65 66 73 2d 2d 63 6f 6e 74 65 6e 74 73 2d 62 75 66 66 65 72 20 uf.(elisp-refs--contents-buffer.
fd60 73 6f 75 72 63 65 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69 source-path))............(positi
fd80 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 69 6d 69 74 69 76 65 2d 70 0a ons.............(if.primitive-p.
fda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................nil.............
fdc0 20 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 66 65 72 65 6e 63 65 2d 70 6f 73 69 74 69 6f 6e 73 0a ..(helpful--reference-positions.
fde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 ...............helpful--sym.help
fe00 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 ful--callable-p.buf)))..........
fe20 20 20 28 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 28 2d 2d 6d 61 70 20 28 68 65 6c 70 66 75 6c 2d ..(return-value.(--map.(helpful-
fe40 2d 6f 75 74 65 72 2d 73 65 78 70 20 62 75 66 20 69 74 29 20 70 6f 73 69 74 69 6f 6e 73 29 29 29 -outer-sexp.buf.it).positions)))
fe60 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 20 20 72 .......(kill-buffer.buf).......r
fe80 65 74 75 72 6e 2d 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d eturn-value)))..(defun.helpful--
fea0 6d 61 6b 65 2d 73 68 6f 72 74 64 6f 63 2d 73 65 6e 74 65 6e 63 65 20 28 73 79 6d 29 0a 20 20 22 make-shortdoc-sentence.(sym)..."
fec0 4d 61 6b 65 20 61 20 6c 69 6e 65 20 66 6f 72 20 73 68 6f 72 74 64 6f 63 20 67 72 6f 75 70 73 20 Make.a.line.for.shortdoc.groups.
fee0 6f 66 20 53 59 4d 2e 22 0a 20 20 28 77 68 65 6e 20 28 66 65 61 74 75 72 65 70 20 27 73 68 6f 72 of.SYM."...(when.(featurep.'shor
ff00 74 64 6f 63 29 0a 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 67 72 6f 75 70 73 20 28 2d 2d tdoc).....(-when-let.(groups.(--
ff20 6d 61 70 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 map.(helpful--button............
ff40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 ....................(symbol-name
ff60 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .it)............................
ff80 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 73 68 6f 72 74 64 6f 63 2d 62 75 74 74 6f 6e 0a 20 20 20 ....'helpful-shortdoc-button....
ffa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 68 6f ............................'sho
ffc0 72 74 64 6f 63 2d 67 72 6f 75 70 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rtdoc-group.it).................
ffe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 6f 72 74 64 6f 63 2d 66 75 6e 63 74 69 6f 6e ..............(shortdoc-function
10000 2d 67 72 6f 75 70 73 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 31 20 28 6c -groups.sym))).......(if.(=.1.(l
10020 65 6e 67 74 68 20 67 72 6f 75 70 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 ength.groups))...........(format
10040 20 22 4f 74 68 65 72 20 72 65 6c 65 76 61 6e 74 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 ."Other.relevant.functions.are.d
10060 6f 63 75 6d 65 6e 74 65 64 20 69 6e 20 74 68 65 20 25 73 20 67 72 6f 75 70 2e 22 0a 20 20 20 20 ocumented.in.the.%s.group.".....
10080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 67 72 6f 75 70 73 29 29 0a 20 20 20 20 ..............(car.groups)).....
100a0 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4f 74 68 65 72 20 72 65 6c 65 76 61 6e 74 20 66 75 6e 63 ....(format."Other.relevant.func
100c0 74 69 6f 6e 73 20 61 72 65 20 64 6f 63 75 6d 65 6e 74 65 64 20 69 6e 20 74 68 65 20 25 73 20 67 tions.are.documented.in.the.%s.g
100e0 72 6f 75 70 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 roups.".................(concat.
10100 28 73 2d 6a 6f 69 6e 20 22 2c 20 22 20 28 62 75 74 6c 61 73 74 20 67 72 6f 75 70 73 29 29 0a 20 (s-join.",.".(butlast.groups))..
10120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 61 6e 64 20 22 20 28 .......................".and.".(
10140 63 61 72 20 28 6c 61 73 74 20 67 72 6f 75 70 73 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e car.(last.groups))))))))..(defun
10160 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 6d 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 20 28 73 79 .helpful--make-manual-button.(sy
10180 6d 29 0a 20 20 22 4d 61 6b 65 20 6d 61 6e 75 61 6c 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d m)..."Make.manual.button.for.SYM
101a0 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 56 69 65 77 20 69 ."...(helpful--button...."View.i
101c0 6e 20 6d 61 6e 75 61 6c 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 6d 61 6e 75 61 6c 2d 62 75 74 n.manual"....'helpful-manual-but
101e0 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c ton....'symbol.sym))..(defun.hel
10200 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 6f 67 67 6c 65 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 62 75 pful--make-toggle-button.(sym.bu
10220 66 66 65 72 29 0a 20 20 22 4d 61 6b 65 20 74 6f 67 67 6c 65 20 62 75 74 74 6f 6e 20 66 6f 72 20 ffer)..."Make.toggle.button.for.
10240 53 59 4d 20 69 6e 20 42 55 46 46 45 52 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 SYM.in.BUFFER."...(helpful--butt
10260 6f 6e 0a 20 20 20 22 54 6f 67 67 6c 65 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 74 6f 67 67 6c on...."Toggle"....'helpful-toggl
10280 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 27 62 75 66 66 e-button....'symbol.sym....'buff
102a0 65 72 20 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b er.buffer))..(defun.helpful--mak
102c0 65 2d 73 65 74 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 62 75 66 66 65 72 29 0a 20 20 22 4d 61 6b e-set-button.(sym.buffer)..."Mak
102e0 65 20 73 65 74 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 20 69 6e 20 42 55 46 46 45 52 2e 22 e.set.button.for.SYM.in.BUFFER."
10300 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 53 65 74 22 0a 20 20 20 ...(helpful--button...."Set"....
10320 27 68 65 6c 70 66 75 6c 2d 73 65 74 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 'helpful-set-button....'symbol.s
10340 79 6d 0a 20 20 20 27 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 68 ym....'buffer.buffer))..(defun.h
10360 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 6f 67 67 6c 65 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 elpful--make-toggle-literal-butt
10380 6f 6e 20 28 29 0a 20 20 22 4d 61 6b 65 20 73 65 74 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d on.()..."Make.set.button.for.SYM
103a0 20 69 6e 20 42 55 46 46 45 52 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a .in.BUFFER."...(helpful--button.
103c0 20 20 20 28 69 66 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 0a 20 20 20 ...(if.helpful--view-literal....
103e0 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 6f 6e 6c 79 20 6f 66 66 65 72 20 66 6f 72 20 73 74 72 69 ....;;.TODO:.only.offer.for.stri
10400 6e 67 73 20 74 68 61 74 20 68 61 76 65 20 6e 65 77 6c 69 6e 65 73 2c 20 74 61 62 73 20 6f 72 0a ngs.that.have.newlines,.tabs.or.
10420 20 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 20 20 20 20 20 20 20 22 50 72 .......;;.properties........."Pr
10440 65 74 74 79 20 76 69 65 77 22 0a 20 20 20 20 20 22 56 69 65 77 20 61 73 20 6c 69 74 65 72 61 6c etty.view"......"View.as.literal
10460 22 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 ")....'helpful-view-literal-butt
10480 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 75 73 74 6f on))..(defun.helpful--make-custo
104a0 6d 69 7a 65 2d 62 75 74 74 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 63 75 73 74 6f 6d mize-button.(sym)..."Make.custom
104c0 69 7a 65 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d ize.button.for.SYM."...(helpful-
104e0 2d 62 75 74 74 6f 6e 0a 20 20 20 22 43 75 73 74 6f 6d 69 7a 65 22 0a 20 20 20 27 68 65 6c 70 66 -button...."Customize"....'helpf
10500 75 6c 2d 63 75 73 74 6f 6d 69 7a 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 ul-customize-button....'symbol.s
10520 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 65 66 65 72 ym))..(defun.helpful--make-refer
10540 65 6e 63 65 73 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 ences-button.(sym.callable-p)...
10560 22 4d 61 6b 65 20 72 65 66 65 72 65 6e 63 65 73 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e "Make.references.button.for.SYM.
10580 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 46 69 6e 64 20 61 6c "...(helpful--button...."Find.al
105a0 6c 20 72 65 66 65 72 65 6e 63 65 73 22 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 61 6c 6c 2d 72 65 l.references"....'helpful-all-re
105c0 66 65 72 65 6e 63 65 73 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 ferences-button....'symbol.sym..
105e0 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 0a 28 64 65 66 ..'callable-p.callable-p))..(def
10600 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 65 64 65 62 75 67 2d 62 75 74 74 6f 6e 20 28 un.helpful--make-edebug-button.(
10620 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 65 64 65 62 75 67 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 sym)..."Make.edebug.button.for.S
10640 59 4d 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 28 66 6f 72 6d YM."...(helpful--button....(form
10660 61 74 20 22 25 73 20 65 64 65 62 75 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 68 at."%s.edebug"............(if.(h
10680 65 6c 70 66 75 6c 2d 2d 65 64 65 62 75 67 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 elpful--edebug-p.sym)...........
106a0 20 20 20 20 20 22 44 69 73 61 62 6c 65 22 20 22 45 6e 61 62 6c 65 22 29 29 0a 20 20 20 27 68 65 ....."Disable"."Enable"))....'he
106c0 6c 70 66 75 6c 2d 65 64 65 62 75 67 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 lpful-edebug-button....'symbol.s
106e0 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 72 61 63 69 ym))..(defun.helpful--make-traci
10700 6e 67 2d 62 75 74 74 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 74 72 61 63 69 6e 67 20 ng-button.(sym)..."Make.tracing.
10720 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
10740 74 6f 6e 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 74 72 61 63 69 6e 67 22 0a 20 20 20 20 ton....(format."%s.tracing".....
10760 20 20 20 20 20 20 20 28 69 66 20 28 74 72 61 63 65 2d 69 73 2d 74 72 61 63 65 64 20 73 79 6d 29 .......(if.(trace-is-traced.sym)
10780 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 44 69 73 61 62 6c 65 22 20 22 45 6e 61 62 6c ................"Disable"."Enabl
107a0 65 22 29 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 74 72 61 63 65 2d 62 75 74 74 6f 6e 0a 20 20 e"))....'helpful-trace-button...
107c0 20 27 73 79 6d 62 6f 6c 20 73 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d .'symbol.sym))..(defun.helpful--
107e0 6d 61 6b 65 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 20 28 6f 62 6a 29 0a 20 20 make-disassemble-button.(obj)...
10800 22 4d 61 6b 65 20 64 69 73 61 73 73 65 6d 62 6c 65 20 62 75 74 74 6f 6e 20 66 6f 72 20 4f 42 4a "Make.disassemble.button.for.OBJ
10820 2e 0a 4f 42 4a 20 6d 61 79 20 62 65 20 61 20 73 79 6d 62 6f 6c 20 6f 72 20 61 20 63 6f 6d 70 69 ..OBJ.may.be.a.symbol.or.a.compi
10840 6c 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2e 22 0a 20 20 28 68 65 6c 70 66 75 6c led.function.object."...(helpful
10860 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 44 69 73 61 73 73 65 6d 62 6c 65 22 0a 20 20 20 27 68 65 --button...."Disassemble"....'he
10880 6c 70 66 75 6c 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 0a 20 20 20 27 6f 62 6a lpful-disassemble-button....'obj
108a0 65 63 74 20 6f 62 6a 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d ect.obj))..(defun.helpful--make-
108c0 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 6f 6e 20 28 73 79 6d 29 0a 20 20 22 4d 61 6b 65 20 61 6e run-test-button.(sym)..."Make.an
108e0 20 45 52 54 20 74 65 73 74 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 68 65 .ERT.test.button.for.SYM."...(he
10900 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 52 75 6e 20 74 65 73 74 22 0a 20 20 20 27 lpful--button...."Run.test"....'
10920 68 65 6c 70 66 75 6c 2d 72 75 6e 2d 74 65 73 74 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 helpful-run-test-button....'symb
10940 6f 6c 20 73 79 6d 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 66 ol.sym))..(defun.helpful--make-f
10960 6f 72 67 65 74 2d 62 75 74 74 6f 6e 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 orget-button.(sym.callable-p)...
10980 22 4d 61 6b 65 20 66 6f 72 67 65 74 20 62 75 74 74 6f 6e 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 "Make.forget.button.for.SYM."...
109a0 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 22 46 6f 72 67 65 74 22 0a 20 20 20 (helpful--button...."Forget"....
109c0 27 68 65 6c 70 66 75 6c 2d 66 6f 72 67 65 74 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 'helpful-forget-button....'symbo
109e0 6c 20 73 79 6d 0a 20 20 20 27 63 61 6c 6c 61 62 6c 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 l.sym....'callable-p.callable-p)
10a00 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 61 6c 6c 65 65 73 2d )..(defun.helpful--make-callees-
10a20 62 75 74 74 6f 6e 20 28 73 79 6d 20 73 6f 75 72 63 65 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d button.(sym.source)...(helpful--
10a40 62 75 74 74 6f 6e 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 46 75 6e 63 74 69 6f 6e 73 20 75 73 65 button....(format."Functions.use
10a60 64 20 62 79 20 25 73 22 20 73 79 6d 29 0a 20 20 20 27 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 65 65 d.by.%s".sym)....'helpful-callee
10a80 73 2d 62 75 74 74 6f 6e 0a 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d 0a 20 20 20 27 73 6f 75 72 s-button....'symbol.sym....'sour
10aa0 63 65 20 73 6f 75 72 63 65 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 74 68 69 73 20 6f 6e 6c 79 20 ce.source))..;;.TODO:.this.only.
10ac0 72 65 70 6f 72 74 73 20 69 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 75 74 6f 6c 6f 61 reports.if.a.function.is.autoloa
10ae0 64 65 64 20 62 65 63 61 75 73 65 20 77 65 0a 3b 3b 20 61 75 74 6f 6c 6f 61 64 65 64 20 69 74 2e ded.because.we.;;.autoloaded.it.
10b00 20 54 68 69 73 20 69 67 6e 6f 72 65 73 20 6e 65 77 6c 79 20 64 65 66 69 6e 65 64 20 66 75 6e 63 .This.ignores.newly.defined.func
10b20 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 0a 3b 3b 20 61 75 74 6f 6c 6f 61 64 65 64 2e 20 42 75 tions.that.are.;;.autoloaded..Bu
10b40 69 6c 74 2d 69 6e 20 68 65 6c 70 20 68 61 73 20 74 68 69 73 20 6c 69 6d 69 74 61 74 69 6f 6e 20 ilt-in.help.has.this.limitation.
10b60 74 6f 6f 2c 20 62 75 74 20 69 66 20 77 65 20 63 61 6e 0a 3b 3b 20 66 69 6e 64 20 74 68 65 20 73 too,.but.if.we.can.;;.find.the.s
10b80 6f 75 72 63 65 2c 20 77 65 20 73 68 6f 75 6c 64 20 69 6e 73 74 65 61 64 20 73 65 65 20 69 66 20 ource,.we.should.instead.see.if.
10ba0 74 68 65 72 65 27 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 0a 3b 3b 20 63 6f 6f 6b 69 65 2e 0a 28 there's.an.autoload.;;.cookie..(
10bc0 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 28 73 79 6d defun.helpful--autoloaded-p.(sym
10be0 20 62 75 66 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 66 75 6e 63 74 .buf)..."Return.non-nil.if.funct
10c00 69 6f 6e 20 53 59 4d 20 69 73 20 61 75 74 6f 6c 6f 61 64 65 64 2e 22 0a 20 20 28 2d 77 68 65 6e ion.SYM.is.autoloaded."...(-when
10c20 2d 6c 65 74 20 28 66 69 6c 65 2d 6e 61 6d 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d -let.(file-name.(buffer-file-nam
10c40 65 20 62 75 66 29 29 0a 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 2d 6e 61 6d 65 20 28 73 2d 63 e.buf)).....(setq.file-name.(s-c
10c60 68 6f 70 2d 73 75 66 66 69 78 20 22 2e 67 7a 22 20 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 hop-suffix.".gz".file-name))....
10c80 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 68 65 .(condition-case.nil.........(he
10ca0 6c 70 2d 66 6e 73 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 73 79 6d 20 66 69 6c 65 2d 6e 61 lp-fns--autoloaded-p.sym.file-na
10cc0 6d 65 29 0a 20 20 20 20 20 20 3b 20 6e 65 77 20 69 6e 20 45 6d 61 63 73 20 32 39 2e 30 2e 35 30 me).......;.new.in.Emacs.29.0.50
10ce0 0a 20 20 20 20 20 20 3b 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f .......;.see.https://github.com/
10d00 57 69 6c 66 72 65 64 2f 68 65 6c 70 66 75 6c 2f 70 75 6c 6c 2f 32 38 33 0a 20 20 20 20 20 20 28 Wilfred/helpful/pull/283.......(
10d20 65 72 72 6f 72 20 28 68 65 6c 70 2d 66 6e 73 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 73 79 error.(help-fns--autoloaded-p.sy
10d40 6d 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 6f 6d 70 69 6c 65 64 m)))))..(defun.helpful--compiled
10d60 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 66 75 -p.(sym)..."Return.non-nil.if.fu
10d80 6e 63 74 69 6f 6e 20 53 59 4d 20 69 73 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 64 22 0a 20 20 28 nction.SYM.is.byte-compiled"...(
10da0 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 28 62 79 74 65 2d 63 and.(symbolp.sym)........(byte-c
10dc0 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 ode-function-p.(symbol-function.
10de0 73 79 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6e 61 74 69 76 65 2d sym))))..(defun.helpful--native-
10e00 63 6f 6d 70 69 6c 65 64 2d 70 20 28 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e compiled-p.(sym)..."Return.non-n
10e20 69 6c 20 69 66 20 66 75 6e 63 74 69 6f 6e 20 53 59 4d 20 69 73 20 6e 61 74 69 76 65 2d 63 6f 6d il.if.function.SYM.is.native-com
10e40 70 69 6c 65 64 22 0a 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 piled"...(and.(symbolp.sym).....
10e60 20 20 20 28 66 62 6f 75 6e 64 70 20 27 73 75 62 72 2d 6e 61 74 69 76 65 2d 65 6c 69 73 70 2d 70 ...(fboundp.'subr-native-elisp-p
10e80 29 0a 20 20 20 20 20 20 20 28 73 75 62 72 2d 6e 61 74 69 76 65 2d 65 6c 69 73 70 2d 70 20 28 73 )........(subr-native-elisp-p.(s
10ea0 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 ymbol-function.sym))))..(defun.h
10ec0 65 6c 70 66 75 6c 2d 2d 6a 6f 69 6e 2d 61 6e 64 20 28 69 74 65 6d 73 29 0a 20 20 22 4a 6f 69 6e elpful--join-and.(items)..."Join
10ee0 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 77 69 74 68 20 63 6f 6d 6d 61 73 20 61 .a.list.of.strings.with.commas.a
10f00 6e 64 20 5c 22 61 6e 64 5c 22 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 3d 20 28 6c 65 6e nd.\"and\"."...(cond....((=.(len
10f20 67 74 68 20 69 74 65 6d 73 29 20 30 29 0a 20 20 20 20 22 22 29 0a 20 20 20 28 28 3d 20 28 6c 65 gth.items).0)....."")....((=.(le
10f40 6e 67 74 68 20 69 74 65 6d 73 29 20 31 29 0a 20 20 20 20 28 63 61 72 20 69 74 65 6d 73 29 29 0a ngth.items).1).....(car.items)).
10f60 20 20 20 28 74 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 61 6e 64 20 25 73 22 0a 20 20 ...(t.....(format."%s.and.%s"...
10f80 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 2c 20 22 20 28 2d 64 72 6f 70 2d 6c 61 ..........(s-join.",.".(-drop-la
10fa0 73 74 20 31 20 69 74 65 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 73 74 2d st.1.items)).............(-last-
10fc0 69 74 65 6d 20 69 74 65 6d 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d item.items)))))..(defun.helpful-
10fe0 2d 73 75 6d 6d 61 72 79 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 -summary.(sym.callable-p.buf.pos
11000 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6f 6e 65 20 73 65 6e 74 65 6e 63 65 20 73 75 6d 6d 61 )..."Return.a.one.sentence.summa
11020 72 79 20 66 6f 72 20 53 59 4d 2e 22 0a 20 20 28 2d 6c 65 74 2a 20 28 28 70 72 69 6d 69 74 69 76 ry.for.SYM."...(-let*.((primitiv
11040 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 69 76 65 2d 70 20 73 79 6d 20 63 61 e-p.(helpful--primitive-p.sym.ca
11060 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 6f 6e 69 63 61 6c 2d llable-p))...........(canonical-
11080 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 62 6f 6c 20 73 sym.(helpful--canonical-symbol.s
110a0 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 61 73 ym.callable-p))...........(alias
110c0 2d 70 20 28 6e 6f 74 20 28 65 71 20 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 20 73 79 6d 29 29 29 -p.(not.(eq.canonical-sym.sym)))
110e0 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 61 73 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 ...........(alias-button........
11100 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(if.callable-p..............
11120 20 20 3b 3b 20 53 68 6f 77 20 61 20 6c 69 6e 6b 20 74 6f 20 27 64 65 66 61 6c 69 61 73 27 20 69 ..;;.Show.a.link.to.'defalias'.i
11140 6e 20 74 68 65 20 6d 61 6e 75 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 n.the.manual.................(he
11160 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 lpful--button................."f
11180 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 unction.alias".................'
111a0 68 65 6c 70 66 75 6c 2d 6d 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 helpful-manual-button...........
111c0 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 27 64 65 66 61 6c 69 61 73 29 0a 20 20 20 20 20 20 20 ......'symbol.'defalias)........
111e0 20 20 20 20 20 20 3b 3b 20 53 68 6f 77 20 61 20 6c 69 6e 6b 20 74 6f 20 74 68 65 20 76 61 72 69 ......;;.Show.a.link.to.the.vari
11200 61 62 6c 65 20 61 6c 69 61 73 65 73 20 73 65 63 74 69 6f 6e 20 69 6e 20 74 68 65 0a 20 20 20 20 able.aliases.section.in.the.....
11220 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6e 75 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........;;.manual..............
11240 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(helpful--button...............
11260 22 61 6c 69 61 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 "alias"...............'helpful-i
11280 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 6e nfo-button...............'info-n
112a0 6f 64 65 20 22 28 65 6c 69 73 70 29 56 61 72 69 61 62 6c 65 20 41 6c 69 61 73 65 73 22 29 29 29 ode."(elisp)Variable.Aliases")))
112c0 0a 20 20 20 20 20 20 20 20 20 20 28 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 62 75 74 74 6f 6e 0a ...........(special-form-button.
112e0 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 ...........(helpful--button.....
11300 20 20 20 20 20 20 20 20 22 73 70 65 63 69 61 6c 20 66 6f 72 6d 22 0a 20 20 20 20 20 20 20 20 20 ........"special.form"..........
11320 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 ...'helpful-info-button.........
11340 20 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 53 70 65 63 69 61 6c 20 46 ....'info-node."(elisp)Special.F
11360 6f 72 6d 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 6f 70 74 69 6f 6e 2d 62 orms"))...........(user-option-b
11380 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f utton............(helpful--butto
113a0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 63 75 73 74 6f 6d 69 7a 61 62 6c 65 22 0a 20 20 20 n............."customizable"....
113c0 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...
113e0 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 56 61 72 ..........'info-node."(elisp)Var
11400 69 61 62 6c 65 20 44 65 66 69 6e 69 74 69 6f 6e 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 iable.Definitions"))...........(
11420 6b 65 79 62 6f 61 72 64 2d 6d 61 63 72 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 keyboard-macro-button...........
11440 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 6b .(helpful--button............."k
11460 65 79 62 6f 61 72 64 20 6d 61 63 72 6f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 eyboard.macro".............'help
11480 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 69 6e 66 ful-info-button.............'inf
114a0 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 4b 65 79 62 6f 61 72 64 20 4d 61 63 72 6f 73 22 29 o-node."(elisp)Keyboard.Macros")
114c0 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 2d 62 75 74 74 6f 6e 0a )...........(interactive-button.
114e0 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 ...........(helpful--button.....
11500 20 20 20 20 20 20 20 20 22 69 6e 74 65 72 61 63 74 69 76 65 22 0a 20 20 20 20 20 20 20 20 20 20 ........"interactive"...........
11520 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..........
11540 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 55 73 69 6e 67 20 49 6e 74 65 ...'info-node."(elisp)Using.Inte
11560 72 61 63 74 69 76 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 2d 62 ractive"))...........(autoload-b
11580 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f utton............(helpful--butto
115a0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 65 64 22 0a 20 20 20 20 20 n............."autoloaded"......
115c0 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 .......'helpful-info-button.....
115e0 20 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 41 75 74 6f 6c ........'info-node."(elisp)Autol
11600 6f 61 64 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f oad"))...........(compiled-butto
11620 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 n............(helpful--button...
11640 20 20 20 20 20 20 20 20 20 20 22 62 79 74 65 2d 63 6f 6d 70 69 6c 65 64 22 0a 20 20 20 20 20 20 .........."byte-compiled".......
11660 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 69 6e 66 6f 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 ......'helpful-info-button......
11680 20 20 20 20 20 20 20 27 69 6e 66 6f 2d 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 42 79 74 65 20 43 .......'info-node."(elisp)Byte.C
116a0 6f 6d 70 69 6c 61 74 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 61 74 69 76 65 2d ompilation"))...........(native-
116c0 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 compiled-button............(help
116e0 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 74 69 76 65 6c ful--button............."nativel
11700 79 20 63 6f 6d 70 69 6c 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c y.compiled".............'helpful
11720 2d 64 65 73 63 72 69 62 65 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 -describe-button.............'sy
11740 6d 62 6f 6c 20 27 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 mbol.'native-compile))..........
11760 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 .(buffer-local-button...........
11780 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 62 .(helpful--button............."b
117a0 75 66 66 65 72 2d 6c 6f 63 61 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 uffer-local".............'helpfu
117c0 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-
117e0 6e 6f 64 65 20 22 28 65 6c 69 73 70 29 42 75 66 66 65 72 2d 4c 6f 63 61 6c 20 56 61 72 69 61 62 node."(elisp)Buffer-Local.Variab
11800 6c 65 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 65 64 2d 70 0a 20 les"))...........(autoloaded-p..
11820 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 28 68 ..........(and.callable-p.buf.(h
11840 65 6c 70 66 75 6c 2d 2d 61 75 74 6f 6c 6f 61 64 65 64 2d 70 20 73 79 6d 20 62 75 66 29 29 29 0a elpful--autoloaded-p.sym.buf))).
11860 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 69 6c 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 ..........(compiled-p...........
11880 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 6d 70 69 .(and.callable-p.(helpful--compi
118a0 6c 65 64 2d 70 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 61 74 69 76 65 2d 63 led-p.sym)))...........(native-c
118c0 6f 6d 70 69 6c 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 63 61 6c 6c 61 62 ompiled-p............(and.callab
118e0 6c 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 2d 70 le-p.(helpful--native-compiled-p
11900 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 73 0a 20 20 20 20 20 .sym)))...........(buttons......
11920 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 6c 69 61 ......(list.............(if.alia
11940 73 2d 70 20 61 6c 69 61 73 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 s-p.alias-button).............(i
11960 66 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 61 75 74 6f 6c 6f 61 64 65 64 2d 70 29 20 f.(and.callable-p.autoloaded-p).
11980 61 75 74 6f 6c 6f 61 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 autoload-button).............(if
119a0 20 28 61 6e 64 20 63 61 6c 6c 61 62 6c 65 2d 70 20 28 63 6f 6d 6d 61 6e 64 70 20 73 79 6d 29 29 .(and.callable-p.(commandp.sym))
119c0 20 69 6e 74 65 72 61 63 74 69 76 65 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 .interactive-button)............
119e0 20 28 69 66 20 63 6f 6d 70 69 6c 65 64 2d 70 20 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f 6e 29 .(if.compiled-p.compiled-button)
11a00 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 .............(if.native-compiled
11a20 2d 70 20 6e 61 74 69 76 65 2d 63 6f 6d 70 69 6c 65 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 -p.native-compiled-button)......
11a40 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 .......(if.(and.(not.callable-p)
11a60 20 28 63 75 73 74 6f 6d 2d 76 61 72 69 61 62 6c 65 2d 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 .(custom-variable-p.sym)).......
11a80 20 20 20 20 20 20 20 20 20 20 75 73 65 72 2d 6f 70 74 69 6f 6e 2d 62 75 74 74 6f 6e 29 0a 20 20 ..........user-option-button)...
11aa0 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 ..........(if.(and.(not.callable
11ac0 2d 70 29 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d -p).(local-variable-if-set-p.sym
11ae0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d )).................buffer-local-
11b00 62 75 74 74 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 73 63 72 69 70 74 69 6f 6e button)))...........(description
11b20 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6a 6f 69 6e 2d 61 6e 64 20 28 ............(helpful--join-and.(
11b40 2d 6e 6f 6e 2d 6e 69 6c 20 62 75 74 74 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b -non-nil.buttons)))...........(k
11b60 69 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 ind............(cond............
11b80 20 28 28 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 .((special-form-p.sym)..........
11ba0 20 20 20 20 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 20 20 20 ....special-form-button)........
11bc0 20 20 20 20 20 28 61 6c 69 61 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d .....(alias-p..............(form
11be0 61 74 20 22 66 6f 72 20 25 73 2c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 at."for.%s,"....................
11c00 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..............
11c20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 63 61 6e 6f 6e 69 63 61 6c 2d .........(symbol-name.canonical-
11c40 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 sym).......................'help
11c60 66 75 6c 2d 64 65 73 63 72 69 62 65 2d 65 78 61 63 74 6c 79 2d 62 75 74 74 6f 6e 0a 20 20 20 20 ful-describe-exactly-button.....
11c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 63 61 6e 6f 6e 69 ..................'symbol.canoni
11ca0 63 61 6c 2d 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 cal-sym.......................'c
11cc0 61 6c 6c 61 62 6c 65 2d 70 20 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 allable-p.callable-p))).........
11ce0 20 20 20 20 28 28 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2d 70 29 20 22 76 61 72 69 61 62 6c 65 22 ....((not.callable-p)."variable"
11d00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 61 63 72 6f 70 20 73 79 6d 29 20 22 6d 61 63 ).............((macrop.sym)."mac
11d20 72 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d ro").............((helpful--kbd-
11d40 6d 61 63 72 6f 2d 70 20 73 79 6d 29 20 6b 65 79 62 6f 61 72 64 2d 6d 61 63 72 6f 2d 62 75 74 74 macro-p.sym).keyboard-macro-butt
11d60 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 22 66 75 6e 63 74 69 6f 6e 22 29 29 29 on).............(t."function")))
11d80 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........(defined.............
11da0 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 0a 20 20 20 20 20 20 20 20 (cond..............(buf.........
11dc0 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 74 68 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e ......(let.((path.(buffer-file-n
11de0 61 6d 65 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 ame.buf))).................(if.p
11e00 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a ath.....................(format.
11e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 66 69 6e 65 64 20 69 6e ....................."defined.in
11e40 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 .%s"......................(helpf
11e60 75 6c 2d 2d 6e 61 76 69 67 61 74 65 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ul--navigate-button.............
11e80 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 ..........(file-name-nondirector
11ea0 79 20 70 61 74 68 29 20 70 61 74 68 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 y.path).path.pos))..............
11ec0 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 64 65 66 69 6e 65 64 20 69 6e 20 62 75 66 66 65 72 20 .....(format."defined.in.buffer.
11ee0 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 %s"...........................(h
11f00 65 6c 70 66 75 6c 2d 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 20 62 75 66 20 70 6f 73 29 29 29 elpful--buffer-button.buf.pos)))
11f20 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 20 20 ))..............(primitive-p....
11f40 20 20 20 20 20 20 20 20 20 20 20 22 64 65 66 69 6e 65 64 20 69 6e 20 43 20 73 6f 75 72 63 65 20 ..........."defined.in.C.source.
11f60 63 6f 64 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 68 65 6c 70 66 75 6c 2d 2d 6b code")..............((helpful--k
11f80 62 64 2d 6d 61 63 72 6f 2d 70 20 73 79 6d 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 bd-macro-p.sym).nil)............
11fa0 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 77 69 74 68 6f 75 74 20 61 20 73 6f ..(t..............."without.a.so
11fc0 75 72 63 65 20 66 69 6c 65 22 29 29 29 29 0a 0a 20 20 20 20 28 73 2d 77 6f 72 64 2d 77 72 61 70 urce.file"))))......(s-word-wrap
11fe0 0a 20 20 20 20 20 37 30 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 69 73 20 25 73 20 ......70......(format."%s.is.%s.
12000 25 73 20 25 73 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 %s.%s%s."..............(if.(symb
12020 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 olp.sym)..................(helpf
12040 75 6c 2d 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 ul--format-symbol.sym)..........
12060 20 20 20 20 20 20 22 54 68 69 73 20 6c 61 6d 62 64 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......"This.lambda")............
12080 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 0a 20 20 20 20 20 20 20 20 20 20 ..(if.(string-match-p...........
120a0 20 20 20 20 20 20 20 20 28 72 78 20 62 6f 73 20 28 6f 72 20 22 61 22 20 22 65 22 20 22 69 22 20 ........(rx.bos.(or."a"."e"."i".
120c0 22 6f 22 20 22 75 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 63 "o"."u"))...................desc
120e0 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e 22 0a 20 ription).................."an"..
12100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............."a")..............
12120 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 0a 20 20 description..............kind...
12140 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 66 69 6e 65 64 20 28 63 6f 6e 63 61 74 20 22 ...........(if.defined.(concat."
12160 20 22 20 64 65 66 69 6e 65 64 29 20 22 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 .".defined)."")))))..(defun.help
12180 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 20 28 66 6f 72 6d 29 0a 20 20 22 47 69 76 65 6e 20 73 6f 75 ful--callees.(form)..."Given.sou
121a0 72 63 65 20 63 6f 64 65 20 46 4f 52 4d 2c 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 rce.code.FORM,.return.a.list.of.
121c0 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 2e 22 0a 20 20 28 6c 65 all.the.functions.called."...(le
121e0 74 2a 20 28 28 65 78 70 61 6e 64 65 64 2d 66 6f 72 6d 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 2d t*.((expanded-form.(macroexpand-
12200 61 6c 6c 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 46 69 6e 64 20 61 6c 6c 20 all.form))..........;;.Find.all.
12220 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 61 66 74 65 72 20 6d 61 63 72 6f the.functions.called.after.macro
12240 20 65 78 70 61 6e 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 28 61 6c 6c 2d 66 6e 73 20 28 68 .expansion...........(all-fns.(h
12260 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 65 78 70 61 6e 64 65 64 2d 66 6f 72 6d 29 elpful--callees-1.expanded-form)
12280 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 )..........;;.Only.consider.the.
122a0 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 77 65 72 65 20 69 6e 20 74 68 65 20 6f 72 69 67 69 functions.that.were.in.the.origi
122c0 6e 61 6c 20 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 66 6f 72 65 20 6d 61 63 72 nal.code..........;;.before.macr
122e0 6f 20 65 78 70 61 6e 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 2d 73 79 6d 73 o.expansion...........(form-syms
12300 20 28 2d 66 69 6c 74 65 72 20 23 27 73 79 6d 62 6f 6c 70 20 28 2d 66 6c 61 74 74 65 6e 20 66 6f .(-filter.#'symbolp.(-flatten.fo
12320 72 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 2d 66 6e 73 20 28 2d 2d 66 69 6c 74 rm)))..........(form-fns.(--filt
12340 65 72 20 28 6d 65 6d 71 20 69 74 20 66 6f 72 6d 2d 73 79 6d 73 29 20 61 6c 6c 2d 66 6e 73 29 29 er.(memq.it.form-syms).all-fns))
12360 29 0a 20 20 20 20 28 2d 64 69 73 74 69 6e 63 74 20 66 6f 72 6d 2d 66 6e 73 29 29 29 0a 0a 28 64 ).....(-distinct.form-fns)))..(d
12380 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 28 66 6f 72 6d 29 0a 20 efun.helpful--callees-1.(form)..
123a0 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 ."Return.a.list.of.all.the.funct
123c0 69 6f 6e 73 20 63 61 6c 6c 65 64 20 69 6e 20 46 4f 52 4d 2e 0a 41 73 73 75 6d 65 73 20 46 4f 52 ions.called.in.FORM..Assumes.FOR
123e0 4d 20 68 61 73 20 62 65 65 6e 20 6d 61 63 72 6f 20 65 78 70 61 6e 64 65 64 2e 20 54 68 65 20 72 M.has.been.macro.expanded..The.r
12400 65 74 75 72 6e 65 64 20 6c 69 73 74 0a 6d 61 79 20 63 6f 6e 74 61 69 6e 20 64 75 70 6c 69 63 61 eturned.list.may.contain.duplica
12420 74 65 73 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 6f 74 20 28 63 6f 6e 73 70 20 66 6f tes."...(cond....((not.(consp.fo
12440 72 6d 29 29 0a 20 20 20 20 6e 69 6c 29 0a 20 20 20 3b 3b 20 53 65 65 20 60 28 65 6c 69 73 70 29 rm)).....nil)....;;.See.`(elisp)
12460 53 70 65 63 69 61 6c 20 46 6f 72 6d 73 27 2e 20 46 6f 72 20 74 68 65 73 65 20 73 70 65 63 69 61 Special.Forms'..For.these.specia
12480 6c 20 66 6f 72 6d 73 2c 20 77 65 20 72 65 63 75 72 73 65 0a 20 20 20 3b 3b 20 6a 75 73 74 20 6c l.forms,.we.recurse....;;.just.l
124a0 69 6b 65 20 66 75 6e 63 74 69 6f 6e 73 20 62 75 74 20 69 67 6e 6f 72 65 20 74 68 65 20 63 61 72 ike.functions.but.ignore.the.car
124c0 2e 0a 20 20 20 28 28 6d 65 6d 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 28 61 6e 64 20 63 61 74 .....((memq.(car.form).'(and.cat
124e0 63 68 20 64 65 66 63 6f 6e 73 74 20 64 65 66 76 61 72 20 69 66 20 69 6e 74 65 72 61 63 74 69 76 ch.defconst.defvar.if.interactiv
12500 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 e............................or.
12520 70 72 6f 67 31 20 70 72 6f 67 32 20 70 72 6f 67 6e 20 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 62 prog1.prog2.progn.save-current-b
12540 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uffer...........................
12560 20 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 20 73 65 74 71 20 73 65 74 71 2d 64 65 66 61 .save-restriction.setq.setq-defa
12580 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 ult............................t
125a0 72 61 63 6b 2d 6d 6f 75 73 65 20 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 20 77 68 69 6c 65 29 rack-mouse.unwind-protect.while)
125c0 29 0a 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 0a 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c ).....(-flatten......(-map.#'hel
125e0 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 0a 0a 20 pful--callees-1.(cdr.form))))...
12600 20 20 28 28 65 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 63 6f 6e 64 29 0a 20 20 20 20 28 6c 65 ..((eq.(car.form).'cond).....(le
12620 74 2a 20 28 28 63 6c 61 75 73 65 73 20 28 63 64 72 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 t*.((clauses.(cdr.form))........
12640 20 20 20 20 28 63 6c 61 75 73 65 2d 66 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 ....(clause-fns.............;;.E
12660 61 63 68 20 63 6c 61 75 73 65 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 66 6f 72 6d 73 2e 0a 20 ach.clause.is.a.list.of.forms...
12680 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...........(--map..............(
126a0 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 69 74 29 20 63 6c -map.#'helpful--callees-1.it).cl
126c0 61 75 73 65 73 29 29 29 0a 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 63 6c 61 75 73 65 2d auses))).......(-flatten.clause-
126e0 66 6e 73 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 63 6f 6e 64 fns))).....((eq.(car.form).'cond
12700 69 74 69 6f 6e 2d 63 61 73 65 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 74 65 63 74 65 ition-case).....(let*.((protecte
12720 64 2d 66 6f 72 6d 20 28 6e 74 68 20 32 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 d-form.(nth.2.form))............
12740 28 70 72 6f 74 65 63 74 65 64 2d 66 6f 72 6d 2d 66 6e 73 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 (protected-form-fns.(helpful--ca
12760 6c 6c 65 65 73 2d 31 20 70 72 6f 74 65 63 74 65 64 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 llees-1.protected-form))........
12780 20 20 20 20 28 68 61 6e 64 6c 65 72 73 20 28 2d 64 72 6f 70 20 33 20 66 6f 72 6d 29 29 0a 20 20 ....(handlers.(-drop.3.form))...
127a0 20 20 20 20 20 20 20 20 20 28 68 61 6e 64 6c 65 72 2d 62 6f 64 69 65 73 20 28 2d 6d 61 70 20 23 .........(handler-bodies.(-map.#
127c0 27 63 64 72 20 68 61 6e 64 6c 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 61 6e 64 'cdr.handlers))............(hand
127e0 6c 65 72 2d 66 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 ler-fns.............(--map......
12800 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 ........(-map.#'helpful--callees
12820 2d 31 20 69 74 29 20 68 61 6e 64 6c 65 72 2d 62 6f 64 69 65 73 29 29 29 0a 20 20 20 20 20 20 28 -1.it).handler-bodies))).......(
12840 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 2d 66 6f 72 6d 2d 66 6e 73 append........protected-form-fns
12860 0a 20 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 68 61 6e 64 6c 65 72 2d 66 6e 73 29 29 29 ........(-flatten.handler-fns)))
12880 29 0a 0a 20 20 20 3b 3b 20 43 61 6c 6c 69 6e 67 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 ).....;;.Calling.a.function.with
128a0 20 61 20 77 65 6c 6c 20 6b 6e 6f 77 6e 20 68 69 67 68 65 72 20 6f 72 64 65 72 20 66 75 6e 63 74 .a.well.known.higher.order.funct
128c0 69 6f 6e 2c 20 66 6f 72 0a 20 20 20 3b 3b 20 65 78 61 6d 70 6c 65 20 28 66 75 6e 63 61 6c 6c 20 ion,.for....;;.example.(funcall.
128e0 27 66 6f 6f 20 31 20 32 29 2e 0a 20 20 20 28 28 61 6e 64 0a 20 20 20 20 20 28 6d 65 6d 71 20 28 'foo.1.2).....((and......(memq.(
12900 63 61 72 20 66 6f 72 6d 29 20 27 28 66 75 6e 63 61 6c 6c 20 61 70 70 6c 79 20 63 61 6c 6c 2d 69 car.form).'(funcall.apply.call-i
12920 6e 74 65 72 61 63 74 69 76 65 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nteractively....................
12940 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 70 63 61 72 20 6d 61 70 63 20 6d 61 70 63 6f 6e 63 .............mapcar.mapc.mapconc
12960 61 74 20 2d 6d 61 70 29 29 0a 20 20 20 20 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 28 6e 74 at.-map))......(eq.(car-safe.(nt
12980 68 20 31 20 66 6f 72 6d 29 29 20 27 71 75 6f 74 65 29 29 0a 20 20 20 20 28 63 6f 6e 73 0a 20 20 h.1.form)).'quote)).....(cons...
129a0 20 20 20 28 63 61 64 72 20 28 6e 74 68 20 31 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 28 2d 66 6c ...(cadr.(nth.1.form))......(-fl
129c0 61 74 74 65 6e 0a 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c atten.......(-map.#'helpful--cal
129e0 6c 65 65 73 2d 31 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 lees-1.(cdr.form))))).....((eq.(
12a00 63 61 72 20 66 6f 72 6d 29 20 27 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 28 6c 65 74 20 28 28 car.form).'function).....(let.((
12a20 61 72 67 20 28 6e 74 68 20 31 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 79 arg.(nth.1.form))).......(if.(sy
12a40 6d 62 6f 6c 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 23 27 66 6f 6f 2c 20 77 mbolp.arg)...........;;.#'foo,.w
12a60 68 69 63 68 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 28 66 75 6e 63 74 69 6f 6e 20 66 6f hich.is.the.same.as.(function.fo
12a80 6f 29 2c 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 o),.is.a.function...........;;.r
12aa0 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 61 72 67 29 0a 20 eference............(list.arg)..
12ac0 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 28 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 .......;;.Handle.(function.(lamb
12ae0 64 61 20 2e 2e 2e 29 29 2e 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c da....))..........(helpful--call
12b00 65 65 73 2d 31 20 61 72 67 29 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 63 61 72 20 66 6f 72 6d ees-1.arg)))).....((eq.(car.form
12b20 29 20 27 6c 61 6d 62 64 61 29 0a 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 63 6f 6e 73 69 64 65 72 20 ).'lambda).....;;.Only.consider.
12b40 74 68 65 20 62 6f 64 79 2c 20 6e 6f 74 20 74 68 65 20 70 61 72 61 6d 20 6c 69 73 74 2e 0a 20 20 the.body,.not.the.param.list....
12b60 20 20 28 2d 66 6c 61 74 74 65 6e 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c ..(-flatten.(-map.#'helpful--cal
12b80 6c 65 65 73 2d 31 20 28 2d 64 72 6f 70 20 32 20 66 6f 72 6d 29 29 29 29 0a 0a 20 20 20 28 28 65 lees-1.(-drop.2.form)))).....((e
12ba0 71 20 28 63 61 72 20 66 6f 72 6d 29 20 27 63 6c 6f 73 75 72 65 29 0a 20 20 20 20 3b 3b 20 53 61 q.(car.form).'closure).....;;.Sa
12bc0 6d 65 20 61 73 20 6c 61 6d 62 64 61 2c 20 62 75 74 20 68 61 73 20 61 6e 20 61 64 64 69 74 69 6f me.as.lambda,.but.has.an.additio
12be0 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 6f 66 20 74 68 65 0a 20 20 20 20 3b 3b 20 63 6c 6f 73 65 nal.argument.of.the.....;;.close
12c00 64 2d 6f 76 65 72 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 d-over.variables......(-flatten.
12c20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 28 2d 64 72 6f (-map.#'helpful--callees-1.(-dro
12c40 70 20 33 20 66 6f 72 6d 29 29 29 29 0a 0a 20 20 20 28 28 6d 65 6d 71 20 28 63 61 72 20 66 6f 72 p.3.form)))).....((memq.(car.for
12c60 6d 29 20 27 28 6c 65 74 20 6c 65 74 2a 29 29 0a 20 20 20 20 3b 3b 20 45 78 74 72 61 63 74 20 66 m).'(let.let*)).....;;.Extract.f
12c80 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 75 73 65 64 20 74 6f 20 73 65 74 20 74 68 65 20 6c 65 unction.calls.used.to.set.the.le
12ca0 74 2d 62 6f 75 6e 64 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 76 t-bound.variables......(let*.((v
12cc0 61 72 2d 76 61 6c 73 20 28 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 20 66 6f 72 6d 29 29 0a 20 20 20 ar-vals.(-second-item.form))....
12ce0 20 20 20 20 20 20 20 20 28 76 61 72 2d 76 61 6c 2d 63 61 6c 6c 65 65 73 0a 20 20 20 20 20 20 20 ........(var-val-callees........
12d00 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f .....(--map..............(if.(co
12d20 6e 73 70 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 23 nsp.it)..................(-map.#
12d40 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 20 69 74 29 0a 20 20 20 20 20 20 20 20 'helpful--callees-1.it).........
12d60 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 2d 76 61 6c .......nil)..............var-val
12d80 73 29 29 29 0a 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 28 2d 66 6c 61 74 s))).......(append........(-flat
12da0 74 65 6e 20 76 61 72 2d 76 61 6c 2d 63 61 6c 6c 65 65 73 29 0a 20 20 20 20 20 20 20 3b 3b 20 46 ten.var-val-callees)........;;.F
12dc0 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 69 6e 20 74 68 65 20 6c 65 74 20 62 6f 64 79 2e 0a 20 unction.calls.in.the.let.body...
12de0 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 65 65 73 2d 31 ......(-map.#'helpful--callees-1
12e00 20 28 2d 64 72 6f 70 20 32 20 66 6f 72 6d 29 29 29 29 29 0a 0a 20 20 20 28 28 65 71 20 28 63 61 .(-drop.2.form))))).....((eq.(ca
12e20 72 20 66 6f 72 6d 29 20 27 71 75 6f 74 65 29 0a 20 20 20 20 6e 69 6c 29 0a 20 20 20 28 74 0a 20 r.form).'quote).....nil)....(t..
12e40 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 28 63 61 72 20 66 6f 72 6d 29 0a 20 20 20 20 20 28 2d ...(cons......(car.form)......(-
12e60 66 6c 61 74 74 65 6e 0a 20 20 20 20 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 63 flatten.......(-map.#'helpful--c
12e80 61 6c 6c 65 65 73 2d 31 20 28 63 64 72 20 66 6f 72 6d 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 allees-1.(cdr.form)))))))..(defu
12ea0 6e 20 68 65 6c 70 66 75 6c 2d 2d 65 6e 73 75 72 65 2d 6c 6f 61 64 65 64 20 28 29 0a 20 20 22 45 n.helpful--ensure-loaded.()..."E
12ec0 6e 73 75 72 65 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 nsure.the.symbol.associated.with
12ee0 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 68 61 73 20 62 65 65 6e 20 6c 6f 61 .the.current.buffer.has.been.loa
12f00 64 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c ded."...(when.(and.helpful--call
12f20 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c able-p..............(symbolp.hel
12f40 70 66 75 6c 2d 2d 73 79 6d 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66 6e 2d 6f 62 6a 20 28 73 pful--sym)).....(let.((fn-obj.(s
12f60 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 ymbol-function.helpful--sym)))..
12f80 20 20 20 20 20 28 77 68 65 6e 20 28 61 75 74 6f 6c 6f 61 64 70 20 66 6e 2d 6f 62 6a 29 0a 20 20 .....(when.(autoloadp.fn-obj)...
12fa0 20 20 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 2d 64 6f 2d 6c 6f 61 64 20 66 6e 2d 6f 62 6a 29 29 ......(autoload-do-load.fn-obj))
12fc0 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d 70 20 28 73 79 6d )))..(defun.helpful--hook-p.(sym
12fe0 62 6f 6c 20 76 61 6c 75 65 29 0a 20 20 22 44 6f 65 73 20 53 59 4d 42 4f 4c 20 6c 6f 6f 6b 20 6c bol.value)..."Does.SYMBOL.look.l
13000 69 6b 65 20 61 20 68 6f 6f 6b 3f 22 0a 20 20 28 61 6e 64 0a 20 20 20 28 6f 72 0a 20 20 20 20 28 ike.a.hook?"...(and....(or.....(
13020 73 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 2d 68 6f 6f 6b 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 s-ends-with-p."-hook".(symbol-na
13040 6d 65 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 3b 3b 20 45 2e 67 2e 20 60 61 66 74 65 72 2d 63 me.symbol)).....;;.E.g..`after-c
13060 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 27 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 75 hange-functions',.which.can.be.u
13080 73 65 64 20 77 69 74 68 0a 20 20 20 20 3b 3b 20 60 61 64 64 2d 68 6f 6f 6b 27 2e 0a 20 20 20 20 sed.with.....;;.`add-hook'......
130a0 28 73 2d 65 6e 64 73 2d 77 69 74 68 2d 70 20 22 2d 66 75 6e 63 74 69 6f 6e 73 22 20 28 73 79 6d (s-ends-with-p."-functions".(sym
130c0 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 29 29 0a 20 20 20 28 63 6f 6e 73 70 20 76 61 6c bol-name.symbol)))....(consp.val
130e0 75 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 76 61 ue)))..(defun.helpful--format-va
13100 6c 75 65 20 28 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 22 46 6f 72 6d 61 74 20 56 41 4c 55 45 20 lue.(sym.value)..."Format.VALUE.
13120 61 73 20 61 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 68 65 6c 70 66 75 as.a.string."...(cond....(helpfu
13140 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 l--view-literal.....(helpful--sy
13160 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d ntax-highlight.(helpful--pretty-
13180 70 72 69 6e 74 20 76 61 6c 75 65 29 29 29 0a 20 20 20 3b 3b 20 41 6c 6c 6f 77 20 73 74 72 69 6e print.value)))....;;.Allow.strin
131a0 67 73 20 74 6f 20 62 65 20 76 69 65 77 65 64 20 77 69 74 68 20 70 72 6f 70 65 72 74 69 65 73 20 gs.to.be.viewed.with.properties.
131c0 72 65 6e 64 65 72 65 64 20 69 6e 0a 20 20 20 3b 3b 20 45 6d 61 63 73 2c 20 72 61 74 68 65 72 20 rendered.in....;;.Emacs,.rather.
131e0 74 68 61 6e 20 61 73 20 61 20 6c 69 74 65 72 61 6c 2e 0a 20 20 20 28 28 73 74 72 69 6e 67 70 20 than.as.a.literal.....((stringp.
13200 76 61 6c 75 65 29 0a 20 20 20 20 76 61 6c 75 65 29 0a 20 20 20 3b 3b 20 41 6c 6c 6f 77 20 6b 65 value).....value)....;;.Allow.ke
13220 79 6d 61 70 73 20 74 6f 20 62 65 20 76 69 65 77 65 64 20 77 69 74 68 20 6b 65 79 62 69 6e 64 69 ymaps.to.be.viewed.with.keybindi
13240 6e 67 73 20 73 68 6f 77 6e 20 61 6e 64 0a 20 20 20 3b 3b 20 6c 69 6e 6b 73 20 74 6f 20 74 68 65 ngs.shown.and....;;.links.to.the
13260 20 63 6f 6d 6d 61 6e 64 73 20 62 6f 75 6e 64 2e 0a 20 20 20 28 28 6b 65 79 6d 61 70 70 20 76 61 .commands.bound.....((keymapp.va
13280 6c 75 65 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6b 65 79 6d 61 70 lue).....(helpful--format-keymap
132a0 20 76 61 6c 75 65 29 29 0a 20 20 20 28 28 68 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d 70 20 73 79 .value))....((helpful--hook-p.sy
132c0 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 68 6f m.value).....(helpful--format-ho
132e0 6f 6b 20 76 61 6c 75 65 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 70 ok.value))....(t.....(helpful--p
13300 72 65 74 74 79 2d 70 72 69 6e 74 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 retty-print.value))))..(defun.he
13320 6c 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 6c 75 65 20 28 73 79 6d 29 0a 20 20 22 52 lpful--original-value.(sym)..."R
13340 65 74 75 72 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 61 6c 75 65 20 66 6f 72 20 53 59 4d eturn.the.original.value.for.SYM
13360 2c 20 69 66 20 61 6e 79 2e 0a 0a 49 66 20 53 59 4d 20 68 61 73 20 61 6e 20 6f 72 69 67 69 6e 61 ,.if.any...If.SYM.has.an.origina
13380 6c 20 76 61 6c 75 65 2c 20 72 65 74 75 72 6e 20 69 74 20 69 6e 20 61 20 6c 69 73 74 2e 20 52 65 l.value,.return.it.in.a.list..Re
133a0 74 75 72 6e 20 6e 69 6c 0a 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6f turn.nil.otherwise."...(let*.((o
133c0 72 69 67 2d 76 61 6c 2d 65 78 70 72 20 28 67 65 74 20 73 79 6d 20 27 73 74 61 6e 64 61 72 64 2d rig-val-expr.(get.sym.'standard-
133e0 76 61 6c 75 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 63 6f 6e 73 70 20 6f 72 69 67 2d 76 value))).....(when.(consp.orig-v
13400 61 6c 2d 65 78 70 72 29 0a 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 al-expr).......(ignore-errors...
13420 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 28 65 76 61 6c 20 28 63 61 72 20 ......(list..........(eval.(car.
13440 6f 72 69 67 2d 76 61 6c 2d 65 78 70 72 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c orig-val-expr)))))))..(defun.hel
13460 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 6c 75 65 2d 64 69 66 66 65 72 73 2d 70 20 28 pful--original-value-differs-p.(
13480 73 79 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 53 59 4d 20 68 61 73 20 61 6e 20 6f sym)..."Return.t.if.SYM.has.an.o
134a0 72 69 67 69 6e 61 6c 20 76 61 6c 75 65 2c 20 61 6e 64 20 69 74 73 20 63 75 72 72 65 6e 74 0a 76 riginal.value,.and.its.current.v
134c0 61 6c 75 65 20 69 73 20 64 69 66 66 65 72 65 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 72 69 alue.is.different."...(let.((ori
134e0 67 2d 76 61 6c 2d 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 g-val-list.(helpful--original-va
13500 6c 75 65 20 73 79 6d 29 29 29 0a 20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 6f 72 69 67 2d lue.sym))).....(and.(consp.orig-
13520 76 61 6c 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 61 72 val-list)..........(not.(eq.(car
13540 20 6f 72 69 67 2d 76 61 6c 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .orig-val-list).................
13560 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 29 29 29 0a 0a 28 64 65 66 75 ..(symbol-value.sym))))))..(defu
13580 6e 20 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 n.helpful-update.()..."Update.th
135a0 65 20 63 75 72 72 65 6e 74 20 2a 48 65 6c 70 66 75 6c 2a 20 62 75 66 66 65 72 20 74 6f 20 74 68 e.current.*Helpful*.buffer.to.th
135c0 65 20 6c 61 74 65 73 74 0a 73 74 61 74 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 e.latest.state.of.the.current.sy
135e0 6d 62 6f 6c 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6c 2d 61 73 73 mbol."...(interactive)...(cl-ass
13600 65 72 74 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 ert.(not.(null.helpful--sym)))..
13620 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d .(unless.(buffer-live-p.helpful-
13640 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 73 65 74 71 20 68 65 -associated-buffer).....(setq.he
13660 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 0a 20 lpful--associated-buffer.nil))..
13680 20 28 68 65 6c 70 66 75 6c 2d 2d 65 6e 73 75 72 65 2d 6c 6f 61 64 65 64 29 0a 20 20 28 2d 6c 65 .(helpful--ensure-loaded)...(-le
136a0 74 2a 20 28 28 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 61 74 20 74 t*.((val............;;.Look.at.t
136c0 68 65 20 76 61 6c 75 65 20 62 65 66 6f 72 65 20 73 65 74 74 69 6e 67 20 60 69 6e 68 69 62 69 74 he.value.before.setting.`inhibit
136e0 2d 72 65 61 64 2d 6f 6e 6c 79 27 2c 20 73 6f 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 73 -read-only',.so............;;.us
13700 65 72 73 20 63 61 6e 20 73 65 65 20 74 68 65 20 63 6f 72 72 65 63 74 20 76 61 6c 75 65 20 6f 66 ers.can.see.the.correct.value.of
13720 20 74 68 61 74 20 76 61 72 69 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 .that.variable.............(unle
13740 73 73 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 ss.helpful--callable-p..........
13760 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d 76 61 6c 75 65 20 68 65 6c 70 66 75 6c 2d ....(helpful--sym-value.helpful-
13780 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 -sym.helpful--associated-buffer)
137a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 ))...........(inhibit-read-only.
137c0 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e t)...........(start-line.(line-n
137e0 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d umber-at-pos))...........(start-
13800 63 6f 6c 75 6d 6e 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 column.(current-column))........
13820 20 20 20 28 70 72 69 6d 69 74 69 76 65 2d 70 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 69 6d 69 74 ...(primitive-p.(helpful--primit
13840 69 76 65 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c ive-p.helpful--sym.helpful--call
13860 61 62 6c 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 able-p))...........(canonical-sy
13880 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 62 6f 6c 20 68 65 6c m.(helpful--canonical-symbol.hel
138a0 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 29 0a pful--sym.helpful--callable-p)).
138c0 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 2d 66 6f 72 2d 73 72 63 20 28 6f 72 20 28 6e 6f 74 ..........(look-for-src.(or.(not
138e0 20 70 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .primitive-p)...................
13900 20 20 20 20 20 20 20 20 20 20 66 69 6e 64 2d 66 75 6e 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 ..........find-function-C-source
13920 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 62 75 66 20 70 6f 73 -directory))...........((buf.pos
13940 20 6f 70 65 6e 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6c 6f 6f 6b 2d 66 6f 72 .opened)............(if.look-for
13960 2d 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 64 65 -src................(helpful--de
13980 66 69 6e 69 74 69 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 finition.helpful--sym.helpful--c
139a0 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 6e 69 6c 20 6e 69 allable-p)..............'(nil.ni
139c0 6c 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6f 75 72 63 65 20 28 77 68 65 6e l.nil)))...........(source.(when
139e0 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .look-for-src...................
13a00 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 6f 75 72 63 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 ..(helpful--source.helpful--sym.
13a20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 20 62 75 66 20 70 6f 73 29 29 29 0a 20 helpful--callable-p.buf.pos)))..
13a40 20 20 20 20 20 20 20 20 20 28 73 6f 75 72 63 65 2d 70 61 74 68 20 28 77 68 65 6e 20 62 75 66 0a .........(source-path.(when.buf.
13a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 .........................(buffer
13a80 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 66 -file-name.buf)))...........(ref
13aa0 65 72 65 6e 63 65 73 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 63 75 6c 61 74 65 2d 72 65 66 65 erences.(helpful--calculate-refe
13ac0 72 65 6e 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 rences........................he
13ae0 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 lpful--sym.helpful--callable-p..
13b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 70 61 74 ......................source-pat
13b20 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 61 73 65 73 20 28 68 65 6c 70 66 75 6c 2d h))...........(aliases.(helpful-
13b40 2d 61 6c 69 61 73 65 73 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 -aliases.helpful--sym.helpful--c
13b60 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 0a 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 allable-p)))......(erase-buffer)
13b80 0a 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 73 75 6d 6d 61 72 79 20 ......(insert.(helpful--summary.
13ba0 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 helpful--sym.helpful--callable-p
13bc0 20 62 75 66 20 70 6f 73 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d .buf.pos))......(when.(helpful--
13be0 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 obsolete-info.helpful--sym.helpf
13c00 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 ul--callable-p).......(insert...
13c20 20 20 20 20 20 22 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 ....."\n\n"........(helpful--for
13c40 6d 61 74 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 mat-obsolete-info.helpful--sym.h
13c60 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e elpful--callable-p)))......(when
13c80 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.......
13ca0 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 62 64 2d 6d 61 63 72 .........(not.(helpful--kbd-macr
13cc0 6f 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 o-p.helpful--sym))).......(helpf
13ce0 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 20 20 20 20 20 20 ul--insert-section-break).......
13d00 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 (insert........(helpful--heading
13d20 20 22 53 69 67 6e 61 74 75 72 65 22 29 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 ."Signature")........(helpful--s
13d40 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 20 28 68 65 6c 70 66 75 6c 2d 2d 73 69 67 6e 61 74 yntax-highlight.(helpful--signat
13d60 75 72 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 ure.helpful--sym))))......(when.
13d80 28 6e 6f 74 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 20 20 20 (not.helpful--callable-p).......
13da0 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a (helpful--insert-section-break).
13dc0 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a ......(let*.((sym.helpful--sym).
13de0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 75 6c 74 69 70 6c 65 2d 76 69 65 77 73 2d 70 0a 20 .............(multiple-views-p..
13e00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 70 20 76 61 6c 29 0a 20 .............(or.(stringp.val)..
13e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 6d 61 70 70 20 76 61 6c 29 0a 20 .................(keymapp.val)..
13e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 6f 6f 6b 2d .................(helpful--hook-
13e60 70 20 73 79 6d 20 76 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 68 65 6c 70 p.sym.val)))).........(when.help
13e80 66 75 6c 2d 2d 66 69 72 73 74 2d 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 ful--first-display...........(if
13ea0 20 28 73 74 72 69 6e 67 70 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .(stringp.val)...............;;.
13ec0 46 6f 72 20 73 74 72 69 6e 67 73 2c 20 69 74 27 73 20 6d 6f 72 65 20 69 6e 74 75 69 74 69 76 65 For.strings,.it's.more.intuitive
13ee0 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 6d 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 .to.display.them.as.............
13f00 20 20 3b 3b 20 6c 69 74 65 72 61 6c 73 2c 20 73 6f 20 22 31 22 20 61 6e 64 20 31 20 61 72 65 20 ..;;.literals,.so."1".and.1.are.
13f20 64 69 73 74 69 6e 63 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 distinct................(setq.he
13f40 6c 70 66 75 6c 2d 2d 76 69 65 77 2d 6c 69 74 65 72 61 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 lpful--view-literal.t)..........
13f60 20 20 20 3b 3b 20 46 6f 72 20 65 76 65 72 79 74 68 69 6e 67 20 65 6c 73 65 2c 20 70 72 65 66 65 ...;;.For.everything.else,.prefe
13f80 72 20 74 68 65 20 70 72 65 74 74 79 20 76 69 65 77 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 0a r.the.pretty.view.if.available..
13fa0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 76 69 65 77 2d ............(setq.helpful--view-
13fc0 6c 69 74 65 72 61 6c 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 literal.nil))).........(insert..
13fe0 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 0a 20 20 20 20 20 20 ........(helpful--heading.......
14000 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 66 66 65 72 2d 6c ....(cond............;;.Buffer-l
14020 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 61 6e 64 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 ocal.variable.and.we're.looking.
14040 61 74 20 74 68 65 20 76 61 6c 75 65 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 20 at.the.value.in............;;.a.
14060 73 70 65 63 69 66 69 63 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e specific.buffer.............((an
14080 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 d..............helpful--associat
140a0 65 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 76 61 ed-buffer..............(local-va
140c0 72 69 61 62 6c 65 2d 70 20 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 riable-p.sym.helpful--associated
140e0 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 56 -buffer)).............(format."V
14100 61 6c 75 65 20 69 6e 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alue.in.%s".....................
14120 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (helpful--button................
14140 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 23 3c 62 75 66 66 65 72 20 25 73 3e 22 20 28 62 75 ......(format."#<buffer.%s>".(bu
14160 66 66 65 72 2d 6e 61 6d 65 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 ffer-name.helpful--associated-bu
14180 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c ffer))......................'hel
141a0 70 66 75 6c 2d 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pful-buffer-button..............
141c0 20 20 20 20 20 20 20 20 27 62 75 66 66 65 72 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 ........'buffer.helpful--associa
141e0 74 65 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ted-buffer......................
14200 27 70 6f 73 69 74 69 6f 6e 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 'position.pos)))............;;.B
14220 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 62 75 74 20 64 65 66 61 75 6c 74 uffer-local.variable.but.default
14240 2f 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 63 61 /global.value.............((loca
14260 6c 2d 76 61 72 69 61 62 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 l-variable-if-set-p.sym)........
14280 20 20 20 20 20 22 47 6c 6f 62 61 6c 20 56 61 6c 75 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ....."Global.Value")............
142a0 3b 3b 20 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 6e 6f 74 20 62 75 66 66 65 72 2d 6c ;;.This.variable.is.not.buffer-l
142c0 6f 63 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 20 22 56 61 6c 75 65 22 29 29 29 0a 20 ocal.............(t."Value")))..
142e0 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 73 ........(helpful--format-value.s
14300 79 6d 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 ym.val).........."\n\n")........
14320 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 72 69 67 69 6e 61 6c 2d 76 61 6c 75 65 2d .(when.(helpful--original-value-
14340 64 69 66 66 65 72 73 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 differs-p.sym)...........(insert
14360 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 4f ............(helpful--heading."O
14380 72 69 67 69 6e 61 6c 20 56 61 6c 75 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 riginal.Value")............(help
143a0 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 79 ful--format-value.............sy
143c0 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 72 69 m.............(car.(helpful--ori
143e0 67 69 6e 61 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 5c ginal-value.sym)))............"\
14400 6e 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6d 75 6c 74 69 70 6c 65 2d 76 69 n\n")).........(when.multiple-vi
14420 65 77 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c ews-p...........(insert.(helpful
14440 2d 2d 6d 61 6b 65 2d 74 6f 67 67 6c 65 2d 6c 69 74 65 72 61 6c 2d 62 75 74 74 6f 6e 29 20 22 20 --make-toggle-literal-button).".
14460 22 29 29 0a 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 62 "))..........(when.(local-variab
14480 6c 65 2d 69 66 2d 73 65 74 2d 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 le-if-set-p.sym)...........(inse
144a0 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 rt............(helpful--button..
144c0 20 20 20 20 20 20 20 20 20 20 20 22 42 75 66 66 65 72 20 76 61 6c 75 65 73 22 0a 20 20 20 20 20 ..........."Buffer.values"......
144e0 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 .......'helpful-associated-buffe
14500 72 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f 6c 20 73 79 6d r-button.............'symbol.sym
14520 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 6f 6d 70 74 2d 70 20 74 29 0a 20 20 20 20 20 20 .............'prompt-p.t).......
14540 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 ....."."............(helpful--bu
14560 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 47 6c 6f 62 61 6c 20 76 61 6c 75 65 22 0a tton............."Global.value".
14580 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 61 73 73 6f 63 69 61 74 65 64 2d ............'helpful-associated-
145a0 62 75 66 66 65 72 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6d 62 6f buffer-button.............'symbo
145c0 6c 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 6f 6d 70 74 2d 70 20 6e 69 6c 29 l.sym.............'prompt-p.nil)
145e0 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 ............".")).........(when.
14600 28 6d 65 6d 71 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 2d 76 61 6c 75 65 20 68 65 6c 70 66 75 (memq.(helpful--sym-value.helpfu
14620 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 l--sym.helpful--associated-buffe
14640 72 29 20 27 28 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 r).'(nil.t))...........(insert.(
14660 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 6f 67 67 6c 65 2d 62 75 74 74 6f 6e 20 68 65 6c 70 helpful--make-toggle-button.help
14680 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 ful--sym.helpful--associated-buf
146a0 66 65 72 29 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 fer).".")).........(insert.(help
146c0 66 75 6c 2d 2d 6d 61 6b 65 2d 73 65 74 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 ful--make-set-button.helpful--sy
146e0 6d 20 68 65 6c 70 66 75 6c 2d 2d 61 73 73 6f 63 69 61 74 65 64 2d 62 75 66 66 65 72 29 29 0a 20 m.helpful--associated-buffer))..
14700 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 75 73 74 6f 6d 2d 76 61 72 69 61 62 6c 65 2d 70 20 .......(when.(custom-variable-p.
14720 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 helpful--sym)...........(insert.
14740 22 20 22 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 75 73 74 6f 6d 69 7a 65 2d 62 75 74 ".".(helpful--make-customize-but
14760 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 29 0a 0a 20 20 20 20 28 6c 65 74 20 ton.helpful--sym)))))......(let.
14780 28 28 64 6f 63 73 74 72 69 6e 67 20 28 68 65 6c 70 66 75 6c 2d 2d 64 6f 63 73 74 72 69 6e 67 20 ((docstring.(helpful--docstring.
147a0 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 helpful--sym.helpful--callable-p
147c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 20 28 75 6e 6c 65 ))...........(version-info.(unle
147e0 73 73 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 ss.helpful--callable-p..........
14800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 76 65 72 73 69 .................(helpful--versi
14820 6f 6e 2d 69 6e 66 6f 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 28 on-info.helpful--sym)))).......(
14840 77 68 65 6e 20 28 6f 72 20 64 6f 63 73 74 72 69 6e 67 20 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 29 when.(or.docstring.version-info)
14860 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f .........(helpful--insert-sectio
14880 6e 2d 62 72 65 61 6b 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 n-break).........(insert........
148a0 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 44 6f 63 75 6d 65 6e 74 61 74 69 ..(helpful--heading."Documentati
148c0 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 6f 63 73 74 72 69 6e 67 0a 20 20 on")).........(when.docstring...
148e0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 ........(insert.(helpful--format
14900 2d 64 6f 63 73 74 72 69 6e 67 20 64 6f 63 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 -docstring.docstring))).........
14920 28 77 68 65 6e 20 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e (when.version-info...........(in
14940 73 65 72 74 20 22 5c 6e 5c 6e 22 20 28 73 2d 77 6f 72 64 2d 77 72 61 70 20 37 30 20 76 65 72 73 sert."\n\n".(s-word-wrap.70.vers
14960 69 6f 6e 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 ion-info))).........(when.(and.(
14980 73 79 6d 62 6f 6c 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 symbolp.helpful--sym)...........
149a0 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 .........helpful--callable-p....
149c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 61 73 2d 73 68 ................(helpful--has-sh
149e0 6f 72 74 64 6f 63 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 ortdoc-p.helpful--sym)).........
14a00 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 ..(insert."\n\n")...........(ins
14a20 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 73 68 6f 72 74 64 6f 63 2d 73 65 6e 74 ert.(helpful--make-shortdoc-sent
14a40 65 6e 63 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 ence.helpful--sym))).........(wh
14a60 65 6e 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 20 28 en.(and.(symbolp.helpful--sym).(
14a80 68 65 6c 70 66 75 6c 2d 2d 69 6e 2d 6d 61 6e 75 61 6c 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 helpful--in-manual-p.helpful--sy
14aa0 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 5c 6e 22 29 0a 20 20 m))...........(insert."\n\n")...
14ac0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 6d ........(insert.(helpful--make-m
14ae0 61 6e 75 61 6c 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 29 29 0a 0a anual-button.helpful--sym)))))..
14b00 20 20 20 20 3b 3b 20 53 68 6f 77 20 6b 65 79 62 69 6e 64 69 6e 67 73 2e 0a 20 20 20 20 3b 3b 20 ....;;.Show.keybindings......;;.
14b20 54 4f 44 4f 3a 20 61 6c 6c 6f 77 20 75 73 65 72 73 20 74 6f 20 63 6f 6e 76 65 6e 69 65 6e 74 6c TODO:.allow.users.to.convenientl
14b40 79 20 61 64 64 20 61 6e 64 20 72 65 6d 6f 76 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 2e 0a 20 20 y.add.and.remove.keybindings....
14b60 20 20 28 77 68 65 6e 20 28 63 6f 6d 6d 61 6e 64 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a ..(when.(commandp.helpful--sym).
14b80 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 ......(helpful--insert-section-b
14ba0 72 65 61 6b 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 reak).......(insert........(help
14bc0 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 4b 65 79 20 42 69 6e 64 69 6e 67 73 22 29 0a 20 20 20 ful--heading."Key.Bindings")....
14be0 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6b 65 79 73 20 68 65 6c 70 66 75 ....(helpful--format-keys.helpfu
14c00 6c 2d 2d 73 79 6d 20 61 6c 69 61 73 65 73 29 29 29 0a 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d l--sym.aliases)))......(helpful-
14c20 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 0a 20 20 20 20 28 69 6e 73 -insert-section-break)......(ins
14c40 65 72 74 0a 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 52 65 66 65 ert......(helpful--heading."Refe
14c60 72 65 6e 63 65 73 22 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 73 72 63 2d 62 75 74 74 6f 6e 0a rences")......(let.((src-button.
14c80 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 ............(when.source-path...
14ca0 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 61 74 65 2d 62 ............(helpful--navigate-b
14cc0 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d utton................(file-name-
14ce0 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 nondirectory.source-path).......
14d00 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 .........source-path............
14d20 20 20 20 20 28 6f 72 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 ....(or.pos....................0
14d40 29 29 29 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 )))))........(cond.........((and
14d60 20 73 6f 75 72 63 65 2d 70 61 74 68 20 72 65 66 65 72 65 6e 63 65 73 29 0a 20 20 20 20 20 20 20 .source-path.references)........
14d80 20 20 28 66 6f 72 6d 61 74 20 22 52 65 66 65 72 65 6e 63 65 73 20 69 6e 20 25 73 3a 5c 6e 25 73 ..(format."References.in.%s:\n%s
14da0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 72 63 2d 62 75 74 74 6f 6e 0a 20 20 "..................src-button...
14dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d ...............(helpful--format-
14de0 70 6f 73 69 74 69 6f 6e 2d 68 65 61 64 73 20 72 65 66 65 72 65 6e 63 65 73 20 73 6f 75 72 63 65 position-heads.references.source
14e00 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 73 6f 75 72 63 65 2d 70 61 -path))).........((and.source-pa
14e20 74 68 20 70 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 th.primitive-p)..........(format
14e40 0a 20 20 20 20 20 20 20 20 20 20 22 46 69 6e 64 69 6e 67 20 72 65 66 65 72 65 6e 63 65 73 20 69 ..........."Finding.references.i
14e60 6e 20 61 20 2e 25 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 2e 22 0a n.a..%s.file.is.not.supported.".
14e80 20 20 20 20 20 20 20 20 20 20 28 66 2d 65 78 74 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 29 0a ..........(f-ext.source-path))).
14ea0 20 20 20 20 20 20 20 20 28 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 28 66 ........(source-path..........(f
14ec0 6f 72 6d 61 74 20 22 25 73 20 69 73 20 75 6e 75 73 65 64 20 69 6e 20 25 73 2e 22 0a 20 20 20 20 ormat."%s.is.unused.in.%s.".....
14ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 0a 20 20 20 20 20 20 .............helpful--sym.......
14f00 20 20 20 20 20 20 20 20 20 20 20 73 72 63 2d 62 75 74 74 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 ...........src-button)).........
14f20 28 28 61 6e 64 20 70 72 69 6d 69 74 69 76 65 2d 70 20 28 6e 75 6c 6c 20 66 69 6e 64 2d 66 75 6e ((and.primitive-p.(null.find-fun
14f40 63 74 69 6f 6e 2d 43 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 ction-C-source-directory))......
14f60 20 20 20 20 22 43 20 63 6f 64 65 20 69 73 20 6e 6f 74 20 79 65 74 20 6c 6f 61 64 65 64 2e 22 29 ...."C.code.is.not.yet.loaded.")
14f80 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 .........(t.........."Could.not.
14fa0 66 69 6e 64 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 22 29 29 29 0a 20 20 20 20 20 22 5c 6e 5c 6e find.source.file.")))......"\n\n
14fc0 22 0a 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 72 65 66 65 72 65 6e 63 65 73 "......(helpful--make-references
14fe0 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 -button.helpful--sym.helpful--ca
15000 6c 6c 61 62 6c 65 2d 70 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 llable-p))......(when.(and......
15020 20 20 20 20 20 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 ......helpful--callable-p.......
15040 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 .....(symbolp.helpful--sym).....
15060 20 20 20 20 20 20 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 70 72 .......source............(not.pr
15080 69 6d 69 74 69 76 65 2d 70 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 imitive-p)).......(insert.......
150a0 20 22 20 22 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 63 61 6c 6c 65 ."."........(helpful--make-calle
150c0 65 73 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 73 6f 75 72 63 65 29 29 29 es-button.helpful--sym.source)))
150e0 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 61 64 76 69 73 65 64 2d 70 20 ......(when.(helpful--advised-p.
15100 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e helpful--sym).......(helpful--in
15120 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
15140 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 41 64 76 69 t........(helpful--heading."Advi
15160 63 65 22 29 0a 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 54 68 69 73 20 25 73 20 69 73 20 ce")........(format."This.%s.is.
15180 61 64 76 69 73 65 64 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 61 advised."................(if.(ma
151a0 63 72 6f 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 20 22 6d 61 63 72 6f 22 20 22 66 75 6e 63 crop.helpful--sym)."macro"."func
151c0 74 69 6f 6e 22 29 29 29 29 0a 0a 20 20 20 20 28 6c 65 74 20 28 28 63 61 6e 2d 65 64 65 62 75 67 tion"))))......(let.((can-edebug
151e0 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6e 2d 65 64 65 62 75 67 ............(helpful--can-edebug
15200 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c -p.helpful--sym.helpful--callabl
15220 65 2d 70 20 62 75 66 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 2d 74 72 61 e-p.buf.pos))...........(can-tra
15240 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 68 65 6c 70 ce............(and.(symbolp.help
15260 66 75 6c 2d 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 66 75 ful--sym).................helpfu
15280 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b l--callable-p.................;;
152a0 20 54 72 61 63 69 6e 67 20 75 73 65 73 20 61 64 76 69 63 65 2c 20 61 6e 64 20 79 6f 75 20 63 61 .Tracing.uses.advice,.and.you.ca
152c0 6e 27 74 20 61 70 70 6c 79 20 61 64 76 69 63 65 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 n't.apply.advice.to.............
152e0 20 20 20 20 3b 3b 20 70 72 69 6d 69 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 ....;;.primitive.functions.that.
15300 61 72 65 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 73 70 65 63 69 61 6c 0a 20 20 20 20 20 20 are.replaced.with.special.......
15320 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 70 63 6f 64 65 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c ..........;;.opcodes..For.exampl
15340 65 2c 20 60 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 e,.`narrow-to-region'...........
15360 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 20 28 73 79 6d 62 6f 6c 2d 70 .......(not.(plist-get.(symbol-p
15380 6c 69 73 74 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 20 27 62 79 74 65 2d 6f 70 63 6f 64 65 29 list.helpful--sym).'byte-opcode)
153a0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 )))...........(can-disassemble..
153c0 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 ..........(and.helpful--callable
153e0 2d 70 20 28 6e 6f 74 20 70 72 69 6d 69 74 69 76 65 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 -p.(not.primitive-p)))..........
15400 20 28 63 61 6e 2d 66 6f 72 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f .(can-forget............(and.(no
15420 74 20 28 73 70 65 63 69 61 6c 2d 66 6f 72 6d 2d 70 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 t.(special-form-p.helpful--sym))
15440 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 70 72 69 6d 69 74 69 76 65 2d .................(not.primitive-
15460 70 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 63 61 6e 2d 65 64 65 62 75 67 p)))).......(when.(or.can-edebug
15480 20 63 61 6e 2d 74 72 61 63 65 20 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 20 63 61 6e 2d 66 .can-trace.can-disassemble.can-f
154a0 6f 72 67 65 74 29 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d orget).........(helpful--insert-
154c0 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 section-break).........(insert.(
154e0 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 44 65 62 75 67 67 69 6e 67 22 29 29 29 0a helpful--heading."Debugging"))).
15500 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 65 64 65 62 75 67 0a 20 20 20 20 20 20 20 20 28 ......(when.can-edebug.........(
15520 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 65 insert..........(helpful--make-e
15540 64 65 62 75 67 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 29 0a 20 20 20 debug-button.helpful--sym)))....
15560 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 74 72 61 63 65 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e ...(when.can-trace.........(when
15580 20 63 61 6e 2d 65 64 65 62 75 67 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 .can-edebug...........(insert.".
155a0 22 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 28 68 65 ")).........(insert..........(he
155c0 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 74 72 61 63 69 6e 67 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 lpful--make-tracing-button.helpf
155e0 75 6c 2d 2d 73 79 6d 29 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 ul--sym)))........(when.(and....
15600 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 63 61 6e 2d 65 64 65 62 75 67 20 63 61 6e 2d 74 72 61 ..........(or.can-edebug.can-tra
15620 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 63 61 6e 2d 64 69 73 61 73 73 65 ce)..............(or.can-disasse
15640 6d 62 6c 65 20 63 61 6e 2d 66 6f 72 67 65 74 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 mble.can-forget)).........(inser
15660 74 20 22 5c 6e 22 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 64 69 73 61 73 73 t."\n"))........(when.can-disass
15680 65 6d 62 6c 65 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d emble.........(insert.(helpful--
156a0 6d 61 6b 65 2d 64 69 73 61 73 73 65 6d 62 6c 65 2d 62 75 74 74 6f 6e 20 68 65 6c 70 66 75 6c 2d make-disassemble-button.helpful-
156c0 2d 73 79 6d 29 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 66 6f 72 67 65 74 0a -sym)))........(when.can-forget.
156e0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 6e 2d 64 69 73 61 73 73 65 6d 62 6c 65 0a 20 20 ........(when.can-disassemble...
15700 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 28 69 ........(insert.".")).........(i
15720 6e 73 65 72 74 20 28 68 65 6c 70 66 75 6c 2d 2d 6d 61 6b 65 2d 66 6f 72 67 65 74 2d 62 75 74 74 nsert.(helpful--make-forget-butt
15740 6f 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c on.helpful--sym.helpful--callabl
15760 65 2d 70 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 61 6c 69 61 73 65 73 0a 20 20 20 20 20 e-p))))......(when.aliases......
15780 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 .(helpful--insert-section-break)
157a0 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d .......(insert........(helpful--
157c0 68 65 61 64 69 6e 67 20 22 41 6c 69 61 73 65 73 22 29 0a 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 heading."Aliases")........(s-joi
157e0 6e 20 22 5c 6e 22 20 28 2d 2d 6d 61 70 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 n."\n".(--map.(helpful--format-a
15800 6c 69 61 73 20 69 74 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 20 lias.it.helpful--callable-p)....
15820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 69 61 73 65 73 29 ........................aliases)
15840 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 )))......(when.helpful--callable
15860 2d 70 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 69 6d 70 6c 65 6d -p.......(helpful--insert-implem
15880 65 6e 74 61 74 69 6f 6e 73 29 29 0a 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 entations))......(helpful--inser
158a0 74 2d 73 65 63 74 69 6f 6e 2d 62 72 65 61 6b 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 t-section-break)......(when.(or.
158c0 73 6f 75 72 63 65 2d 70 61 74 68 20 70 72 69 6d 69 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 28 source-path.primitive-p).......(
158e0 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 0a insert........(helpful--heading.
15900 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 63 61 6e ........(if.(eq.helpful--sym.can
15920 6f 6e 69 63 61 6c 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 53 6f 75 72 63 65 20 onical-sym)............."Source.
15940 43 6f 64 65 22 0a 20 20 20 20 20 20 20 20 20 20 22 41 6c 69 61 73 20 53 6f 75 72 63 65 20 43 6f Code"..........."Alias.Source.Co
15960 64 65 22 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 73 6f 75 72 de"))........(cond.........(sour
15980 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 ce-path..........(concat........
159a0 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 25 73 20 44 65 66 69 6e ...(propertize.(format."%s.Defin
159c0 65 64 20 69 6e 20 22 20 28 69 66 20 70 72 69 6d 69 74 69 76 65 2d 70 20 22 2f 2f 22 20 22 3b 3b ed.in.".(if.primitive-p."//".";;
159e0 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 ")).......................'face.
15a00 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 'font-lock-comment-face)........
15a20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 6e 61 76 69 67 61 74 65 2d 62 75 74 74 6f 6e 0a 20 20 20 ...(helpful--navigate-button....
15a40 20 20 20 20 20 20 20 20 28 66 2d 61 62 62 72 65 76 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 ........(f-abbrev.source-path)..
15a60 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 ..........source-path...........
15a80 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 28 .pos)..........."\n")).........(
15aa0 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 primitive-p..........(concat....
15ac0 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 22 43 .......(propertize............"C
15ae0 20 63 6f 64 65 20 69 73 20 6e 6f 74 20 79 65 74 20 6c 6f 61 64 65 64 2e 22 0a 20 20 20 20 20 20 .code.is.not.yet.loaded.".......
15b00 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 .....'face.'font-lock-comment-fa
15b20 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 28 ce)..........."\n\n"...........(
15b40 68 65 6c 70 66 75 6c 2d 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 22 53 65 74 20 helpful--button............"Set.
15b60 43 20 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 27 C.source.directory"............'
15b80 68 65 6c 70 66 75 6c 2d 63 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 29 helpful-c-source-directory))))))
15ba0 0a 20 20 20 20 28 77 68 65 6e 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a .....(when.source.......(insert.
15bc0 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 73 .......(cond.........((stringp.s
15be0 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 6f 64 65 20 28 77 68 65 ource)..........(let.((mode.(whe
15c00 6e 20 70 72 69 6d 69 74 69 76 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.primitive-p...................
15c20 20 20 20 20 20 28 70 63 61 73 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e .....(pcase.(file-name-extension
15c40 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .source-path)...................
15c60 20 20 20 20 20 20 20 28 22 63 22 20 27 63 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 .......("c".'c-mode)............
15c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 72 73 22 20 28 77 68 65 6e 20 28 66 62 6f 75 6e ..............("rs".(when.(fboun
15ca0 64 70 20 27 72 75 73 74 2d 6d 6f 64 65 29 20 27 72 75 73 74 2d 6d 6f 64 65 29 29 29 29 29 29 0a dp.'rust-mode).'rust-mode)))))).
15cc0 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6e 74 61 78 2d 68 69 67 68 ...........(helpful--syntax-high
15ce0 6c 69 67 68 74 20 73 6f 75 72 63 65 20 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 light.source.mode))).........((a
15d00 6e 64 20 28 63 6f 6e 73 70 20 73 6f 75 72 63 65 29 20 28 65 71 20 28 63 61 72 20 73 6f 75 72 63 nd.(consp.source).(eq.(car.sourc
15d20 65 29 20 27 63 6c 6f 73 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d e).'closure))..........(helpful-
15d40 2d 73 79 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e -syntax-highlight...........(con
15d60 63 61 74 20 22 3b 3b 20 43 6c 6f 73 75 72 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 64 65 66 cat.";;.Closure.converted.to.def
15d80 75 6e 20 62 79 20 68 65 6c 70 66 75 6c 2e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 un.by.helpful.\n"...............
15da0 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 0a 20 20 20 20 20 ....(helpful--pretty-print......
15dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 63 ..............(helpful--format-c
15de0 6c 6f 73 75 72 65 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 20 73 6f 75 72 63 65 29 29 29 29 29 0a losure.helpful--sym.source))))).
15e00 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 ........(t..........(helpful--sy
15e20 6e 74 61 78 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 ntax-highlight...........(concat
15e40 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d ............(if.(eq.helpful--sym
15e60 20 63 61 6e 6f 6e 69 63 61 6c 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 .canonical-sym)................"
15e80 3b 3b 20 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 73 ;;.Could.not.find.source.code,.s
15ea0 68 6f 77 69 6e 67 20 72 61 77 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2e 5c 6e 22 0a 20 howing.raw.function.object.\n"..
15ec0 20 20 20 20 20 20 20 20 20 20 20 20 22 3b 3b 20 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 ............";;.Could.not.find.a
15ee0 6c 69 61 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2c 20 73 68 6f 77 69 6e 67 20 72 61 77 20 66 75 lias.source.code,.showing.raw.fu
15f00 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 nction.object.\n")............(h
15f20 65 6c 70 66 75 6c 2d 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 73 6f 75 72 63 65 29 29 29 29 29 elpful--pretty-print.source)))))
15f40 29 29 0a 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 69 6e 73 65 72 74 2d 73 65 63 74 69 6f 6e ))......(helpful--insert-section
15f60 2d 62 72 65 61 6b 29 0a 0a 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 66 6f 72 6d 61 74 74 -break)......(-when-let.(formatt
15f80 65 64 2d 70 72 6f 70 73 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 6f 70 65 72 ed-props.(helpful--format-proper
15fa0 74 69 65 73 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 ties.helpful--sym)).......(inser
15fc0 74 0a 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 68 65 61 64 69 6e 67 20 22 53 79 6d 62 t........(helpful--heading."Symb
15fe0 6f 6c 20 50 72 6f 70 65 72 74 69 65 73 22 29 0a 20 20 20 20 20 20 20 66 6f 72 6d 61 74 74 65 64 ol.Properties")........formatted
16000 2d 70 72 6f 70 73 29 29 0a 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d -props))......(goto-char.(point-
16020 6d 69 6e 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 73 74 61 72 min)).....(forward-line.(1-.star
16040 74 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 73 74 61 72 74 t-line)).....(forward-char.start
16060 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 28 73 65 74 71 20 68 65 6c 70 66 75 6c 2d 2d 66 69 72 73 -column).....(setq.helpful--firs
16080 74 2d 64 69 73 70 6c 61 79 20 6e 69 6c 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 6f 70 65 6e 65 64 t-display.nil)......(when.opened
160a0 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 29 29 29 0a 0a 3b 3b 20 .......(kill-buffer.buf))))..;;.
160c0 54 4f 44 4f 3a 20 74 68 69 73 20 69 73 6e 27 74 20 73 75 66 66 69 63 69 65 6e 74 20 66 6f 72 20 TODO:.this.isn't.sufficient.for.
160e0 60 65 64 65 62 75 67 2d 65 76 61 6c 2d 64 65 66 75 6e 27 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 `edebug-eval-defun'..(defun.help
16100 66 75 6c 2d 2d 73 6b 69 70 2d 61 64 76 69 63 65 20 28 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 22 ful--skip-advice.(docstring)..."
16120 52 65 6d 6f 76 65 20 6d 65 6e 74 69 6f 6e 73 20 6f 66 20 61 64 76 69 63 65 20 66 72 6f 6d 20 44 Remove.mentions.of.advice.from.D
16140 4f 43 53 54 52 49 4e 47 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 73 20 28 73 2d 6c 69 OCSTRING."...(let*.((lines.(s-li
16160 6e 65 73 20 64 6f 63 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 6c 65 76 61 nes.docstring))..........(releva
16180 6e 74 2d 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 nt-lines...........(--drop-while
161a0 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 ............(or.(s-starts-with-p
161c0 20 22 3a 61 72 6f 75 6e 64 20 61 64 76 69 63 65 3a 22 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 .":around.advice:".it)..........
161e0 20 20 20 20 20 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 54 68 69 73 20 66 75 6e ......(s-starts-with-p."This.fun
16200 63 74 69 6f 6e 20 68 61 73 20 3a 61 72 6f 75 6e 64 20 61 64 76 69 63 65 3a 22 20 69 74 29 29 0a ction.has.:around.advice:".it)).
16220 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 73 29 29 29 0a 20 20 20 20 28 73 2d 74 72 69 6d 20 ...........lines))).....(s-trim.
16240 28 73 2d 6a 6f 69 6e 20 22 5c 6e 22 20 72 65 6c 65 76 61 6e 74 2d 6c 69 6e 65 73 29 29 29 29 0a (s-join."\n".relevant-lines)))).
16260 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 72 67 75 6d 65 6e 74 .(defun.helpful--format-argument
16280 20 28 61 72 67 29 0a 20 20 22 46 6f 72 6d 61 74 20 41 52 47 20 28 61 20 73 79 6d 62 6f 6c 29 20 .(arg)..."Format.ARG.(a.symbol).
162a0 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 45 6d 61 63 73 20 68 65 6c 70 20 63 6f 6e 76 65 6e 74 69 according.to.Emacs.help.conventi
162c0 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 72 67 2d 73 74 72 20 28 73 79 6d 62 6f 6c 2d 6e ons."...(let.((arg-str.(symbol-n
162e0 61 6d 65 20 61 72 67 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 ame.arg))).....(if.(s-starts-wit
16300 68 2d 70 20 22 26 22 20 61 72 67 2d 73 74 72 29 0a 20 20 20 20 20 20 20 20 61 72 67 2d 73 74 72 h-p."&".arg-str).........arg-str
16320 0a 20 20 20 20 20 20 28 73 2d 75 70 63 61 73 65 20 61 72 67 2d 73 74 72 29 29 29 29 0a 0a 28 64 .......(s-upcase.arg-str))))..(d
16340 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c 20 28 73 79 6d efun.helpful--format-symbol.(sym
16360 29 0a 20 20 22 46 6f 72 6d 61 74 20 73 79 6d 62 6f 6c 20 61 73 20 61 20 73 74 72 69 6e 67 2c 20 )..."Format.symbol.as.a.string,.
16380 65 73 63 61 70 69 6e 67 20 61 73 20 6e 65 63 65 73 73 61 72 79 2e 22 0a 20 20 3b 3b 20 41 72 67 escaping.as.necessary."...;;.Arg
163a0 75 61 62 6c 79 20 74 68 69 73 20 69 73 20 61 6e 20 45 6d 61 63 73 20 62 75 67 2e 20 57 65 20 73 uably.this.is.an.Emacs.bug..We.s
163c0 68 6f 75 6c 64 20 62 65 20 61 62 6c 65 20 74 6f 20 75 73 65 0a 20 20 3b 3b 20 28 66 6f 72 6d 61 hould.be.able.to.use...;;.(forma
163e0 74 20 22 25 53 22 20 73 79 6d 29 0a 20 20 3b 3b 20 62 75 74 20 74 68 61 74 20 63 6f 6e 76 65 72 t."%S".sym)...;;.but.that.conver
16400 74 73 20 66 6f 6f 3f 20 74 6f 20 22 66 6f 6f 5c 5c 3f 22 2e 20 59 6f 75 20 63 61 6e 20 73 65 65 ts.foo?.to."foo\\?"..You.can.see
16420 20 74 68 69 73 20 69 6e 20 6f 74 68 65 72 0a 20 20 3b 3b 20 70 61 72 74 73 20 6f 66 20 74 68 65 .this.in.other...;;.parts.of.the
16440 20 45 6d 61 63 73 20 55 49 2c 20 73 75 63 68 20 61 73 20 45 52 54 2e 0a 20 20 28 73 2d 72 65 70 .Emacs.UI,.such.as.ERT....(s-rep
16460 6c 61 63 65 20 22 20 22 20 22 5c 5c 20 22 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 73 79 6d 29 lace."."."\\.".(format."%s".sym)
16480 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 74 68 69 73 20 69 73 20 62 72 6f 6b 65 6e 20 66 6f 72 20 ))..;;.TODO:.this.is.broken.for.
164a0 2d 61 6e 79 3f 2e 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 69 67 6e 61 74 75 72 65 -any?..(defun.helpful--signature
164c0 20 28 73 79 6d 29 0a 20 20 22 47 65 74 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 20 66 6f 72 20 .(sym)..."Get.the.signature.for.
164e0 66 75 6e 63 74 69 6f 6e 20 53 59 4d 2c 20 61 73 20 61 20 73 74 72 69 6e 67 2e 0a 46 6f 72 20 65 function.SYM,.as.a.string..For.e
16500 78 61 6d 70 6c 65 2c 20 5c 22 28 73 6f 6d 65 2d 66 75 6e 63 20 46 4f 4f 20 26 6f 70 74 69 6f 6e xample,.\"(some-func.FOO.&option
16520 61 6c 20 42 41 52 29 5c 22 2e 22 0a 20 20 28 6c 65 74 20 28 64 6f 63 73 74 72 69 6e 67 2d 73 69 al.BAR)\"."...(let.(docstring-si
16540 67 0a 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 2d 73 69 67 0a 20 20 20 20 20 20 20 20 28 61 64 g.........source-sig.........(ad
16560 76 65 72 74 69 73 65 64 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 79 vertised-args..........(when.(sy
16580 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 28 mbolp.sym)............(gethash.(
165a0 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 73 79 6d 29 20 61 64 76 65 72 74 69 73 65 64 2d symbol-function.sym).advertised-
165c0 73 69 67 6e 61 74 75 72 65 2d 74 61 62 6c 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 47 65 74 20 74 signature-table)))).....;;.Get.t
165e0 68 65 20 75 73 61 67 65 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e he.usage.from.the.function.defin
16600 69 74 69 6f 6e 2e 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 66 75 6e 63 74 69 6f 6e 2d 61 72 67 73 ition......(let*.((function-args
16620 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(cond..............
16640 28 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 ((symbolp.sym)...............(he
16660 6c 70 2d 66 75 6e 63 74 69 6f 6e 2d 61 72 67 6c 69 73 74 20 73 79 6d 29 29 0a 20 20 20 20 20 20 lp-function-arglist.sym)).......
16680 20 20 20 20 20 20 20 28 28 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 73 79 .......((byte-code-function-p.sy
166a0 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 72 67 64 65 73 63 20 63 61 6e 20 m)...............;;.argdesc.can.
166c0 62 65 20 61 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 6f 72 20 61 6e 20 69 6e 74 be.a.list.of.arguments.or.an.int
166e0 65 67 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 6e 63 6f 64 69 6e 67 20 74 eger...............;;.encoding.t
16700 68 65 20 6d 69 6e 2f 6d 61 78 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2e 20 he.min/max.number.of.arguments..
16720 53 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 79 74 65 2d 43 6f 64 65 20 46 See...............;;.Byte-Code.F
16740 75 6e 63 74 69 6f 6e 20 4f 62 6a 65 63 74 73 20 69 6e 20 74 68 65 20 65 6c 69 73 70 20 6d 61 6e unction.Objects.in.the.elisp.man
16760 75 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 72 67 64 65 73 ual................(let.((argdes
16780 63 20 28 61 72 65 66 20 73 79 6d 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.(aref.sym.0)))................
167a0 20 28 69 66 20 28 63 6f 6e 73 70 20 61 72 67 64 65 73 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(if.(consp.argdesc)............
167c0 20 20 20 20 20 20 20 20 20 61 72 67 64 65 73 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........argdesc................
167e0 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 70 72 6f 70 65 72 6c 79 20 68 61 6e 64 6c 65 20 61 72 67 64 ...;;.TODO:.properly.handle.argd
16800 65 73 63 20 76 61 6c 75 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 esc.values....................ni
16820 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 l)))..............(t............
16840 20 20 20 3b 3b 20 49 6e 74 65 72 70 72 65 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 ...;;.Interpreted.function.(lamb
16860 64 61 20 2e 2e 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 64 72 20 73 79 6d 29 da....)...............(cadr.sym)
16880 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 2d 61 72 67 73 0a 20 )))............(formatted-args..
168a0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 ...........(cond..............(a
168c0 64 76 65 72 74 69 73 65 64 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d dvertised-args...............(-m
168e0 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 72 67 75 6d 65 6e 74 20 61 64 ap.#'helpful--format-argument.ad
16900 76 65 72 74 69 73 65 64 2d 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c vertised-args))..............((l
16920 69 73 74 70 20 66 75 6e 63 74 69 6f 6e 2d 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 istp.function-args).............
16940 20 20 28 2d 6d 61 70 20 23 27 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 61 72 67 75 6d 65 ..(-map.#'helpful--format-argume
16960 6e 74 20 66 75 6e 63 74 69 6f 6e 2d 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.function-args))..............
16980 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 66 75 6e 63 74 69 6f 6e 2d (t...............(list.function-
169a0 61 72 67 73 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 2d 73 69 67 args))))).......(setq.source-sig
169c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(cond..............
169e0 3b 3b 20 49 66 20 69 74 27 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 62 6a 65 63 74 2c 20 6a 75 ;;.If.it's.a.function.object,.ju
16a00 73 74 20 73 68 6f 77 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 20 20 20 st.show.the.arguments...........
16a20 20 20 20 20 28 28 6e 6f 74 20 28 73 79 6d 62 6f 6c 70 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 ....((not.(symbolp.sym))........
16a40 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 28 25 73 29 22 0a 20 20 20 20 20 20 20 20 20 20 .......(format."(%s)"...........
16a60 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 20 22 20 66 6f 72 6d 61 74 74 65 ............(s-join.".".formatte
16a80 64 2d 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 69 74 20 d-args)))..............;;.If.it.
16aa0 68 61 73 20 6d 75 6c 74 69 70 6c 65 20 61 72 67 75 6d 65 6e 74 73 2c 20 6a 6f 69 6e 20 74 68 65 has.multiple.arguments,.join.the
16ac0 6d 20 77 69 74 68 20 73 70 61 63 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 m.with.spaces...............(for
16ae0 6d 61 74 74 65 64 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 matted-args...............(forma
16b00 74 20 22 28 25 73 20 25 73 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t."(%s.%s)".....................
16b20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c 20 73 79 6d 29 0a 20 ..(helpful--format-symbol.sym)..
16b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f 69 6e 20 22 20 22 .....................(s-join."."
16b60 20 66 6f 72 6d 61 74 74 65 64 2d 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .formatted-args)))..............
16b80 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 ;;.Otherwise,.this.function.take
16ba0 73 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 77 68 65 6e 20 63 61 6c 6c 65 64 2e 0a 20 20 20 20 s.no.arguments.when.called......
16bc0 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 .........(t...............(forma
16be0 74 20 22 28 25 73 29 22 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 73 79 6d 62 6f 6c t."(%s)".(helpful--format-symbol
16c00 20 73 79 6d 29 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 64 6f 63 73 74 72 .sym))))))......;;.If.the.docstr
16c20 69 6e 67 20 65 6e 64 73 20 77 69 74 68 20 28 66 6e 20 46 4f 4f 20 42 41 52 29 2c 20 65 78 74 72 ing.ends.with.(fn.FOO.BAR),.extr
16c40 61 63 74 20 74 68 61 74 2e 0a 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 64 6f 63 73 74 72 act.that......(-when-let.(docstr
16c60 69 6e 67 20 28 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 79 6d 29 29 0a 20 20 20 20 20 20 28 ing.(documentation.sym)).......(
16c80 2d 77 68 65 6e 2d 6c 65 74 20 28 64 6f 63 73 74 72 69 6e 67 2d 77 69 74 68 2d 75 73 61 67 65 20 -when-let.(docstring-with-usage.
16ca0 28 68 65 6c 70 2d 73 70 6c 69 74 2d 66 75 6e 64 6f 63 20 64 6f 63 73 74 72 69 6e 67 20 73 79 6d (help-split-fundoc.docstring.sym
16cc0 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 63 73 74 72 69 6e 67 2d 73 69 67 20 28 )).........(setq.docstring-sig.(
16ce0 63 61 72 20 64 6f 63 73 74 72 69 6e 67 2d 77 69 74 68 2d 75 73 61 67 65 29 29 29 29 0a 0a 20 20 car.docstring-with-usage))))....
16d00 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 41 64 76 65 72 74 69 73 65 64 20 73 69 67 6e 61 ..(cond......;;.Advertised.signa
16d20 74 75 72 65 20 61 6c 77 61 79 73 20 77 69 6e 73 2e 0a 20 20 20 20 20 28 61 64 76 65 72 74 69 73 ture.always.wins.......(advertis
16d40 65 64 2d 61 72 67 73 0a 20 20 20 20 20 20 73 6f 75 72 63 65 2d 73 69 67 29 0a 20 20 20 20 20 3b ed-args.......source-sig)......;
16d60 3b 20 49 66 20 74 68 61 74 27 73 20 6e 6f 74 20 73 65 74 2c 20 75 73 65 20 74 68 65 20 75 73 61 ;.If.that's.not.set,.use.the.usa
16d80 67 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 6e 20 74 68 65 0a 20 20 20 20 20 3b 3b 20 ge.specification.in.the......;;.
16da0 64 6f 63 73 74 72 69 6e 67 2c 20 69 66 20 70 72 65 73 65 6e 74 2e 0a 20 20 20 20 20 28 64 6f 63 docstring,.if.present.......(doc
16dc0 73 74 72 69 6e 67 2d 73 69 67 0a 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 string-sig.......(replace-regexp
16de0 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5c 5c 5c 5c 3d 5c 5c 28 5b 27 5c 5c 60 e2 80 98 e2 80 99 5d -in-string."\\\\=\\(['\\`......]
16e00 5c 5c 29 22 20 22 5c 5c 31 22 20 64 6f 63 73 74 72 69 6e 67 2d 73 69 67 20 74 29 29 0a 20 20 20 \\)"."\\1".docstring-sig.t))....
16e20 20 20 28 74 0a 20 20 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 6a 75 73 74 20 75 73 ..(t.......;;.Otherwise,.just.us
16e40 65 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 20 66 72 6f 6d 20 74 68 65 20 73 6f 75 72 63 65 20 e.the.signature.from.the.source.
16e60 63 6f 64 65 2e 0a 20 20 20 20 20 20 73 6f 75 72 63 65 2d 73 69 67 29 29 29 29 0a 0a 28 64 65 66 code........source-sig))))..(def
16e80 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6f 72 6d 61 74 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f un.helpful--format-obsolete-info
16ea0 20 28 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 28 2d 6c 65 74 20 5b 28 75 73 65 20 .(sym.callable-p)...(-let.[(use.
16ec0 5f 20 64 61 74 65 29 20 28 68 65 6c 70 66 75 6c 2d 2d 6f 62 73 6f 6c 65 74 65 2d 69 6e 66 6f 20 _.date).(helpful--obsolete-info.
16ee0 73 79 6d 20 63 61 6c 6c 61 62 6c 65 2d 70 29 5d 0a 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 sym.callable-p)].....(helpful--f
16f00 6f 72 6d 61 74 2d 64 6f 63 73 74 72 69 6e 67 0a 20 20 20 20 20 28 73 2d 77 6f 72 64 2d 77 72 61 ormat-docstring......(s-word-wra
16f20 70 0a 20 20 20 20 20 20 37 30 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 54 68 69 73 20 25 p.......70.......(format."This.%
16f40 73 20 69 73 20 6f 62 73 6f 6c 65 74 65 25 73 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 s.is.obsolete%s%s"..............
16f60 20 28 68 65 6c 70 66 75 6c 2d 2d 6b 69 6e 64 2d 6e 61 6d 65 20 73 79 6d 20 63 61 6c 6c 61 62 6c .(helpful--kind-name.sym.callabl
16f80 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 61 74 65 20 28 66 6f 72 e-p)...............(if.date.(for
16fa0 6d 61 74 20 22 20 73 69 6e 63 65 20 25 73 22 20 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 mat.".since.%s".date)...........
16fc0 20 20 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 ......"")...............(cond.((
16fe0 73 74 72 69 6e 67 70 20 75 73 65 29 20 28 63 6f 6e 63 61 74 20 22 3b 20 22 20 75 73 65 29 29 0a stringp.use).(concat.";.".use)).
17000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 20 28 66 6f 72 6d 61 74 ....................(use.(format
17020 20 22 3b 20 75 73 65 20 60 25 73 27 20 69 6e 73 74 65 61 64 2e 22 20 75 73 65 29 29 0a 20 20 20 .";.use.`%s'.instead.".use))....
17040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 22 2e 22 29 29 29 29 29 29 29 0a 0a .................(t.".")))))))..
17060 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 64 6f 63 73 74 72 69 6e 67 20 28 73 79 6d 20 63 (defun.helpful--docstring.(sym.c
17080 61 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 47 65 74 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 20 allable-p)..."Get.the.docstring.
170a0 66 6f 72 20 53 59 4d 2e 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 72 65 74 75 72 6e 73 20 for.SYM..Note.that.this.returns.
170c0 74 68 65 20 72 61 77 20 64 6f 63 73 74 72 69 6e 67 2c 20 69 6e 63 6c 75 64 69 6e 67 20 5c 5c 3d the.raw.docstring,.including.\\=
170e0 5c 5c 3d 0a 65 73 63 61 70 65 73 20 74 68 61 74 20 61 72 65 20 75 73 65 64 20 62 79 20 60 73 75 \\=.escapes.that.are.used.by.`su
17100 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 27 2e 22 0a 20 20 28 6c 65 74 20 bstitute-command-keys'."...(let.
17120 28 28 74 65 78 74 2d 71 75 6f 74 69 6e 67 2d 73 74 79 6c 65 20 27 67 72 61 76 65 29 0a 20 20 20 ((text-quoting-style.'grave)....
17140 20 20 20 20 20 64 6f 63 73 74 72 69 6e 67 29 0a 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c 65 .....docstring).....(if.callable
17160 2d 70 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 -p.........(progn...........(set
17180 71 20 64 6f 63 73 74 72 69 6e 67 20 28 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 79 6d 20 74 q.docstring.(documentation.sym.t
171a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 64 6f 63 73 74 72 69 ))...........(-when-let.(docstri
171c0 6e 67 2d 77 69 74 68 2d 75 73 61 67 65 20 28 68 65 6c 70 2d 73 70 6c 69 74 2d 66 75 6e 64 6f 63 ng-with-usage.(help-split-fundoc
171e0 20 64 6f 63 73 74 72 69 6e 67 20 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 .docstring.sym)).............(se
17200 74 71 20 64 6f 63 73 74 72 69 6e 67 20 28 63 64 72 20 64 6f 63 73 74 72 69 6e 67 2d 77 69 74 68 tq.docstring.(cdr.docstring-with
17220 2d 75 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 6f 63 73 74 -usage)).............(when.docst
17240 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 76 69 63 65 20 6d 75 74 ring...............;;.Advice.mut
17260 61 74 65 73 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 2c 20 73 65 65 0a 20 20 20 20 20 20 20 20 ates.the.docstring,.see.........
17280 20 20 20 20 20 20 3b 3b 20 60 61 64 76 69 63 65 2d 2d 6d 61 6b 65 2d 64 6f 63 73 74 72 69 6e 67 ......;;.`advice--make-docstring
172a0 27 2e 20 55 6e 64 6f 20 74 68 61 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 '..Undo.that................;;.T
172c0 4f 44 4f 3a 20 4f 6e 6c 79 20 64 6f 20 74 68 69 73 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f ODO:.Only.do.this.if.the.functio
172e0 6e 20 69 73 20 61 64 76 69 73 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 n.is.advised................(set
17300 71 20 64 6f 63 73 74 72 69 6e 67 20 28 68 65 6c 70 66 75 6c 2d 2d 73 6b 69 70 2d 61 64 76 69 63 q.docstring.(helpful--skip-advic
17320 65 20 64 6f 63 73 74 72 69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 63 e.docstring))))).......(setq.doc
17340 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 63 75 6d 65 6e 74 61 74 69 6f string.............(documentatio
17360 6e 2d 70 72 6f 70 65 72 74 79 20 73 79 6d 20 27 76 61 72 69 61 62 6c 65 2d 64 6f 63 75 6d 65 6e n-property.sym.'variable-documen
17380 74 61 74 69 6f 6e 20 74 29 29 29 0a 20 20 20 20 64 6f 63 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 tation.t))).....docstring))..(de
173a0 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 73 79 6d 62 6f 6c 20 28 70 72 6f 6d 70 74 fun.helpful--read-symbol.(prompt
173c0 20 64 65 66 61 75 6c 74 2d 76 61 6c 20 70 72 65 64 69 63 61 74 65 29 0a 20 20 22 52 65 61 64 20 .default-val.predicate)..."Read.
173e0 61 20 73 79 6d 62 6f 6c 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2c 20 77 69 a.symbol.from.the.minibuffer,.wi
17400 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 73 79 6d 62 6f th.completion..Returns.the.symbo
17420 6c 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 64 65 66 61 75 6c 74 2d 76 61 6c 0a 20 20 20 l."...(when.(and.default-val....
17440 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 61 74 ..........(not.(funcall.predicat
17460 65 20 64 65 66 61 75 6c 74 2d 76 61 6c 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 64 65 66 61 75 e.default-val))).....(setq.defau
17480 6c 74 2d 76 61 6c 20 6e 69 6c 29 29 0a 20 20 28 77 68 65 6e 20 64 65 66 61 75 6c 74 2d 76 61 6c lt-val.nil))...(when.default-val
174a0 0a 20 20 20 20 3b 3b 20 60 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 27 20 65 78 70 65 63 74 .....;;.`completing-read'.expect
174c0 73 20 61 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 28 73 65 74 71 20 64 65 66 61 75 6c 74 2d 76 61 s.a.string......(setq.default-va
174e0 6c 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 64 65 66 61 75 6c 74 2d 76 61 6c 29 29 0a 0a 20 20 l.(symbol-name.default-val))....
17500 20 20 3b 3b 20 54 4f 44 4f 3a 20 4f 6e 6c 79 20 6d 6f 64 69 66 79 20 74 68 65 20 70 72 6f 6d 70 ..;;.TODO:.Only.modify.the.promp
17520 74 20 77 68 65 6e 20 77 65 20 64 6f 6e 27 74 20 68 61 76 65 20 69 64 6f 2f 69 76 79 2f 68 65 6c t.when.we.don't.have.ido/ivy/hel
17540 6d 2c 0a 20 20 20 20 3b 3b 20 62 65 63 61 75 73 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 73 m,.....;;.because.the.default.is
17560 20 6f 62 76 69 6f 75 73 20 66 6f 72 20 74 68 65 6d 2e 0a 20 20 20 20 28 73 65 74 71 20 70 72 6f .obvious.for.them......(setq.pro
17580 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e mpt...........(replace-regexp-in
175a0 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 22 3a 20 22 20 65 6f 73 29 -string............(rx.":.".eos)
175c0 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 28 64 65 66 61 75 6c 74 3a 20 ............(format.".(default:.
175e0 25 73 29 3a 20 22 20 64 65 66 61 75 6c 74 2d 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 70 %s):.".default-val)............p
17600 72 6f 6d 70 74 29 29 29 0a 20 20 28 69 6e 74 65 72 6e 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 rompt)))...(intern.(completing-r
17620 65 61 64 20 70 72 6f 6d 70 74 20 6f 62 61 72 72 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ead.prompt.obarray..............
17640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 64 69 63 61 74 65 20 74 20 6e 69 6c 20 6e 69 ..............predicate.t.nil.ni
17660 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 l............................def
17680 61 75 6c 74 2d 76 61 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 75 70 64 ault-val)))..(defun.helpful--upd
176a0 61 74 65 2d 61 6e 64 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 28 73 79 6d 62 6f 6c 20 63 61 ate-and-switch-buffer.(symbol.ca
176c0 6c 6c 61 62 6c 65 2d 70 29 0a 20 20 22 55 70 64 61 74 65 20 61 6e 64 20 73 77 69 74 63 68 20 74 llable-p)..."Update.and.switch.t
176e0 6f 20 68 65 6c 70 20 62 75 66 66 65 72 20 66 6f 72 20 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 6c 65 o.help.buffer.for.SYMBOL."...(le
17700 74 20 28 28 62 75 66 20 28 68 65 6c 70 66 75 6c 2d 2d 62 75 66 66 65 72 20 73 79 6d 62 6f 6c 20 t.((buf.(helpful--buffer.symbol.
17720 63 61 6c 6c 61 62 6c 65 2d 70 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d callable-p))).....(with-current-
17740 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 buffer.buf.......(helpful-update
17760 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 65 6c 70 66 75 6c 2d 73 77 69 74 63 68 2d 62 )).....(funcall.helpful-switch-b
17780 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 62 75 66 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 uffer-function.buf)))..;;;###aut
177a0 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 66 75 6e 63 74 69 6f 6e 20 28 73 oload.(defun.helpful-function.(s
177c0 79 6d 62 6f 6c 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e ymbol)..."Show.help.for.function
177e0 20 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 68 65 6c 70 66 75 .named.SYMBOL...See.also.`helpfu
17800 6c 2d 6d 61 63 72 6f 27 2c 20 60 68 65 6c 70 66 75 6c 2d 63 6f 6d 6d 61 6e 64 27 20 61 6e 64 20 l-macro',.`helpful-command'.and.
17820 60 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 `helpful-callable'."...(interact
17840 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 73 79 6d 62 ive....(list.(helpful--read-symb
17860 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 46 75 6e 63 74 69 6f 6e 3a 20 22 0a 20 20 20 20 20 20 ol..........."Function:.".......
17880 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 ....(helpful--callable-at-point)
178a0 0a 20 20 20 20 20 20 20 20 20 20 23 27 66 75 6e 63 74 69 6f 6e 70 29 29 29 0a 20 20 28 68 65 6c ...........#'functionp)))...(hel
178c0 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 pful--update-and-switch-buffer.s
178e0 79 6d 62 6f 6c 20 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e ymbol.t))..;;;###autoload.(defun
17900 20 68 65 6c 70 66 75 6c 2d 63 6f 6d 6d 61 6e 64 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 53 68 6f .helpful-command.(symbol)..."Sho
17920 77 20 68 65 6c 70 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 20 w.help.for.interactive.function.
17940 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 68 65 6c 70 66 75 6c named.SYMBOL...See.also.`helpful
17960 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 -function'."...(interactive....(
17980 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 list.(helpful--read-symbol......
179a0 20 20 20 20 20 22 43 6f 6d 6d 61 6e 64 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 ....."Command:."...........(help
179c0 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 ful--callable-at-point).........
179e0 20 20 23 27 63 6f 6d 6d 61 6e 64 70 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 ..#'commandp)))...(helpful--upda
17a00 74 65 2d 61 6e 64 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 79 6d 62 6f 6c 20 74 29 29 0a te-and-switch-buffer.symbol.t)).
17a20 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 6b .;;;###autoload.(defun.helpful-k
17a40 65 79 20 28 6b 65 79 2d 73 65 71 75 65 6e 63 65 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 ey.(key-sequence)..."Show.help.f
17a60 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 6d 61 6e 64 20 62 6f 75 6e 64 20 74 6f 20 or.interactive.command.bound.to.
17a80 4b 45 59 2d 53 45 51 55 45 4e 43 45 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 KEY-SEQUENCE."...(interactive...
17aa0 20 28 6c 69 73 74 20 28 72 65 61 64 2d 6b 65 79 2d 73 65 71 75 65 6e 63 65 20 22 50 72 65 73 73 .(list.(read-key-sequence."Press
17ac0 20 6b 65 79 3a 20 22 29 29 29 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 6b 65 79 2d 62 69 6e .key:.")))...(let.((sym.(key-bin
17ae0 64 69 6e 67 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 ding.key-sequence))).....(cond..
17b00 20 20 20 20 28 28 6e 75 6c 6c 20 73 79 6d 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f ....((null.sym).......(user-erro
17b20 72 20 22 4e 6f 20 63 6f 6d 6d 61 6e 64 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 25 73 22 0a 20 20 r."No.command.is.bound.to.%s"...
17b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e ................(key-description
17b60 20 6b 65 79 2d 73 65 71 75 65 6e 63 65 29 29 29 0a 20 20 20 20 20 28 28 63 6f 6d 6d 61 6e 64 70 .key-sequence)))......((commandp
17b80 20 73 79 6d 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 .sym).......(helpful--update-and
17ba0 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 79 6d 20 74 29 29 0a 20 20 20 20 20 28 74 0a 20 -switch-buffer.sym.t))......(t..
17bc0 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 25 73 20 69 73 20 62 6f 75 6e 64 20 74 6f .....(user-error."%s.is.bound.to
17be0 20 25 73 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 20 63 6f 6d 6d 61 6e 64 22 0a 20 20 20 20 .%s.which.is.not.a.command".....
17c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 6b ..............(key-description.k
17c20 65 79 2d 73 65 71 75 65 6e 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 ey-sequence)...................s
17c40 79 6d 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 ym)))))..;;;###autoload.(defun.h
17c60 65 6c 70 66 75 6c 2d 6d 61 63 72 6f 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 53 68 6f 77 20 68 65 elpful-macro.(symbol)..."Show.he
17c80 6c 70 20 66 6f 72 20 6d 61 63 72 6f 20 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 69 lp.for.macro.named.SYMBOL."...(i
17ca0 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 nteractive....(list.(helpful--re
17cc0 61 64 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 4d 61 63 72 6f 3a 20 22 0a 20 20 ad-symbol..........."Macro:."...
17ce0 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
17d00 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 23 27 6d 61 63 72 6f 70 29 29 29 0a 20 20 28 68 65 int)...........#'macrop)))...(he
17d20 6c 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 lpful--update-and-switch-buffer.
17d40 73 79 6d 62 6f 6c 20 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 symbol.t))..;;;###autoload.(defu
17d60 6e 20 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 53 n.helpful-callable.(symbol)..."S
17d80 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 2c 20 6d 61 63 72 6f 20 6f 72 20 how.help.for.function,.macro.or.
17da0 73 70 65 63 69 61 6c 20 66 6f 72 6d 20 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 0a 0a 53 65 65 20 special.form.named.SYMBOL...See.
17dc0 61 6c 73 6f 20 60 68 65 6c 70 66 75 6c 2d 6d 61 63 72 6f 27 2c 20 60 68 65 6c 70 66 75 6c 2d 66 also.`helpful-macro',.`helpful-f
17de0 75 6e 63 74 69 6f 6e 27 20 61 6e 64 20 60 68 65 6c 70 66 75 6c 2d 63 6f 6d 6d 61 6e 64 27 2e 22 unction'.and.`helpful-command'."
17e00 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 ...(interactive....(list.(helpfu
17e20 6c 2d 2d 72 65 61 64 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 43 61 6c 6c 61 62 l--read-symbol..........."Callab
17e40 6c 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 le:."...........(helpful--callab
17e60 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 23 27 66 62 6f 75 6e 64 70 le-at-point)...........#'fboundp
17e80 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 2d 73 77 69 74 63 )))...(helpful--update-and-switc
17ea0 68 2d 62 75 66 66 65 72 20 73 79 6d 62 6f 6c 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 h-buffer.symbol.t))..(defun.help
17ec0 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 70 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 52 65 74 75 ful--variable-p.(symbol)..."Retu
17ee0 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
17f00 6c 65 2e 22 0a 20 20 28 6f 72 20 28 67 65 74 20 73 79 6d 62 6f 6c 20 27 76 61 72 69 61 62 6c 65 le."...(or.(get.symbol.'variable
17f20 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 61 6e 64 20 28 62 6f 75 6e -documentation).......(and.(boun
17f40 64 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6b 65 79 77 dp.symbol)............(not.(keyw
17f60 6f 72 64 70 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 ordp.symbol))............(not.(e
17f80 71 20 73 79 6d 62 6f 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 q.symbol.nil))............(not.(
17fa0 65 71 20 73 79 6d 62 6f 6c 20 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c eq.symbol.t)))))..(defun.helpful
17fc0 2d 2d 62 6f 75 6e 64 2d 70 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e --bound-p.(symbol)..."Return.non
17fe0 2d 6e 69 6c 20 69 66 20 53 59 4d 42 4f 4c 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 2c 20 63 61 -nil.if.SYMBOL.is.a.variable,.ca
18000 6c 6c 61 62 6c 65 2c 20 6f 72 20 66 61 63 65 2e 0a 0a 54 68 69 73 20 64 69 66 66 65 72 73 20 66 llable,.or.face...This.differs.f
18020 72 6f 6d 20 60 62 6f 75 6e 64 70 27 20 62 65 63 61 75 73 65 20 77 65 20 64 6f 20 6e 6f 74 20 63 rom.`boundp'.because.we.do.not.c
18040 6f 6e 73 69 64 65 72 20 6e 69 6c 2c 20 74 0a 6f 72 20 3a 66 6f 6f 2e 22 0a 20 20 28 6f 72 20 28 onsider.nil,.t.or.:foo."...(or.(
18060 66 62 6f 75 6e 64 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d fboundp.symbol).......(helpful--
18080 76 61 72 69 61 62 6c 65 2d 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 28 66 61 63 65 70 20 variable-p.symbol).......(facep.
180a0 73 79 6d 62 6f 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 6f 6f 6b 6d symbol)))..(defun.helpful--bookm
180c0 61 72 6b 2d 6a 75 6d 70 20 28 62 6f 6f 6b 6d 61 72 6b 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e ark-jump.(bookmark)..."Create.an
180e0 64 20 73 77 69 74 63 68 20 74 6f 20 68 65 6c 70 66 75 6c 20 62 6f 6f 6b 6d 61 72 6b 20 42 4f 4f d.switch.to.helpful.bookmark.BOO
18100 4b 4d 41 52 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 6c 6c 61 62 6c 65 2d 70 20 28 62 6f 6f KMARK."...(let.((callable-p.(boo
18120 6b 6d 61 72 6b 2d 70 72 6f 70 2d 67 65 74 20 62 6f 6f 6b 6d 61 72 6b 20 27 63 61 6c 6c 61 62 6c kmark-prop-get.bookmark.'callabl
18140 65 2d 70 29 29 0a 20 20 20 20 20 20 20 20 28 73 79 6d 20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f e-p)).........(sym.(bookmark-pro
18160 70 2d 67 65 74 20 62 6f 6f 6b 6d 61 72 6b 20 27 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 28 70 p-get.bookmark.'sym)).........(p
18180 6f 73 69 74 69 6f 6e 20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f 70 2d 67 65 74 20 62 6f 6f 6b 6d osition.(bookmark-prop-get.bookm
181a0 61 72 6b 20 27 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 69 66 20 63 61 6c 6c 61 62 6c ark.'position))).....(if.callabl
181c0 65 2d 70 0a 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 20 73 79 e-p.........(helpful-callable.sy
181e0 6d 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 29 m).......(helpful-variable.sym))
18200 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 69 74 69 6f 6e 29 29 29 0a 0a 28 64 65 .....(goto-char.position)))..(de
18220 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 fun.helpful--bookmark-make-recor
18240 64 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 62 6f 6f 6b 6d 61 72 6b 20 72 65 63 6f 72 64 d.()..."Create.a.bookmark.record
18260 20 66 6f 72 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 73 2e 0a 0a 53 65 65 20 64 6f 63 73 20 .for.helpful.buffers...See.docs.
18280 6f 66 20 60 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 2d 66 75 6e 63 74 69 6f of.`bookmark-make-record-functio
182a0 6e 27 2e 22 0a 20 20 60 28 28 73 79 6d 20 2e 20 2c 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 29 0a 20 n'."...`((sym...,helpful--sym)..
182c0 20 20 20 28 63 61 6c 6c 61 62 6c 65 2d 70 20 2e 20 2c 68 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 ...(callable-p...,helpful--calla
182e0 62 6c 65 2d 70 29 0a 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 20 20 20 20 2e 20 2c 28 70 6f 69 6e ble-p).....(position......,(poin
18300 74 29 29 0a 20 20 20 20 28 68 61 6e 64 6c 65 72 20 20 20 20 20 2e 20 68 65 6c 70 66 75 6c 2d 2d t)).....(handler.......helpful--
18320 62 6f 6f 6b 6d 61 72 6b 2d 6a 75 6d 70 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c bookmark-jump)))..(defun.helpful
18340 2d 2d 63 6f 6e 76 65 72 74 2d 63 2d 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 20 76 61 72 29 0a 20 20 --convert-c-name.(symbol.var)...
18360 22 43 6f 6e 76 65 72 74 20 53 59 4d 42 4f 4c 20 66 72 6f 6d 20 61 20 43 20 6e 61 6d 65 20 74 6f "Convert.SYMBOL.from.a.C.name.to
18380 20 61 6e 20 45 6c 69 73 70 20 6e 61 6d 65 2e 0a 45 2e 67 2e 20 63 6f 6e 76 65 72 74 20 60 46 6d .an.Elisp.name..E.g..convert.`Fm
183a0 61 6b 65 5f 73 74 72 69 6e 67 27 20 74 6f 20 60 6d 61 6b 65 2d 73 74 72 69 6e 67 27 20 6f 72 0a ake_string'.to.`make-string'.or.
183c0 60 56 67 63 5f 63 6f 6e 73 5f 70 65 72 63 65 6e 74 61 67 65 27 20 74 6f 20 60 67 63 2d 63 6f 6e `Vgc_cons_percentage'.to.`gc-con
183e0 73 2d 70 65 72 63 65 6e 74 61 67 65 27 2e 20 49 6e 74 65 72 70 72 65 74 0a 53 59 4d 42 4f 4c 20 s-percentage'..Interpret.SYMBOL.
18400 61 73 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 20 69 66 20 56 41 52 2c 20 65 6c 73 65 20 61 20 as.variable.name.if.VAR,.else.a.
18420 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 2e 20 52 65 74 75 72 6e 0a 6e 69 6c 20 69 66 20 53 59 4d function.name..Return.nil.if.SYM
18440 42 4f 4c 20 64 6f 65 73 6e 27 74 20 62 65 67 69 6e 20 77 69 74 68 20 5c 22 46 5c 22 20 6f 72 20 BOL.doesn't.begin.with.\"F\".or.
18460 5c 22 56 5c 22 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d \"V\"."...(let.((string.(symbol-
18480 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 20 28 69 name.symbol)).........(prefix.(i
184a0 66 20 76 61 72 20 22 56 22 20 22 46 22 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 2d 73 74 f.var."V"."F"))).....(when.(s-st
184c0 61 72 74 73 2d 77 69 74 68 2d 70 20 70 72 65 66 69 78 20 73 74 72 69 6e 67 29 0a 20 20 20 20 20 arts-with-p.prefix.string)......
184e0 20 28 69 6e 74 65 72 6e 0a 20 20 20 20 20 20 20 28 73 2d 63 68 6f 70 2d 70 72 65 66 69 78 0a 20 .(intern........(s-chop-prefix..
18500 20 20 20 20 20 20 20 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 28 73 2d 72 65 70 6c 61 63 65 .......prefix.........(s-replace
18520 20 22 5f 22 20 22 2d 22 20 73 74 72 69 6e 67 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 ."_"."-".string))))))..(defun.he
18540 6c 70 66 75 6c 2d 2d 64 69 73 61 6d 62 69 67 75 61 74 65 20 28 73 79 6d 20 63 68 6f 69 63 65 73 lpful--disambiguate.(sym.choices
18560 29 0a 20 20 22 50 72 6f 6d 70 74 20 74 68 65 20 75 73 65 72 20 74 6f 20 64 69 73 61 6d 62 69 67 )..."Prompt.the.user.to.disambig
18580 75 61 74 65 20 53 59 4d 20 76 69 61 20 61 20 60 72 65 61 64 2d 63 68 61 72 2d 63 68 6f 69 63 65 uate.SYM.via.a.`read-char-choice
185a0 27 20 73 65 6c 65 63 74 69 6f 6e 2e 0a 0a 43 48 4f 49 43 45 53 20 69 73 20 61 20 6c 69 73 74 20 '.selection...CHOICES.is.a.list.
185c0 6f 66 20 74 75 70 6c 65 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 46 4e 20 44 45 53 43 20 43 of.tuples.of.the.form.(FN.DESC.C
185e0 48 41 52 29 2c 20 77 68 65 72 65 0a 0a 20 20 43 48 41 52 20 69 73 20 74 68 65 20 69 6e 70 75 74 HAR),.where....CHAR.is.the.input
18600 20 63 68 61 72 61 63 74 65 72 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 63 .character.associated.with.the.c
18620 68 6f 69 63 65 0a 20 20 44 45 53 43 20 69 73 20 61 20 73 68 6f 72 74 20 64 65 73 63 72 69 70 74 hoice...DESC.is.a.short.descript
18640 69 6f 6e 20 6f 66 20 74 68 65 20 63 68 6f 69 63 65 20 74 6f 20 64 69 73 70 6c 61 79 20 69 6e 20 ion.of.the.choice.to.display.in.
18660 74 68 65 20 70 72 6f 6d 70 74 2e 0a 20 20 46 4e 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e the.prompt....FN.is.the.function
18680 20 62 65 69 6e 67 20 63 68 6f 73 65 6e 2c 20 77 68 69 63 68 20 74 61 6b 65 73 20 53 59 4d 20 61 .being.chosen,.which.takes.SYM.a
186a0 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 2e 0a 0a 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 74 68 s.an.argument...For.instance,.th
186c0 65 20 63 68 6f 69 63 65 20 28 23 27 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 5c 22 5b e.choice.(#'helpful-variable.\"[
186e0 76 5d 61 72 69 61 62 6c 65 5c 22 20 3f 76 29 0a 63 61 6c 6c 73 20 28 68 65 6c 70 66 75 6c 2d 76 v]ariable\".?v).calls.(helpful-v
18700 61 72 69 61 62 6c 65 20 53 59 4d 29 20 77 68 65 6e 20 74 68 65 20 6b 65 79 20 60 76 27 20 69 73 ariable.SYM).when.the.key.`v'.is
18720 20 70 72 65 73 73 65 64 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 2e 22 0a 20 20 28 6c 65 74 2a .pressed.in.the.prompt."...(let*
18740 20 28 28 70 72 6f 6d 70 74 20 28 66 6f 72 6d 61 74 20 22 25 73 20 69 73 20 61 6d 62 69 67 75 6f .((prompt.(format."%s.is.ambiguo
18760 75 73 3a 20 64 65 73 63 72 69 62 65 20 25 73 20 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 us:.describe.%s.?"..............
18780 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 73 79 6d 62 6f 6c 2d ............(propertize.(symbol-
187a0 6e 61 6d 65 20 73 79 6d 29 20 27 66 61 63 65 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 name.sym).'face.font-lock-keywor
187c0 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-face).........................
187e0 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 2d 6c 61 6d 62 64 61 20 28 28 5f 20 64 65 73 63 20 5f 29 .(mapconcat.(-lambda.((_.desc._)
18800 29 20 64 65 73 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).desc).........................
18820 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 20 22 20 2f 20 22 29 29 29 0a 20 20 20 ............choices."./.")))....
18840 20 20 20 20 20 20 28 63 68 61 72 73 20 28 6d 61 70 63 61 72 20 28 2d 6c 61 6d 62 64 61 20 28 28 ......(chars.(mapcar.(-lambda.((
18860 5f 20 5f 20 63 68 61 72 29 29 20 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _._.char)).char)................
18880 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 6f 6f .........choices))..........(loo
188a0 6b 75 70 20 28 6d 61 70 63 61 72 20 28 2d 6c 61 6d 62 64 61 20 28 28 66 6e 20 5f 20 63 68 61 72 kup.(mapcar.(-lambda.((fn._.char
188c0 29 29 20 28 63 6f 6e 73 20 63 68 61 72 20 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )).(cons.char.fn))..............
188e0 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 ............choices))..........(
18900 69 6e 70 75 74 20 28 72 65 61 64 2d 63 68 61 72 2d 63 68 6f 69 63 65 20 70 72 6f 6d 70 74 20 63 input.(read-char-choice.prompt.c
18920 68 61 72 73 29 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 61 6c 69 73 74 2d 67 65 74 20 hars))).....(funcall.(alist-get.
18940 69 6e 70 75 74 20 6c 6f 6f 6b 75 70 29 20 73 79 6d 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f input.lookup).sym)))..;;;###auto
18960 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 73 79 6d 62 6f 6c 20 28 73 79 6d 62 load.(defun.helpful-symbol.(symb
18980 6f 6c 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 53 59 4d 42 4f 4c 2c 20 61 20 76 ol)..."Show.help.for.SYMBOL,.a.v
189a0 61 72 69 61 62 6c 65 2c 20 66 75 6e 63 74 69 6f 6e 2c 20 6d 61 63 72 6f 2c 20 6f 72 20 66 61 63 ariable,.function,.macro,.or.fac
189c0 65 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 27 20 e...See.also.`helpful-callable'.
189e0 61 6e 64 20 60 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 and.`helpful-variable'."...(inte
18a00 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-
18a20 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 53 79 6d 62 6f 6c 3a 20 22 0a 20 20 20 20 symbol..........."Symbol:.".....
18a40 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 29 ......(helpful--symbol-at-point)
18a60 0a 20 20 20 20 20 20 20 20 20 20 23 27 68 65 6c 70 66 75 6c 2d 2d 62 6f 75 6e 64 2d 70 29 29 29 ...........#'helpful--bound-p)))
18a80 0a 20 20 28 6c 65 74 20 28 63 68 6f 69 63 65 73 29 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 ...(let.(choices).....(when-let.
18aa0 28 63 2d 76 61 72 2d 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 6e 76 65 72 74 2d 63 2d 6e (c-var-sym.(helpful--convert-c-n
18ac0 61 6d 65 20 73 79 6d 62 6f 6c 20 74 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 ame.symbol.t)).......(push.(list
18ae0 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 63 .(lambda.(_).(helpful-variable.c
18b00 2d 76 61 72 2d 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 2d -var-sym))..................."c-
18b20 73 74 79 6c 65 20 5b 56 5d 61 72 69 61 62 6c 65 22 20 3f 56 29 0a 20 20 20 20 20 20 20 20 20 20 style.[V]ariable".?V)...........
18b40 20 20 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 63 2d 66 6e 2d ..choices)).....(when-let.(c-fn-
18b60 73 79 6d 20 28 68 65 6c 70 66 75 6c 2d 2d 63 6f 6e 76 65 72 74 2d 63 2d 6e 61 6d 65 20 73 79 6d sym.(helpful--convert-c-name.sym
18b80 62 6f 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 28 6c 61 6d bol.nil)).......(push.(list.(lam
18ba0 62 64 61 20 28 5f 29 20 28 68 65 6c 70 66 75 6c 2d 63 61 6c 6c 61 62 6c 65 20 63 2d 66 6e 2d 73 bda.(_).(helpful-callable.c-fn-s
18bc0 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 2d 73 74 79 6c 65 20 ym))..................."c-style.
18be0 5b 46 5d 75 6e 63 74 69 6f 6e 22 20 3f 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 [F]unction".?F).............choi
18c00 63 65 73 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 73 79 6d 62 6f 6c 29 ces)).....(when.(fboundp.symbol)
18c20 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 23 27 68 65 6c 70 66 75 6c 2d 63 61 6c .......(push.(list.#'helpful-cal
18c40 6c 61 62 6c 65 20 22 5b 63 5d 61 6c 6c 61 62 6c 65 22 20 3f 63 29 20 63 68 6f 69 63 65 73 29 29 lable."[c]allable".?c).choices))
18c60 0a 20 20 20 20 28 77 68 65 6e 20 28 62 6f 75 6e 64 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 .....(when.(boundp.symbol)......
18c80 20 28 70 75 73 68 20 28 6c 69 73 74 20 23 27 68 65 6c 70 66 75 6c 2d 76 61 72 69 61 62 6c 65 20 .(push.(list.#'helpful-variable.
18ca0 22 5b 76 5d 61 72 69 61 62 6c 65 22 20 3f 76 29 20 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 28 "[v]ariable".?v).choices)).....(
18cc0 77 68 65 6e 20 28 66 61 63 65 70 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 when.(facep.symbol).......(push.
18ce0 28 6c 69 73 74 20 28 6c 61 6d 62 64 61 20 28 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 (list.(lambda.(face)............
18d00 20 20 20 20 20 20 20 20 20 28 64 65 73 63 72 69 62 65 2d 66 61 63 65 20 66 61 63 65 29 0a 20 20 .........(describe-face.face)...
18d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 65 6c 70 66 ..................(funcall.helpf
18d40 75 6c 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 28 68 65 6c 70 2d ul-switch-buffer-function.(help-
18d60 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5b 66 5d buffer)))..................."[f]
18d80 61 63 65 22 20 3f 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6f 69 63 65 73 29 29 0a 20 ace".?f).............choices))..
18da0 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6e 75 6c 6c 20 63 68 6f 69 63 65 73 29 0a 20 20 ...(cond......((null.choices)...
18dc0 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 62 6f 75 6e 64 3a 20 25 53 22 20 ....(user-error."Not.bound:.%S".
18de0 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 28 28 3d 20 31 20 28 6c 65 6e 67 74 68 20 63 68 6f 69 symbol))......((=.1.(length.choi
18e00 63 65 73 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 61 72 20 63 68 6f 69 63 ces)).......(funcall.(caar.choic
18e20 65 73 29 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 28 74 20 28 68 65 6c 70 66 75 6c 2d 2d 64 es).symbol))......(t.(helpful--d
18e40 69 73 61 6d 62 69 67 75 61 74 65 20 73 79 6d 62 6f 6c 20 63 68 6f 69 63 65 73 29 29 29 29 29 0a isambiguate.symbol.choices))))).
18e60 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 76 .;;;###autoload.(defun.helpful-v
18e80 61 72 69 61 62 6c 65 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 6f ariable.(symbol)..."Show.help.fo
18ea0 72 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 64 20 53 59 4d 42 4f 4c 2e 22 0a 20 20 28 69 6e 74 r.variable.named.SYMBOL."...(int
18ec0 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 68 65 6c 70 66 75 6c 2d 2d 72 65 61 64 eractive....(list.(helpful--read
18ee0 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 22 56 61 72 69 61 62 6c 65 3a 20 22 0a 20 -symbol..........."Variable:."..
18f00 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 .........(helpful--variable-at-p
18f20 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 23 27 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 oint)...........#'helpful--varia
18f40 62 6c 65 2d 70 29 29 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 75 70 64 61 74 65 2d 61 6e 64 2d ble-p)))...(helpful--update-and-
18f60 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 79 6d 62 6f 6c 20 6e 69 6c 29 29 0a 0a 28 64 65 66 switch-buffer.symbol.nil))..(def
18f80 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 2d 65 78 un.helpful--variable-at-point-ex
18fa0 61 63 74 6c 79 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 74 actly.()..."Return.the.symbol.at
18fc0 20 70 6f 69 6e 74 2c 20 69 66 20 69 74 27 73 20 61 20 62 6f 75 6e 64 20 76 61 72 69 61 62 6c 65 .point,.if.it's.a.bound.variable
18fe0 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61 72 20 28 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 ."...(let.((var.(variable-at-poi
19000 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 60 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 27 nt))).....;;.`variable-at-point'
19020 20 75 73 65 73 20 30 20 72 61 74 68 65 72 20 74 68 61 6e 20 6e 69 6c 20 74 6f 20 73 69 67 6e 69 .uses.0.rather.than.nil.to.signi
19040 66 79 20 6e 6f 20 73 79 6d 62 6f 6c 0a 20 20 20 20 3b 3b 20 61 74 20 70 6f 69 6e 74 20 28 70 72 fy.no.symbol.....;;.at.point.(pr
19060 65 73 75 6d 61 62 6c 79 20 62 65 63 61 75 73 65 20 27 6e 69 6c 20 69 73 20 61 20 73 79 6d 62 6f esumably.because.'nil.is.a.symbo
19080 6c 29 2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 79 6d 62 6f 6c 70 20 76 61 72 29 0a 20 20 l)......(unless.(symbolp.var)...
190a0 20 20 20 20 28 73 65 74 71 20 76 61 72 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 ....(setq.var.nil)).....(when.(h
190c0 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 70 20 76 61 72 29 0a 20 20 20 20 20 20 76 61 elpful--variable-p.var).......va
190e0 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 64 r)))..(defun.helpful--variable-d
19100 65 66 69 6e 65 64 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 efined-at-point.()..."Return.the
19120 20 76 61 72 69 61 62 6c 65 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 65 6e .variable.defined.in.the.form.en
19140 63 6c 6f 73 69 6e 67 20 70 6f 69 6e 74 2e 22 0a 20 20 3b 3b 20 54 4f 44 4f 3a 20 64 6f 20 74 68 closing.point."...;;.TODO:.do.th
19160 65 20 73 61 6d 65 20 74 68 69 6e 67 20 69 66 20 70 6f 69 6e 74 20 69 73 20 6a 75 73 74 20 62 65 e.same.thing.if.point.is.just.be
19180 66 6f 72 65 20 61 20 74 6f 70 2d 6c 65 76 65 6c 20 66 6f 72 6d 2e 0a 20 20 28 73 61 76 65 2d 65 fore.a.top-level.form....(save-e
191a0 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 xcursion.....(save-restriction..
191c0 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 70 73 73 20 .....(widen).......(let*.((ppss.
191e0 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 78 (syntax-ppss))..............(sex
19200 70 2d 73 74 61 72 74 20 28 6e 74 68 20 31 20 70 70 73 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 p-start.(nth.1.ppss))...........
19220 20 20 20 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 65 78 70 2d 73 74 61 72 ...sexp).........(when.sexp-star
19240 74 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 65 78 70 2d 73 74 61 72 t...........(goto-char.sexp-star
19260 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 65 78 70 20 28 63 6f 6e 64 69 74 69 t)...........(setq.sexp.(conditi
19280 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on-case.nil.....................
192a0 20 20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 .....(read.(current-buffer))....
192c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 ....................(error.nil))
192e0 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 28 63 61 72 2d 73 61 66 )...........(when.(memq.(car-saf
19300 65 20 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c e.sexp).......................(l
19320 69 73 74 20 27 64 65 66 76 61 72 20 27 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 27 64 65 66 63 75 ist.'defvar.'defvar-local.'defcu
19340 73 74 6f 6d 20 27 64 65 66 63 6f 6e 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 stom.'defconst)).............(nt
19360 68 20 31 20 73 65 78 70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d h.1.sexp)))))))..(defun.helpful-
19380 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 -variable-at-point.()..."Return.
193a0 74 68 65 20 76 61 72 69 61 62 6c 65 20 65 78 61 63 74 6c 79 20 75 6e 64 65 72 20 70 6f 69 6e 74 the.variable.exactly.under.point
193c0 2c 20 6f 72 20 64 65 66 69 6e 65 64 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 ,.or.defined.at.point."...(let.(
193e0 28 76 61 72 20 28 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 (var.(helpful--variable-at-point
19400 2d 65 78 61 63 74 6c 79 29 29 29 0a 20 20 20 20 28 69 66 20 76 61 72 0a 20 20 20 20 20 20 20 20 -exactly))).....(if.var.........
19420 76 61 72 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 76 61 72 20 28 68 65 6c 70 66 75 6c 2d 2d 76 var.......(let.((var.(helpful--v
19440 61 72 69 61 62 6c 65 2d 64 65 66 69 6e 65 64 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 ariable-defined-at-point))).....
19460 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 70 20 76 ....(when.(helpful--variable-p.v
19480 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 76 61 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 ar)...........var)))))..(defun.h
194a0 65 6c 70 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 28 elpful--callable-at-point.()...(
194c0 6c 65 74 20 28 28 73 79 6d 20 28 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 let.((sym.(symbol-at-point))....
194e0 20 20 20 20 20 28 65 6e 63 6c 6f 73 69 6e 67 2d 73 79 6d 20 28 66 75 6e 63 74 69 6f 6e 2d 63 61 .....(enclosing-sym.(function-ca
19500 6c 6c 65 64 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 lled-at-point))).....(if.(fbound
19520 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 73 79 6d 0a 20 20 20 20 20 20 65 6e 63 6c 6f 73 69 p.sym).........sym.......enclosi
19540 6e 67 2d 73 79 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 62 6f ng-sym)))..(defun.helpful--symbo
19560 6c 2d 61 74 2d 70 6f 69 6e 74 2d 65 78 61 63 74 6c 79 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 l-at-point-exactly.()..."Return.
19580 74 68 65 20 73 79 6d 62 6f 6c 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 20 69 74 27 73 20 62 6f 75 the.symbol.at.point,.if.it's.bou
195a0 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 nd."...(let.((sym.(symbol-at-poi
195c0 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 65 6c 70 66 75 6c 2d 2d 62 6f 75 6e 64 2d nt))).....(when.(helpful--bound-
195e0 70 20 73 79 6d 29 0a 20 20 20 20 20 20 73 79 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 p.sym).......sym)))..(defun.help
19600 66 75 6c 2d 2d 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 46 69 6e 64 20 ful--symbol-at-point.()..."Find.
19620 74 68 65 20 6d 6f 73 74 20 72 65 6c 65 76 61 6e 74 20 73 79 6d 62 6f 6c 20 61 74 20 6f 72 20 61 the.most.relevant.symbol.at.or.a
19640 72 6f 75 6e 64 20 70 6f 69 6e 74 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 6e 6f 74 68 round.point..Returns.nil.if.noth
19660 69 6e 67 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6f 72 0a 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 73 ing.found."...(or....(helpful--s
19680 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 2d 65 78 61 63 74 6c 79 29 0a 20 20 20 28 68 65 6c 70 ymbol-at-point-exactly)....(help
196a0 66 75 6c 2d 2d 63 61 6c 6c 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 28 68 65 6c 70 ful--callable-at-point)....(help
196c0 66 75 6c 2d 2d 76 61 72 69 61 62 6c 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 0a 3b 3b 3b 23 23 ful--variable-at-point)))..;;;##
196e0 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 61 74 2d 70 6f 69 6e #autoload.(defun.helpful-at-poin
19700 74 20 28 29 0a 20 20 22 53 68 6f 77 20 68 65 6c 70 20 66 6f 72 20 74 68 65 20 73 79 6d 62 6f 6c t.()..."Show.help.for.the.symbol
19720 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 2d .at.point."...(interactive)...(-
19740 69 66 2d 6c 65 74 20 28 73 79 6d 62 6f 6c 20 28 68 65 6c 70 66 75 6c 2d 2d 73 79 6d 62 6f 6c 2d if-let.(symbol.(helpful--symbol-
19760 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 73 79 6d 62 6f 6c at-point)).......(helpful-symbol
19780 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 65 72 65 20 .symbol).....(user-error."There.
197a0 69 73 20 6e 6f 20 73 79 6d 62 6f 6c 20 61 74 20 70 6f 69 6e 74 2e 22 29 29 29 0a 0a 28 64 65 66 is.no.symbol.at.point.")))..(def
197c0 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 69 6d 65 6e 75 2d 69 6e 64 65 78 20 28 29 0a 20 20 22 52 65 un.helpful--imenu-index.()..."Re
197e0 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 68 65 61 64 69 6e 67 73 20 69 6e 20 74 68 65 20 63 turn.a.list.of.headings.in.the.c
19800 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 73 75 69 74 61 62 6c 65 20 66 6f 72 0a 69 6d 65 6e urrent.buffer,.suitable.for.imen
19820 75 2e 22 0a 20 20 28 6c 65 74 20 28 68 65 61 64 69 6e 67 73 29 0a 20 20 20 20 28 67 6f 74 6f 2d u."...(let.(headings).....(goto-
19840 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f char.(point-min)).....(while.(no
19860 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 67 65 74 2d 74 t.(eobp)).......(when.(eq.(get-t
19880 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 29 0a 20 20 20 20 ext-property.(point).'face).....
198a0 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 29 0a 20 20 ............'helpful-heading)...
198c0 20 20 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 ......(push..........(cons......
198e0 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 .....(buffer-substring-no-proper
19900 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d ties............(line-beginning-
19920 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 position).(line-end-position))..
19940 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f .........(line-beginning-positio
19960 6e 29 29 0a 20 20 20 20 20 20 20 20 20 68 65 61 64 69 6e 67 73 29 29 0a 20 20 20 20 20 20 28 66 n))..........headings)).......(f
19980 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 68 65 61 64 orward-line)).....(nreverse.head
199a0 69 6e 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 66 6c 61 73 68 2d 72 ings)))..(defun.helpful--flash-r
199c0 65 67 69 6f 6e 20 28 73 74 61 72 74 20 65 6e 64 29 0a 20 20 22 54 65 6d 70 6f 72 61 72 69 6c 79 egion.(start.end)..."Temporarily
199e0 20 68 69 67 68 6c 69 67 68 74 20 72 65 67 69 6f 6e 20 66 72 6f 6d 20 53 54 41 52 54 20 74 6f 20 .highlight.region.from.START.to.
19a00 45 4e 44 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 76 65 72 6c 61 79 20 28 6d 61 6b 65 2d 6f 76 65 END."...(let.((overlay.(make-ove
19a20 72 6c 61 79 20 73 74 61 72 74 20 65 6e 64 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 rlay.start.end))).....(overlay-p
19a40 75 74 20 6f 76 65 72 6c 61 79 20 27 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 0a 20 20 20 ut.overlay.'face.'highlight)....
19a60 20 28 72 75 6e 2d 77 69 74 68 2d 74 69 6d 65 72 20 31 2e 35 20 6e 69 6c 20 27 64 65 6c 65 74 65 .(run-with-timer.1.5.nil.'delete
19a80 2d 6f 76 65 72 6c 61 79 20 6f 76 65 72 6c 61 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 -overlay.overlay)))..(defun.help
19aa0 66 75 6c 2d 76 69 73 69 74 2d 72 65 66 65 72 65 6e 63 65 20 28 29 0a 20 20 22 47 6f 20 74 6f 20 ful-visit-reference.()..."Go.to.
19ac0 74 68 65 20 72 65 66 65 72 65 6e 63 65 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 the.reference.at.point."...(inte
19ae0 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 20 68 65 6c 70 66 75 6c 2d 2d ractive)...(let*.((sym.helpful--
19b00 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 28 67 65 74 2d 74 65 78 74 2d 70 72 sym)..........(path.(get-text-pr
19b20 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 75 6c 2d 70 61 74 68 29 29 0a 20 operty.(point).'helpful-path))..
19b40 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 ........(pos.(get-text-property.
19b60 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 (point).'helpful-pos))..........
19b80 28 70 6f 73 2d 69 73 2d 73 74 61 72 74 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 (pos-is-start.(get-text-property
19ba0 20 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 2d 69 73 2d 73 74 61 72 74 29 29 .(point).'helpful-pos-is-start))
19bc0 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 61 74 68 20 70 6f 73 29 0a 20 20 20 20 20 ).....(when.(and.path.pos)......
19be0 20 3b 3b 20 49 66 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 61 20 73 6f 75 72 63 65 .;;.If.we're.looking.at.a.source
19c00 20 65 78 63 65 72 70 74 2c 20 63 61 6c 63 75 6c 61 74 65 20 74 68 65 20 6f 66 66 73 65 74 20 6f .excerpt,.calculate.the.offset.o
19c20 66 0a 20 20 20 20 20 20 3b 3b 20 70 6f 69 6e 74 2c 20 73 6f 20 77 65 20 64 6f 6e 27 74 20 6a 75 f.......;;.point,.so.we.don't.ju
19c40 73 74 20 67 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 65 78 63 65 72 70 74 2e 0a st.go.the.start.of.the.excerpt..
19c60 20 20 20 20 20 20 28 77 68 65 6e 20 70 6f 73 2d 69 73 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 ......(when.pos-is-start........
19c80 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 .(save-excursion...........(let.
19ca0 28 28 6f 66 66 73 65 74 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 ((offset.0)).............(while.
19cc0 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 (and.....................(get-te
19ce0 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 68 65 6c 70 66 75 6c 2d 70 6f 73 xt-property.(point).'helpful-pos
19d00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 6f 62 70 ).....................(not.(eobp
19d20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 )))...............(backward-char
19d40 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 .1)...............(setq.offset.(
19d60 31 2b 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 6e 20 74 1+.offset))).............;;.On.t
19d80 68 65 20 6c 61 73 74 20 69 74 65 72 61 74 69 6f 6e 20 77 65 20 6d 6f 76 65 64 20 6f 75 74 73 69 he.last.iteration.we.moved.outsi
19da0 64 65 20 74 68 65 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 78 63 de.the.source.............;;.exc
19dc0 65 72 70 74 2c 20 73 6f 20 77 65 20 6f 76 65 72 63 6f 75 6e 74 65 64 20 62 79 20 6f 6e 65 20 63 erpt,.so.we.overcounted.by.one.c
19de0 68 61 72 61 63 74 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 haracter..............(setq.offs
19e00 65 74 20 28 31 2d 20 6f 66 66 73 65 74 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 et.(1-.offset))..............;;.
19e20 53 65 74 20 50 4f 53 20 73 6f 20 77 65 20 67 6f 20 74 6f 20 65 78 61 63 74 6c 79 20 74 68 65 20 Set.POS.so.we.go.to.exactly.the.
19e40 70 6c 61 63 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 place.in.the.source.............
19e60 3b 3b 20 63 6f 64 65 20 77 68 65 72 65 20 70 6f 69 6e 74 20 77 61 73 20 69 6e 20 74 68 65 20 68 ;;.code.where.point.was.in.the.h
19e80 65 6c 70 66 75 6c 20 65 78 63 65 72 70 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 elpful.excerpt..............(set
19ea0 71 20 70 6f 73 20 28 2b 20 70 6f 73 20 6f 66 66 73 65 74 29 29 29 29 29 0a 0a 20 20 20 20 20 20 q.pos.(+.pos.offset)))))........
19ec0 28 66 69 6e 64 2d 66 69 6c 65 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d (find-file.path).......(helpful-
19ee0 2d 67 6f 74 6f 2d 63 68 61 72 2d 77 69 64 65 6e 20 70 6f 73 29 0a 20 20 20 20 20 20 28 72 65 63 -goto-char-widen.pos).......(rec
19f00 65 6e 74 65 72 20 30 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 enter.0).......(save-excursion..
19f20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65 66 75 6e 2d 65 6e 64 20 28 73 63 61 6e 2d 73 65 .......(let.((defun-end.(scan-se
19f40 78 70 73 20 28 70 6f 69 6e 74 29 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c xps.(point).1)))...........(whil
19f60 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 e.(re-search-forward............
19f80 20 20 20 20 20 20 20 28 72 78 2d 74 6f 2d 73 74 72 69 6e 67 20 60 28 73 65 71 20 73 79 6d 62 6f .......(rx-to-string.`(seq.symbo
19fa0 6c 2d 73 74 61 72 74 20 2c 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 20 73 79 6d 62 6f l-start.,(symbol-name.sym).symbo
19fc0 6c 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 75 6e 2d l-end))...................defun-
19fe0 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 70 66 75 6c 2d 2d 66 6c 61 end.t).............(helpful--fla
1a000 73 68 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d sh-region.(match-beginning.0).(m
1a020 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 atch-end.0))))))))..(defun.helpf
1a040 75 6c 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 20 28 29 0a 20 20 22 4b 69 6c 6c 20 61 6c 6c 20 60 ul-kill-buffers.()..."Kill.all.`
1a060 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 73 2e 0a 0a 53 65 65 20 61 6c 73 6f helpful-mode'.buffers...See.also
1a080 20 60 68 65 6c 70 66 75 6c 2d 6d 61 78 2d 62 75 66 66 65 72 73 27 2e 22 0a 20 20 28 69 6e 74 65 .`helpful-max-buffers'."...(inte
1a0a0 72 61 63 74 69 76 65 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 62 75 66 66 65 72 20 28 62 75 66 66 ractive)...(dolist.(buffer.(buff
1a0c0 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 62 75 66 66 65 72 2d er-list)).....(when.(eq.(buffer-
1a0e0 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 62 75 66 66 65 72 29 20 local-value.'major-mode.buffer).
1a100 27 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 'helpful-mode).......(kill-buffe
1a120 72 20 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 68 65 6c 70 66 75 6c 2d 6d 6f r.buffer))))..(defvar.helpful-mo
1a140 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 2a 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 de-map...(let*.((map.(make-spars
1a160 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 e-keymap))).....(define-key.map.
1a180 28 6b 62 64 20 22 67 22 29 20 23 27 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 0a 20 20 20 20 (kbd."g").#'helpful-update).....
1a1a0 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 72 65 6d 61 70 20 72 65 76 65 72 74 2d 62 75 (define-key.map.[remap.revert-bu
1a1c0 66 66 65 72 5d 20 23 27 68 65 6c 70 66 75 6c 2d 75 70 64 61 74 65 29 0a 20 20 20 20 28 77 68 65 ffer].#'helpful-update).....(whe
1a1e0 6e 20 28 66 62 6f 75 6e 64 70 20 27 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 71 75 69 63 6b 29 n.(fboundp.'revert-buffer-quick)
1a200 0a 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 72 65 6d 61 70 20 72 65 .......(define-key.map.[remap.re
1a220 76 65 72 74 2d 62 75 66 66 65 72 2d 71 75 69 63 6b 5d 20 23 27 68 65 6c 70 66 75 6c 2d 75 70 64 vert-buffer-quick].#'helpful-upd
1a240 61 74 65 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 ate))......(define-key.map.(kbd.
1a260 22 52 45 54 22 29 20 23 27 68 65 6c 70 66 75 6c 2d 76 69 73 69 74 2d 72 65 66 65 72 65 6e 63 65 "RET").#'helpful-visit-reference
1a280 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 54 41 42 )......(define-key.map.(kbd."TAB
1a2a0 22 29 20 23 27 66 6f 72 77 61 72 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 ").#'forward-button).....(define
1a2c0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 62 61 63 6b 74 61 62 3e 22 29 20 23 27 62 61 63 -key.map.(kbd."<backtab>").#'bac
1a2e0 6b 77 61 72 64 2d 62 75 74 74 6f 6e 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d kward-button)......(define-key.m
1a300 61 70 20 28 6b 62 64 20 22 6e 22 29 20 23 27 66 6f 72 77 61 72 64 2d 62 75 74 74 6f 6e 29 0a 20 ap.(kbd."n").#'forward-button)..
1a320 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 23 27 62 ...(define-key.map.(kbd."p").#'b
1a340 61 63 6b 77 61 72 64 2d 62 75 74 74 6f 6e 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d ackward-button).....map)..."Keym
1a360 61 70 20 66 6f 72 20 60 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 63 6c 61 ap.for.`helpful-mode'.")..(decla
1a380 72 65 2d 66 75 6e 63 74 69 6f 6e 20 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f 70 2d 67 65 74 20 22 62 re-function.bookmark-prop-get."b
1a3a0 6f 6f 6b 6d 61 72 6b 22 20 28 62 6f 6f 6b 6d 61 72 6b 20 70 72 6f 70 29 29 0a 28 64 65 63 6c 61 ookmark".(bookmark.prop)).(decla
1a3c0 72 65 2d 66 75 6e 63 74 69 6f 6e 20 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 re-function.bookmark-make-record
1a3e0 2d 64 65 66 61 75 6c 74 20 22 62 6f 6f 6b 6d 61 72 6b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 -default."bookmark".............
1a400 20 20 20 20 20 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 66 69 6c 65 20 6e 6f 2d 63 6f 6e 74 ......(&optional.no-file.no-cont
1a420 65 78 74 20 70 6f 73 6e 29 29 0a 3b 3b 20 45 6e 73 75 72 65 20 74 68 69 73 20 76 61 72 69 61 62 ext.posn)).;;.Ensure.this.variab
1a440 6c 65 20 69 73 20 64 65 66 69 6e 65 64 20 65 76 65 6e 20 69 66 20 62 6f 6f 6b 6d 61 72 6b 2e 65 le.is.defined.even.if.bookmark.e
1a460 6c 20 69 73 6e 27 74 20 6c 6f 61 64 65 64 0a 3b 3b 20 79 65 74 2e 20 54 68 69 73 20 66 6f 6c 6c l.isn't.loaded.;;.yet..This.foll
1a480 6f 77 73 20 74 68 65 20 70 61 74 74 65 72 6e 20 69 6e 20 68 65 6c 70 2d 6d 6f 64 65 2e 65 6c 2e ows.the.pattern.in.help-mode.el.
1a4a0 67 7a 2e 0a 3b 3b 20 54 4f 44 4f 3a 20 66 69 6e 64 20 61 20 63 6c 65 61 6e 65 72 20 73 6f 6c 75 gz..;;.TODO:.find.a.cleaner.solu
1a4c0 74 69 6f 6e 2e 0a 28 64 65 66 76 61 72 20 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f tion..(defvar.bookmark-make-reco
1a4e0 72 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 61 64 rd-function)..(defun.helpful--ad
1a500 64 2d 73 75 70 70 6f 72 74 2d 66 6f 72 2d 6f 72 67 2d 6c 69 6e 6b 73 20 28 29 0a 20 20 22 49 6d d-support-for-org-links.()..."Im
1a520 70 72 6f 76 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6f 72 67 20 5c 22 68 65 6c 70 5c 22 20 6c prove.support.for.org.\"help\".l
1a540 69 6e 6b 73 20 74 68 72 6f 75 67 68 20 68 65 6c 70 66 75 6c 2e 22 0a 20 20 28 68 65 6c 70 66 75 inks.through.helpful."...(helpfu
1a560 6c 2d 2d 73 75 70 70 6f 72 74 2d 73 74 6f 72 69 6e 67 2d 6f 72 67 2d 6c 69 6e 6b 73 29 0a 20 20 l--support-storing-org-links)...
1a580 28 68 65 6c 70 66 75 6c 2d 2d 70 72 65 66 65 72 2d 68 65 6c 70 66 75 6c 2d 77 68 65 6e 2d 66 6f (helpful--prefer-helpful-when-fo
1a5a0 6c 6c 6f 77 69 6e 67 2d 6f 72 67 2d 6c 69 6e 6b 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 llowing-org-link))..(defun.helpf
1a5c0 75 6c 2d 2d 73 75 70 70 6f 72 74 2d 73 74 6f 72 69 6e 67 2d 6f 72 67 2d 6c 69 6e 6b 73 20 28 29 ul--support-storing-org-links.()
1a5e0 0a 20 20 22 4d 61 6b 65 20 60 6f 72 67 2d 73 74 6f 72 65 2d 6c 69 6e 6b 27 20 69 6e 20 61 20 68 ..."Make.`org-store-link'.in.a.h
1a600 65 6c 70 66 75 6c 20 62 75 66 66 65 72 20 72 65 74 75 72 6e 20 61 20 5c 22 68 65 6c 70 5c 22 20 elpful.buffer.return.a.\"help\".
1a620 6c 69 6e 6b 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 link."...(when.(and.(fboundp.'or
1a640 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 61 72 61 6d 65 74 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 g-link-set-parameters)..........
1a660 20 20 20 20 28 6e 6f 74 20 28 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 28 6f 72 67 2d 6c 69 6e 6b 2d ....(not.(-contains-p.(org-link-
1a680 74 79 70 65 73 29 20 22 68 65 6c 70 66 75 6c 22 29 29 29 0a 20 20 20 20 28 6f 72 67 2d 6c 69 6e types)."helpful"))).....(org-lin
1a6a0 6b 2d 73 65 74 2d 70 61 72 61 6d 65 74 65 72 73 20 22 68 65 6c 70 66 75 6c 22 0a 20 20 20 20 20 k-set-parameters."helpful"......
1a6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 6f 72 65 20 23 ........................:store.#
1a6e0 27 68 65 6c 70 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 29 29 29 0a 0a 28 64 65 'helpful--org-link-store)))..(de
1a700 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 20 28 29 0a 20 fun.helpful--org-link-store.()..
1a720 20 22 53 74 6f 72 65 20 5c 22 68 65 6c 70 5c 22 20 74 79 70 65 20 6c 69 6e 6b 20 77 68 65 6e 20 ."Store.\"help\".type.link.when.
1a740 69 6e 20 61 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28 64 in.a.helpful.buffer."...(when.(d
1a760 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 68 65 6c 70 66 75 6c 2d 6d 6f 64 65 29 0a 20 20 20 erived-mode-p.'helpful-mode)....
1a780 20 3b 3b 20 43 72 65 61 74 65 20 61 20 22 68 65 6c 70 22 20 6c 69 6e 6b 20 69 6e 73 74 65 61 64 .;;.Create.a."help".link.instead
1a7a0 20 6f 66 20 61 20 64 65 64 69 63 61 74 65 64 20 22 68 65 6c 70 66 75 6c 22 20 6c 69 6e 6b 3a 20 .of.a.dedicated."helpful".link:.
1a7c0 74 68 65 0a 20 20 20 20 3b 3b 20 61 75 74 68 6f 72 20 6f 66 20 74 68 65 20 4f 72 67 20 64 6f 63 the.....;;.author.of.the.Org.doc
1a7e0 75 6d 65 6e 74 20 75 73 65 73 20 68 65 6c 66 75 6c 2c 20 62 75 74 20 74 68 69 73 20 69 73 20 6e ument.uses.helful,.but.this.is.n
1a800 6f 74 0a 20 20 20 20 3b 3b 20 6e 65 63 65 73 73 61 72 69 6c 79 20 74 68 65 20 63 61 73 65 20 6f ot.....;;.necessarily.the.case.o
1a820 66 20 74 68 65 20 72 65 61 64 65 72 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 2e 0a 20 20 f.the.reader.of.the.document....
1a840 20 20 28 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 2d 70 72 6f 70 73 20 3a 74 79 70 65 20 22 68 ..(org-link-store-props.:type."h
1a860 65 6c 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a elp"...........................:
1a880 6c 69 6e 6b 20 28 66 6f 72 6d 61 74 20 22 68 65 6c 70 3a 25 73 22 20 68 65 6c 70 66 75 6c 2d 2d link.(format."help:%s".helpful--
1a8a0 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a sym)...........................:
1a8c0 64 65 73 63 72 69 70 74 69 6f 6e 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 description.nil)))..(defun.helpf
1a8e0 75 6c 2d 2d 70 72 65 66 65 72 2d 68 65 6c 70 66 75 6c 2d 77 68 65 6e 2d 66 6f 6c 6c 6f 77 69 6e ul--prefer-helpful-when-followin
1a900 67 2d 6f 72 67 2d 6c 69 6e 6b 20 28 29 0a 20 20 22 50 72 65 66 65 72 20 68 65 6c 70 66 75 6c 20 g-org-link.()..."Prefer.helpful.
1a920 77 68 65 6e 20 75 73 69 6e 67 20 60 6f 72 67 2d 6f 70 65 6e 2d 61 74 2d 70 6f 69 6e 74 27 20 6f when.using.`org-open-at-point'.o
1a940 6e 20 61 20 5c 22 68 65 6c 70 5c 22 20 6c 69 6e 6b 2e 22 0a 20 20 28 77 68 65 6e 20 28 66 62 6f n.a.\"help\".link."...(when.(fbo
1a960 75 6e 64 70 20 27 6f 72 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 61 72 61 6d 65 74 65 72 73 29 0a 20 undp.'org-link-set-parameters)..
1a980 20 20 20 28 6c 65 74 20 28 28 66 6f 6c 6c 6f 77 2d 66 75 6e 63 74 69 6f 6e 20 28 6f 72 67 2d 6c ...(let.((follow-function.(org-l
1a9a0 69 6e 6b 2d 67 65 74 2d 70 61 72 61 6d 65 74 65 72 20 22 68 65 6c 70 22 20 3a 66 6f 6c 6c 6f 77 ink-get-parameter."help".:follow
1a9c0 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 66 6f 6c 6c ))).......(when.(not.(equal.foll
1a9e0 6f 77 2d 66 75 6e 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d ow-function.#'helpful--org-link-
1aa00 66 6f 6c 6c 6f 77 29 29 0a 20 20 20 20 20 20 20 20 28 6f 72 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 follow)).........(org-link-set-p
1aa20 61 72 61 6d 65 74 65 72 73 20 22 68 65 6c 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arameters."help"................
1aa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 6c 6c 6f 77 20 23 27 68 65 6c 70 ..................:follow.#'help
1aa60 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 29 29 29 29 29 0a 0a 28 64 65 66 75 ful--org-link-follow)))))..(defu
1aa80 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 20 28 6c 69 6e 6b n.helpful--org-link-follow.(link
1aaa0 20 5f 29 0a 20 20 28 68 65 6c 70 66 75 6c 2d 73 79 6d 62 6f 6c 20 28 69 6e 74 65 72 6e 20 6c 69 ._)...(helpful-symbol.(intern.li
1aac0 6e 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 65 6c 70 66 75 6c 2d 2d 6f 75 74 6c 69 6e 65 2d 66 nk)))..(defun.helpful--outline-f
1aae0 75 6e 63 74 69 6f 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 6f 75 6e 64 20 6d 6f 76 65 20 62 61 unction.(&optional.bound.move.ba
1ab00 63 6b 77 61 72 64 20 6c 6f 6f 6b 69 6e 67 2d 61 74 29 0a 20 20 22 60 6f 75 74 6c 69 6e 65 2d 73 ckward.looking-at)..."`outline-s
1ab20 65 61 72 63 68 2d 66 75 6e 63 74 69 6f 6e 27 20 66 6f 72 20 60 68 65 6c 70 66 75 6c 2d 6d 6f 64 earch-function'.for.`helpful-mod
1ab40 65 60 2e 0a 53 65 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 60 6f 75 74 6c 69 6e e`..See.documentation.of.`outlin
1ab60 65 2d 73 65 61 72 63 68 2d 66 75 6e 63 74 69 6f 6e 27 20 66 6f 72 20 42 4f 55 4e 44 2c 20 4d 4f e-search-function'.for.BOUND,.MO
1ab80 56 45 2c 0a 42 41 43 4b 57 41 52 44 20 61 6e 64 20 4c 4f 4f 4b 49 4e 47 2d 41 54 2e 22 0a 20 20 VE,.BACKWARD.and.LOOKING-AT."...
1aba0 28 69 66 20 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 28 65 71 20 27 68 65 6c 70 66 75 (if.looking-at.......(eq.'helpfu
1abc0 6c 2d 68 65 61 64 69 6e 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f l-heading.(get-text-property.(po
1abe0 69 6e 74 29 20 27 66 61 63 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 68 65 61 64 69 6e 67 2d int).'face)).....(let.((heading-
1ac00 66 6f 75 6e 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 6f 75 6e 64 20 28 69 66 20 found.nil)...........(bound.(if.
1ac20 62 6f 75 6e 64 20 62 6f 75 6e 64 20 28 69 66 20 62 61 63 6b 77 61 72 64 20 28 70 6f 69 6e 74 2d bound.bound.(if.backward.(point-
1ac40 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 min).(point-max))))).......(save
1ac60 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 68 65 -excursion.........(when.(eq.'he
1ac80 6c 70 66 75 6c 2d 68 65 61 64 69 6e 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 lpful-heading.(get-text-property
1aca0 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 .(point).'face))...........(forw
1acc0 61 72 64 2d 6c 69 6e 65 20 28 69 66 20 62 61 63 6b 77 61 72 64 20 2d 31 20 31 29 29 29 0a 20 20 ard-line.(if.backward.-1.1)))...
1ace0 20 20 20 20 20 20 28 69 66 20 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 ......(if.backward.............(
1ad00 77 68 69 6c 65 20 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 28 70 6f 69 6e 74 29 20 62 6f 75 6e 64 while.(not.(or.(eq.(point).bound
1ad20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 ).............................(e
1ad40 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
1ad60 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 perty.(point).'face)))).........
1ad80 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 72 20 28 70 72 65 76 69 6f 75 73 2d 73 ......(goto-char.(or.(previous-s
1ada0 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 20 27 66 ingle-property-change.(point).'f
1adc0 61 63 65 20 6e 69 6c 20 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ace.nil.bound)..................
1ade0 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 75 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 ............bound)))...........(
1ae00 67 6f 74 6f 2d 63 68 61 72 20 28 6f 72 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 61 6e 79 goto-char.(or.(text-property-any
1ae20 20 28 70 6f 69 6e 74 29 20 62 6f 75 6e 64 20 27 66 61 63 65 20 27 68 65 6c 70 66 75 6c 2d 68 65 .(point).bound.'face.'helpful-he
1ae40 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ading)..........................
1ae60 62 6f 75 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 68 65 6c 70 bound))).........(when.(eq.'help
1ae80 66 75 6c 2d 68 65 61 64 69 6e 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 ful-heading.(get-text-property.(
1aea0 70 6f 69 6e 74 29 20 27 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 point).'face))...........(setq.h
1aec0 65 61 64 69 6e 67 2d 66 6f 75 6e 64 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 28 69 eading-found.(point)))).......(i
1aee0 66 20 68 65 61 64 69 6e 67 2d 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e f.heading-found...........(progn
1af00 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 69 6e 67 2d .............(goto-char.heading-
1af20 66 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 74 63 68 2d 64 61 found).............(set-match-da
1af40 74 61 20 28 6c 69 73 74 20 68 65 61 64 69 6e 67 2d 66 6f 75 6e 64 20 68 65 61 64 69 6e 67 2d 66 ta.(list.heading-found.heading-f
1af60 6f 75 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6d 6f 76 65 0a 20 20 20 20 20 ound))).........(when.move......
1af80 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 6f 75 6e 64 29 20 6e 69 6c 29 29 29 29 29 0a .....(goto-char.bound).nil))))).
1afa0 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 68 65 6c 70 66 75 6c 2d 6d 6f .(define-derived-mode.helpful-mo
1afc0 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 48 65 6c 70 66 75 6c 22 0a 20 20 22 4d 61 6a de.special-mode."Helpful"..."Maj
1afe0 6f 72 20 6d 6f 64 65 20 66 6f 72 20 2a 48 65 6c 70 66 75 6c 2a 20 62 75 66 66 65 72 73 2e 22 0a or.mode.for.*Helpful*.buffers.".
1b000 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 78 72 65 66 2d 62 61 63 6b 65 6e 64 2d 66 75 6e 63 74 69 ..(add-hook.'xref-backend-functi
1b020 6f 6e 73 20 23 27 65 6c 69 73 70 2d 2d 78 72 65 66 2d 62 61 63 6b 65 6e 64 20 6e 69 6c 20 74 29 ons.#'elisp--xref-backend.nil.t)
1b040 0a 0a 20 20 28 73 65 74 71 20 69 6d 65 6e 75 2d 63 72 65 61 74 65 2d 69 6e 64 65 78 2d 66 75 6e ....(setq.imenu-create-index-fun
1b060 63 74 69 6f 6e 20 23 27 68 65 6c 70 66 75 6c 2d 2d 69 6d 65 6e 75 2d 69 6e 64 65 78 29 0a 20 20 ction.#'helpful--imenu-index)...
1b080 3b 3b 20 50 72 65 76 65 6e 74 20 69 6d 65 6e 75 20 63 6f 6e 76 65 72 74 69 6e 67 20 22 53 6f 75 ;;.Prevent.imenu.converting."Sou
1b0a0 72 63 65 20 43 6f 64 65 22 20 74 6f 20 22 53 6f 75 72 63 65 2e 43 6f 64 65 22 2e 0a 20 20 28 73 rce.Code".to."Source.Code"....(s
1b0c0 65 74 71 2d 6c 6f 63 61 6c 20 69 6d 65 6e 75 2d 73 70 61 63 65 2d 72 65 70 6c 61 63 65 6d 65 6e etq-local.imenu-space-replacemen
1b0e0 74 20 22 20 22 29 0a 0a 20 20 3b 3b 20 45 6e 61 62 6c 65 20 75 73 65 72 73 20 74 6f 20 62 6f 6f t.".")....;;.Enable.users.to.boo
1b100 6b 6d 61 72 6b 20 68 65 6c 70 66 75 6c 20 62 75 66 66 65 72 73 2e 0a 20 20 28 73 65 74 20 28 6d kmark.helpful.buffers....(set.(m
1b120 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b ake-local-variable.'bookmark-mak
1b140 65 2d 72 65 63 6f 72 64 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 23 27 68 65 6c 70 e-record-function)........#'help
1b160 66 75 6c 2d 2d 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 29 0a 0a 20 20 3b 3b ful--bookmark-make-record)....;;
1b180 20 45 6e 61 62 6c 65 20 6f 75 74 6c 69 6e 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 45 6d 61 63 .Enable.outline.support.for.Emac
1b1a0 73 20 32 39 20 61 6e 64 20 6e 65 77 65 72 0a 20 20 28 75 6e 6c 65 73 73 20 28 3c 20 65 6d 61 63 s.29.and.newer...(unless.(<.emac
1b1c0 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 39 29 0a 20 20 20 20 28 73 65 74 71 2d 6c 6f s-major-version.29).....(setq-lo
1b1e0 63 61 6c 20 6f 75 74 6c 69 6e 65 2d 73 65 61 72 63 68 2d 66 75 6e 63 74 69 6f 6e 20 23 27 68 65 cal.outline-search-function.#'he
1b200 6c 70 66 75 6c 2d 2d 6f 75 74 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 0a 20 20 3b 3b 20 lpful--outline-function))....;;.
1b220 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 6e 6f 72 6d 61 6c 6c 79 20 6f 6e This.function.should.normally.on
1b240 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 6f 6e 63 65 20 61 66 74 65 72 20 4f 72 67 20 61 6e 64 0a ly.be.called.once.after.Org.and.
1b260 20 20 3b 3b 20 68 65 6c 70 66 75 6c 20 61 72 65 20 6c 6f 61 64 65 64 2e 20 54 6f 20 61 76 6f 69 ..;;.helpful.are.loaded..To.avoi
1b280 64 20 75 73 69 6e 67 20 60 65 76 61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 27 20 28 77 68 69 63 68 d.using.`eval-after-load'.(which
1b2a0 20 69 73 0a 20 20 3b 3b 20 6f 6e 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 69 6e 20 75 73 65 .is...;;.only.recommended.in.use
1b2c0 72 20 69 6e 69 74 20 66 69 6c 65 73 29 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 r.init.files),.the.function.is.c
1b2e0 61 6c 6c 65 64 20 65 61 63 68 0a 20 20 3b 3b 20 74 69 6d 65 20 74 68 65 20 6d 61 6a 6f 72 20 6d alled.each...;;.time.the.major.m
1b300 6f 64 65 20 69 73 20 75 73 65 64 2e 0a 20 20 28 68 65 6c 70 66 75 6c 2d 2d 61 64 64 2d 73 75 70 ode.is.used....(helpful--add-sup
1b320 70 6f 72 74 2d 66 6f 72 2d 6f 72 67 2d 6c 69 6e 6b 73 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 port-for-org-links))..(provide.'
1b340 68 65 6c 70 66 75 6c 29 0a 3b 3b 3b 20 68 65 6c 70 66 75 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 helpful).;;;.helpful.el.ends.her
1b360 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
1b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b400 68 65 6c 70 66 75 6c 2d 32 30 32 33 31 30 32 38 2e 35 31 36 2f 68 65 6c 70 66 75 6c 2d 70 6b 67 helpful-20231028.516/helpful-pkg
1b420 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.............................
1b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b460 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
1b480 30 30 30 30 37 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 34 30 00 20 30 00 00 00 0000777.00000000000.015140..0...
1b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b500 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...................
1b520 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...................
1b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b600 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 68 65 6c 70 66 75 6c 22 20 22 32 30 32 33 31 (define-package."helpful"."20231
1b620 30 32 38 2e 35 31 36 22 20 22 41 20 62 65 74 74 65 72 20 2a 68 65 6c 70 2a 20 62 75 66 66 65 72 028.516"."A.better.*help*.buffer
1b640 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 22 29 0a 20 20 20 20 28 64 61 73 68 20 22 32 2e "...'((emacs."25").....(dash."2.
1b660 31 38 2e 30 22 29 0a 20 20 20 20 28 73 20 22 31 2e 31 31 2e 30 22 29 0a 20 20 20 20 28 66 20 22 18.0").....(s."1.11.0").....(f."
1b680 30 2e 32 30 2e 30 22 29 0a 20 20 20 20 28 65 6c 69 73 70 2d 72 65 66 73 20 22 31 2e 32 22 29 29 0.20.0").....(elisp-refs."1.2"))
1b6a0 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 61 33 32 61 35 62 33 64 39 35 39 61 37 66 63 63 66 30 39 61 ...:commit."a32a5b3d959a7fccf09a
1b6c0 37 31 64 39 37 62 33 64 37 63 38 38 38 61 63 33 31 63 36 39 22 20 3a 61 75 74 68 6f 72 73 0a 20 71d97b3d7c888ac31c69".:authors..
1b6e0 20 27 28 28 22 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 22 20 2e 20 22 6d 65 40 77 69 6c 66 72 .'(("Wilfred.Hughes"..."me@wilfr
1b700 65 64 2e 6d 65 2e 75 6b 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 ed.me.uk"))...:maintainers...'((
1b720 22 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 22 20 2e 20 22 6d 65 40 77 69 6c 66 72 65 64 2e 6d "Wilfred.Hughes"..."me@wilfred.m
1b740 65 2e 75 6b 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 57 69 6c 66 72 e.uk"))...:maintainer...'("Wilfr
1b760 65 64 20 48 75 67 68 65 73 22 20 2e 20 22 6d 65 40 77 69 6c 66 72 65 64 2e 6d 65 2e 75 6b 22 29 ed.Hughes"..."me@wilfred.me.uk")
1b780 0a 20 20 3a 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 22 68 65 6c 70 22 20 22 6c 69 73 70 22 29 0a ...:keywords...'("help"."lisp").
1b7a0 20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 57 69 6c 66 72 ..:url."https://github.com/Wilfr
1b7c0 65 64 2f 68 65 6c 70 66 75 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a ed/helpful").;;.Local.Variables:
1b7e0 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 6e 64 3a 0a 00 .;;.no-byte-compile:.t.;;.End:..
1b800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ccc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1daa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1db80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ddc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................