summaryrefslogtreecommitdiff
path: root/.localrepo/htmlize-1.58.tar
blob: 102c147fd2bde732b2932ac0d63743d99e2feb34 (plain)
ofshex dumpascii
0000 68 74 6d 6c 69 7a 65 2d 31 2e 35 38 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 htmlize-1.58/...................
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 31 35 36 32 00 20 35 00 00 00 0000000.00000000000.011562..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 74 6d 6c 69 7a 65 2d 31 2e 35 38 2f 52 45 41 44 4d 45 2e 6d 64 00 00 00 00 00 00 00 00 00 00 htmlize-1.58/README.md..........
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 30 33 33 35 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 30 34 34 00 20 30 00 00 00 0003352.00000000000.013044..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 23 20 68 74 6d 6c 69 7a 65 20 2d 2d 2d 20 43 6f 6e 76 65 72 74 20 62 75 66 66 65 72 20 74 65 78 #.htmlize.---.Convert.buffer.tex
0420 74 20 61 6e 64 20 64 65 63 6f 72 61 74 69 6f 6e 73 20 74 6f 20 48 54 4d 4c 0a 0a 5b 21 5b 4d 45 t.and.decorations.to.HTML..[![ME
0440 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f LPA](https://melpa.org/packages/
0460 68 74 6d 6c 69 7a 65 2d 62 61 64 67 65 2e 73 76 67 29 5d 28 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 htmlize-badge.svg)](https://melp
0480 61 2e 6f 72 67 2f 23 2f 68 74 6d 6c 69 7a 65 29 0a 0a 54 68 69 73 20 70 61 63 6b 61 67 65 20 63 a.org/#/htmlize)..This.package.c
04a0 6f 6e 76 65 72 74 73 20 74 68 65 20 62 75 66 66 65 72 20 74 65 78 74 20 61 6e 64 20 74 68 65 20 onverts.the.buffer.text.and.the.
04c0 61 73 73 6f 63 69 61 74 65 64 0a 64 65 63 6f 72 61 74 69 6f 6e 73 20 74 6f 20 48 54 4d 4c 2e 20 associated.decorations.to.HTML..
04e0 20 4d 61 69 6c 20 74 6f 20 3c 68 6e 69 6b 73 69 63 40 67 6d 61 69 6c 2e 63 6f 6d 3e 20 74 6f 20 .Mail.to.<hniksic@gmail.com>.to.
0500 64 69 73 63 75 73 73 0a 66 65 61 74 75 72 65 73 20 61 6e 64 20 61 64 64 69 74 69 6f 6e 73 2e 20 discuss.features.and.additions..
0520 20 41 6c 6c 20 73 75 67 67 65 73 74 69 6f 6e 73 20 61 72 65 20 6d 6f 72 65 20 74 68 61 6e 20 77 .All.suggestions.are.more.than.w
0540 65 6c 63 6f 6d 65 2e 0a 0a 54 6f 20 75 73 65 20 69 74 2c 20 6a 75 73 74 20 73 77 69 74 63 68 20 elcome...To.use.it,.just.switch.
0560 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 79 6f 75 20 77 61 6e 74 20 48 54 4d 4c 2d 69 7a 65 64 to.the.buffer.you.want.HTML-ized
0580 20 61 6e 64 20 74 79 70 65 0a 3c 6b 62 64 3e 4d 2d 78 20 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 .and.type.<kbd>M-x.htmlize-buffe
05a0 72 3c 2f 6b 62 64 3e 2e 20 20 59 6f 75 20 77 69 6c 6c 20 62 65 20 73 77 69 74 63 68 65 64 20 74 r</kbd>...You.will.be.switched.t
05c0 6f 20 61 20 6e 65 77 20 62 75 66 66 65 72 0a 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 o.a.new.buffer.that.contains.the
05e0 20 72 65 73 75 6c 74 69 6e 67 20 48 54 4d 4c 20 63 6f 64 65 2e 20 20 59 6f 75 20 63 61 6e 20 65 .resulting.HTML.code...You.can.e
0600 64 69 74 20 61 6e 64 20 69 6e 73 70 65 63 74 20 74 68 69 73 0a 62 75 66 66 65 72 2c 20 6f 72 20 dit.and.inspect.this.buffer,.or.
0620 79 6f 75 20 63 61 6e 20 6a 75 73 74 20 73 61 76 65 20 69 74 20 77 69 74 68 20 3c 6b 62 64 3e 43 you.can.just.save.it.with.<kbd>C
0640 2d 78 20 43 2d 77 3c 2f 6b 62 64 3e 2e 20 20 3c 6b 62 64 3e 4d 2d 78 0a 68 74 6d 6c 69 7a 65 2d -x.C-w</kbd>...<kbd>M-x.htmlize-
0660 66 69 6c 65 3c 2f 6b 62 64 3e 20 77 69 6c 6c 20 66 69 6e 64 20 61 20 66 69 6c 65 2c 20 66 6f 6e file</kbd>.will.find.a.file,.fon
0680 74 69 66 79 20 69 74 2c 20 61 6e 64 20 73 61 76 65 20 74 68 65 20 48 54 4d 4c 0a 76 65 72 73 69 tify.it,.and.save.the.HTML.versi
06a0 6f 6e 20 69 6e 20 60 46 49 4c 45 2e 68 74 6d 6c 60 2c 20 77 69 74 68 6f 75 74 20 61 6e 79 20 61 on.in.`FILE.html`,.without.any.a
06c0 64 64 69 74 69 6f 6e 61 6c 20 69 6e 74 65 72 76 65 6e 74 69 6f 6e 2e 20 20 3c 6b 62 64 3e 4d 2d dditional.intervention...<kbd>M-
06e0 78 0a 68 74 6d 6c 69 7a 65 2d 6d 61 6e 79 2d 66 69 6c 65 73 3c 2f 6b 62 64 3e 20 61 6c 6c 6f 77 x.htmlize-many-files</kbd>.allow
0700 73 20 79 6f 75 20 74 6f 20 68 74 6d 6c 69 7a 65 20 61 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 66 s.you.to.htmlize.any.number.of.f
0720 69 6c 65 73 20 69 6e 0a 74 68 65 20 73 61 6d 65 20 6d 61 6e 6e 65 72 2e 20 20 3c 6b 62 64 3e 4d iles.in.the.same.manner...<kbd>M
0740 2d 78 20 68 74 6d 6c 69 7a 65 2d 6d 61 6e 79 2d 66 69 6c 65 73 2d 64 69 72 65 64 3c 2f 6b 62 64 -x.htmlize-many-files-dired</kbd
0760 3e 20 64 6f 65 73 20 74 68 65 0a 73 61 6d 65 20 66 6f 72 20 66 69 6c 65 73 20 6d 61 72 6b 65 64 >.does.the.same.for.files.marked
0780 20 69 6e 20 61 20 64 69 72 65 64 20 62 75 66 66 65 72 2e 0a 0a 68 74 6d 6c 69 7a 65 20 73 75 70 .in.a.dired.buffer...htmlize.sup
07a0 70 6f 72 74 73 20 74 68 72 65 65 20 74 79 70 65 73 20 6f 66 20 48 54 4d 4c 20 6f 75 74 70 75 74 ports.three.types.of.HTML.output
07c0 2c 20 73 65 6c 65 63 74 65 64 20 62 79 20 73 65 74 74 69 6e 67 0a 60 68 74 6d 6c 69 7a 65 2d 6f ,.selected.by.setting.`htmlize-o
07e0 75 74 70 75 74 2d 74 79 70 65 60 3a 20 60 63 73 73 60 2c 20 60 69 6e 6c 69 6e 65 2d 63 73 73 60 utput-type`:.`css`,.`inline-css`
0800 20 28 6f 70 74 69 6d 69 7a 65 64 20 66 6f 72 20 63 6f 64 65 0a 73 6e 69 70 70 65 74 73 29 2c 20 .(optimized.for.code.snippets),.
0820 61 6e 64 20 60 66 6f 6e 74 60 20 28 73 69 6d 70 6c 65 72 20 6f 75 74 70 75 74 2c 20 64 6f 65 73 and.`font`.(simpler.output,.does
0840 6e 27 74 20 72 65 6c 79 20 6f 6e 20 43 53 53 29 2e 20 20 53 65 65 0a 5b 60 68 74 6d 6c 69 7a 65 n't.rely.on.CSS)...See.[`htmlize
0860 2e 65 6c 2e 68 74 6d 6c 60 5d 5b 31 5d 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 .el.html`][1].for.an.example.of.
0880 67 65 6e 65 72 61 74 65 64 20 48 54 4d 4c 2e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 75 73 generated.HTML...You.can.also.us
08a0 65 20 68 74 6d 6c 69 7a 65 20 66 72 6f 6d 20 79 6f 75 72 20 45 6d 61 63 73 20 4c 69 73 70 20 63 e.htmlize.from.your.Emacs.Lisp.c
08c0 6f 64 65 2e 20 20 57 68 65 6e 20 63 61 6c 6c 65 64 0a 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 ode...When.called.non-interactiv
08e0 65 6c 79 2c 20 60 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 60 20 61 6e 64 20 60 68 74 6d 6c 69 ely,.`htmlize-buffer`.and.`htmli
0900 7a 65 2d 72 65 67 69 6f 6e 60 20 77 69 6c 6c 0a 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c ze-region`.will.return.the.resul
0920 74 69 6e 67 20 48 54 4d 4c 20 62 75 66 66 65 72 2c 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 63 ting.HTML.buffer,.but.will.not.c
0940 68 61 6e 67 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 20 6f 72 20 6d 6f 76 65 20 74 68 65 hange.current.buffer.or.move.the
0960 20 70 6f 69 6e 74 2e 20 20 68 74 6d 6c 69 7a 65 20 77 69 6c 6c 20 64 6f 20 69 74 73 20 62 65 73 .point...htmlize.will.do.its.bes
0980 74 20 74 6f 20 77 6f 72 6b 20 6f 6e 0a 6e 6f 6e 2d 77 69 6e 64 6f 77 69 6e 67 20 45 6d 61 63 73 t.to.work.on.non-windowing.Emacs
09a0 20 73 65 73 73 69 6f 6e 73 20 62 75 74 20 74 68 65 20 72 65 73 75 6c 74 20 77 69 6c 6c 20 62 65 .sessions.but.the.result.will.be
09c0 20 6c 69 6d 69 74 65 64 20 74 6f 0a 63 6f 6c 6f 72 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 .limited.to.colors.supported.by.
09e0 74 68 65 20 74 65 72 6d 69 6e 61 6c 2e 0a 0a 68 74 6d 6c 69 7a 65 20 61 69 6d 73 20 66 6f 72 20 the.terminal...htmlize.aims.for.
0a00 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f 6c 64 65 72 20 45 6d 61 63 73 20 76 compatibility.with.older.Emacs.v
0a20 65 72 73 69 6f 6e 73 2e 20 20 50 6c 65 61 73 65 0a 6c 65 74 20 6d 65 20 6b 6e 6f 77 20 69 66 20 ersions...Please.let.me.know.if.
0a40 69 74 20 64 6f 65 73 6e 27 74 20 77 6f 72 6b 20 6f 6e 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6f it.doesn't.work.on.the.version.o
0a60 66 20 47 4e 55 20 45 6d 61 63 73 20 74 68 61 74 20 79 6f 75 0a 61 72 65 20 75 73 69 6e 67 2e 0a f.GNU.Emacs.that.you.are.using..
0a80 0a 0a 5b 31 5d 3a 20 68 74 74 70 3a 2f 2f 68 74 6d 6c 70 72 65 76 69 65 77 2e 67 69 74 68 75 62 ..[1]:.http://htmlpreview.github
0aa0 2e 69 6f 2f 3f 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 68 6e 69 6b 73 69 63 2f .io/?https://github.com/hniksic/
0ac0 65 6d 61 63 73 2d 68 74 6d 6c 69 7a 65 2f 62 6c 6f 62 2f 6d 61 73 74 65 72 2f 68 74 6d 6c 69 7a emacs-htmlize/blob/master/htmliz
0ae0 65 2e 65 6c 2e 68 74 6d 6c 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e.el.html.......................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 68 74 6d 6c 69 7a 65 2d 31 2e 35 38 2f 68 74 6d 6c 69 7a 65 2e 65 6c 00 00 00 00 00 00 00 00 00 htmlize-1.58/htmlize.el.........
0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c60 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
0c80 30 32 33 33 31 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 36 36 00 20 30 00 00 00 0233161.00000000000.013566..0...
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 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...................
0d20 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...................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 3b 3b 3b 20 68 74 6d 6c 69 7a 65 2e 65 6c 20 2d 2d 2d 20 43 6f 6e 76 65 72 74 20 62 75 66 66 65 ;;;.htmlize.el.---.Convert.buffe
0e20 72 20 74 65 78 74 20 61 6e 64 20 64 65 63 6f 72 61 74 69 6f 6e 73 20 74 6f 20 48 54 4d 4c 2e 20 r.text.and.decorations.to.HTML..
0e40 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b 3b 20 43 -*-.lexical-binding:.t.-*-..;;.C
0e60 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 39 37 2d 32 30 30 33 2c 32 30 30 35 2c 32 30 30 36 opyright.(C).1997-2003,2005,2006
0e80 2c 32 30 30 39 2c 32 30 31 31 2c 32 30 31 32 2c 32 30 31 34 2c 32 30 31 37 2c 32 30 31 38 2c 32 ,2009,2011,2012,2014,2017,2018,2
0ea0 30 32 30 20 48 72 76 6f 6a 65 20 4e 69 6b 73 69 63 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 48 72 020.Hrvoje.Niksic..;;.Author:.Hr
0ec0 76 6f 6a 65 20 4e 69 6b 73 69 63 20 3c 68 6e 69 6b 73 69 63 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a voje.Niksic.<hniksic@gmail.com>.
0ee0 3b 3b 20 48 6f 6d 65 70 61 67 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ;;.Homepage:.https://github.com/
0f00 68 6e 69 6b 73 69 63 2f 65 6d 61 63 73 2d 68 74 6d 6c 69 7a 65 0a 3b 3b 20 4b 65 79 77 6f 72 64 hniksic/emacs-htmlize.;;.Keyword
0f20 73 3a 20 68 79 70 65 72 6d 65 64 69 61 2c 20 65 78 74 65 6e 73 69 6f 6e 73 0a 3b 3b 20 56 65 72 s:.hypermedia,.extensions.;;.Ver
0f40 73 69 6f 6e 3a 20 31 2e 35 38 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 sion:.1.58.;;.Package-Requires:.
0f60 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 ((emacs."25.1"))..;;.This.progra
0f80 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 m.is.free.software;.you.can.redi
0fa0 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 stribute.it.and/or.modify.;;.it.
0fc0 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 under.the.terms.of.the.GNU.Gener
0fe0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 al.Public.License.as.published.b
1000 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f y.;;.the.Free.Software.Foundatio
1020 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 n;.either.version.2,.or.(at.your
1040 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a .option).;;.any.later.version...
1060 3b 3b 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 ;;.This.program.is.distributed.i
1080 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 n.the.hope.that.it.will.be.usefu
10a0 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 l,.;;.but.WITHOUT.ANY.WARRANTY;.
10c0 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 without.even.the.implied.warrant
10e0 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 y.of.;;.MERCHANTABILITY.or.FITNE
1100 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 SS.FOR.A.PARTICULAR.PURPOSE...Se
1120 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 e.the.;;.GNU.General.Public.Lice
1140 6e 73 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 nse.for.more.details...;;.You.sh
1160 6f 75 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 ould.have.received.a.copy.of.the
1180 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 0a 3b 3b 20 61 .GNU.General.Public.License.;;.a
11a0 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 73 65 65 20 74 68 65 20 long.with.this.program;.see.the.
11c0 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 file.COPYING...If.not,.write.to.
11e0 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c the.;;.Free.Software.Foundation,
1200 20 49 6e 63 2e 2c 20 35 39 20 54 65 6d 70 6c 65 20 50 6c 61 63 65 20 2d 20 53 75 69 74 65 20 33 .Inc.,.59.Temple.Place.-.Suite.3
1220 33 30 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 31 2d 31 33 30 37 2c 20 55 53 30,.;;.Boston,.MA.02111-1307,.US
1240 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 70 61 63 A...;;;.Commentary:..;;.This.pac
1260 6b 61 67 65 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 62 75 66 66 65 72 20 74 65 78 74 20 61 6e kage.converts.the.buffer.text.an
1280 64 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 64 0a 3b 3b 20 64 65 63 6f 72 61 74 69 6f 6e 73 20 d.the.associated.;;.decorations.
12a0 74 6f 20 48 54 4d 4c 2e 20 20 4d 61 69 6c 20 74 6f 20 3c 68 6e 69 6b 73 69 63 40 67 6d 61 69 6c to.HTML...Mail.to.<hniksic@gmail
12c0 2e 63 6f 6d 3e 20 74 6f 20 64 69 73 63 75 73 73 0a 3b 3b 20 66 65 61 74 75 72 65 73 20 61 6e 64 .com>.to.discuss.;;.features.and
12e0 20 61 64 64 69 74 69 6f 6e 73 2e 20 20 41 6c 6c 20 73 75 67 67 65 73 74 69 6f 6e 73 20 61 72 65 .additions...All.suggestions.are
1300 20 6d 6f 72 65 20 74 68 61 6e 20 77 65 6c 63 6f 6d 65 2e 0a 0a 3b 3b 20 54 6f 20 75 73 65 20 69 .more.than.welcome...;;.To.use.i
1320 74 2c 20 6a 75 73 74 20 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 79 6f 75 t,.just.switch.to.the.buffer.you
1340 20 77 61 6e 74 20 48 54 4d 4c 2d 69 7a 65 64 20 61 6e 64 20 74 79 70 65 0a 3b 3b 20 60 4d 2d 78 .want.HTML-ized.and.type.;;.`M-x
1360 20 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 27 2e 20 20 59 6f 75 20 77 69 6c 6c 20 62 65 20 73 .htmlize-buffer'...You.will.be.s
1380 77 69 74 63 68 65 64 20 74 6f 20 61 20 6e 65 77 20 62 75 66 66 65 72 20 74 68 61 74 0a 3b 3b 20 witched.to.a.new.buffer.that.;;.
13a0 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 48 54 4d 4c 20 63 6f 64 65 contains.the.resulting.HTML.code
13c0 2e 20 20 59 6f 75 20 63 61 6e 20 65 64 69 74 20 61 6e 64 20 69 6e 73 70 65 63 74 20 74 68 69 73 ...You.can.edit.and.inspect.this
13e0 0a 3b 3b 20 62 75 66 66 65 72 2c 20 6f 72 20 79 6f 75 20 63 61 6e 20 6a 75 73 74 20 73 61 76 65 .;;.buffer,.or.you.can.just.save
1400 20 69 74 20 77 69 74 68 20 43 2d 78 20 43 2d 77 2e 20 20 60 4d 2d 78 20 68 74 6d 6c 69 7a 65 2d .it.with.C-x.C-w...`M-x.htmlize-
1420 66 69 6c 65 27 0a 3b 3b 20 77 69 6c 6c 20 66 69 6e 64 20 61 20 66 69 6c 65 2c 20 66 6f 6e 74 69 file'.;;.will.find.a.file,.fonti
1440 66 79 20 69 74 2c 20 61 6e 64 20 73 61 76 65 20 74 68 65 20 48 54 4d 4c 20 76 65 72 73 69 6f 6e fy.it,.and.save.the.HTML.version
1460 20 69 6e 0a 3b 3b 20 46 49 4c 45 2e 68 74 6d 6c 2c 20 77 69 74 68 6f 75 74 20 61 6e 79 20 61 64 .in.;;.FILE.html,.without.any.ad
1480 64 69 74 69 6f 6e 61 6c 20 69 6e 74 65 72 76 65 6e 74 69 6f 6e 2e 20 20 60 4d 2d 78 0a 3b 3b 20 ditional.intervention...`M-x.;;.
14a0 68 74 6d 6c 69 7a 65 2d 6d 61 6e 79 2d 66 69 6c 65 73 27 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 htmlize-many-files'.allows.you.t
14c0 6f 20 68 74 6d 6c 69 7a 65 20 61 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 66 69 6c 65 73 20 69 6e o.htmlize.any.number.of.files.in
14e0 0a 3b 3b 20 74 68 65 20 73 61 6d 65 20 6d 61 6e 6e 65 72 2e 20 20 60 4d 2d 78 20 68 74 6d 6c 69 .;;.the.same.manner...`M-x.htmli
1500 7a 65 2d 6d 61 6e 79 2d 66 69 6c 65 73 2d 64 69 72 65 64 27 20 64 6f 65 73 20 74 68 65 20 73 61 ze-many-files-dired'.does.the.sa
1520 6d 65 20 66 6f 72 0a 3b 3b 20 66 69 6c 65 73 20 6d 61 72 6b 65 64 20 69 6e 20 61 20 64 69 72 65 me.for.;;.files.marked.in.a.dire
1540 64 20 62 75 66 66 65 72 2e 0a 0a 3b 3b 20 68 74 6d 6c 69 7a 65 20 73 75 70 70 6f 72 74 73 20 74 d.buffer...;;.htmlize.supports.t
1560 68 72 65 65 20 74 79 70 65 73 20 6f 66 20 48 54 4d 4c 20 6f 75 74 70 75 74 2c 20 73 65 6c 65 63 hree.types.of.HTML.output,.selec
1580 74 65 64 20 62 79 20 73 65 74 74 69 6e 67 0a 3b 3b 20 60 68 74 6d 6c 69 7a 65 2d 6f 75 74 70 75 ted.by.setting.;;.`htmlize-outpu
15a0 74 2d 74 79 70 65 27 3a 20 60 63 73 73 27 2c 20 60 69 6e 6c 69 6e 65 2d 63 73 73 27 2c 20 61 6e t-type':.`css',.`inline-css',.an
15c0 64 20 60 66 6f 6e 74 27 2e 20 20 49 6e 20 60 63 73 73 27 0a 3b 3b 20 6d 6f 64 65 2c 20 68 74 6d d.`font'...In.`css'.;;.mode,.htm
15e0 6c 69 7a 65 20 75 73 65 73 20 63 61 73 63 61 64 69 6e 67 20 73 74 79 6c 65 20 73 68 65 65 74 73 lize.uses.cascading.style.sheets
1600 20 74 6f 20 73 70 65 63 69 66 79 20 63 6f 6c 6f 72 73 3b 20 69 74 0a 3b 3b 20 67 65 6e 65 72 61 .to.specify.colors;.it.;;.genera
1620 74 65 73 20 63 6c 61 73 73 65 73 20 74 68 61 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 45 tes.classes.that.correspond.to.E
1640 6d 61 63 73 20 66 61 63 65 73 20 61 6e 64 20 75 73 65 73 20 3c 73 70 61 6e 0a 3b 3b 20 63 6c 61 macs.faces.and.uses.<span.;;.cla
1660 73 73 3d 46 41 43 45 3e 2e 2e 2e 3c 2f 73 70 61 6e 3e 20 74 6f 20 63 6f 6c 6f 72 20 70 61 72 74 ss=FACE>...</span>.to.color.part
1680 73 20 6f 66 20 74 65 78 74 2e 20 20 49 6e 20 74 68 69 73 20 6d 6f 64 65 2c 20 74 68 65 0a 3b 3b s.of.text...In.this.mode,.the.;;
16a0 20 70 72 6f 64 75 63 65 64 20 48 54 4d 4c 20 69 73 20 76 61 6c 69 64 20 75 6e 64 65 72 20 74 68 .produced.HTML.is.valid.under.th
16c0 65 20 34 2e 30 31 20 73 74 72 69 63 74 20 44 54 44 2c 20 61 73 20 63 6f 6e 66 69 72 6d 65 64 20 e.4.01.strict.DTD,.as.confirmed.
16e0 62 79 0a 3b 3b 20 74 68 65 20 57 33 43 20 76 61 6c 69 64 61 74 6f 72 2e 20 20 60 69 6e 6c 69 6e by.;;.the.W3C.validator...`inlin
1700 65 2d 63 73 73 27 20 69 73 20 6c 69 6b 65 20 60 63 73 73 27 2c 20 65 78 63 65 70 74 20 74 68 65 e-css'.is.like.`css',.except.the
1720 20 43 53 53 20 69 73 0a 3b 3b 20 70 75 74 20 64 69 72 65 63 74 6c 79 20 69 6e 20 74 68 65 20 53 .CSS.is.;;.put.directly.in.the.S
1740 54 59 4c 45 20 61 74 74 72 69 62 75 74 65 20 6f 66 20 74 68 65 20 53 50 41 4e 20 65 6c 65 6d 65 TYLE.attribute.of.the.SPAN.eleme
1760 6e 74 2c 20 6d 61 6b 69 6e 67 20 69 74 0a 3b 3b 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 70 61 73 nt,.making.it.;;.possible.to.pas
1780 74 65 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 48 54 4d 4c 20 69 6e 74 6f 20 65 78 69 73 74 te.the.generated.HTML.into.exist
17a0 69 6e 67 20 48 54 4d 4c 20 64 6f 63 75 6d 65 6e 74 73 2e 0a 3b 3b 20 49 6e 20 60 66 6f 6e 74 27 ing.HTML.documents..;;.In.`font'
17c0 20 6d 6f 64 65 2c 20 68 74 6d 6c 69 7a 65 20 75 73 65 73 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d .mode,.htmlize.uses.<font.color=
17e0 22 2e 2e 2e 22 3e 2e 2e 2e 3c 2f 66 6f 6e 74 3e 20 74 6f 0a 3b 3b 20 63 6f 6c 6f 72 69 7a 65 20 "...">...</font>.to.;;.colorize.
1800 48 54 4d 4c 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 73 74 61 6e 64 61 72 64 2d 63 6f 6d 70 HTML,.which.is.not.standard-comp
1820 6c 69 61 6e 74 2c 20 62 75 74 20 77 6f 72 6b 73 20 62 65 74 74 65 72 20 69 6e 0a 3b 3b 20 6f 6c liant,.but.works.better.in.;;.ol
1840 64 65 72 20 62 72 6f 77 73 65 72 73 2e 20 20 60 63 73 73 27 20 6d 6f 64 65 20 69 73 20 74 68 65 der.browsers...`css'.mode.is.the
1860 20 64 65 66 61 75 6c 74 2e 0a 0a 3b 3b 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 75 73 65 20 68 .default...;;.You.can.also.use.h
1880 74 6d 6c 69 7a 65 20 66 72 6f 6d 20 79 6f 75 72 20 45 6d 61 63 73 20 4c 69 73 70 20 63 6f 64 65 tmlize.from.your.Emacs.Lisp.code
18a0 2e 20 20 57 68 65 6e 20 63 61 6c 6c 65 64 0a 3b 3b 20 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 ...When.called.;;.non-interactiv
18c0 65 6c 79 2c 20 60 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 27 20 61 6e 64 20 60 68 74 6d 6c 69 ely,.`htmlize-buffer'.and.`htmli
18e0 7a 65 2d 72 65 67 69 6f 6e 27 20 77 69 6c 6c 0a 3b 3b 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 ze-region'.will.;;.return.the.re
1900 73 75 6c 74 69 6e 67 20 48 54 4d 4c 20 62 75 66 66 65 72 2c 20 62 75 74 20 77 69 6c 6c 20 6e 6f sulting.HTML.buffer,.but.will.no
1920 74 20 63 68 61 6e 67 65 20 63 75 72 72 65 6e 74 0a 3b 3b 20 62 75 66 66 65 72 20 6f 72 20 6d 6f t.change.current.;;.buffer.or.mo
1940 76 65 20 74 68 65 20 70 6f 69 6e 74 2e 20 20 68 74 6d 6c 69 7a 65 20 77 69 6c 6c 20 64 6f 20 69 ve.the.point...htmlize.will.do.i
1960 74 73 20 62 65 73 74 20 74 6f 20 77 6f 72 6b 20 6f 6e 0a 3b 3b 20 6e 6f 6e 2d 77 69 6e 64 6f 77 ts.best.to.work.on.;;.non-window
1980 69 6e 67 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 20 62 75 74 20 74 68 65 20 72 65 73 75 6c ing.Emacs.sessions.but.the.resul
19a0 74 20 77 69 6c 6c 20 62 65 20 6c 69 6d 69 74 65 64 20 74 6f 0a 3b 3b 20 63 6f 6c 6f 72 73 20 73 t.will.be.limited.to.;;.colors.s
19c0 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 74 65 72 6d 69 6e 61 6c 2e 0a 0a 3b 3b 20 68 74 upported.by.the.terminal...;;.ht
19e0 6d 6c 69 7a 65 20 61 69 6d 73 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 mlize.aims.for.compatibility.wit
1a00 68 20 6f 6c 64 65 72 20 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 73 2e 20 20 50 6c 65 61 73 65 0a h.older.Emacs.versions...Please.
1a20 3b 3b 20 6c 65 74 20 6d 65 20 6b 6e 6f 77 20 69 66 20 69 74 20 64 6f 65 73 6e 27 74 20 77 6f 72 ;;.let.me.know.if.it.doesn't.wor
1a40 6b 20 6f 6e 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 20 74 68 k.on.the.version.of.GNU.Emacs.th
1a60 61 74 20 79 6f 75 0a 3b 3b 20 61 72 65 20 75 73 69 6e 67 2e 20 20 54 68 65 20 70 61 63 6b 61 67 at.you.;;.are.using...The.packag
1a80 65 20 72 65 6c 69 65 73 20 6f 6e 20 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 43 4c 20 65 e.relies.on.the.presence.of.CL.e
1aa0 78 74 65 6e 73 69 6f 6e 73 3b 0a 3b 3b 20 70 6c 65 61 73 65 20 64 6f 6e 27 74 20 74 72 79 20 74 xtensions;.;;.please.don't.try.t
1ac0 6f 20 72 65 6d 6f 76 65 20 74 68 61 74 20 64 65 70 65 6e 64 65 6e 63 79 2e 20 20 49 20 73 65 65 o.remove.that.dependency...I.see
1ae0 20 6e 6f 20 70 72 61 63 74 69 63 61 6c 0a 3b 3b 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 75 .no.practical.;;.problems.with.u
1b00 73 69 6e 67 20 74 68 65 20 66 75 6c 6c 20 70 6f 77 65 72 20 6f 66 20 74 68 65 20 43 4c 20 65 78 sing.the.full.power.of.the.CL.ex
1b20 74 65 6e 73 69 6f 6e 73 2c 20 65 78 63 65 70 74 0a 3b 3b 20 74 68 61 74 20 6f 6e 65 20 6d 69 67 tensions,.except.;;.that.one.mig
1b40 68 74 20 6c 65 61 72 6e 20 74 6f 20 6c 69 6b 65 20 74 68 65 6d 20 74 6f 6f 20 6d 75 63 68 2e 0a ht.learn.to.like.them.too.much..
1b60 0a 3b 3b 20 54 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 .;;.The.latest.version.is.availa
1b80 62 6c 65 20 61 74 3a 0a 3b 3b 0a 3b 3b 20 20 20 20 20 20 20 20 3c 68 74 74 70 73 3a 2f 2f 67 69 ble.at:.;;.;;........<https://gi
1ba0 74 68 75 62 2e 63 6f 6d 2f 68 6e 69 6b 73 69 63 2f 65 6d 61 63 73 2d 68 74 6d 6c 69 7a 65 3e 0a thub.com/hniksic/emacs-htmlize>.
1bc0 3b 3b 20 20 20 20 20 20 20 20 3c 68 74 74 70 73 3a 2f 2f 63 6f 64 65 2e 6f 72 67 6d 6f 64 65 2e ;;........<https://code.orgmode.
1be0 6f 72 67 2f 6d 69 72 72 6f 72 73 2f 65 6d 61 63 73 2d 68 74 6d 6c 69 7a 65 3e 0a 3b 3b 0a 0a 3b org/mirrors/emacs-htmlize>.;;..;
1c00 3b 20 54 68 61 6e 6b 73 20 67 6f 20 74 6f 20 74 68 65 20 6d 61 6e 79 20 70 65 6f 70 6c 65 20 77 ;.Thanks.go.to.the.many.people.w
1c20 68 6f 20 68 61 76 65 20 73 65 6e 74 20 72 65 70 6f 72 74 73 20 61 6e 64 20 63 6f 6e 74 72 69 62 ho.have.sent.reports.and.contrib
1c40 75 74 65 64 0a 3b 3b 20 63 6f 6d 6d 65 6e 74 73 2c 20 73 75 67 67 65 73 74 69 6f 6e 73 2c 20 61 uted.;;.comments,.suggestions,.a
1c60 6e 64 20 66 69 78 65 73 2e 20 20 54 68 65 79 20 69 6e 63 6c 75 64 65 20 52 6f 6e 20 47 75 74 2c nd.fixes...They.include.Ron.Gut,
1c80 20 42 6f 62 0a 3b 3b 20 57 65 69 6e 65 72 2c 20 54 6f 6e 69 20 44 72 61 62 69 6b 2c 20 50 65 74 .Bob.;;.Weiner,.Toni.Drabik,.Pet
1ca0 65 72 20 42 72 65 74 6f 6e 2c 20 56 69 6c 6c 65 20 53 6b 79 74 74 61 2c 20 54 68 6f 6d 61 73 20 er.Breton,.Ville.Skytta,.Thomas.
1cc0 56 6f 67 65 6c 73 2c 0a 3b 3b 20 4a 75 72 69 20 4c 69 6e 6b 6f 76 2c 20 4d 61 63 69 65 6b 20 50 Vogels,.;;.Juri.Linkov,.Maciek.P
1ce0 61 73 74 65 72 6e 61 63 6b 69 2c 20 61 6e 64 20 6d 61 6e 79 20 6f 74 68 65 72 73 2e 0a 0a 3b 3b asternacki,.and.many.others...;;
1d00 20 55 73 65 72 20 71 75 6f 74 65 73 3a 20 22 59 6f 75 20 73 69 72 2c 20 61 72 65 20 61 20 73 69 .User.quotes:."You.sir,.are.a.si
1d20 63 6b 2c 20 73 69 63 6b 2c 20 5f 73 69 63 6b 5f 20 70 65 72 73 6f 6e 2e 20 3a 29 22 0a 3b 3b 20 ck,.sick,._sick_.person..:)".;;.
1d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 2d 20 42 69 6c 6c 20 50 65 72 72 79 2c 20 .................--.Bill.Perry,.
1d60 61 75 74 68 6f 72 20 6f 66 20 45 6d 61 63 73 2f 57 33 0a 0a 0c 0a 3b 3b 3b 20 43 6f 64 65 3a 0a author.of.Emacs/W3....;;;.Code:.
1d80 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f .(require.'cl-lib).(eval-when-co
1da0 6d 70 69 6c 65 0a 20 20 28 64 65 66 76 61 72 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 75 74 6f 2d 66 mpile...(defvar.font-lock-auto-f
1dc0 6f 6e 74 69 66 79 29 0a 20 20 28 64 65 66 76 61 72 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 75 70 70 ontify)...(defvar.font-lock-supp
1de0 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 28 64 65 66 76 61 72 20 67 6c 6f 62 61 6c 2d 66 6f 6e 74 2d ort-mode)...(defvar.global-font-
1e00 6c 6f 63 6b 2d 6d 6f 64 65 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 68 74 6d 6c 69 7a 65 2d 76 lock-mode))..(defconst.htmlize-v
1e20 65 72 73 69 6f 6e 20 22 31 2e 35 37 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 68 74 6d 6c 69 7a ersion."1.57")..(defgroup.htmliz
1e40 65 20 6e 69 6c 0a 20 20 22 43 6f 6e 76 65 72 74 20 62 75 66 66 65 72 20 74 65 78 74 20 61 6e 64 e.nil..."Convert.buffer.text.and
1e60 20 66 61 63 65 73 20 74 6f 20 48 54 4d 4c 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 68 79 70 65 72 .faces.to.HTML."...:group.'hyper
1e80 6d 65 64 69 61 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d 68 65 61 64 2d media)..(defcustom.htmlize-head-
1ea0 74 61 67 73 20 22 22 0a 20 20 22 41 64 64 69 74 69 6f 6e 61 6c 20 74 61 67 73 20 74 6f 20 69 6e tags.""..."Additional.tags.to.in
1ec0 73 65 72 74 20 77 69 74 68 69 6e 20 48 45 41 44 20 6f 66 20 74 68 65 20 67 65 6e 65 72 61 74 65 sert.within.HEAD.of.the.generate
1ee0 64 20 64 6f 63 75 6d 65 6e 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a d.document."...:type.'string...:
1f00 67 72 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c group.'htmlize)..(defcustom.html
1f20 69 7a 65 2d 6f 75 74 70 75 74 2d 74 79 70 65 20 27 63 73 73 0a 20 20 22 4f 75 74 70 75 74 20 74 ize-output-type.'css..."Output.t
1f40 79 70 65 20 6f 66 20 67 65 6e 65 72 61 74 65 64 20 48 54 4d 4c 2c 20 6f 6e 65 20 6f 66 20 60 63 ype.of.generated.HTML,.one.of.`c
1f60 73 73 27 2c 20 60 69 6e 6c 69 6e 65 2d 63 73 73 27 2c 20 6f 72 20 60 66 6f 6e 74 27 2e 0a 57 68 ss',.`inline-css',.or.`font'..Wh
1f80 65 6e 20 73 65 74 20 74 6f 20 60 63 73 73 27 20 28 74 68 65 20 64 65 66 61 75 6c 74 29 2c 20 68 en.set.to.`css'.(the.default),.h
1fa0 74 6d 6c 69 7a 65 20 77 69 6c 6c 20 67 65 6e 65 72 61 74 65 20 61 20 73 74 79 6c 65 20 73 68 65 tmlize.will.generate.a.style.she
1fc0 65 74 0a 77 69 74 68 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 66 61 63 65 73 2c 20 61 6e et.with.description.of.faces,.an
1fe0 64 20 75 73 65 20 69 74 20 69 6e 20 74 68 65 20 48 54 4d 4c 20 64 6f 63 75 6d 65 6e 74 2c 20 73 d.use.it.in.the.HTML.document,.s
2000 70 65 63 69 66 79 69 6e 67 0a 74 68 65 20 66 61 63 65 73 20 69 6e 20 74 68 65 20 61 63 74 75 61 pecifying.the.faces.in.the.actua
2020 6c 20 74 65 78 74 20 77 69 74 68 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 5c 22 46 41 43 45 5c 22 l.text.with.<span.class=\"FACE\"
2040 3e 2e 0a 0a 57 68 65 6e 20 73 65 74 20 74 6f 20 60 69 6e 6c 69 6e 65 2d 63 73 73 27 2c 20 74 68 >...When.set.to.`inline-css',.th
2060 65 20 73 74 79 6c 65 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 20 61 73 20 61 62 6f e.style.will.be.generated.as.abo
2080 76 65 2c 20 62 75 74 0a 70 6c 61 63 65 64 20 64 69 72 65 63 74 6c 79 20 69 6e 20 74 68 65 20 53 ve,.but.placed.directly.in.the.S
20a0 54 59 4c 45 20 61 74 74 72 69 62 75 74 65 20 6f 66 20 74 68 65 20 73 70 61 6e 20 45 4c 45 4d 45 TYLE.attribute.of.the.span.ELEME
20c0 4e 54 3a 20 3c 73 70 61 6e 0a 73 74 79 6c 65 3d 5c 22 53 54 59 4c 45 5c 22 3e 2e 20 20 54 68 69 NT:.<span.style=\"STYLE\">...Thi
20e0 73 20 6d 61 6b 65 73 20 69 74 20 65 61 73 69 65 72 20 74 6f 20 70 61 73 74 65 20 74 68 65 20 72 s.makes.it.easier.to.paste.the.r
2100 65 73 75 6c 74 69 6e 67 20 48 54 4d 4c 20 74 6f 0a 6f 74 68 65 72 20 64 6f 63 75 6d 65 6e 74 73 esulting.HTML.to.other.documents
2120 2e 0a 0a 57 68 65 6e 20 73 65 74 20 74 6f 20 60 66 6f 6e 74 27 2c 20 74 68 65 20 70 72 6f 70 65 ...When.set.to.`font',.the.prope
2140 72 74 69 65 73 20 77 69 6c 6c 20 62 65 20 73 65 74 20 75 73 69 6e 67 20 6c 61 79 6f 75 74 20 74 rties.will.be.set.using.layout.t
2160 61 67 73 0a 3c 66 6f 6e 74 3e 2c 20 3c 62 3e 2c 20 3c 69 3e 2c 20 3c 75 3e 2c 20 61 6e 64 20 3c ags.<font>,.<b>,.<i>,.<u>,.and.<
2180 73 74 72 69 6b 65 3e 2e 0a 0a 60 63 73 73 27 20 6f 75 74 70 75 74 20 69 73 20 6e 6f 72 6d 61 6c strike>...`css'.output.is.normal
21a0 6c 79 20 70 72 65 66 65 72 72 65 64 2c 20 62 75 74 20 60 66 6f 6e 74 27 20 69 73 20 73 74 69 6c ly.preferred,.but.`font'.is.stil
21c0 6c 20 75 73 65 66 75 6c 20 66 6f 72 0a 73 75 70 70 6f 72 74 69 6e 67 20 6f 6c 64 2c 20 70 72 65 l.useful.for.supporting.old,.pre
21e0 2d 43 53 53 20 62 72 6f 77 73 65 72 73 2c 20 61 6e 64 20 62 6f 74 68 20 60 69 6e 6c 69 6e 65 2d -CSS.browsers,.and.both.`inline-
2200 63 73 73 27 20 61 6e 64 20 60 66 6f 6e 74 27 20 66 6f 72 0a 65 61 73 69 65 72 20 65 6d 62 65 64 css'.and.`font'.for.easier.embed
2220 64 69 6e 67 20 6f 66 20 63 6f 6c 6f 72 69 7a 65 64 20 74 65 78 74 20 69 6e 20 66 6f 72 65 69 67 ding.of.colorized.text.in.foreig
2240 6e 20 48 54 4d 4c 20 64 6f 63 75 6d 65 6e 74 73 20 28 6e 6f 20 73 74 79 6c 65 0a 73 68 65 65 74 n.HTML.documents.(no.style.sheet
2260 20 74 6f 20 63 61 72 72 79 20 61 72 6f 75 6e 64 29 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 .to.carry.around)."...:type.'(ch
2280 6f 69 63 65 20 28 63 6f 6e 73 74 20 63 73 73 29 20 28 63 6f 6e 73 74 20 69 6e 6c 69 6e 65 2d 63 oice.(const.css).(const.inline-c
22a0 73 73 29 20 28 63 6f 6e 73 74 20 66 6f 6e 74 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 68 74 6d 6c ss).(const.font))...:group.'html
22c0 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d 75 73 65 2d 69 6d 61 ize)..(defcustom.htmlize-use-ima
22e0 67 65 73 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 68 74 6d 6c 69 7a 65 20 67 65 6e 65 72 61 74 ges.t..."Whether.htmlize.generat
2300 65 73 20 60 69 6d 67 27 20 66 6f 72 20 69 6d 61 67 65 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 es.`img'.for.images.attached.to.
2320 62 75 66 66 65 72 20 63 6f 6e 74 65 6e 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 buffer.contents."...:type.'boole
2340 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f an...:group.'htmlize)..(defcusto
2360 6d 20 68 74 6d 6c 69 7a 65 2d 66 6f 72 63 65 2d 69 6e 6c 69 6e 65 2d 69 6d 61 67 65 73 20 6e 69 m.htmlize-force-inline-images.ni
2380 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 6d 65 61 6e 73 20 67 65 6e 65 72 61 74 65 20 61 6c 6c 20 l..."Non-nil.means.generate.all.
23a0 69 6d 61 67 65 73 20 69 6e 6c 69 6e 65 20 75 73 69 6e 67 20 64 61 74 61 20 55 52 4c 73 2e 0a 4e images.inline.using.data.URLs..N
23c0 6f 72 6d 61 6c 6c 79 20 68 74 6d 6c 69 7a 65 20 63 6f 6e 76 65 72 74 73 20 69 6d 61 67 65 20 64 ormally.htmlize.converts.image.d
23e0 65 73 63 72 69 70 74 6f 72 73 20 77 69 74 68 20 3a 66 69 6c 65 20 70 72 6f 70 65 72 74 69 65 73 escriptors.with.:file.properties
2400 20 74 6f 0a 72 65 6c 61 74 69 76 65 20 55 52 49 73 2c 20 61 6e 64 20 74 68 6f 73 65 20 77 69 74 .to.relative.URIs,.and.those.wit
2420 68 20 3a 64 61 74 61 20 70 72 6f 70 65 72 74 69 65 73 20 74 6f 20 64 61 74 61 20 55 52 49 73 2e h.:data.properties.to.data.URIs.
2440 20 20 57 69 74 68 20 74 68 69 73 0a 66 6c 61 67 20 73 65 74 2c 20 74 68 65 20 69 6d 61 67 65 73 ..With.this.flag.set,.the.images
2460 20 73 70 65 63 69 66 69 65 64 20 61 73 20 61 20 66 69 6c 65 20 6e 61 6d 65 20 61 72 65 20 6c 6f .specified.as.a.file.name.are.lo
2480 61 64 65 64 20 69 6e 74 6f 20 6d 65 6d 6f 72 79 20 61 6e 64 0a 65 6d 62 65 64 64 65 64 20 69 6e aded.into.memory.and.embedded.in
24a0 20 74 68 65 20 48 54 4d 4c 20 61 73 20 64 61 74 61 20 55 52 49 73 2e 22 0a 20 20 3a 74 79 70 65 .the.HTML.as.data.URIs."...:type
24c0 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 .'boolean...:group.'htmlize)..(d
24e0 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d 6d 61 78 2d 61 6c 74 2d 74 65 78 74 20 31 30 efcustom.htmlize-max-alt-text.10
2500 30 0a 20 20 22 4d 61 78 69 6d 75 6d 20 73 69 7a 65 20 6f 66 20 74 65 78 74 20 74 6f 20 75 73 65 0..."Maximum.size.of.text.to.use
2520 20 61 73 20 41 4c 54 20 74 65 78 74 20 69 6e 20 69 6d 61 67 65 73 2e 0a 0a 4e 6f 72 6d 61 6c 6c .as.ALT.text.in.images...Normall
2540 79 20 77 68 65 6e 20 68 74 6d 6c 69 7a 65 20 65 6e 63 6f 75 6e 74 65 72 73 20 74 65 78 74 20 63 y.when.htmlize.encounters.text.c
2560 6f 76 65 72 65 64 20 62 79 20 74 68 65 20 60 64 69 73 70 6c 61 79 27 20 70 72 6f 70 65 72 74 79 overed.by.the.`display'.property
2580 0a 74 68 61 74 20 73 70 65 63 69 66 69 65 73 20 61 6e 20 69 6d 61 67 65 2c 20 69 74 20 67 65 6e .that.specifies.an.image,.it.gen
25a0 65 72 61 74 65 73 20 61 6e 20 60 61 6c 74 27 20 61 74 74 72 69 62 75 74 65 20 63 6f 6e 74 61 69 erates.an.`alt'.attribute.contai
25c0 6e 69 6e 67 20 74 68 65 0a 6f 72 69 67 69 6e 61 6c 20 74 65 78 74 2e 20 20 49 66 20 74 68 65 20 ning.the.original.text...If.the.
25e0 74 65 78 74 20 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e 20 60 68 74 6d 6c 69 7a 65 2d 6d 61 78 text.is.larger.than.`htmlize-max
2600 2d 61 6c 74 2d 74 65 78 74 27 20 63 68 61 72 61 63 74 65 72 73 2c 0a 74 68 69 73 20 77 69 6c 6c -alt-text'.characters,.this.will
2620 20 6e 6f 74 20 62 65 20 64 6f 6e 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 0a .not.be.done."...:type.'integer.
2640 20 20 3a 67 72 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 ..:group.'htmlize)..(defcustom.h
2660 74 6d 6c 69 7a 65 2d 74 72 61 6e 73 66 6f 72 6d 2d 69 6d 61 67 65 20 27 68 74 6d 6c 69 7a 65 2d tmlize-transform-image.'htmlize-
2680 64 65 66 61 75 6c 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 69 6d 61 67 65 0a 20 20 22 46 75 6e 63 74 default-transform-image..."Funct
26a0 69 6f 6e 20 63 61 6c 6c 65 64 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 69 6d 61 67 65 20 64 ion.called.to.modify.the.image.d
26c0 65 73 63 72 69 70 74 6f 72 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c escriptor...The.function.is.call
26e0 65 64 20 77 69 74 68 20 74 68 65 20 69 6d 61 67 65 20 64 65 73 63 72 69 70 74 6f 72 20 66 6f 75 ed.with.the.image.descriptor.fou
2700 6e 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 61 6e 64 0a 74 68 65 20 74 65 78 74 20 74 68 nd.in.the.buffer.and.the.text.th
2720 65 20 69 6d 61 67 65 20 69 73 20 73 75 70 70 6f 73 65 64 20 74 6f 20 72 65 70 6c 61 63 65 2e 20 e.image.is.supposed.to.replace..
2740 20 49 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 20 28 70 6f 73 73 69 62 6c 79 0a 64 69 .It.should.return.a.(possibly.di
2760 66 66 65 72 65 6e 74 29 20 69 6d 61 67 65 20 64 65 73 63 72 69 70 74 6f 72 20 70 72 6f 70 65 72 fferent).image.descriptor.proper
2780 74 79 20 6c 69 73 74 20 6f 72 20 61 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 73 74 72 69 6e 67 20 ty.list.or.a.replacement.string.
27a0 74 6f 20 75 73 65 0a 69 6e 73 74 65 61 64 20 6f 66 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 to.use.instead.of.of.the.origina
27c0 6c 20 62 75 66 66 65 72 20 74 65 78 74 2e 0a 0a 52 65 74 75 72 6e 69 6e 67 20 6e 69 6c 20 69 73 l.buffer.text...Returning.nil.is
27e0 20 74 68 65 20 73 61 6d 65 20 61 73 20 72 65 74 75 72 6e 69 6e 67 20 74 68 65 20 6f 72 69 67 69 .the.same.as.returning.the.origi
2800 6e 61 6c 20 74 65 78 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 nal.text."...:type.'boolean...:g
2820 72 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 roup.'htmlize)..(defcustom.htmli
2840 7a 65 2d 67 65 6e 65 72 61 74 65 2d 68 79 70 65 72 6c 69 6e 6b 73 20 74 0a 20 20 22 4e 6f 6e 2d ze-generate-hyperlinks.t..."Non-
2860 6e 69 6c 20 6d 65 61 6e 73 20 61 75 74 6f 2d 67 65 6e 65 72 61 74 65 20 74 68 65 20 6c 69 6e 6b nil.means.auto-generate.the.link
2880 73 20 66 72 6f 6d 20 55 52 4c 73 20 61 6e 64 20 6d 61 69 6c 20 61 64 64 72 65 73 73 65 73 20 69 s.from.URLs.and.mail.addresses.i
28a0 6e 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 69 73 20 6f 6e 20 62 79 20 64 65 66 61 75 6c 74 n.buffer...This.is.on.by.default
28c0 3b 20 73 65 74 20 69 74 20 74 6f 20 6e 69 6c 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 77 61 6e ;.set.it.to.nil.if.you.don't.wan
28e0 74 20 68 74 6d 6c 69 7a 65 20 74 6f 0a 61 75 74 6f 67 65 6e 65 72 61 74 65 20 73 75 63 68 20 6c t.htmlize.to.autogenerate.such.l
2900 69 6e 6b 73 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6f 6e 6c inks...Note.that.this.option.onl
2920 79 20 74 75 72 6e 73 20 6f 66 66 20 61 75 74 6f 6d 61 74 69 63 0a 73 65 61 72 63 68 20 66 6f 72 y.turns.off.automatic.search.for
2940 20 63 6f 6e 74 65 6e 74 73 20 74 68 61 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 55 52 4c 73 20 61 .contents.that.looks.like.URLs.a
2960 6e 64 20 63 6f 6e 76 65 72 74 69 6e 67 20 74 68 65 6d 20 74 6f 20 6c 69 6e 6b 73 2e 0a 49 74 20 nd.converting.them.to.links..It.
2980 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 6f 6e 20 77 68 65 74 68 65 72 20 68 74 6d 6c 69 7a 65 has.no.effect.on.whether.htmlize
29a0 20 72 65 73 70 65 63 74 73 20 74 68 65 20 60 68 74 6d 6c 69 7a 65 2d 6c 69 6e 6b 27 20 70 72 6f .respects.the.`htmlize-link'.pro
29c0 70 65 72 74 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 perty."...:type.'boolean...:grou
29e0 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d p.'htmlize)..(defcustom.htmlize-
2a00 68 79 70 65 72 6c 69 6e 6b 2d 73 74 79 6c 65 20 22 0a 20 20 20 20 20 20 61 20 7b 0a 20 20 20 20 hyperlink-style.".......a.{.....
2a20 20 20 20 20 63 6f 6c 6f 72 3a 20 69 6e 68 65 72 69 74 3b 0a 20 20 20 20 20 20 20 20 62 61 63 6b ....color:.inherit;.........back
2a40 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 20 69 6e 68 65 72 69 74 3b 0a 20 20 20 20 20 20 20 20 66 ground-color:.inherit;.........f
2a60 6f 6e 74 3a 20 69 6e 68 65 72 69 74 3b 0a 20 20 20 20 20 20 20 20 74 65 78 74 2d 64 65 63 6f 72 ont:.inherit;.........text-decor
2a80 61 74 69 6f 6e 3a 20 69 6e 68 65 72 69 74 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 61 3a ation:.inherit;.......}.......a:
2aa0 68 6f 76 65 72 20 7b 0a 20 20 20 20 20 20 20 20 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a hover.{.........text-decoration:
2ac0 20 75 6e 64 65 72 6c 69 6e 65 3b 0a 20 20 20 20 20 20 7d 0a 22 0a 20 20 22 54 68 65 20 43 53 53 .underline;.......}."..."The.CSS
2ae0 20 73 74 79 6c 65 20 75 73 65 64 20 66 6f 72 20 68 79 70 65 72 6c 69 6e 6b 73 20 77 68 65 6e 20 .style.used.for.hyperlinks.when.
2b00 69 6e 20 43 53 53 20 6d 6f 64 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 in.CSS.mode."...:type.'string...
2b20 3a 67 72 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d :group.'htmlize)..(defcustom.htm
2b40 6c 69 7a 65 2d 72 65 70 6c 61 63 65 2d 66 6f 72 6d 2d 66 65 65 64 73 20 74 0a 20 20 22 4e 6f 6e lize-replace-form-feeds.t..."Non
2b60 2d 6e 69 6c 20 6d 65 61 6e 73 20 72 65 70 6c 61 63 65 20 66 6f 72 6d 20 66 65 65 64 73 20 69 6e -nil.means.replace.form.feeds.in
2b80 20 73 6f 75 72 63 65 20 63 6f 64 65 20 77 69 74 68 20 48 54 4d 4c 20 73 65 70 61 72 61 74 6f 72 .source.code.with.HTML.separator
2ba0 73 2e 0a 46 6f 72 6d 20 66 65 65 64 73 20 61 72 65 20 74 68 65 20 5e 4c 20 63 68 61 72 61 63 74 s..Form.feeds.are.the.^L.charact
2bc0 65 72 73 20 61 74 20 6c 69 6e 65 20 62 65 67 69 6e 6e 69 6e 67 73 20 74 68 61 74 20 61 72 65 20 ers.at.line.beginnings.that.are.
2be0 73 6f 6d 65 74 69 6d 65 73 0a 75 73 65 64 20 74 6f 20 73 65 70 61 72 61 74 65 20 73 65 63 74 69 sometimes.used.to.separate.secti
2c00 6f 6e 73 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 66 20 74 68 69 73 20 76 61 72 ons.of.source.code...If.this.var
2c20 69 61 62 6c 65 20 69 73 20 73 65 74 20 74 6f 0a 60 74 27 2c 20 66 6f 72 6d 20 66 65 65 64 20 63 iable.is.set.to.`t',.form.feed.c
2c40 68 61 72 61 63 74 65 72 73 20 61 72 65 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 74 68 65 20 haracters.are.replaced.with.the.
2c60 3c 68 72 3e 20 73 65 70 61 72 61 74 6f 72 2e 20 20 49 66 20 74 68 69 73 0a 69 73 20 61 20 73 74 <hr>.separator...If.this.is.a.st
2c80 72 69 6e 67 2c 20 69 74 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 72 65 70 6c 61 63 65 6d 65 ring,.it.specifies.the.replaceme
2ca0 6e 74 20 74 6f 20 75 73 65 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 3c 70 72 65 3e 20 69 73 0a 74 nt.to.use...Note.that.<pre>.is.t
2cc0 65 6d 70 6f 72 61 72 69 6c 79 20 63 6c 6f 73 65 64 20 62 65 66 6f 72 65 20 74 68 65 20 73 65 70 emporarily.closed.before.the.sep
2ce0 61 72 61 74 6f 72 20 69 73 20 69 6e 73 65 72 74 65 64 2c 20 73 6f 20 74 68 65 20 64 65 66 61 75 arator.is.inserted,.so.the.defau
2d00 6c 74 0a 72 65 70 6c 61 63 65 6d 65 6e 74 20 69 73 20 65 66 66 65 63 74 69 76 65 6c 79 20 5c 22 lt.replacement.is.effectively.\"
2d20 3c 2f 70 72 65 3e 3c 68 72 20 2f 3e 3c 70 72 65 3e 5c 22 2e 20 20 49 66 20 79 6f 75 20 73 70 65 </pre><hr./><pre>\"...If.you.spe
2d40 63 69 66 79 0a 61 6e 6f 74 68 65 72 20 72 65 70 6c 61 63 65 6d 65 6e 74 2c 20 64 6f 6e 27 74 20 cify.another.replacement,.don't.
2d60 66 6f 72 67 65 74 20 74 6f 20 63 6c 6f 73 65 20 61 6e 64 20 72 65 6f 70 65 6e 20 74 68 65 20 3c forget.to.close.and.reopen.the.<
2d80 70 72 65 3e 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 74 68 65 20 6f 75 74 70 75 74 20 74 6f 20 72 pre>.if.you.want.the.output.to.r
2da0 65 6d 61 69 6e 20 76 61 6c 69 64 20 48 54 4d 4c 2e 0a 0a 49 66 20 79 6f 75 20 6e 65 65 64 20 6d emain.valid.HTML...If.you.need.m
2dc0 6f 72 65 20 65 6c 61 62 6f 72 61 74 65 20 70 72 6f 63 65 73 73 69 6e 67 2c 20 73 65 74 20 74 68 ore.elaborate.processing,.set.th
2de0 69 73 20 74 6f 20 6e 69 6c 20 61 6e 64 20 75 73 65 0a 68 74 6d 6c 69 7a 65 2d 61 66 74 65 72 2d is.to.nil.and.use.htmlize-after-
2e00 68 6f 6f 6b 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 hook."...:type.'boolean...:group
2e20 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d 68 .'htmlize)..(defcustom.htmlize-h
2e40 74 6d 6c 2d 63 68 61 72 73 65 74 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 68 61 72 73 65 74 20 64 tml-charset.nil..."The.charset.d
2e60 65 63 6c 61 72 65 64 20 62 79 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 48 54 4d 4c 20 64 6f eclared.by.the.resulting.HTML.do
2e80 63 75 6d 65 6e 74 73 2e 0a 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 63 61 75 73 65 73 20 68 74 cuments..When.non-nil,.causes.ht
2ea0 6d 6c 69 7a 65 20 74 6f 20 69 6e 73 65 72 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e mlize.to.insert.the.following.in
2ec0 20 74 68 65 20 48 45 41 44 20 73 65 63 74 69 6f 6e 0a 6f 66 20 74 68 65 20 67 65 6e 65 72 61 74 .the.HEAD.section.of.the.generat
2ee0 65 64 20 48 54 4d 4c 3a 0a 0a 20 20 3c 6d 65 74 61 20 68 74 74 70 2d 65 71 75 69 76 3d 5c 22 43 ed.HTML:....<meta.http-equiv=\"C
2f00 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 63 6f 6e 74 65 6e 74 3d 5c 22 74 65 78 74 2f 68 74 6d ontent-Type\".content=\"text/htm
2f20 6c 3b 20 63 68 61 72 73 65 74 3d 43 48 41 52 53 45 54 5c 22 3e 0a 0a 77 68 65 72 65 20 43 48 41 l;.charset=CHARSET\">..where.CHA
2f40 52 53 45 54 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 79 6f 75 27 76 65 20 73 65 74 20 66 6f 72 RSET.is.the.value.you've.set.for
2f60 20 68 74 6d 6c 69 7a 65 2d 68 74 6d 6c 2d 63 68 61 72 73 65 74 2e 20 20 56 61 6c 69 64 0a 63 68 .htmlize-html-charset...Valid.ch
2f80 61 72 73 65 74 73 20 61 72 65 20 64 65 66 69 6e 65 64 20 62 79 20 4d 49 4d 45 20 61 6e 64 20 69 arsets.are.defined.by.MIME.and.i
2fa0 6e 63 6c 75 64 65 20 73 74 72 69 6e 67 73 20 6c 69 6b 65 20 5c 22 69 73 6f 2d 38 38 35 39 2d 31 nclude.strings.like.\"iso-8859-1
2fc0 5c 22 2c 0a 5c 22 69 73 6f 2d 38 38 35 39 2d 31 35 5c 22 2c 20 5c 22 75 74 66 2d 38 5c 22 2c 20 \",.\"iso-8859-15\",.\"utf-8\",.
2fe0 65 74 63 2e 0a 0a 49 66 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 6e 6f 6e 2d 4c 61 74 69 6e etc...If.you.are.using.non-Latin
3000 2d 31 20 63 68 61 72 73 65 74 73 2c 20 79 6f 75 20 6d 69 67 68 74 20 6e 65 65 64 20 74 6f 20 73 -1.charsets,.you.might.need.to.s
3020 65 74 20 74 68 69 73 20 66 6f 72 0a 79 6f 75 72 20 64 6f 63 75 6d 65 6e 74 73 20 74 6f 20 72 65 et.this.for.your.documents.to.re
3040 6e 64 65 72 20 63 6f 72 72 65 63 74 6c 79 2e 20 20 41 6c 73 6f 2c 20 74 68 65 20 57 33 43 20 76 nder.correctly...Also,.the.W3C.v
3060 61 6c 69 64 61 74 6f 72 20 72 65 71 75 69 72 65 73 0a 73 75 62 6d 69 74 74 65 64 20 48 54 4d 4c alidator.requires.submitted.HTML
3080 20 64 6f 63 75 6d 65 6e 74 73 20 74 6f 20 64 65 63 6c 61 72 65 20 61 20 63 68 61 72 73 65 74 2e .documents.to.declare.a.charset.
30a0 20 20 53 6f 20 69 66 20 79 6f 75 20 63 61 72 65 20 61 62 6f 75 74 0a 76 61 6c 69 64 61 74 69 6f ..So.if.you.care.about.validatio
30c0 6e 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 74 6f 20 70 72 65 76 65 6e 74 20 74 n,.you.can.use.this.to.prevent.t
30e0 68 65 20 76 61 6c 69 64 61 74 6f 72 20 66 72 6f 6d 20 62 69 74 63 68 69 6e 67 2e 0a 0a 4e 65 65 he.validator.from.bitching...Nee
3100 64 6c 65 73 73 20 74 6f 20 73 61 79 2c 20 69 66 20 79 6f 75 20 73 65 74 20 74 68 69 73 2c 20 79 dless.to.say,.if.you.set.this,.y
3120 6f 75 20 73 68 6f 75 6c 64 20 61 63 74 75 61 6c 6c 79 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 ou.should.actually.make.sure.tha
3140 74 0a 74 68 65 20 62 75 66 66 65 72 20 69 73 20 69 6e 20 74 68 65 20 65 6e 63 6f 64 69 6e 67 20 t.the.buffer.is.in.the.encoding.
3160 79 6f 75 27 72 65 20 63 6c 61 69 6d 69 6e 67 20 69 74 20 69 73 20 69 6e 2e 20 20 28 54 68 69 73 you're.claiming.it.is.in...(This
3180 20 69 73 0a 6e 6f 72 6d 61 6c 6c 79 20 61 63 68 69 65 76 65 64 20 62 79 20 75 73 69 6e 67 20 74 .is.normally.achieved.by.using.t
31a0 68 65 20 63 6f 72 72 65 63 74 20 66 69 6c 65 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 66 6f he.correct.file.coding.system.fo
31c0 72 20 74 68 65 0a 62 75 66 66 65 72 2e 29 20 20 49 66 20 79 6f 75 20 64 6f 6e 27 74 20 75 6e 64 r.the.buffer.)..If.you.don't.und
31e0 65 72 73 74 61 6e 64 20 77 68 61 74 20 74 68 61 74 20 6d 65 61 6e 73 2c 20 79 6f 75 20 73 68 6f erstand.what.that.means,.you.sho
3200 75 6c 64 20 70 72 6f 62 61 62 6c 79 0a 6c 65 61 76 65 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 uld.probably.leave.this.option.i
3220 6e 20 69 74 73 20 64 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67 2e 22 0a 20 20 3a 74 79 70 65 20 n.its.default.setting."...:type.
3240 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 55 6e 73 65 74 22 20 6e 69 6c '(choice.(const.:tag."Unset".nil
3260 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 29 0a 20 20 3a 67 72 )..................string)...:gr
3280 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a oup.'htmlize)..(defcustom.htmliz
32a0 65 2d 63 6f 6e 76 65 72 74 2d 6e 6f 6e 61 73 63 69 69 2d 74 6f 2d 65 6e 74 69 74 69 65 73 20 74 e-convert-nonascii-to-entities.t
32c0 0a 20 20 22 57 68 65 74 68 65 72 20 6e 6f 6e 2d 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72 73 ..."Whether.non-ASCII.characters
32e0 20 73 68 6f 75 6c 64 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 48 54 4d 4c 20 65 6e 74 .should.be.converted.to.HTML.ent
3300 69 74 69 65 73 2e 0a 0a 57 68 65 6e 20 74 68 69 73 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 63 68 ities...When.this.is.non-nil,.ch
3320 61 72 61 63 74 65 72 73 20 77 69 74 68 20 63 6f 64 65 73 20 69 6e 20 74 68 65 20 31 32 38 2d 32 aracters.with.codes.in.the.128-2
3340 35 35 20 72 61 6e 67 65 20 77 69 6c 6c 20 62 65 0a 63 6f 6e 73 69 64 65 72 65 64 20 4c 61 74 69 55.range.will.be.considered.Lati
3360 6e 20 31 20 61 6e 64 20 72 65 77 72 69 74 74 65 6e 20 61 73 20 5c 22 26 23 43 4f 44 45 3b 5c 22 n.1.and.rewritten.as.\"&#CODE;\"
3380 2e 20 20 43 68 61 72 61 63 74 65 72 73 20 77 69 74 68 20 63 6f 64 65 73 0a 61 62 6f 76 65 20 32 ...Characters.with.codes.above.2
33a0 35 35 20 77 69 6c 6c 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 5c 22 26 23 55 43 53 3b 55.will.be.converted.to.\"&#UCS;
33c0 5c 22 2c 20 77 68 65 72 65 20 55 43 53 20 64 65 6e 6f 74 65 73 20 74 68 65 20 55 6e 69 63 6f 64 \",.where.UCS.denotes.the.Unicod
33e0 65 0a 63 6f 64 65 20 70 6f 69 6e 74 20 6f 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 2e 20 20 e.code.point.of.the.character...
3400 49 66 20 74 68 65 20 63 6f 64 65 20 70 6f 69 6e 74 20 63 61 6e 6e 6f 74 20 62 65 20 64 65 74 65 If.the.code.point.cannot.be.dete
3420 72 6d 69 6e 65 64 2c 0a 74 68 65 20 63 68 61 72 61 63 74 65 72 20 77 69 6c 6c 20 62 65 20 63 6f rmined,.the.character.will.be.co
3440 70 69 65 64 20 75 6e 63 68 61 6e 67 65 64 2c 20 61 73 20 77 6f 75 6c 64 20 62 65 20 74 68 65 20 pied.unchanged,.as.would.be.the.
3460 63 61 73 65 20 69 66 20 74 68 65 0a 6f 70 74 69 6f 6e 20 77 65 72 65 20 6e 69 6c 2e 0a 0a 57 68 case.if.the.option.were.nil...Wh
3480 65 6e 20 74 68 65 20 6f 70 74 69 6f 6e 20 69 73 20 6e 69 6c 2c 20 74 68 65 20 6e 6f 6e 2d 41 53 en.the.option.is.nil,.the.non-AS
34a0 43 49 49 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 63 6f 70 69 65 64 20 74 6f 20 48 54 4d CII.characters.are.copied.to.HTM
34c0 4c 0a 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2e 20 20 49 6e 20 74 68 61 74 L.without.modification...In.that
34e0 20 63 61 73 65 2c 20 74 68 65 20 77 65 62 20 73 65 72 76 65 72 20 61 6e 64 2f 6f 72 20 74 68 65 .case,.the.web.server.and/or.the
3500 20 62 72 6f 77 73 65 72 0a 6d 75 73 74 20 62 65 20 73 65 74 20 74 6f 20 75 6e 64 65 72 73 74 61 .browser.must.be.set.to.understa
3520 6e 64 20 74 68 65 20 65 6e 63 6f 64 69 6e 67 20 74 68 61 74 20 77 61 73 20 75 73 65 64 20 77 68 nd.the.encoding.that.was.used.wh
3540 65 6e 20 73 61 76 69 6e 67 20 74 68 65 0a 62 75 66 66 65 72 2e 20 20 28 59 6f 75 20 6d 69 67 68 en.saving.the.buffer...(You.migh
3560 74 20 61 6c 73 6f 20 77 61 6e 74 20 74 6f 20 73 70 65 63 69 66 79 20 69 74 20 62 79 20 73 65 74 t.also.want.to.specify.it.by.set
3580 74 69 6e 67 0a 60 68 74 6d 6c 69 7a 65 2d 68 74 6d 6c 2d 63 68 61 72 73 65 74 27 2e 29 0a 0a 4e ting.`htmlize-html-charset'.)..N
35a0 6f 74 65 20 74 68 61 74 20 69 6e 20 61 6e 20 48 54 4d 4c 20 65 6e 74 69 74 79 20 5c 22 26 23 43 ote.that.in.an.HTML.entity.\"&#C
35c0 4f 44 45 3b 5c 22 2c 20 43 4f 44 45 20 69 73 20 61 6c 77 61 79 73 20 61 20 55 43 53 20 63 6f 64 ODE;\",.CODE.is.always.a.UCS.cod
35e0 65 20 70 6f 69 6e 74 2c 0a 77 68 69 63 68 20 68 61 73 20 6e 6f 74 68 69 6e 67 20 74 6f 20 64 6f e.point,.which.has.nothing.to.do
3600 20 77 69 74 68 20 74 68 65 20 63 68 61 72 73 65 74 20 74 68 65 20 70 61 67 65 20 69 73 20 69 6e .with.the.charset.the.page.is.in
3620 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 5c 22 26 23 31 36 39 3b 5c 22 20 2a 61 6c 77 61 ...For.example,.\"&#169;\".*alwa
3640 79 73 2a 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 73 79 6d 62 ys*.refers.to.the.copyright.symb
3660 6f 6c 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 63 68 61 72 73 65 74 0a 73 70 65 63 69 66 ol,.regardless.of.charset.specif
3680 69 65 64 20 62 79 20 74 68 65 20 4d 45 54 41 20 74 61 67 20 6f 72 20 74 68 65 20 63 68 61 72 73 ied.by.the.META.tag.or.the.chars
36a0 65 74 20 73 65 6e 74 20 62 79 20 74 68 65 20 48 54 54 50 20 73 65 72 76 65 72 2e 20 20 49 6e 0a et.sent.by.the.HTTP.server...In.
36c0 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 5c 22 26 23 31 36 39 3b 5c 22 20 69 73 20 65 78 61 63 74 other.words,.\"&#169;\".is.exact
36e0 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 5c 22 26 63 6f 70 79 3b 5c 22 2e 0a 0a 46 6f ly.equivalent.to.\"&copy;\"...Fo
3700 72 20 6d 6f 73 74 20 70 65 6f 70 6c 65 20 68 74 6d 6c 69 7a 65 20 77 69 6c 6c 20 77 6f 72 6b 20 r.most.people.htmlize.will.work.
3720 66 69 6e 65 20 77 69 74 68 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6c 65 66 74 20 61 74 20 74 68 fine.with.this.option.left.at.th
3740 65 0a 64 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67 3b 20 64 6f 6e 27 74 20 63 68 61 6e 67 65 20 e.default.setting;.don't.change.
3760 69 74 20 75 6e 6c 65 73 73 20 79 6f 75 20 6b 6e 6f 77 20 77 68 61 74 20 79 6f 75 27 72 65 20 64 it.unless.you.know.what.you're.d
3780 6f 69 6e 67 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 65 78 70 0a 20 20 3a 67 72 6f 75 70 20 27 68 oing."...:type.'sexp...:group.'h
37a0 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d 69 67 6e 6f tmlize)..(defcustom.htmlize-igno
37c0 72 65 2d 66 61 63 65 2d 73 69 7a 65 20 27 61 62 73 6f 6c 75 74 65 0a 20 20 22 57 68 65 74 68 65 re-face-size.'absolute..."Whethe
37e0 72 20 66 61 63 65 20 73 69 7a 65 20 73 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 20 77 68 r.face.size.should.be.ignored.wh
3800 65 6e 20 67 65 6e 65 72 61 74 69 6e 67 20 48 54 4d 4c 2e 0a 49 66 20 74 68 69 73 20 69 73 20 6e en.generating.HTML..If.this.is.n
3820 69 6c 2c 20 66 61 63 65 20 73 69 7a 65 73 20 61 72 65 20 75 73 65 64 2e 20 20 49 66 20 73 65 74 il,.face.sizes.are.used...If.set
3840 20 74 6f 20 74 2c 20 73 69 7a 65 73 20 61 72 65 20 69 67 6e 6f 72 65 64 0a 49 66 20 73 65 74 20 .to.t,.sizes.are.ignored.If.set.
3860 74 6f 20 60 61 62 73 6f 6c 75 74 65 27 2c 20 6f 6e 6c 79 20 61 62 73 6f 6c 75 74 65 20 73 69 7a to.`absolute',.only.absolute.siz
3880 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 0a 50 6c e.specifications.are.ignored..Pl
38a0 65 61 73 65 20 6e 6f 74 65 20 74 68 61 74 20 66 6f 6e 74 20 73 69 7a 65 73 20 6f 6e 6c 79 20 77 ease.note.that.font.sizes.only.w
38c0 6f 72 6b 20 77 69 74 68 20 43 53 53 2d 62 61 73 65 64 20 6f 75 74 70 75 74 20 74 79 70 65 73 2e ork.with.CSS-based.output.types.
38e0 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 "...:type.'(choice.(const.:tag."
3900 44 6f 6e 27 74 20 69 67 6e 6f 72 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 Don't.ignore".nil)..............
3920 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 67 6e 6f 72 65 20 61 6c 6c 22 20 74 29 0a ....(const.:tag."Ignore.all".t).
3940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 67 .................(const.:tag."Ig
3960 6e 6f 72 65 20 61 62 73 6f 6c 75 74 65 22 20 61 62 73 6f 6c 75 74 65 29 29 0a 20 20 3a 67 72 6f nore.absolute".absolute))...:gro
3980 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 up.'htmlize)..(defcustom.htmlize
39a0 2d 63 73 73 2d 6e 61 6d 65 2d 70 72 65 66 69 78 20 22 22 0a 20 20 22 54 68 65 20 70 72 65 66 69 -css-name-prefix.""..."The.prefi
39c0 78 20 75 73 65 64 20 66 6f 72 20 43 53 53 20 6e 61 6d 65 73 2e 0a 54 68 65 20 43 53 53 20 6e 61 x.used.for.CSS.names..The.CSS.na
39e0 6d 65 73 20 74 68 61 74 20 68 74 6d 6c 69 7a 65 20 67 65 6e 65 72 61 74 65 73 20 66 72 6f 6d 20 mes.that.htmlize.generates.from.
3a00 66 61 63 65 20 6e 61 6d 65 73 20 61 72 65 20 6f 66 74 65 6e 20 74 6f 6f 0a 67 65 6e 65 72 69 63 face.names.are.often.too.generic
3a20 20 66 6f 72 20 43 53 53 20 66 69 6c 65 73 3b 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 60 66 6f .for.CSS.files;.for.example,.`fo
3a40 6e 74 2d 6c 6f 63 6b 2d 74 79 70 65 2d 66 61 63 65 27 20 69 73 20 74 72 61 6e 73 66 6f 72 6d 65 nt-lock-type-face'.is.transforme
3a60 64 0a 74 6f 20 60 74 79 70 65 27 2e 20 20 55 73 65 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 d.to.`type'...Use.this.variable.
3a80 74 6f 20 61 64 64 20 61 20 70 72 65 66 69 78 20 74 6f 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 to.add.a.prefix.to.the.generated
3aa0 20 6e 61 6d 65 73 2e 0a 54 68 65 20 73 74 72 69 6e 67 20 5c 22 68 74 6d 6c 69 7a 65 2d 5c 22 20 .names..The.string.\"htmlize-\".
3ac0 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 72 65 61 73 6f 6e 61 62 6c 65 20 70 72 is.an.example.of.a.reasonable.pr
3ae0 65 66 69 78 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 efix."...:type.'string...:group.
3b00 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d 75 73 'htmlize)..(defcustom.htmlize-us
3b20 65 2d 72 67 62 2d 74 78 74 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 60 72 67 62 2e 74 78 74 27 e-rgb-txt.t..."Whether.`rgb.txt'
3b40 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 74 6f 20 63 6f 6e 76 65 72 74 20 63 6f 6c 6f 72 .should.be.used.to.convert.color
3b60 20 6e 61 6d 65 73 20 74 6f 20 52 47 42 2e 0a 0a 54 68 69 73 20 63 6f 6e 76 65 72 73 69 6f 6e 20 .names.to.RGB...This.conversion.
3b80 6d 65 61 6e 73 20 64 65 74 65 72 6d 69 6e 69 6e 67 2c 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 2c means.determining,.for.instance,
3ba0 20 74 68 61 74 20 74 68 65 20 63 6f 6c 6f 72 0a 5c 22 49 6e 64 69 61 6e 52 65 64 5c 22 20 63 6f .that.the.color.\"IndianRed\".co
3bc0 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 28 32 30 35 2c 20 39 32 2c 20 39 32 29 20 52 rresponds.to.the.(205,.92,.92).R
3be0 47 42 20 74 72 69 70 6c 65 2e 20 20 60 72 67 62 2e 74 78 74 27 0a 69 73 20 74 68 65 20 58 20 63 GB.triple...`rgb.txt'.is.the.X.c
3c00 6f 6c 6f 72 20 64 61 74 61 62 61 73 65 20 74 68 61 74 20 6d 61 70 73 20 68 75 6e 64 72 65 64 73 olor.database.that.maps.hundreds
3c20 20 6f 66 20 63 6f 6c 6f 72 20 6e 61 6d 65 73 20 74 6f 20 73 75 63 68 20 52 47 42 0a 74 72 69 70 .of.color.names.to.such.RGB.trip
3c40 6c 65 73 2e 20 20 57 68 65 6e 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 6e 6f 6e 2d les...When.this.variable.is.non-
3c60 6e 69 6c 2c 20 60 68 74 6d 6c 69 7a 65 27 20 75 73 65 73 20 60 72 67 62 2e 74 78 74 27 20 74 6f nil,.`htmlize'.uses.`rgb.txt'.to
3c80 0a 6c 6f 6f 6b 20 75 70 20 63 6f 6c 6f 72 20 6e 61 6d 65 73 2e 0a 0a 49 66 20 74 68 69 73 20 76 .look.up.color.names...If.this.v
3ca0 61 72 69 61 62 6c 65 20 69 73 20 6e 69 6c 2c 20 68 74 6d 6c 69 7a 65 20 71 75 65 72 69 65 73 20 ariable.is.nil,.htmlize.queries.
3cc0 45 6d 61 63 73 20 66 6f 72 20 52 47 42 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 0a 63 6f 6c 6f Emacs.for.RGB.components.of.colo
3ce0 72 73 20 75 73 69 6e 67 20 60 63 6f 6c 6f 72 2d 69 6e 73 74 61 6e 63 65 2d 72 67 62 2d 63 6f 6d rs.using.`color-instance-rgb-com
3d00 70 6f 6e 65 6e 74 73 27 20 61 6e 64 20 60 63 6f 6c 6f 72 2d 76 61 6c 75 65 73 27 2e 0a 54 68 69 ponents'.and.`color-values'..Thi
3d20 73 20 63 61 6e 20 79 69 65 6c 64 20 69 6e 63 6f 72 72 65 63 74 20 72 65 73 75 6c 74 73 20 6f 6e s.can.yield.incorrect.results.on
3d40 20 6e 6f 6e 2d 74 72 75 65 2d 63 6f 6c 6f 72 20 64 69 73 70 6c 61 79 73 2e 0a 0a 49 66 20 74 68 .non-true-color.displays...If.th
3d60 65 20 60 72 67 62 2e 74 78 74 27 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 28 77 e.`rgb.txt'.file.is.not.found.(w
3d80 68 69 63 68 20 77 69 6c 6c 20 62 65 20 74 68 65 20 63 61 73 65 20 69 66 20 79 6f 75 27 72 65 0a hich.will.be.the.case.if.you're.
3da0 72 75 6e 6e 69 6e 67 20 45 6d 61 63 73 20 6f 6e 20 6e 6f 6e 2d 58 31 31 20 73 79 73 74 65 6d 73 running.Emacs.on.non-X11.systems
3dc0 29 2c 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 3a 74 ),.this.option.is.ignored."...:t
3de0 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a ype.'boolean...:group.'htmlize).
3e00 0a 28 64 65 66 76 61 72 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 6f 76 65 72 72 69 64 65 73 20 .(defvar.htmlize-face-overrides.
3e20 6e 69 6c 0a 20 20 22 4f 76 65 72 72 69 64 65 73 20 66 6f 72 20 66 61 63 65 20 64 65 66 69 6e 69 nil..."Overrides.for.face.defini
3e40 74 69 6f 6e 73 2e 0a 0a 4e 6f 72 6d 61 6c 6c 79 20 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e tions...Normally.face.definition
3e60 73 20 61 72 65 20 74 61 6b 65 6e 20 66 72 6f 6d 20 45 6d 61 63 73 20 73 65 74 74 69 6e 67 73 20 s.are.taken.from.Emacs.settings.
3e80 66 6f 72 20 66 6f 6e 74 73 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 72 61 6d 65 2e 20 for.fonts.in.the.current.frame..
3ea0 20 46 6f 72 20 66 61 63 65 73 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 69 73 20 70 6c 69 73 74 .For.faces.present.in.this.plist
3ec0 2c 20 74 68 65 0a 64 65 66 69 6e 69 74 69 6f 6e 73 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 69 ,.the.definitions.will.be.used.i
3ee0 6e 73 74 65 61 64 2e 20 20 4b 65 79 73 20 69 6e 20 74 68 65 20 70 6c 69 73 74 20 61 72 65 20 73 nstead...Keys.in.the.plist.are.s
3f00 79 6d 62 6f 6c 73 0a 6e 61 6d 69 6e 67 20 74 68 65 20 66 61 63 65 20 61 6e 64 20 76 61 6c 75 65 ymbols.naming.the.face.and.value
3f20 73 20 61 72 65 20 74 68 65 20 6f 76 65 72 72 69 64 69 6e 67 20 64 65 66 69 6e 69 74 69 6f 6e 73 s.are.the.overriding.definitions
3f40 2e 20 20 46 6f 72 0a 65 78 61 6d 70 6c 65 3a 0a 0a 20 20 28 73 65 74 71 20 68 74 6d 6c 69 7a 65 ...For.example:....(setq.htmlize
3f60 2d 66 61 63 65 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20 20 20 5c 5c 3d 27 28 66 6f 6e -face-overrides.........\\='(fon
3f80 74 2d 6c 6f 63 6b 2d 77 61 72 6e 69 6e 67 2d 66 61 63 65 20 5c 22 62 6c 61 63 6b 5c 22 0a 20 20 t-lock-warning-face.\"black\"...
3fa0 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d ........font-lock-function-name-
3fc0 66 61 63 65 20 5c 22 72 65 64 5c 22 0a 20 20 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 6c 6f 63 6b face.\"red\"...........font-lock
3fe0 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 20 5c 22 62 6c 75 65 5c 22 0a 20 20 20 20 20 20 20 20 20 -comment-face.\"blue\"..........
4000 20 64 65 66 61 75 6c 74 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 5c 22 64 61 72 6b 2d 67 72 65 .default.(:foreground.\"dark-gre
4020 65 6e 5c 22 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 5c 22 79 65 6c 6c 6f 77 5c 22 29 29 29 0a 0a en\".:background.\"yellow\")))..
4040 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 63 61 6e 20 62 65 20 61 6c 73 6f 20 62 65 20 60 6c 65 This.variable.can.be.also.be.`le
4060 74 27 20 62 6f 75 6e 64 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 60 68 74 6d 6c 69 7a 65 2d 62 t'.bound.when.running.`htmlize-b
4080 75 66 66 65 72 27 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d 75 6e uffer'.")..(defcustom.htmlize-un
40a0 74 61 62 69 66 79 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 6d 65 61 6e 73 20 75 6e 74 61 62 69 tabify.t..."Non-nil.means.untabi
40c0 66 79 20 62 75 66 66 65 72 20 63 6f 6e 74 65 6e 74 73 20 64 75 72 69 6e 67 20 68 74 6d 6c 69 7a fy.buffer.contents.during.htmliz
40e0 61 74 69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 ation."...:type.'boolean...:grou
4100 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d p.'htmlize)..(defcustom.htmlize-
4120 68 74 6d 6c 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 6f 64 65 20 html-major-mode.nil..."The.mode.
4140 74 68 65 20 6e 65 77 6c 79 20 63 72 65 61 74 65 64 20 48 54 4d 4c 20 62 75 66 66 65 72 20 77 69 the.newly.created.HTML.buffer.wi
4160 6c 6c 20 62 65 20 70 75 74 20 69 6e 2e 0a 53 65 74 20 74 68 69 73 20 74 6f 20 6e 69 6c 20 69 66 ll.be.put.in..Set.this.to.nil.if
4180 20 79 6f 75 20 70 72 65 66 65 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 28 66 75 6e 64 61 6d 65 .you.prefer.the.default.(fundame
41a0 6e 74 61 6c 29 20 6d 6f 64 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 61 64 69 6f 20 28 63 6f ntal).mode."...:type.'(radio.(co
41c0 6e 73 74 20 3a 74 61 67 20 22 4e 6f 20 6d 6f 64 65 20 28 66 75 6e 64 61 6d 65 6e 74 61 6c 29 22 nst.:tag."No.mode.(fundamental)"
41e0 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e .nil)..................(function
4200 2d 69 74 65 6d 20 68 74 6d 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -item.html-mode)................
4220 20 20 28 66 75 6e 63 74 69 6f 6e 20 3a 74 61 67 20 22 55 73 65 72 2d 64 65 66 69 6e 65 64 20 6d ..(function.:tag."User-defined.m
4240 61 6a 6f 72 20 6d 6f 64 65 22 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a ajor.mode"))...:group.'htmlize).
4260 0a 28 64 65 66 63 75 73 74 6f 6d 20 68 74 6d 6c 69 7a 65 2d 70 72 65 2d 73 74 79 6c 65 20 6e 69 .(defcustom.htmlize-pre-style.ni
4280 6c 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 60 3c 70 72 65 3e 27 20 74 61 67 73 20 l..."When.non-nil,.`<pre>'.tags.
42a0 77 69 6c 6c 20 62 65 20 64 65 63 6f 72 61 74 65 64 20 77 69 74 68 20 73 74 79 6c 65 0a 69 6e 66 will.be.decorated.with.style.inf
42c0 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 60 66 6f 6e 74 27 20 61 6e 64 20 60 69 6e 6c 69 6e 65 2d 63 ormation.in.`font'.and.`inline-c
42e0 73 73 27 20 6d 6f 64 65 73 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 61 0a 63 6f 6e 73 69 73 74 ss'.modes..This.allows.a.consist
4300 65 6e 74 20 62 61 63 6b 67 72 6f 75 6e 64 20 66 6f 72 20 63 61 70 74 75 72 65 73 20 6f 66 20 72 ent.background.for.captures.of.r
4320 65 67 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f egions."...:type.'boolean...:gro
4340 75 70 20 27 68 74 6d 6c 69 7a 65 29 0a 0a 28 64 65 66 76 61 72 20 68 74 6d 6c 69 7a 65 2d 62 65 up.'htmlize)..(defvar.htmlize-be
4360 66 6f 72 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f 72 65 fore-hook.nil..."Hook.run.before
4380 20 68 74 6d 6c 69 7a 69 6e 67 20 61 20 62 75 66 66 65 72 2e 0a 54 68 65 20 68 6f 6f 6b 20 66 75 .htmlizing.a.buffer..The.hook.fu
43a0 6e 63 74 69 6f 6e 73 20 61 72 65 20 72 75 6e 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 62 75 nctions.are.run.in.the.source.bu
43c0 66 66 65 72 20 28 6e 6f 74 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 48 54 4d 4c 0a 62 75 66 ffer.(not.the.resulting.HTML.buf
43e0 66 65 72 29 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 68 74 6d 6c 69 7a 65 2d 61 66 74 65 72 2d 68 fer).")..(defvar.htmlize-after-h
4400 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 68 74 6d 6c 69 7a ook.nil..."Hook.run.after.htmliz
4420 69 6e 67 20 61 20 62 75 66 66 65 72 2e 0a 55 6e 6c 69 6b 65 20 60 68 74 6d 6c 69 7a 65 2d 62 65 ing.a.buffer..Unlike.`htmlize-be
4440 66 6f 72 65 2d 68 6f 6f 6b 27 2c 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 fore-hook',.these.functions.are.
4460 72 75 6e 20 69 6e 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 0a 48 54 4d 4c 20 62 75 66 66 65 72 run.in.the.generated.HTML.buffer
4480 2e 20 20 59 6f 75 20 6d 61 79 20 75 73 65 20 74 68 65 6d 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 ...You.may.use.them.to.modify.th
44a0 65 20 6f 75 74 6c 6f 6f 6b 20 6f 66 20 74 68 65 20 66 69 6e 61 6c 20 48 54 4d 4c 0a 6f 75 74 70 e.outlook.of.the.final.HTML.outp
44c0 75 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 68 74 6d 6c 69 7a 65 2d 66 69 6c 65 2d 68 6f 6f 6b ut.")..(defvar.htmlize-file-hook
44e0 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 79 20 60 68 74 6d 6c 69 7a 65 2d 66 69 6c .nil..."Hook.run.by.`htmlize-fil
4500 65 27 20 61 66 74 65 72 20 68 74 6d 6c 69 7a 69 6e 67 20 61 20 66 69 6c 65 2c 20 62 75 74 20 62 e'.after.htmlizing.a.file,.but.b
4520 65 66 6f 72 65 20 73 61 76 69 6e 67 20 69 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 68 74 6d 6c efore.saving.it.")..(defvar.html
4540 69 7a 65 2d 62 75 66 66 65 72 2d 70 6c 61 63 65 73 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 68 74 ize-buffer-places)..(defconst.ht
4560 6d 6c 69 7a 65 2d 69 6d 61 67 65 2d 6d 69 6d 65 2d 74 79 70 65 2d 61 6c 69 73 74 0a 20 20 27 28 mlize-image-mime-type-alist...'(
4580 28 73 76 67 20 2e 20 22 73 76 67 2b 78 6d 6c 22 29 0a 20 20 20 20 29 0a 20 20 22 41 6c 69 73 74 (svg..."svg+xml").....)..."Alist
45a0 20 6d 61 70 70 69 6e 67 20 45 6d 61 63 73 20 69 6d 61 67 65 20 74 79 70 65 73 20 74 6f 20 4d 69 .mapping.Emacs.image.types.to.Mi
45c0 6d 65 20 6d 65 64 69 61 20 74 79 70 65 73 2e 0a 68 74 74 70 73 3a 2f 2f 77 77 77 2e 69 61 6e 61 me.media.types..https://www.iana
45e0 2e 6f 72 67 2f 61 73 73 69 67 6e 6d 65 6e 74 73 2f 6d 65 64 69 61 2d 74 79 70 65 73 2f 6d 65 64 .org/assignments/media-types/med
4600 69 61 2d 74 79 70 65 73 2e 78 68 74 6d 6c 23 69 6d 61 67 65 22 29 0a 0c 0a 3b 3b 3b 20 53 6f 6d ia-types.xhtml#image")...;;;.Som
4620 65 20 63 72 6f 73 73 2d 45 6d 61 63 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 0a 0a 3b 3b e.cross-Emacs.compatibility...;;
4640 20 57 65 20 6e 65 65 64 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 65 66 66 69 63 69 65 .We.need.a.function.that.efficie
4660 6e 74 6c 79 20 66 69 6e 64 73 20 74 68 65 20 6e 65 78 74 20 63 68 61 6e 67 65 20 6f 66 20 61 0a ntly.finds.the.next.change.of.a.
4680 3b 3b 20 70 72 6f 70 65 72 74 79 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 ;;.property.regardless.of.whethe
46a0 72 20 74 68 65 20 63 68 61 6e 67 65 20 6f 63 63 75 72 72 65 64 20 62 65 63 61 75 73 65 20 6f 66 r.the.change.occurred.because.of
46c0 20 61 0a 3b 3b 20 74 65 78 74 20 70 72 6f 70 65 72 74 79 20 6f 72 20 61 6e 20 65 78 74 65 6e 74 .a.;;.text.property.or.an.extent
46e0 2f 6f 76 65 72 6c 61 79 2e 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6e 65 78 74 2d 63 68 /overlay..(defun.htmlize-next-ch
4700 61 6e 67 65 20 28 70 6f 73 20 70 72 6f 70 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 69 6d 69 74 29 0a ange.(pos.prop.&optional.limit).
4720 20 20 28 69 66 20 70 72 6f 70 0a 20 20 20 20 20 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 63 68 ..(if.prop.......(next-single-ch
4740 61 72 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 70 6f 73 20 70 72 6f 70 20 6e 69 6c 20 ar-property-change.pos.prop.nil.
4760 6c 69 6d 69 74 29 0a 20 20 20 20 28 6e 65 78 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d 63 limit).....(next-char-property-c
4780 68 61 6e 67 65 20 70 6f 73 20 6c 69 6d 69 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 hange.pos.limit)))..(defun.htmli
47a0 7a 65 2d 6f 76 65 72 6c 61 79 2d 66 61 63 65 73 2d 61 74 20 28 70 6f 73 29 0a 20 20 28 64 65 6c ze-overlay-faces-at.(pos)...(del
47c0 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6f 29 20 28 6f 76 65 72 6c q.nil.(mapcar.(lambda.(o).(overl
47e0 61 79 2d 67 65 74 20 6f 20 27 66 61 63 65 29 29 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 70 6f ay-get.o.'face)).(overlays-at.po
4800 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6e 65 78 74 2d 66 61 63 65 2d s))))..(defun.htmlize-next-face-
4820 63 68 61 6e 67 65 20 28 70 6f 73 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 69 6d 69 74 29 0a 20 20 3b change.(pos.&optional.limit)...;
4840 3b 20 28 68 74 6d 6c 69 7a 65 2d 6e 65 78 74 2d 63 68 61 6e 67 65 20 70 6f 73 20 27 66 61 63 65 ;.(htmlize-next-change.pos.'face
4860 20 6c 69 6d 69 74 29 20 77 6f 75 6c 64 20 73 6b 69 70 20 6f 76 65 72 20 65 6e 74 69 72 65 0a 20 .limit).would.skip.over.entire..
4880 20 3b 3b 20 6f 76 65 72 6c 61 79 73 20 74 68 61 74 20 73 70 65 63 69 66 79 20 74 68 65 20 60 66 .;;.overlays.that.specify.the.`f
48a0 61 63 65 27 20 70 72 6f 70 65 72 74 79 2c 20 65 76 65 6e 20 77 68 65 6e 20 74 68 65 79 0a 20 20 ace'.property,.even.when.they...
48c0 3b 3b 20 63 6f 6e 74 61 69 6e 20 73 6d 61 6c 6c 65 72 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 ;;.contain.smaller.text.properti
48e0 65 73 20 74 68 61 74 20 61 6c 73 6f 20 73 70 65 63 69 66 79 20 60 66 61 63 65 27 2e 0a 20 20 3b es.that.also.specify.`face'....;
4900 3b 20 45 6d 61 63 73 20 64 69 73 70 6c 61 79 20 65 6e 67 69 6e 65 20 6d 65 72 67 65 73 20 74 68 ;.Emacs.display.engine.merges.th
4920 6f 73 65 20 66 61 63 65 73 2c 20 61 6e 64 20 73 6f 20 6d 75 73 74 20 77 65 2e 0a 20 20 28 6f 72 ose.faces,.and.so.must.we....(or
4940 20 6c 69 6d 69 74 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 6d 69 74 20 28 70 6f 69 6e 74 2d .limit.......(setq.limit.(point-
4960 6d 61 78 29 29 29 0a 20 20 28 6c 65 74 20 28 28 6e 65 78 74 2d 70 72 6f 70 20 28 6e 65 78 74 2d max)))...(let.((next-prop.(next-
4980 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 70 6f 73 20 27 66 61 63 65 single-property-change.pos.'face
49a0 20 6e 69 6c 20 6c 69 6d 69 74 29 29 0a 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 66 61 .nil.limit)).........(overlay-fa
49c0 63 65 73 20 28 68 74 6d 6c 69 7a 65 2d 6f 76 65 72 6c 61 79 2d 66 61 63 65 73 2d 61 74 20 70 6f ces.(htmlize-overlay-faces-at.po
49e0 73 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 s))).....(while.(progn..........
4a00 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6e 65 78 74 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e ....(setq.pos.(next-overlay-chan
4a20 67 65 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3c 20 70 6f ge.pos))..............(and.(<.po
4a40 73 20 6e 65 78 74 2d 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 s.next-prop)...................(
4a60 65 71 75 61 6c 20 6f 76 65 72 6c 61 79 2d 66 61 63 65 73 20 28 68 74 6d 6c 69 7a 65 2d 6f 76 65 equal.overlay-faces.(htmlize-ove
4a80 72 6c 61 79 2d 66 61 63 65 73 2d 61 74 20 70 6f 73 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 rlay-faces-at.pos))))).....(setq
4aa0 20 70 6f 73 20 28 6d 69 6e 20 70 6f 73 20 6e 65 78 74 2d 70 72 6f 70 29 29 0a 20 20 20 20 3b 3b .pos.(min.pos.next-prop)).....;;
4ac0 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 77 65 20 69 6e 63 6c 75 64 65 20 74 68 65 20 65 6e .Additionally,.we.include.the.en
4ae0 74 69 72 65 20 72 65 67 69 6f 6e 20 74 68 61 74 20 73 70 65 63 69 66 69 65 73 20 74 68 65 0a 20 tire.region.that.specifies.the..
4b00 20 20 20 3b 3b 20 60 64 69 73 70 6c 61 79 27 20 70 72 6f 70 65 72 74 79 2e 0a 20 20 20 20 28 77 ...;;.`display'.property......(w
4b20 68 65 6e 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 70 6f 73 20 27 64 69 73 70 hen.(get-char-property.pos.'disp
4b40 6c 61 79 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6e 65 78 74 2d 73 69 6e 67 6c lay).......(setq.pos.(next-singl
4b60 65 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 70 6f 73 20 27 64 69 73 70 e-char-property-change.pos.'disp
4b80 6c 61 79 20 6e 69 6c 20 6c 69 6d 69 74 29 29 29 0a 20 20 20 20 70 6f 73 29 29 0a 0a 28 64 65 66 lay.nil.limit))).....pos))..(def
4ba0 6d 61 63 72 6f 20 68 74 6d 6c 69 7a 65 2d 6c 65 78 6c 65 74 20 28 26 72 65 73 74 20 6c 65 74 66 macro.htmlize-lexlet.(&rest.letf
4bc0 6f 72 6d 73 29 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 20 28 64 65 62 orms)...(declare.(indent.1).(deb
4be0 75 67 20 6c 65 74 29 29 0a 20 20 28 69 66 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 27 6c 65 78 ug.let))...(if.(and.(boundp.'lex
4c00 69 63 61 6c 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 6c 65 78 69 63 61 6c ical-binding)............lexical
4c20 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 60 28 6c 65 74 20 2c 40 6c 65 74 66 6f 72 6d 73 -binding).......`(let.,@letforms
4c40 29 0a 20 20 20 20 3b 3b 20 63 6c 20 65 78 74 65 6e 73 69 6f 6e 73 20 68 61 76 65 20 61 20 6d 61 ).....;;.cl.extensions.have.a.ma
4c60 63 72 6f 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 6c 65 78 69 63 61 6c 20 6c 65 74 0a 20 20 20 cro.implementing.lexical.let....
4c80 20 60 28 6c 65 78 69 63 61 6c 2d 6c 65 74 20 2c 40 6c 65 74 66 6f 72 6d 73 29 29 29 0a 0a 0c 0a .`(lexical-let.,@letforms)))....
4ca0 3b 3b 3b 20 54 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 6f 66 20 62 75 66 66 65 72 20 74 65 78 ;;;.Transformation.of.buffer.tex
4cc0 74 3a 20 48 54 4d 4c 20 65 73 63 61 70 65 73 2c 20 75 6e 74 61 62 69 66 69 63 61 74 69 6f 6e 2c t:.HTML.escapes,.untabification,
4ce0 20 65 74 63 2e 0a 0a 28 64 65 66 76 61 72 20 68 74 6d 6c 69 7a 65 2d 62 61 73 69 63 2d 63 68 61 .etc...(defvar.htmlize-basic-cha
4d00 72 61 63 74 65 72 2d 74 61 62 6c 65 0a 20 20 3b 3b 20 4d 61 70 20 63 68 61 72 61 63 74 65 72 73 racter-table...;;.Map.characters
4d20 20 69 6e 20 74 68 65 20 30 2d 31 32 37 20 72 61 6e 67 65 20 74 6f 20 65 69 74 68 65 72 20 6f 6e .in.the.0-127.range.to.either.on
4d40 65 2d 63 68 61 72 61 63 74 65 72 20 73 74 72 69 6e 67 73 0a 20 20 3b 3b 20 6f 72 20 74 6f 20 6e e-character.strings...;;.or.to.n
4d60 75 6d 65 72 69 63 20 65 6e 74 69 74 69 65 73 2e 0a 20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 umeric.entities....(let.((table.
4d80 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 31 32 38 20 3f 5c 30 29 29 29 0a 20 20 20 20 3b 3b 20 4d (make-vector.128.?\0))).....;;.M
4da0 61 70 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 74 68 65 20 33 32 2d 31 32 36 20 72 61 6e 67 ap.characters.in.the.32-126.rang
4dc0 65 20 74 6f 20 74 68 65 6d 73 65 6c 76 65 73 2c 20 6f 74 68 65 72 73 20 74 6f 0a 20 20 20 20 3b e.to.themselves,.others.to.....;
4de0 3b 20 26 23 43 4f 44 45 20 65 6e 74 69 74 69 65 73 3b 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 ;.&#CODE.entities;.....(dotimes.
4e00 28 69 20 31 32 38 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 72 65 66 20 74 61 62 6c 65 20 (i.128).......(setf.(aref.table.
4e20 69 29 20 28 69 66 20 28 61 6e 64 20 28 3e 3d 20 69 20 33 32 29 20 28 3c 3d 20 69 20 31 32 36 29 i).(if.(and.(>=.i.32).(<=.i.126)
4e40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
4e60 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(char-to-string.i).............
4e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 26 23 25 64 3b 22 .................(format."&#%d;"
4ea0 20 69 29 29 29 29 0a 20 20 20 20 3b 3b 20 53 65 74 20 65 78 63 65 70 74 69 6f 6e 73 20 6d 61 6e .i)))).....;;.Set.exceptions.man
4ec0 75 61 6c 6c 79 2e 0a 20 20 20 20 28 73 65 74 66 0a 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 65 ually......(setf......;;.Don't.e
4ee0 73 63 61 70 65 20 6e 65 77 6c 69 6e 65 2c 20 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 2c 20 scape.newline,.carriage.return,.
4f00 61 6e 64 20 54 41 42 2e 0a 20 20 20 20 20 28 61 72 65 66 20 74 61 62 6c 65 20 3f 5c 6e 29 20 22 and.TAB.......(aref.table.?\n)."
4f20 5c 6e 22 0a 20 20 20 20 20 28 61 72 65 66 20 74 61 62 6c 65 20 3f 5c 72 29 20 22 5c 72 22 0a 20 \n"......(aref.table.?\r)."\r"..
4f40 20 20 20 20 28 61 72 65 66 20 74 61 62 6c 65 20 3f 5c 74 29 20 22 5c 74 22 0a 20 20 20 20 20 3b ....(aref.table.?\t)."\t"......;
4f60 3b 20 45 73 63 61 70 65 20 26 2c 20 3c 2c 20 61 6e 64 20 3e 2e 0a 20 20 20 20 20 28 61 72 65 66 ;.Escape.&,.<,.and.>.......(aref
4f80 20 74 61 62 6c 65 20 3f 26 29 20 22 26 61 6d 70 3b 22 0a 20 20 20 20 20 28 61 72 65 66 20 74 61 .table.?&)."&amp;"......(aref.ta
4fa0 62 6c 65 20 3f 3c 29 20 22 26 6c 74 3b 22 0a 20 20 20 20 20 28 61 72 65 66 20 74 61 62 6c 65 20 ble.?<)."&lt;"......(aref.table.
4fc0 3f 3e 29 20 22 26 67 74 3b 22 0a 20 20 20 20 20 3b 3b 20 4e 6f 74 20 65 73 63 61 70 69 6e 67 20 ?>)."&gt;"......;;.Not.escaping.
4fe0 27 22 27 20 62 75 79 73 20 75 73 20 61 20 6d 65 61 73 75 72 61 62 6c 65 20 73 70 65 65 64 75 70 '"'.buys.us.a.measurable.speedup
5000 2e 20 20 49 74 27 73 20 6f 6e 6c 79 0a 20 20 20 20 20 3b 3b 20 6e 65 63 65 73 73 61 72 79 20 74 ...It's.only......;;.necessary.t
5020 6f 20 71 75 6f 74 65 20 69 74 20 66 6f 72 20 73 74 72 69 6e 67 73 20 75 73 65 64 20 69 6e 20 61 o.quote.it.for.strings.used.in.a
5040 74 74 72 69 62 75 74 65 20 76 61 6c 75 65 73 2c 0a 20 20 20 20 20 3b 3b 20 77 68 69 63 68 20 68 ttribute.values,......;;.which.h
5060 74 6d 6c 69 7a 65 20 64 6f 65 73 6e 27 74 20 74 79 70 69 63 61 6c 6c 79 20 64 6f 2e 0a 20 20 20 tmlize.doesn't.typically.do.....
5080 20 20 3b 28 61 72 65 66 20 74 61 62 6c 65 20 3f 5c 22 29 20 22 26 71 75 6f 74 3b 22 0a 20 20 20 ..;(aref.table.?\")."&quot;"....
50a0 20 20 29 0a 20 20 20 20 74 61 62 6c 65 29 29 0a 0a 3b 3b 20 41 20 63 61 63 68 65 20 6f 66 20 48 ..).....table))..;;.A.cache.of.H
50c0 54 4d 4c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 6e 6f 6e 2d 41 53 43 49 49 20 TML.representation.of.non-ASCII.
50e0 63 68 61 72 61 63 74 65 72 73 2e 20 20 44 65 70 65 6e 64 69 6e 67 0a 3b 3b 20 6f 6e 20 74 68 65 characters...Depending.;;.on.the
5100 20 73 65 74 74 69 6e 67 20 6f 66 20 60 68 74 6d 6c 69 7a 65 2d 63 6f 6e 76 65 72 74 2d 6e 6f 6e .setting.of.`htmlize-convert-non
5120 61 73 63 69 69 2d 74 6f 2d 65 6e 74 69 74 69 65 73 27 2c 20 74 68 69 73 20 6d 61 70 73 0a 3b 3b ascii-to-entities',.this.maps.;;
5140 20 6e 6f 6e 2d 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 65 69 74 68 65 72 20 .non-ASCII.characters.to.either.
5160 22 26 23 3c 63 6f 64 65 3e 3b 22 20 6f 72 20 22 3c 63 68 61 72 3e 22 20 28 6d 61 70 63 6f 6e 63 "&#<code>;".or."<char>".(mapconc
5180 61 74 27 73 0a 3b 3b 20 6d 61 70 70 65 72 20 6d 75 73 74 20 61 6c 77 61 79 73 20 72 65 74 75 72 at's.;;.mapper.must.always.retur
51a0 6e 20 73 74 72 69 6e 67 73 29 2e 20 20 49 74 27 73 20 6f 6e 6c 79 20 66 69 6c 6c 65 64 20 61 73 n.strings)...It's.only.filled.as
51c0 20 63 68 61 72 61 63 74 65 72 73 0a 3b 3b 20 61 72 65 20 65 6e 63 6f 75 6e 74 65 72 65 64 2c 20 .characters.;;.are.encountered,.
51e0 73 6f 20 74 68 61 74 20 69 6e 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 65 2e 67 2e 20 46 72 so.that.in.a.buffer.with.e.g..Fr
5200 65 6e 63 68 20 74 65 78 74 2c 20 69 74 20 77 69 6c 6c 0a 3b 3b 20 6f 6e 6c 79 20 65 76 65 72 20 ench.text,.it.will.;;.only.ever.
5220 63 6f 6e 74 61 69 6e 20 46 72 65 6e 63 68 20 61 63 63 65 6e 74 65 64 20 63 68 61 72 61 63 74 65 contain.French.accented.characte
5240 72 73 20 61 73 20 6b 65 79 73 2e 20 20 49 74 27 73 20 63 6c 65 61 72 65 64 0a 3b 3b 20 6f 6e 20 rs.as.keys...It's.cleared.;;.on.
5260 65 61 63 68 20 65 6e 74 72 79 20 74 6f 20 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 2d 31 20 74 each.entry.to.htmlize-buffer-1.t
5280 6f 20 61 6c 6c 6f 77 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 6f 66 0a 3b 3b 20 60 68 74 6d o.allow.modifications.of.;;.`htm
52a0 6c 69 7a 65 2d 63 6f 6e 76 65 72 74 2d 6e 6f 6e 61 73 63 69 69 2d 74 6f 2d 65 6e 74 69 74 69 65 lize-convert-nonascii-to-entitie
52c0 73 27 20 74 6f 20 74 61 6b 65 20 65 66 66 65 63 74 2e 0a 28 64 65 66 76 61 72 20 68 74 6d 6c 69 s'.to.take.effect..(defvar.htmli
52e0 7a 65 2d 65 78 74 65 6e 64 65 64 2d 63 68 61 72 61 63 74 65 72 2d 63 61 63 68 65 20 28 6d 61 6b ze-extended-character-cache.(mak
5300 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 29 29 0a 0a 28 64 65 66 75 6e e-hash-table.:test.'eq))..(defun
5320 20 68 74 6d 6c 69 7a 65 2d 70 72 6f 74 65 63 74 2d 73 74 72 69 6e 67 20 28 73 74 72 69 6e 67 29 .htmlize-protect-string.(string)
5340 0a 20 20 22 48 54 4d 4c 2d 70 72 6f 74 65 63 74 20 73 74 72 69 6e 67 2c 20 65 73 63 61 70 69 6e ..."HTML-protect.string,.escapin
5360 67 20 48 54 4d 4c 20 6d 65 74 61 63 68 61 72 61 63 74 65 72 73 20 61 6e 64 20 49 31 38 4e 20 63 g.HTML.metacharacters.and.I18N.c
5380 68 61 72 73 2e 22 0a 20 20 3b 3b 20 4f 6e 6c 79 20 70 72 6f 74 65 63 74 69 6e 67 20 73 74 72 69 hars."...;;.Only.protecting.stri
53a0 6e 67 73 20 74 68 61 74 20 61 63 74 75 61 6c 6c 79 20 63 6f 6e 74 61 69 6e 20 75 6e 73 61 66 65 ngs.that.actually.contain.unsafe
53c0 20 6f 72 20 6e 6f 6e 2d 41 53 43 49 49 0a 20 20 3b 3b 20 63 68 61 72 73 20 72 65 6d 6f 76 65 73 .or.non-ASCII...;;.chars.removes
53e0 20 61 20 6c 6f 74 20 6f 66 20 75 6e 6e 65 63 65 73 73 61 72 79 20 66 75 6e 63 61 6c 6c 73 20 61 .a.lot.of.unnecessary.funcalls.a
5400 6e 64 20 63 6f 6e 73 69 6e 67 2e 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d nd.consing....(if.(not.(string-m
5420 61 74 63 68 20 22 5b 5e 5c 72 5c 6e 5c 74 20 2d 25 27 2d 3b 3d 3f 2d 7e 5d 22 20 73 74 72 69 6e atch."[^\r\n\t.-%'-;=?-~]".strin
5440 67 29 29 0a 20 20 20 20 20 20 73 74 72 69 6e 67 0a 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 g)).......string.....(mapconcat.
5460 28 6c 61 6d 62 64 61 20 28 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (lambda.(char)..................
5480 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3c 20 63 68 61 72 (cond...................((<.char
54a0 20 31 32 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 53 43 49 .128)....................;;.ASCI
54c0 49 3a 20 75 73 65 20 68 74 6d 6c 69 7a 65 2d 62 61 73 69 63 2d 63 68 61 72 61 63 74 65 72 2d 74 I:.use.htmlize-basic-character-t
54e0 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 68 able.....................(aref.h
5500 74 6d 6c 69 7a 65 2d 62 61 73 69 63 2d 63 68 61 72 61 63 74 65 72 2d 74 61 62 6c 65 20 63 68 61 tmlize-basic-character-table.cha
5520 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 67 65 74 68 61 73 68 20 r))...................((gethash.
5540 63 68 61 72 20 68 74 6d 6c 69 7a 65 2d 65 78 74 65 6e 64 65 64 2d 63 68 61 72 61 63 74 65 72 2d char.htmlize-extended-character-
5560 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 27 cache)....................;;.We'
5580 76 65 20 61 6c 72 65 61 64 79 20 73 65 65 6e 20 74 68 69 73 20 63 68 61 72 3b 20 72 65 74 75 72 ve.already.seen.this.char;.retur
55a0 6e 20 74 68 65 20 63 61 63 68 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.the.cached....................
55c0 3b 3b 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a ;;.string.....................).
55e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 68 74 6d 6c 69 7a 65 2d ..................((not.htmlize-
5600 63 6f 6e 76 65 72 74 2d 6e 6f 6e 61 73 63 69 69 2d 74 6f 2d 65 6e 74 69 74 69 65 73 29 0a 20 20 convert-nonascii-to-entities)...
5620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 63 6f 6e 76 65 72 73 69 6f .................;;.If.conversio
5640 6e 20 74 6f 20 65 6e 74 69 74 69 65 73 20 69 73 20 6e 6f 74 20 64 65 73 69 72 65 64 2c 20 61 6c n.to.entities.is.not.desired,.al
5660 77 61 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 70 79 20 ways....................;;.copy.
5680 74 68 65 20 63 68 61 72 20 6c 69 74 65 72 61 6c 6c 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 the.char.literally..............
56a0 20 20 20 20 20 20 20 28 73 65 74 66 20 28 67 65 74 68 61 73 68 20 63 68 61 72 20 68 74 6d 6c 69 .......(setf.(gethash.char.htmli
56c0 7a 65 2d 65 78 74 65 6e 64 65 64 2d 63 68 61 72 61 63 74 65 72 2d 63 61 63 68 65 29 0a 20 20 20 ze-extended-character-cache)....
56e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 72 2d 74 6f 2d 73 ......................(char-to-s
5700 74 72 69 6e 67 20 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tring.char)))...................
5720 28 28 3c 20 63 68 61 72 20 32 35 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ((<.char.256)...................
5740 20 3b 3b 20 4c 61 74 69 6e 20 31 3a 20 6e 6f 20 6e 65 65 64 20 74 6f 20 63 61 6c 6c 20 65 6e 63 .;;.Latin.1:.no.need.to.call.enc
5760 6f 64 65 2d 63 68 61 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 ode-char.....................(se
5780 74 66 20 28 67 65 74 68 61 73 68 20 63 68 61 72 20 68 74 6d 6c 69 7a 65 2d 65 78 74 65 6e 64 65 tf.(gethash.char.htmlize-extende
57a0 64 2d 63 68 61 72 61 63 74 65 72 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 d-character-cache)..............
57c0 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 26 23 25 64 3b 22 20 63 68 61 72 ............(format."&#%d;".char
57e0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 6e 63 6f 64 65 2d 63 )))...................((encode-c
5800 68 61 72 20 63 68 61 72 20 27 75 63 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 har.char.'ucs)..................
5820 20 20 3b 3b 20 4d 75 73 74 20 63 68 65 63 6b 20 69 66 20 65 6e 63 6f 64 65 2d 63 68 61 72 20 77 ..;;.Must.check.if.encode-char.w
5840 6f 72 6b 73 20 66 6f 72 20 43 48 41 52 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 orks.for.CHAR;..................
5860 20 20 3b 3b 20 69 74 20 66 61 69 6c 73 20 66 6f 72 20 41 72 61 62 69 63 20 61 6e 64 20 70 6f 73 ..;;.it.fails.for.Arabic.and.pos
5880 73 69 62 6c 79 20 65 6c 73 65 77 68 65 72 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sibly.elsewhere.................
58a0 20 20 20 20 28 73 65 74 66 20 28 67 65 74 68 61 73 68 20 63 68 61 72 20 68 74 6d 6c 69 7a 65 2d ....(setf.(gethash.char.htmlize-
58c0 65 78 74 65 6e 64 65 64 2d 63 68 61 72 61 63 74 65 72 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 extended-character-cache).......
58e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 26 23 25 64 ...................(format."&#%d
5900 3b 22 20 28 65 6e 63 6f 64 65 2d 63 68 61 72 20 63 68 61 72 20 27 75 63 73 29 29 29 29 0a 20 20 ;".(encode-char.char.'ucs))))...
5920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ................(t..............
5940 20 20 20 20 20 20 3b 3b 20 65 6e 63 6f 64 65 2d 63 68 61 72 20 64 6f 65 73 6e 27 74 20 77 6f 72 ......;;.encode-char.doesn't.wor
5960 6b 20 66 6f 72 20 74 68 69 73 20 63 68 61 72 2e 20 20 43 6f 70 79 20 69 74 0a 20 20 20 20 20 20 k.for.this.char...Copy.it.......
5980 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 6e 63 68 61 6e 67 65 64 20 61 6e 64 20 68 6f .............;;.unchanged.and.ho
59a0 70 65 20 66 6f 72 20 74 68 65 20 62 65 73 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe.for.the.best.................
59c0 20 20 20 20 28 73 65 74 66 20 28 67 65 74 68 61 73 68 20 63 68 61 72 20 68 74 6d 6c 69 7a 65 2d ....(setf.(gethash.char.htmlize-
59e0 65 78 74 65 6e 64 65 64 2d 63 68 61 72 61 63 74 65 72 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 extended-character-cache).......
5a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 ...................(char-to-stri
5a20 6e 67 20 63 68 61 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 ng.char)))))................stri
5a40 6e 67 20 22 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 61 74 74 72 2d 65 73 ng."")))..(defun.htmlize-attr-es
5a60 63 61 70 65 20 28 73 74 72 69 6e 67 29 0a 20 20 3b 3b 20 4c 69 6b 65 20 68 74 6d 6c 69 7a 65 2d cape.(string)...;;.Like.htmlize-
5a80 70 72 6f 74 65 63 74 2d 73 74 72 69 6e 67 2c 20 62 75 74 20 61 6c 73 6f 20 65 73 63 61 70 65 73 protect-string,.but.also.escapes
5aa0 20 64 6f 75 62 6c 65 2d 71 75 6f 74 65 64 0a 20 20 3b 3b 20 73 74 72 69 6e 67 73 20 74 6f 20 6d .double-quoted...;;.strings.to.m
5ac0 61 6b 65 20 69 74 20 75 73 61 62 6c 65 20 69 6e 20 61 74 74 72 69 62 75 74 65 20 76 61 6c 75 65 ake.it.usable.in.attribute.value
5ae0 73 2e 0a 20 20 28 73 65 74 71 20 73 74 72 69 6e 67 20 28 68 74 6d 6c 69 7a 65 2d 70 72 6f 74 65 s....(setq.string.(htmlize-prote
5b00 63 74 2d 73 74 72 69 6e 67 20 73 74 72 69 6e 67 29 29 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 73 ct-string.string))...(if.(not.(s
5b20 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 22 22 20 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 tring-match."\"".string)).......
5b40 73 74 72 69 6e 67 0a 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 63 string.....(mapconcat.(lambda.(c
5b60 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 6c 20 63 har)..................(if.(eql.c
5b80 68 61 72 20 3f 5c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 26 har.?\")......................"&
5ba0 71 75 6f 74 3b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 72 2d quot;"....................(char-
5bc0 74 6f 2d 73 74 72 69 6e 67 20 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 to-string.char)))...............
5be0 20 73 74 72 69 6e 67 20 22 22 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 68 74 6d 6c 69 7a 65 .string."")))..(defsubst.htmlize
5c00 2d 63 6f 6e 63 61 74 20 28 6c 69 73 74 29 0a 20 20 28 69 66 20 28 61 6e 64 20 28 63 6f 6e 73 70 -concat.(list)...(if.(and.(consp
5c20 20 6c 69 73 74 29 20 28 6e 75 6c 6c 20 28 63 64 72 20 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 .list).(null.(cdr.list))).......
5c40 3b 3b 20 44 6f 6e 27 74 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 73 74 72 69 6e 67 20 69 6e 20 ;;.Don't.create.a.new.string.in.
5c60 74 68 65 20 63 6f 6d 6d 6f 6e 20 63 61 73 65 20 77 68 65 72 65 20 74 68 65 20 6c 69 73 74 20 6f the.common.case.where.the.list.o
5c80 6e 6c 79 0a 20 20 20 20 20 20 3b 3b 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 6f 6e 65 20 65 6c 65 nly.......;;.consists.of.one.ele
5ca0 6d 65 6e 74 2e 0a 20 20 20 20 20 20 28 63 61 72 20 6c 69 73 74 29 0a 20 20 20 20 28 61 70 70 6c ment........(car.list).....(appl
5cc0 79 20 23 27 63 6f 6e 63 61 74 20 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 y.#'concat.list)))..(defun.htmli
5ce0 7a 65 2d 66 6f 72 6d 61 74 2d 6c 69 6e 6b 20 28 6c 69 6e 6b 70 72 6f 70 73 20 74 65 78 74 29 0a ze-format-link.(linkprops.text).
5d00 20 20 28 6c 65 74 20 28 28 75 72 69 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 6c 69 6e 6b 70 72 ..(let.((uri.(if.(stringp.linkpr
5d20 6f 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 6b 70 72 6f 70 73 0a ops)..................linkprops.
5d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 6c 69 6e 6b 70 72 ...............(plist-get.linkpr
5d60 6f 70 73 20 3a 75 72 69 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 73 63 61 70 65 64 2d 74 65 78 ops.:uri))).........(escaped-tex
5d80 74 20 28 68 74 6d 6c 69 7a 65 2d 70 72 6f 74 65 63 74 2d 73 74 72 69 6e 67 20 74 65 78 74 29 29 t.(htmlize-protect-string.text))
5da0 29 0a 20 20 20 20 28 69 66 20 75 72 69 0a 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 3c ).....(if.uri.........(format."<
5dc0 61 20 68 72 65 66 3d 5c 22 25 73 5c 22 3e 25 73 3c 2f 61 3e 22 20 28 68 74 6d 6c 69 7a 65 2d 61 a.href=\"%s\">%s</a>".(htmlize-a
5de0 74 74 72 2d 65 73 63 61 70 65 20 75 72 69 29 20 65 73 63 61 70 65 64 2d 74 65 78 74 29 0a 20 20 ttr-escape.uri).escaped-text)...
5e00 20 20 20 20 65 73 63 61 70 65 64 2d 74 65 78 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c ....escaped-text)))..(defun.html
5e20 69 7a 65 2d 65 73 63 61 70 65 2d 6f 72 2d 6c 69 6e 6b 20 28 73 74 72 69 6e 67 29 0a 20 20 3b 3b ize-escape-or-link.(string)...;;
5e40 20 45 73 63 61 70 65 20 53 54 52 49 4e 47 20 61 6e 64 2f 6f 72 20 61 64 64 20 68 79 70 65 72 6c .Escape.STRING.and/or.add.hyperl
5e60 69 6e 6b 73 2e 20 20 53 54 52 49 4e 47 20 63 6f 6d 65 73 20 66 72 6f 6d 20 61 0a 20 20 3b 3b 20 inks...STRING.comes.from.a...;;.
5e80 60 64 69 73 70 6c 61 79 27 20 70 72 6f 70 65 72 74 79 2e 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 `display'.property....(let.((pos
5ea0 20 30 29 20 28 65 6e 64 20 28 6c 65 6e 67 74 68 20 73 74 72 69 6e 67 29 29 20 6f 75 74 6c 69 73 .0).(end.(length.string)).outlis
5ec0 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 70 6f 73 20 65 6e 64 29 0a 20 20 20 20 20 20 t).....(while.(<.pos.end).......
5ee0 28 6c 65 74 2a 20 28 28 6c 69 6e 6b 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 (let*.((link.(get-char-property.
5f00 70 6f 73 20 27 68 74 6d 6c 69 7a 65 2d 6c 69 6e 6b 20 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 pos.'htmlize-link.string))......
5f20 20 20 20 20 20 20 20 20 28 6e 65 78 74 2d 6c 69 6e 6b 2d 63 68 61 6e 67 65 20 28 6e 65 78 74 2d ........(next-link-change.(next-
5f40 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 single-property-change..........
5f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 20 27 68 74 6d 6c .......................pos.'html
5f80 69 7a 65 2d 6c 69 6e 6b 20 73 74 72 69 6e 67 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 ize-link.string.end))...........
5fa0 20 20 20 28 63 68 75 6e 6b 20 28 73 75 62 73 74 72 69 6e 67 20 73 74 72 69 6e 67 20 70 6f 73 20 ...(chunk.(substring.string.pos.
5fc0 6e 65 78 74 2d 6c 69 6e 6b 2d 63 68 61 6e 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 next-link-change))).........(pus
5fe0 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 6c 69 6e 6b 0a 20 20 20 20 20 20 20 20 20 h..........(cond.(link..........
6000 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 66 6f 72 6d 61 74 2d 6c 69 6e 6b 20 6c 69 6e 6b .......(htmlize-format-link.link
6020 20 63 68 75 6e 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 67 65 74 2d 63 68 .chunk))................((get-ch
6040 61 72 2d 70 72 6f 70 65 72 74 79 20 30 20 27 68 74 6d 6c 69 7a 65 2d 6c 69 74 65 72 61 6c 20 63 ar-property.0.'htmlize-literal.c
6060 68 75 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 75 6e 6b 29 0a 20 20 20 hunk).................chunk)....
6080 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 28 ............(t.................(
60a0 68 74 6d 6c 69 7a 65 2d 70 72 6f 74 65 63 74 2d 73 74 72 69 6e 67 20 63 68 75 6e 6b 29 29 29 0a htmlize-protect-string.chunk))).
60c0 20 20 20 20 20 20 20 20 20 6f 75 74 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 .........outlist).........(setq.
60e0 70 6f 73 20 6e 65 78 74 2d 6c 69 6e 6b 2d 63 68 61 6e 67 65 29 29 29 0a 20 20 20 20 28 68 74 6d pos.next-link-change))).....(htm
6100 6c 69 7a 65 2d 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 6f 75 74 6c 69 73 74 29 29 29 lize-concat.(nreverse.outlist)))
6120 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 64 69 73 70 6c 61 79 2d 70 72 6f 70 2d 74 )..(defun.htmlize-display-prop-t
6140 6f 2d 68 74 6d 6c 20 28 64 69 73 70 6c 61 79 20 74 65 78 74 29 0a 20 20 28 6c 65 74 20 28 64 65 o-html.(display.text)...(let.(de
6160 73 63 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 70 20 64 69 73 70 6c 61 79 29 sc).....(cond.((stringp.display)
6180 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6d 61 63 73 20 69 67 6e 6f 72 65 73 20 72 65 63 ............;;.Emacs.ignores.rec
61a0 75 72 73 69 76 65 20 64 69 73 70 6c 61 79 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 20 20 20 20 20 ursive.display.properties.......
61c0 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 65 73 63 61 70 65 2d 6f 72 2d 6c 69 6e 6b 20 64 69 ......(htmlize-escape-or-link.di
61e0 73 70 6c 61 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 65 71 20 28 63 61 72 splay))...........((not.(eq.(car
6200 2d 73 61 66 65 20 64 69 73 70 6c 61 79 29 20 27 69 6d 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 -safe.display).'image)).........
6220 20 20 20 28 68 74 6d 6c 69 7a 65 2d 70 72 6f 74 65 63 74 2d 73 74 72 69 6e 67 20 74 65 78 74 29 ...(htmlize-protect-string.text)
6240 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 28 73 65 74 71 20 64 65 73 63 20 28 66 )...........((null.(setq.desc.(f
6260 75 6e 63 61 6c 6c 20 68 74 6d 6c 69 7a 65 2d 74 72 61 6e 73 66 6f 72 6d 2d 69 6d 61 67 65 0a 20 uncall.htmlize-transform-image..
6280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
62a0 20 20 20 20 28 63 64 72 20 64 69 73 70 6c 61 79 29 20 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 ....(cdr.display).text))).......
62c0 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 65 73 63 61 70 65 2d 6f 72 2d 6c 69 6e 6b 20 74 65 78 .....(htmlize-escape-or-link.tex
62e0 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 64 65 73 63 29 0a 20 20 t))...........((stringp.desc)...
6300 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 65 73 63 61 70 65 2d 6f 72 2d 6c 69 6e 6b .........(htmlize-escape-or-link
6320 20 64 65 73 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 .desc))...........(t............
6340 28 68 74 6d 6c 69 7a 65 2d 67 65 6e 65 72 61 74 65 2d 69 6d 61 67 65 20 64 65 73 63 20 74 65 78 (htmlize-generate-image.desc.tex
6360 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 73 74 72 69 6e 67 2d 74 6f t)))))..(defun.htmlize-string-to
6380 2d 68 74 6d 6c 20 28 73 74 72 69 6e 67 29 0a 20 20 3b 3b 20 43 6f 6e 76 65 72 74 20 74 68 65 20 -html.(string)...;;.Convert.the.
63a0 73 74 72 69 6e 67 20 74 6f 20 48 54 4d 4c 2c 20 69 6e 63 6c 75 64 69 6e 67 20 69 6d 61 67 65 73 string.to.HTML,.including.images
63c0 20 61 74 74 61 63 68 65 64 20 61 73 0a 20 20 3b 3b 20 60 64 69 73 70 6c 61 79 27 20 70 72 6f 70 .attached.as...;;.`display'.prop
63e0 65 72 74 79 20 61 6e 64 20 6c 69 6e 6b 73 20 61 73 20 60 68 74 6d 6c 69 7a 65 2d 6c 69 6e 6b 27 erty.and.links.as.`htmlize-link'
6400 20 70 72 6f 70 65 72 74 79 2e 20 20 49 6e 20 61 0a 20 20 3b 3b 20 73 74 72 69 6e 67 20 77 69 74 .property...In.a...;;.string.wit
6420 68 6f 75 74 20 69 6d 61 67 65 73 20 6f 72 20 6c 69 6e 6b 73 2c 20 74 68 69 73 20 69 73 20 65 71 hout.images.or.links,.this.is.eq
6440 75 69 76 61 6c 65 6e 74 20 74 6f 0a 20 20 3b 3b 20 60 68 74 6d 6c 69 7a 65 2d 70 72 6f 74 65 63 uivalent.to...;;.`htmlize-protec
6460 74 2d 73 74 72 69 6e 67 27 2e 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 30 29 20 28 65 6e 64 20 t-string'....(let.((pos.0).(end.
6480 28 6c 65 6e 67 74 68 20 73 74 72 69 6e 67 29 29 20 6f 75 74 6c 69 73 74 29 0a 20 20 20 20 28 77 (length.string)).outlist).....(w
64a0 68 69 6c 65 20 28 3c 20 70 6f 73 20 65 6e 64 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 hile.(<.pos.end).......(let*.((d
64c0 69 73 70 6c 61 79 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 70 6f 73 20 27 64 isplay.(get-char-property.pos.'d
64e0 69 73 70 6c 61 79 20 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 isplay.string))..............(ne
6500 78 74 2d 64 69 73 70 6c 61 79 2d 63 68 61 6e 67 65 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 70 xt-display-change.(next-single-p
6520 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roperty-change..................
6540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 20 27 64 69 73 70 6c 61 79 20 73 ..................pos.'display.s
6560 74 72 69 6e 67 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 75 6e 6b 20 tring.end))..............(chunk.
6580 28 73 75 62 73 74 72 69 6e 67 20 73 74 72 69 6e 67 20 70 6f 73 20 6e 65 78 74 2d 64 69 73 70 6c (substring.string.pos.next-displ
65a0 61 79 2d 63 68 61 6e 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 ay-change))).........(push......
65c0 20 20 20 20 28 69 66 20 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 ....(if.display..............(ht
65e0 6d 6c 69 7a 65 2d 64 69 73 70 6c 61 79 2d 70 72 6f 70 2d 74 6f 2d 68 74 6d 6c 20 64 69 73 70 6c mlize-display-prop-to-html.displ
6600 61 79 20 63 68 75 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 65 73 ay.chunk)............(htmlize-es
6620 63 61 70 65 2d 6f 72 2d 6c 69 6e 6b 20 63 68 75 6e 6b 29 29 0a 20 20 20 20 20 20 20 20 20 6f 75 cape-or-link.chunk))..........ou
6640 74 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 6e 65 78 74 2d 64 69 tlist).........(setq.pos.next-di
6660 73 70 6c 61 79 2d 63 68 61 6e 67 65 29 29 29 0a 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 63 6f 6e splay-change))).....(htmlize-con
6680 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 6f 75 74 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 75 cat.(nreverse.outlist))))..(defu
66a0 6e 20 68 74 6d 6c 69 7a 65 2d 64 65 66 61 75 6c 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 69 6d 61 67 n.htmlize-default-transform-imag
66c0 65 20 28 69 6d 67 70 72 6f 70 73 20 5f 74 65 78 74 29 0a 20 20 22 44 65 66 61 75 6c 74 20 74 72 e.(imgprops._text)..."Default.tr
66e0 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 6f 66 20 69 6d 61 67 65 20 64 65 73 63 72 69 70 74 6f 72 ansformation.of.image.descriptor
6700 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20 75 73 61 62 6c 65 20 69 6e 20 48 54 4d 4c 2e 0a 0a 49 .to.something.usable.in.HTML...I
6720 66 20 60 68 74 6d 6c 69 7a 65 2d 75 73 65 2d 69 6d 61 67 65 73 27 20 69 73 20 6e 69 6c 2c 20 74 f.`htmlize-use-images'.is.nil,.t
6740 68 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 73 20 6e 69 6c 2c 20 he.function.always.returns.nil,.
6760 6d 65 61 6e 69 6e 67 0a 75 73 65 20 6f 72 69 67 69 6e 61 6c 20 74 65 78 74 2e 20 20 4f 74 68 65 meaning.use.original.text...Othe
6780 72 77 69 73 65 2c 20 69 74 20 74 72 69 65 73 20 74 6f 20 66 69 6e 64 20 74 68 65 20 69 6d 61 67 rwise,.it.tries.to.find.the.imag
67a0 65 20 66 6f 72 20 69 6d 61 67 65 73 20 74 68 61 74 0a 73 70 65 63 69 66 79 20 61 20 66 69 6c 65 e.for.images.that.specify.a.file
67c0 20 6e 61 6d 65 2e 20 20 49 66 20 60 68 74 6d 6c 69 7a 65 2d 66 6f 72 63 65 2d 69 6e 6c 69 6e 65 .name...If.`htmlize-force-inline
67e0 2d 69 6d 61 67 65 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 61 6c 73 6f 0a 63 6f 6e -images'.is.non-nil,.it.also.con
6800 76 65 72 74 73 20 74 68 65 20 3a 66 69 6c 65 20 61 74 74 72 69 62 75 74 65 20 74 6f 20 3a 64 61 verts.the.:file.attribute.to.:da
6820 74 61 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 6d 6f 64 69 66 69 65 64 20 70 72 6f 70 ta.and.returns.the.modified.prop
6840 65 72 74 79 0a 6c 69 73 74 2e 22 0a 20 20 28 77 68 65 6e 20 68 74 6d 6c 69 7a 65 2d 75 73 65 2d erty.list."...(when.htmlize-use-
6860 69 6d 61 67 65 73 0a 20 20 20 20 28 77 68 65 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6d 67 70 images.....(when.(plist-get.imgp
6880 72 6f 70 73 20 3a 66 69 6c 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 74 69 6f rops.:file).......(let.((locatio
68a0 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 64 72 20 28 66 69 6e 64 2d 69 6d 61 67 65 20 28 6c n.(plist-get.(cdr.(find-image.(l
68c0 69 73 74 20 69 6d 67 70 72 6f 70 73 29 29 29 20 3a 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 ist.imgprops))).:file)))........
68e0 20 28 77 68 65 6e 20 6c 6f 63 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 .(when.location...........(setq.
6900 69 6d 67 70 72 6f 70 73 20 28 70 6c 69 73 74 2d 70 75 74 20 28 63 6c 2d 63 6f 70 79 2d 6c 69 73 imgprops.(plist-put.(cl-copy-lis
6920 74 20 69 6d 67 70 72 6f 70 73 29 20 3a 66 69 6c 65 20 6c 6f 63 61 74 69 6f 6e 29 29 29 29 29 0a t.imgprops).:file.location))))).
6940 20 20 20 20 28 69 66 20 68 74 6d 6c 69 7a 65 2d 66 6f 72 63 65 2d 69 6e 6c 69 6e 65 2d 69 6d 61 ....(if.htmlize-force-inline-ima
6960 67 65 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 74 69 6f 6e 20 28 70 6c 69 ges.........(let.((location.(pli
6980 73 74 2d 67 65 74 20 69 6d 67 70 72 6f 70 73 20 3a 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 st-get.imgprops.:file)).........
69a0 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6c 6f 63 61 ......data)...........(when.loca
69c0 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 tion.............(with-temp-buff
69e0 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 er...............(condition-case
6a00 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 .nil...................(progn...
6a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 ..................(insert-file-c
6a40 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 6c 6f 63 61 74 69 6f 6e 29 0a 20 20 20 20 ontents-literally.location).....
6a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 61 74 61 20 28 62 75 66 66 ................(setq.data.(buff
6a80 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 er-string))).................(er
6aa0 72 6f 72 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 73 75 63 63 ror.nil))))...........;;.if.succ
6ac0 65 73 73 66 75 6c 2c 20 72 65 74 75 72 6e 20 74 68 65 20 6e 65 77 20 70 6c 69 73 74 2c 20 6f 74 essful,.return.the.new.plist,.ot
6ae0 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 69 6c 2c herwise.return...........;;.nil,
6b00 20 77 68 69 63 68 20 77 69 6c 6c 20 75 73 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 74 65 78 .which.will.use.the.original.tex
6b20 74 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 t...........(and.data...........
6b40 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6d 67 70 72 .....(plist-put.(plist-put.imgpr
6b60 6f 70 73 20 3a 66 69 6c 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ops.:file.nil)..................
6b80 20 20 20 20 20 20 20 20 20 3a 64 61 74 61 20 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 69 6d 67 .........:data.data))).......img
6ba0 70 72 6f 70 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 61 6c 74 2d 74 65 78 props)))..(defun.htmlize-alt-tex
6bc0 74 20 28 5f 69 6d 67 70 72 6f 70 73 20 6f 72 69 67 74 65 78 74 29 0a 20 20 28 61 6e 64 20 28 2f t.(_imgprops.origtext)...(and.(/
6be0 3d 20 28 6c 65 6e 67 74 68 20 6f 72 69 67 74 65 78 74 29 20 30 29 0a 20 20 20 20 20 20 20 28 3c =.(length.origtext).0)........(<
6c00 3d 20 28 6c 65 6e 67 74 68 20 6f 72 69 67 74 65 78 74 29 20 68 74 6d 6c 69 7a 65 2d 6d 61 78 2d =.(length.origtext).htmlize-max-
6c20 61 6c 74 2d 74 65 78 74 29 0a 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 alt-text)........(not.(string-ma
6c40 74 63 68 20 22 5b 5c 30 2d 5c 78 31 66 5d 22 20 6f 72 69 67 74 65 78 74 29 29 0a 20 20 20 20 20 tch."[\0-\x1f]".origtext))......
6c60 20 20 6f 72 69 67 74 65 78 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 67 65 6e ..origtext))..(defun.htmlize-gen
6c80 65 72 61 74 65 2d 69 6d 61 67 65 20 28 69 6d 67 70 72 6f 70 73 20 6f 72 69 67 74 65 78 74 29 0a erate-image.(imgprops.origtext).
6ca0 20 20 28 6c 65 74 2a 20 28 28 61 6c 74 2d 74 65 78 74 20 28 68 74 6d 6c 69 7a 65 2d 61 6c 74 2d ..(let*.((alt-text.(htmlize-alt-
6cc0 74 65 78 74 20 69 6d 67 70 72 6f 70 73 20 6f 72 69 67 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 text.imgprops.origtext))........
6ce0 20 20 28 61 6c 74 2d 61 74 74 72 20 28 69 66 20 61 6c 74 2d 74 65 78 74 0a 20 20 20 20 20 20 20 ..(alt-attr.(if.alt-text........
6d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 61 6c 74 3d 5c 22 ................(format.".alt=\"
6d20 25 73 5c 22 22 20 28 68 74 6d 6c 69 7a 65 2d 61 74 74 72 2d 65 73 63 61 70 65 20 61 6c 74 2d 74 %s\"".(htmlize-attr-escape.alt-t
6d40 65 78 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 22 22 29 29 29 ext))......................"")))
6d60 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 70 6c 69 73 74 2d 67 65 74 20 69 6d 67 70 72 6f 70 73 20 .....(cond.((plist-get.imgprops.
6d80 3a 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 72 79 20 74 6f 20 66 69 6e 64 :file)............;;.Try.to.find
6da0 20 74 68 65 20 69 6d 61 67 65 20 69 6e 20 69 6d 61 67 65 2d 6c 6f 61 64 2d 70 61 74 68 0a 20 20 .the.image.in.image-load-path...
6dc0 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 66 6f 75 6e 64 2d 70 72 6f 70 73 20 28 63 64 .........(let*.((found-props.(cd
6de0 72 20 28 66 69 6e 64 2d 69 6d 61 67 65 20 28 6c 69 73 74 20 69 6d 67 70 72 6f 70 73 29 29 29 29 r.(find-image.(list.imgprops))))
6e00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 20 28 6f 72 20 28 70 6c ...................(file.(or.(pl
6e20 69 73 74 2d 67 65 74 20 66 6f 75 6e 64 2d 70 72 6f 70 73 20 3a 66 69 6c 65 29 0a 20 20 20 20 20 ist-get.found-props.:file)......
6e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 .......................(plist-ge
6e60 74 20 69 6d 67 70 72 6f 70 73 20 3a 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 t.imgprops.:file))))............
6e80 20 20 28 66 6f 72 6d 61 74 20 22 3c 69 6d 67 20 73 72 63 3d 5c 22 25 73 5c 22 25 73 20 2f 3e 22 ..(format."<img.src=\"%s\"%s./>"
6ea0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 61 ......................(htmlize-a
6ec0 74 74 72 2d 65 73 63 61 70 65 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 ttr-escape.(file-relative-name.f
6ee0 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 74 2d 61 ile))......................alt-a
6f00 74 74 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 20 69 6d 67 ttr)))...........((plist-get.img
6f20 70 72 6f 70 73 20 3a 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 props.:data)............(let.((i
6f40 6d 61 67 65 2d 74 79 70 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6d 67 70 72 6f 70 73 20 3a 74 mage-type.(plist-get.imgprops.:t
6f60 79 70 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 3c 69 6d ype)))..............(format."<im
6f80 67 20 73 72 63 3d 5c 22 64 61 74 61 3a 69 6d 61 67 65 2f 25 73 3b 62 61 73 65 36 34 2c 25 73 5c g.src=\"data:image/%s;base64,%s\
6fa0 22 25 73 20 2f 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 "%s./>"......................(or
6fc0 20 28 61 6c 69 73 74 2d 67 65 74 20 69 6d 61 67 65 2d 74 79 70 65 20 68 74 6d 6c 69 7a 65 2d 69 .(alist-get.image-type.htmlize-i
6fe0 6d 61 67 65 2d 6d 69 6d 65 2d 74 79 70 65 2d 61 6c 69 73 74 29 20 69 6d 61 67 65 2d 74 79 70 65 mage-mime-type-alist).image-type
7000 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 73 65 36 ."")......................(base6
7020 34 2d 65 6e 63 6f 64 65 2d 73 74 72 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6d 67 70 72 4-encode-string.(plist-get.imgpr
7040 6f 70 73 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ops.:data)).....................
7060 20 61 6c 74 2d 61 74 74 72 29 29 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 68 74 6d 6c 69 .alt-attr))))))..(defconst.htmli
7080 7a 65 2d 65 6c 6c 69 70 73 69 73 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 2e 2e 2e 22 20 27 68 ze-ellipsis.(propertize."...".'h
70a0 74 6d 6c 69 7a 65 2d 65 6c 6c 69 70 73 69 73 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c tmlize-ellipsis.t))..(defun.html
70c0 69 7a 65 2d 6d 61 74 63 68 2d 69 6e 76 2d 73 70 65 63 20 28 69 6e 76 29 0a 20 20 28 63 6c 2d 6d ize-match-inv-spec.(inv)...(cl-m
70e0 65 6d 62 65 72 20 69 6e 76 20 62 75 66 66 65 72 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d 73 70 ember.inv.buffer-invisibility-sp
7100 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 28 6c 61 6d 62 64 61 20 28 69 29 ec..............:key.(lambda.(i)
7120 0a 20 20 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 6d 62 6f 6c .....................(if.(symbol
7140 70 20 69 29 20 69 20 28 63 61 72 20 69 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 p.i).i.(car.i)))))..(defun.htmli
7160 7a 65 2d 64 65 63 6f 64 65 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d 73 70 65 63 20 28 69 6e 76 ze-decode-invisibility-spec.(inv
7180 69 73 69 62 6c 65 29 0a 20 20 3b 3b 20 52 65 74 75 72 6e 20 74 2c 20 6e 69 6c 2c 20 6f 72 20 60 isible)...;;.Return.t,.nil,.or.`
71a0 65 6c 6c 69 70 73 69 73 27 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 68 6f 77 20 69 6e 76 69 ellipsis',.depending.on.how.invi
71c0 73 69 62 6c 65 20 74 65 78 74 20 73 68 6f 75 6c 64 0a 20 20 3b 3b 20 62 65 20 69 6e 73 65 72 74 sible.text.should...;;.be.insert
71e0 65 64 2e 0a 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 6c 69 73 74 70 20 62 75 66 66 65 72 2d 69 6e ed.....(if.(not.(listp.buffer-in
7200 76 69 73 69 62 69 6c 69 74 79 2d 73 70 65 63 29 29 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 62 75 visibility-spec)).......;;.If.bu
7220 66 66 65 72 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d 73 70 65 63 20 69 73 20 6e 6f 74 20 61 20 ffer-invisibility-spec.is.not.a.
7240 6c 69 73 74 2c 20 74 68 65 6e 20 61 6c 6c 0a 20 20 20 20 20 20 3b 3b 20 63 68 61 72 61 63 74 65 list,.then.all.......;;.characte
7260 72 73 20 77 69 74 68 20 6e 6f 6e 2d 6e 69 6c 20 60 69 6e 76 69 73 69 62 6c 65 27 20 70 72 6f 70 rs.with.non-nil.`invisible'.prop
7280 65 72 74 79 20 61 72 65 20 76 69 73 69 62 6c 65 2e 0a 20 20 20 20 20 20 28 6e 6f 74 20 69 6e 76 erty.are.visible........(not.inv
72a0 69 73 69 62 6c 65 29 0a 0a 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 76 isible)......;;.Otherwise,.the.v
72c0 61 6c 75 65 20 6f 66 20 61 20 6e 6f 6e 2d 6e 69 6c 20 60 69 6e 76 69 73 69 62 6c 65 27 20 70 72 alue.of.a.non-nil.`invisible'.pr
72e0 6f 70 65 72 74 79 20 63 61 6e 20 62 65 3a 0a 20 20 20 20 3b 3b 20 31 2e 20 61 20 73 79 6d 62 6f operty.can.be:.....;;.1..a.symbo
7300 6c 20 2d 2d 20 6d 61 6b 65 20 74 68 65 20 74 65 78 74 20 69 6e 76 69 73 69 62 6c 65 20 69 66 20 l.--.make.the.text.invisible.if.
7320 69 74 20 6d 61 74 63 68 65 73 0a 20 20 20 20 3b 3b 20 20 20 20 62 75 66 66 65 72 2d 69 6e 76 69 it.matches.....;;....buffer-invi
7340 73 69 62 69 6c 69 74 79 2d 73 70 65 63 2e 0a 20 20 20 20 3b 3b 20 32 2e 20 61 20 6c 69 73 74 20 sibility-spec......;;.2..a.list.
7360 6f 66 20 73 79 6d 62 6f 6c 73 20 2d 2d 20 6d 61 6b 65 20 74 68 65 20 74 65 78 74 20 69 6e 76 69 of.symbols.--.make.the.text.invi
7380 73 69 62 6c 65 20 69 66 0a 20 20 20 20 3b 3b 20 20 20 20 61 6e 79 20 73 79 6d 62 6f 6c 20 69 6e sible.if.....;;....any.symbol.in
73a0 20 74 68 65 20 6c 69 73 74 20 6d 61 74 63 68 65 73 0a 20 20 20 20 3b 3b 20 20 20 20 62 75 66 66 .the.list.matches.....;;....buff
73c0 65 72 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d 73 70 65 63 2e 0a 20 20 20 20 3b 3b 20 49 66 20 er-invisibility-spec......;;.If.
73e0 74 68 65 20 6d 61 74 63 68 20 6f 66 20 62 75 66 66 65 72 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 the.match.of.buffer-invisibility
7400 2d 73 70 65 63 20 68 61 73 20 61 20 6e 6f 6e 2d 6e 69 6c 0a 20 20 20 20 3b 3b 20 43 44 52 2c 20 -spec.has.a.non-nil.....;;.CDR,.
7420 72 65 70 6c 61 63 65 20 74 68 65 20 69 6e 76 69 73 69 62 6c 65 20 74 65 78 74 20 77 69 74 68 20 replace.the.invisible.text.with.
7440 61 6e 20 65 6c 6c 69 70 73 69 73 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 6d 61 74 63 68 20 28 69 an.ellipsis......(let.((match.(i
7460 66 20 28 73 79 6d 62 6f 6c 70 20 69 6e 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 f.(symbolp.invisible)...........
7480 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 6d 61 74 63 68 2d 69 6e 76 2d 73 70 ...........(htmlize-match-inv-sp
74a0 65 63 20 69 6e 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ec.invisible)...................
74c0 20 28 63 6c 2d 73 6f 6d 65 20 23 27 68 74 6d 6c 69 7a 65 2d 6d 61 74 63 68 2d 69 6e 76 2d 73 70 .(cl-some.#'htmlize-match-inv-sp
74e0 65 63 20 69 6e 76 69 73 69 62 6c 65 29 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6e ec.invisible)))).......(cond.((n
7500 75 6c 6c 20 6d 61 74 63 68 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 63 64 72 2d ull.match).t).............((cdr-
7520 73 61 66 65 20 28 63 61 72 20 6d 61 74 63 68 29 29 20 27 65 6c 6c 69 70 73 69 73 29 0a 20 20 20 safe.(car.match)).'ellipsis)....
7540 20 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d .........(t.nil)))))..(defun.htm
7560 6c 69 7a 65 2d 61 64 64 2d 62 65 66 6f 72 65 2d 61 66 74 65 72 2d 73 74 72 69 6e 67 73 20 28 62 lize-add-before-after-strings.(b
7580 65 67 20 65 6e 64 20 74 65 78 74 29 0a 20 20 3b 3b 20 46 69 6e 64 20 6f 76 65 72 6c 61 79 73 20 eg.end.text)...;;.Find.overlays.
75a0 73 70 65 63 69 66 79 69 6e 67 20 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 61 6e 64 20 61 66 74 specifying.before-string.and.aft
75c0 65 72 2d 73 74 72 69 6e 67 20 69 6e 20 5b 62 65 67 2c 0a 20 20 3b 3b 20 70 6f 73 29 2e 20 20 49 er-string.in.[beg,...;;.pos)...I
75e0 66 20 61 6e 79 20 61 72 65 20 66 6f 75 6e 64 2c 20 73 70 6c 69 63 65 20 74 68 65 6d 20 69 6e 74 f.any.are.found,.splice.them.int
7600 6f 20 54 45 58 54 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6e 65 77 0a 20 20 3b 3b 20 74 o.TEXT.and.return.the.new...;;.t
7620 65 78 74 2e 0a 20 20 28 6c 65 74 20 28 61 64 64 69 74 69 6f 6e 73 29 0a 20 20 20 20 28 64 6f 6c ext....(let.(additions).....(dol
7640 69 73 74 20 28 6f 76 65 72 6c 61 79 20 28 6f 76 65 72 6c 61 79 73 2d 69 6e 20 62 65 67 20 65 6e ist.(overlay.(overlays-in.beg.en
7660 64 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 66 6f 72 65 20 28 6f 76 65 72 6c 61 79 d)).......(let.((before.(overlay
7680 2d 67 65 74 20 6f 76 65 72 6c 61 79 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 29 29 0a 20 20 -get.overlay.'before-string))...
76a0 20 20 20 20 20 20 20 20 20 20 28 61 66 74 65 72 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 ..........(after.(overlay-get.ov
76c0 65 72 6c 61 79 20 27 61 66 74 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 erlay.'after-string))).........(
76e0 77 68 65 6e 20 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 when.after...........(push.(cons
7700 20 28 2d 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 65 72 6c 61 79 29 20 62 65 67 29 0a 20 .(-.(overlay-end.overlay).beg)..
7720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 66 74 65 72 29 0a 20 20 20 20 .....................after).....
7740 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 69 74 69 6f 6e 73 29 29 0a 20 20 20 20 20 20 20 20 ............additions)).........
7760 28 77 68 65 6e 20 62 65 66 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f (when.before...........(push.(co
7780 6e 73 20 28 2d 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 65 72 6c 61 79 29 20 62 65 ns.(-.(overlay-start.overlay).be
77a0 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 62 65 66 6f 72 65 29 g).......................before)
77c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 69 74 69 6f 6e 73 29 29 29 29 0a 20 .................additions))))..
77e0 20 20 20 28 69 66 20 61 64 64 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 ...(if.additions.........(let.((
7800 74 65 78 74 6c 69 73 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 textlist.nil)...............(str
7820 70 6f 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 61 64 64 20 28 pos.0))...........(dolist.(add.(
7840 63 6c 2d 73 74 61 62 6c 65 2d 73 6f 72 74 20 61 64 64 69 74 69 6f 6e 73 20 23 27 3c 20 3a 6b 65 cl-stable-sort.additions.#'<.:ke
7860 79 20 23 27 63 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 64 64 y.#'car)).............(let.((add
7880 70 6f 73 20 28 63 61 72 20 61 64 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pos.(car.add))..................
78a0 20 28 61 64 64 74 65 78 74 20 28 63 64 72 20 61 64 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(addtext.(cdr.add)))...........
78c0 20 20 20 20 28 70 75 73 68 20 28 73 75 62 73 74 72 69 6e 67 20 74 65 78 74 20 73 74 72 70 6f 73 ....(push.(substring.text.strpos
78e0 20 61 64 64 70 6f 73 29 20 74 65 78 74 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .addpos).textlist)..............
7900 20 28 70 75 73 68 20 61 64 64 74 65 78 74 20 74 65 78 74 6c 69 73 74 29 0a 20 20 20 20 20 20 20 .(push.addtext.textlist)........
7920 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 72 70 6f 73 20 61 64 64 70 6f 73 29 29 29 0a 20 20 .......(setq.strpos.addpos)))...
7940 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 73 75 62 73 74 72 69 6e 67 20 74 65 78 74 20 73 74 ........(push.(substring.text.st
7960 72 70 6f 73 29 20 74 65 78 74 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 rpos).textlist)...........(apply
7980 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 74 65 78 74 6c 69 73 74 29 29 29 0a .#'concat.(nreverse.textlist))).
79a0 20 20 20 20 20 20 74 65 78 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 63 6f ......text)))..(defun.htmlize-co
79c0 70 79 2d 70 72 6f 70 20 28 70 72 6f 70 20 62 65 67 20 65 6e 64 20 73 74 72 69 6e 67 29 0a 20 20 py-prop.(prop.beg.end.string)...
79e0 3b 3b 20 43 6f 70 79 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 70 72 6f 70 65 72 74 79 20 66 ;;.Copy.the.specified.property.f
7a00 72 6f 6d 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 72 65 67 69 6f 6e 20 6f 66 20 74 68 65 0a rom.the.specified.region.of.the.
7a20 20 20 3b 3b 20 62 75 66 66 65 72 20 74 6f 20 74 68 65 20 74 61 72 67 65 74 20 73 74 72 69 6e 67 ..;;.buffer.to.the.target.string
7a40 2e 20 20 57 65 20 63 61 6e 6e 6f 74 20 72 65 6c 79 20 6f 6e 20 45 6d 61 63 73 20 74 6f 20 63 6f ...We.cannot.rely.on.Emacs.to.co
7a60 70 79 20 74 68 65 0a 20 20 3b 3b 20 70 72 6f 70 65 72 74 79 20 62 65 63 61 75 73 65 20 77 65 20 py.the...;;.property.because.we.
7a80 77 61 6e 74 20 74 6f 20 68 61 6e 64 6c 65 20 70 72 6f 70 65 72 74 69 65 73 20 63 6f 6d 69 6e 67 want.to.handle.properties.coming
7aa0 20 66 72 6f 6d 20 62 6f 74 68 0a 20 20 3b 3b 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 20 .from.both...;;.text.properties.
7ac0 61 6e 64 20 6f 76 65 72 6c 61 79 73 2e 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 62 65 67 29 29 and.overlays....(let.((pos.beg))
7ae0 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 70 6f 73 20 65 6e 64 29 0a 20 20 20 20 20 20 28 6c .....(while.(<.pos.end).......(l
7b00 65 74 20 28 28 76 61 6c 75 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 70 6f et.((value.(get-char-property.po
7b20 73 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 78 74 2d 63 68 61 6e 67 s.prop)).............(next-chang
7b40 65 20 28 68 74 6d 6c 69 7a 65 2d 6e 65 78 74 2d 63 68 61 6e 67 65 20 70 6f 73 20 70 72 6f 70 20 e.(htmlize-next-change.pos.prop.
7b60 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 76 61 6c 75 65 0a 20 20 20 20 20 end))).........(when.value......
7b80 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 2d 20 70 6f 73 20 62 .....(put-text-property.(-.pos.b
7ba0 65 67 29 20 28 2d 20 6e 65 78 74 2d 63 68 61 6e 67 65 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 eg).(-.next-change.beg).........
7bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 70 20 76 61 6c 75 65 20 .....................prop.value.
7be0 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 6e 65 78 74 2d string)).........(setq.pos.next-
7c00 63 68 61 6e 67 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 67 65 74 2d change)))))..(defun.htmlize-get-
7c20 74 65 78 74 2d 77 69 74 68 2d 64 69 73 70 6c 61 79 20 28 62 65 67 20 65 6e 64 29 0a 20 20 3b 3b text-with-display.(beg.end)...;;
7c40 20 4c 69 6b 65 20 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 .Like.buffer-substring-no-proper
7c60 74 69 65 73 2c 20 65 78 63 65 70 74 20 69 74 20 63 6f 70 69 65 73 20 74 68 65 0a 20 20 3b 3b 20 ties,.except.it.copies.the...;;.
7c80 60 64 69 73 70 6c 61 79 27 20 70 72 6f 70 65 72 74 79 20 66 72 6f 6d 20 74 68 65 20 62 75 66 66 `display'.property.from.the.buff
7ca0 65 72 2c 20 69 66 20 66 6f 75 6e 64 2e 0a 20 20 28 6c 65 74 20 28 28 74 65 78 74 20 28 62 75 66 er,.if.found....(let.((text.(buf
7cc0 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 fer-substring-no-properties.beg.
7ce0 65 6e 64 29 29 29 0a 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 63 6f 70 79 2d 70 72 6f 70 20 27 64 end))).....(htmlize-copy-prop.'d
7d00 69 73 70 6c 61 79 20 62 65 67 20 65 6e 64 20 74 65 78 74 29 0a 20 20 20 20 28 68 74 6d 6c 69 7a isplay.beg.end.text).....(htmliz
7d20 65 2d 63 6f 70 79 2d 70 72 6f 70 20 27 68 74 6d 6c 69 7a 65 2d 6c 69 6e 6b 20 62 65 67 20 65 6e e-copy-prop.'htmlize-link.beg.en
7d40 64 20 74 65 78 74 29 0a 20 20 20 20 28 73 65 74 71 20 74 65 78 74 20 28 68 74 6d 6c 69 7a 65 2d d.text).....(setq.text.(htmlize-
7d60 61 64 64 2d 62 65 66 6f 72 65 2d 61 66 74 65 72 2d 73 74 72 69 6e 67 73 20 62 65 67 20 65 6e 64 add-before-after-strings.beg.end
7d80 20 74 65 78 74 29 29 0a 20 20 20 20 74 65 78 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 .text)).....text))..(defun.htmli
7da0 7a 65 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 69 6e 76 69 73 69 62 6c 65 ze-buffer-substring-no-invisible
7dc0 20 28 62 65 67 20 65 6e 64 29 0a 20 20 3b 3b 20 4c 69 6b 65 20 62 75 66 66 65 72 2d 73 75 62 73 .(beg.end)...;;.Like.buffer-subs
7de0 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 2c 20 62 75 74 20 64 6f 6e 27 74 20 63 tring-no-properties,.but.don't.c
7e00 6f 70 79 20 69 6e 76 69 73 69 62 6c 65 0a 20 20 3b 3b 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 opy.invisible...;;.parts.of.the.
7e20 72 65 67 69 6f 6e 2e 20 20 57 68 65 72 65 20 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d region...Where.buffer-substring-
7e40 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 3b 3b 20 6d 61 6e 64 61 74 65 73 20 61 6e 20 65 no-properties...;;.mandates.an.e
7e60 6c 6c 69 70 73 69 73 20 74 6f 20 62 65 20 73 68 6f 77 6e 2c 20 68 74 6d 6c 69 7a 65 2d 65 6c 6c llipsis.to.be.shown,.htmlize-ell
7e80 69 70 73 69 73 20 69 73 20 69 6e 73 65 72 74 65 64 2e 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 ipsis.is.inserted....(let.((pos.
7ea0 62 65 67 29 0a 20 20 20 20 20 20 20 20 76 69 73 69 62 6c 65 2d 6c 69 73 74 20 69 6e 76 69 73 69 beg).........visible-list.invisi
7ec0 62 6c 65 20 73 68 6f 77 20 6c 61 73 74 2d 73 68 6f 77 20 6e 65 78 74 2d 63 68 61 6e 67 65 29 0a ble.show.last-show.next-change).
7ee0 20 20 20 20 3b 3b 20 49 74 65 72 61 74 65 20 6f 76 65 72 20 74 68 65 20 63 68 61 6e 67 65 73 20 ....;;.Iterate.over.the.changes.
7f00 69 6e 20 74 68 65 20 60 69 6e 76 69 73 69 62 6c 65 27 20 70 72 6f 70 65 72 74 79 20 61 6e 64 20 in.the.`invisible'.property.and.
7f20 66 69 6c 74 65 72 0a 20 20 20 20 3b 3b 20 6f 75 74 20 74 68 65 20 70 6f 72 74 69 6f 6e 73 20 77 filter.....;;.out.the.portions.w
7f40 68 65 72 65 20 69 74 27 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 2e 65 2e 20 77 68 65 72 65 20 74 68 here.it's.non-nil,.i.e..where.th
7f60 65 20 74 65 78 74 20 69 73 0a 20 20 20 20 3b 3b 20 69 6e 76 69 73 69 62 6c 65 2e 0a 20 20 20 20 e.text.is.....;;.invisible......
7f80 28 77 68 69 6c 65 20 28 3c 20 70 6f 73 20 65 6e 64 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 (while.(<.pos.end).......(setq.i
7fa0 6e 76 69 73 69 62 6c 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 70 6f 73 20 nvisible.(get-char-property.pos.
7fc0 27 69 6e 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 2d 63 68 61 'invisible).............next-cha
7fe0 6e 67 65 20 28 68 74 6d 6c 69 7a 65 2d 6e 65 78 74 2d 63 68 61 6e 67 65 20 70 6f 73 20 27 69 6e nge.(htmlize-next-change.pos.'in
8000 76 69 73 69 62 6c 65 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 77 20 28 68 visible.end).............show.(h
8020 74 6d 6c 69 7a 65 2d 64 65 63 6f 64 65 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d 73 70 65 63 20 tmlize-decode-invisibility-spec.
8040 69 6e 76 69 73 69 62 6c 65 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 73 68 6f invisible)).......(cond.((eq.sho
8060 77 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 68 74 6d 6c 69 7a 65 w.t)..............(push.(htmlize
8080 2d 67 65 74 2d 74 65 78 74 2d 77 69 74 68 2d 64 69 73 70 6c 61 79 20 70 6f 73 20 6e 65 78 74 2d -get-text-with-display.pos.next-
80a0 63 68 61 6e 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 69 73 69 62 change)....................visib
80c0 6c 65 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 le-list)).............((and.(eq.
80e0 73 68 6f 77 20 27 65 6c 6c 69 70 73 69 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 show.'ellipsis).................
8100 20 20 28 6e 6f 74 20 28 65 71 20 6c 61 73 74 2d 73 68 6f 77 20 27 65 6c 6c 69 70 73 69 73 29 29 ..(not.(eq.last-show.'ellipsis))
8120 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6e 66 6c 61 74 65 20 73 ...................;;.Conflate.s
8140 75 63 63 65 73 73 69 76 65 20 65 6c 6c 69 70 73 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 uccessive.ellipses..............
8160 20 20 20 20 20 20 28 70 75 73 68 20 68 74 6d 6c 69 7a 65 2d 65 6c 6c 69 70 73 69 73 20 76 69 73 ......(push.htmlize-ellipsis.vis
8180 69 62 6c 65 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 6e 65 ible-list)))).......(setq.pos.ne
81a0 78 74 2d 63 68 61 6e 67 65 20 6c 61 73 74 2d 73 68 6f 77 20 73 68 6f 77 29 29 0a 20 20 20 20 28 xt-change.last-show.show)).....(
81c0 68 74 6d 6c 69 7a 65 2d 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 76 69 73 69 62 6c 65 htmlize-concat.(nreverse.visible
81e0 2d 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 74 72 69 6d 2d 65 -list))))..(defun.htmlize-trim-e
8200 6c 6c 69 70 73 69 73 20 28 74 65 78 74 29 0a 20 20 3b 3b 20 52 65 6d 6f 76 65 20 68 74 6d 6c 69 llipsis.(text)...;;.Remove.htmli
8220 7a 65 2d 65 6c 6c 69 70 73 65 73 20 28 22 2e 2e 2e 22 29 20 66 72 6f 6d 20 74 68 65 20 62 65 67 ze-ellipses.("...").from.the.beg
8240 69 6e 6e 69 6e 67 20 6f 66 20 54 45 58 54 20 69 66 20 69 74 0a 20 20 3b 3b 20 73 74 61 72 74 73 inning.of.TEXT.if.it...;;.starts
8260 20 77 69 74 68 20 69 74 2e 20 20 49 74 20 63 68 65 63 6b 73 20 66 6f 72 20 74 68 65 20 73 70 65 .with.it...It.checks.for.the.spe
8280 63 69 61 6c 20 70 72 6f 70 65 72 74 79 20 6f 66 20 74 68 65 0a 20 20 3b 3b 20 65 6c 6c 69 70 73 cial.property.of.the...;;.ellips
82a0 69 73 20 73 6f 20 69 74 20 64 6f 65 73 6e 27 74 20 77 6f 72 6b 20 6f 6e 20 6f 72 64 69 6e 61 72 is.so.it.doesn't.work.on.ordinar
82c0 79 20 74 65 78 74 20 74 68 61 74 20 62 65 67 69 6e 73 20 77 69 74 68 0a 20 20 3b 3b 20 22 2e 2e y.text.that.begins.with...;;."..
82e0 2e 22 2e 0a 20 20 28 69 66 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 30 20 27 ."....(if.(get-text-property.0.'
8300 68 74 6d 6c 69 7a 65 2d 65 6c 6c 69 70 73 69 73 20 74 65 78 74 29 0a 20 20 20 20 20 20 28 73 75 htmlize-ellipsis.text).......(su
8320 62 73 74 72 69 6e 67 20 74 65 78 74 20 28 6c 65 6e 67 74 68 20 68 74 6d 6c 69 7a 65 2d 65 6c 6c bstring.text.(length.htmlize-ell
8340 69 70 73 69 73 29 29 0a 20 20 20 20 74 65 78 74 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 68 74 ipsis)).....text))..(defconst.ht
8360 6d 6c 69 7a 65 2d 74 61 62 2d 73 70 61 63 65 73 0a 20 20 3b 3b 20 41 20 74 61 62 6c 65 20 6f 66 mlize-tab-spaces...;;.A.table.of
8380 20 73 74 72 69 6e 67 73 20 77 69 74 68 20 73 70 61 63 65 73 2e 20 20 28 61 72 65 66 20 68 74 6d .strings.with.spaces...(aref.htm
83a0 6c 69 7a 65 2d 74 61 62 2d 73 70 61 63 65 73 20 35 29 20 69 73 0a 20 20 3b 3b 20 6c 69 6b 65 20 lize-tab-spaces.5).is...;;.like.
83c0 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 35 20 3f 5c 20 29 2c 20 65 78 63 65 70 74 20 69 74 20 64 (make-string.5.?\.),.except.it.d
83e0 6f 65 73 6e 27 74 20 63 6f 6e 73 2e 0a 20 20 28 6c 65 74 20 28 28 76 20 28 6d 61 6b 65 2d 76 65 oesn't.cons....(let.((v.(make-ve
8400 63 74 6f 72 20 33 32 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 69 20 28 ctor.32.nil))).....(dotimes.(i.(
8420 6c 65 6e 67 74 68 20 76 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 72 65 66 20 76 20 69 length.v)).......(setf.(aref.v.i
8440 29 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 69 20 3f 5c 20 29 29 29 0a 20 20 20 20 76 29 29 0a ).(make-string.i.?\.))).....v)).
8460 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 75 6e 74 61 62 69 66 79 2d 73 74 72 69 6e 67 20 .(defun.htmlize-untabify-string.
8480 28 74 65 78 74 20 73 74 61 72 74 2d 63 6f 6c 75 6d 6e 29 0a 20 20 22 55 6e 74 61 62 69 66 79 20 (text.start-column)..."Untabify.
84a0 54 45 58 54 2c 20 61 73 73 75 6d 69 6e 67 20 69 74 20 73 74 61 72 74 73 20 61 74 20 53 54 41 52 TEXT,.assuming.it.starts.at.STAR
84c0 54 2d 43 4f 4c 55 4d 4e 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6c 75 6d 6e 20 73 74 61 72 74 T-COLUMN."...(let.((column.start
84e0 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 20 20 20 20 28 6c 61 73 74 2d 6d 61 74 63 68 20 30 29 0a -column).........(last-match.0).
8500 20 20 20 20 20 20 20 20 28 63 68 75 6e 6b 2d 73 74 61 72 74 20 30 29 0a 20 20 20 20 20 20 20 20 ........(chunk-start.0).........
8520 63 68 75 6e 6b 73 20 6d 61 74 63 68 2d 70 6f 73 20 74 61 62 2d 73 69 7a 65 29 0a 20 20 20 20 28 chunks.match-pos.tab-size).....(
8540 77 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 5c 74 5c 6e 5d 22 20 74 65 78 while.(string-match."[\t\n]".tex
8560 74 20 6c 61 73 74 2d 6d 61 74 63 68 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 74 63 68 2d t.last-match).......(setq.match-
8580 70 6f 73 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 28 pos.(match-beginning.0)).......(
85a0 63 6f 6e 64 20 28 28 65 71 20 28 61 72 65 66 20 74 65 78 74 20 6d 61 74 63 68 2d 70 6f 73 29 20 cond.((eq.(aref.text.match-pos).
85c0 3f 5c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6e 63 6f 75 6e 74 65 72 65 64 ?\t)..............;;.Encountered
85e0 20 61 20 74 61 62 3a 20 63 72 65 61 74 65 20 61 20 63 68 75 6e 6b 20 6f 66 20 74 65 78 74 20 66 .a.tab:.create.a.chunk.of.text.f
8600 6f 6c 6c 6f 77 65 64 20 62 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 65 ollowed.by..............;;.the.e
8620 78 70 61 6e 64 65 64 20 74 61 62 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 xpanded.tab...............(push.
8640 28 73 75 62 73 74 72 69 6e 67 20 74 65 78 74 20 63 68 75 6e 6b 2d 73 74 61 72 74 20 6d 61 74 63 (substring.text.chunk-start.matc
8660 68 2d 70 6f 73 29 20 63 68 75 6e 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 h-pos).chunks)..............;;.I
8680 6e 63 72 65 61 73 65 20 43 4f 4c 55 4d 4e 20 62 79 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 ncrease.COLUMN.by.the.length.of.
86a0 74 68 65 20 74 65 78 74 20 77 65 27 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 the.text.we've..............;;.s
86c0 6b 69 70 70 65 64 20 73 69 6e 63 65 20 6c 61 73 74 20 74 61 62 20 6f 72 20 6e 65 77 6c 69 6e 65 kipped.since.last.tab.or.newline
86e0 2e 20 20 28 45 6e 63 6f 75 6e 74 65 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b ...(Encountering..............;;
8700 20 6e 65 77 6c 69 6e 65 20 72 65 73 65 74 73 20 69 74 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 .newline.resets.it.)............
8720 20 20 28 63 6c 2d 69 6e 63 66 20 63 6f 6c 75 6d 6e 20 28 2d 20 6d 61 74 63 68 2d 70 6f 73 20 6c ..(cl-incf.column.(-.match-pos.l
8740 61 73 74 2d 6d 61 74 63 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 61 6c 63 ast-match))..............;;.Calc
8760 75 6c 61 74 65 20 74 61 62 20 73 69 7a 65 20 62 61 73 65 64 20 6f 6e 20 74 61 62 2d 77 69 64 74 ulate.tab.size.based.on.tab-widt
8780 68 20 61 6e 64 20 43 4f 4c 55 4d 4e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 h.and.COLUMN...............(setq
87a0 20 74 61 62 2d 73 69 7a 65 20 28 2d 20 74 61 62 2d 77 69 64 74 68 20 28 25 20 63 6f 6c 75 6d 6e .tab-size.(-.tab-width.(%.column
87c0 20 74 61 62 2d 77 69 64 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 78 .tab-width)))..............;;.Ex
87e0 70 61 6e 64 20 74 68 65 20 74 61 62 2c 20 63 61 72 65 66 75 6c 6c 79 20 72 65 63 72 65 61 74 69 pand.the.tab,.carefully.recreati
8800 6e 67 20 74 68 65 20 60 64 69 73 70 6c 61 79 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b ng.the.`display'..............;;
8820 20 70 72 6f 70 65 72 74 79 20 69 66 20 6f 6e 65 20 77 61 73 20 6f 6e 20 74 68 65 20 54 41 42 2e .property.if.one.was.on.the.TAB.
8840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 69 73 70 6c 61 79 20 28 67 65 ..............(let.((display.(ge
8860 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 6d 61 74 63 68 2d 70 6f 73 20 27 64 69 73 70 6c t-text-property.match-pos.'displ
8880 61 79 20 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 ay.text))....................(ex
88a0 70 61 6e 64 65 64 2d 74 61 62 20 28 61 72 65 66 20 68 74 6d 6c 69 7a 65 2d 74 61 62 2d 73 70 61 panded-tab.(aref.htmlize-tab-spa
88c0 63 65 73 20 74 61 62 2d 73 69 7a 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ces.tab-size)))................(
88e0 77 68 65 6e 20 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 when.display..................(s
8900 65 74 71 20 65 78 70 61 6e 64 65 64 2d 74 61 62 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 etq.expanded-tab.(copy-sequence.
8920 65 78 70 61 6e 64 65 64 2d 74 61 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 expanded-tab))..................
8940 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 30 20 74 61 62 2d 73 69 7a 65 20 27 64 (put-text-property.0.tab-size.'d
8960 69 73 70 6c 61 79 20 64 69 73 70 6c 61 79 20 65 78 70 61 6e 64 65 64 2d 74 61 62 29 29 0a 20 20 isplay.display.expanded-tab))...
8980 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 65 78 70 61 6e 64 65 64 2d 74 61 62 20 .............(push.expanded-tab.
89a0 63 68 75 6e 6b 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 63 chunks))..............(cl-incf.c
89c0 6f 6c 75 6d 6e 20 74 61 62 2d 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 olumn.tab-size)..............(se
89e0 74 71 20 63 68 75 6e 6b 2d 73 74 61 72 74 20 28 31 2b 20 6d 61 74 63 68 2d 70 6f 73 29 29 29 0a tq.chunk-start.(1+.match-pos))).
8a00 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 3b 3b 20 52 ............(t..............;;.R
8a20 65 73 65 74 20 43 4f 4c 55 4d 4e 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 eset.COLUMN.at.beginning.of.line
8a40 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6c 75 6d 6e 20 30 29 29 29 ...............(setq.column.0)))
8a60 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 61 73 74 2d 6d 61 74 63 68 20 28 31 2b 20 6d 61 74 63 .......(setq.last-match.(1+.matc
8a80 68 2d 70 6f 73 29 29 29 0a 20 20 20 20 3b 3b 20 49 66 20 6e 6f 20 63 68 75 6e 6b 73 20 68 61 76 h-pos))).....;;.If.no.chunks.hav
8aa0 65 20 62 65 65 6e 20 61 6c 6c 6f 63 61 74 65 64 2c 20 69 74 20 6d 65 61 6e 73 20 74 68 65 72 65 e.been.allocated,.it.means.there
8ac0 20 68 61 76 65 20 62 65 65 6e 20 6e 6f 0a 20 20 20 20 3b 3b 20 74 61 62 73 20 74 6f 20 65 78 70 .have.been.no.....;;.tabs.to.exp
8ae0 61 6e 64 2e 20 20 52 65 74 75 72 6e 20 54 45 58 54 20 75 6e 6d 6f 64 69 66 69 65 64 2e 0a 20 20 and...Return.TEXT.unmodified....
8b00 20 20 28 69 66 20 28 6e 75 6c 6c 20 63 68 75 6e 6b 73 29 0a 20 20 20 20 20 20 20 20 74 65 78 74 ..(if.(null.chunks).........text
8b20 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 3c 20 63 68 75 6e 6b 2d 73 74 61 72 74 20 28 6c 65 6e .......(when.(<.chunk-start.(len
8b40 67 74 68 20 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 50 75 73 68 20 74 68 65 20 72 gth.text)).........;;.Push.the.r
8b60 65 6d 61 69 6e 69 6e 67 20 63 68 75 6e 6b 2e 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 73 emaining.chunk..........(push.(s
8b80 75 62 73 74 72 69 6e 67 20 74 65 78 74 20 63 68 75 6e 6b 2d 73 74 61 72 74 29 20 63 68 75 6e 6b ubstring.text.chunk-start).chunk
8ba0 73 29 29 0a 20 20 20 20 20 20 3b 3b 20 47 65 6e 65 72 61 74 65 20 74 68 65 20 6f 75 74 70 75 74 s)).......;;.Generate.the.output
8bc0 20 66 72 6f 6d 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 63 68 75 6e 6b 73 2e 0a 20 20 20 20 .from.the.available.chunks......
8be0 20 20 28 68 74 6d 6c 69 7a 65 2d 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 63 68 75 6e ..(htmlize-concat.(nreverse.chun
8c00 6b 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 65 78 74 72 61 63 74 2d ks)))))..(defun.htmlize-extract-
8c20 74 65 78 74 20 28 62 65 67 20 65 6e 64 20 74 72 61 69 6c 69 6e 67 2d 65 6c 6c 69 70 73 69 73 29 text.(beg.end.trailing-ellipsis)
8c40 0a 20 20 3b 3b 20 45 78 74 72 61 63 74 20 62 75 66 66 65 72 20 74 65 78 74 2c 20 73 61 6e 73 20 ...;;.Extract.buffer.text,.sans.
8c60 74 68 65 20 69 6e 76 69 73 69 62 6c 65 20 70 61 72 74 73 2e 20 20 54 68 65 6e 0a 20 20 3b 3b 20 the.invisible.parts...Then...;;.
8c80 75 6e 74 61 62 69 66 79 20 69 74 20 61 6e 64 20 65 73 63 61 70 65 20 74 68 65 20 48 54 4d 4c 20 untabify.it.and.escape.the.HTML.
8ca0 6d 65 74 61 63 68 61 72 61 63 74 65 72 73 2e 0a 20 20 28 6c 65 74 20 28 28 74 65 78 74 20 28 68 metacharacters....(let.((text.(h
8cc0 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 69 6e 76 69 73 tmlize-buffer-substring-no-invis
8ce0 69 62 6c 65 20 62 65 67 20 65 6e 64 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 72 61 69 6c 69 ible.beg.end))).....(when.traili
8d00 6e 67 2d 65 6c 6c 69 70 73 69 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 65 78 74 20 28 68 74 ng-ellipsis.......(setq.text.(ht
8d20 6d 6c 69 7a 65 2d 74 72 69 6d 2d 65 6c 6c 69 70 73 69 73 20 74 65 78 74 29 29 29 0a 20 20 20 20 mlize-trim-ellipsis.text))).....
8d40 3b 3b 20 49 66 20 54 45 58 54 20 65 6e 64 73 20 75 70 20 65 6d 70 74 79 2c 20 64 6f 6e 27 74 20 ;;.If.TEXT.ends.up.empty,.don't.
8d60 63 68 61 6e 67 65 20 74 72 61 69 6c 69 6e 67 2d 65 6c 6c 69 70 73 69 73 2e 0a 20 20 20 20 28 77 change.trailing-ellipsis......(w
8d80 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 74 65 78 74 29 20 30 29 0a 20 20 20 20 20 20 28 73 hen.(>.(length.text).0).......(s
8da0 65 74 71 20 74 72 61 69 6c 69 6e 67 2d 65 6c 6c 69 70 73 69 73 0a 20 20 20 20 20 20 20 20 20 20 etq.trailing-ellipsis...........
8dc0 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 31 2d 20 28 6c 65 6e 67 74 68 ..(get-text-property.(1-.(length
8de0 20 74 65 78 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 .text)).........................
8e00 20 20 20 20 20 20 20 27 68 74 6d 6c 69 7a 65 2d 65 6c 6c 69 70 73 69 73 20 74 65 78 74 29 29 29 .......'htmlize-ellipsis.text)))
8e20 0a 20 20 20 20 28 77 68 65 6e 20 68 74 6d 6c 69 7a 65 2d 75 6e 74 61 62 69 66 79 0a 20 20 20 20 .....(when.htmlize-untabify.....
8e40 20 20 28 73 65 74 71 20 74 65 78 74 20 28 68 74 6d 6c 69 7a 65 2d 75 6e 74 61 62 69 66 79 2d 73 ..(setq.text.(htmlize-untabify-s
8e60 74 72 69 6e 67 20 74 65 78 74 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 20 tring.text.(current-column))))..
8e80 20 20 20 28 73 65 74 71 20 74 65 78 74 20 28 68 74 6d 6c 69 7a 65 2d 73 74 72 69 6e 67 2d 74 6f ...(setq.text.(htmlize-string-to
8ea0 2d 68 74 6d 6c 20 74 65 78 74 29 29 0a 20 20 20 20 28 63 6c 2d 76 61 6c 75 65 73 20 74 65 78 74 -html.text)).....(cl-values.text
8ec0 20 74 72 61 69 6c 69 6e 67 2d 65 6c 6c 69 70 73 69 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 .trailing-ellipsis)))..(defun.ht
8ee0 6d 6c 69 7a 65 2d 64 65 73 70 61 6d 2d 61 64 64 72 65 73 73 20 28 73 74 72 69 6e 67 29 0a 20 20 mlize-despam-address.(string)...
8f00 22 52 65 70 6c 61 63 65 20 65 76 65 72 79 20 6f 63 63 75 72 72 65 6e 63 65 20 6f 66 20 27 40 27 "Replace.every.occurrence.of.'@'
8f20 20 69 6e 20 53 54 52 49 4e 47 20 77 69 74 68 20 25 34 30 2e 0a 54 68 69 73 20 69 73 20 75 73 65 .in.STRING.with.%40..This.is.use
8f40 64 20 74 6f 20 70 72 6f 74 65 63 74 20 6d 61 69 6c 74 6f 20 6c 69 6e 6b 73 20 77 69 74 68 6f 75 d.to.protect.mailto.links.withou
8f60 74 20 6d 6f 64 69 66 79 69 6e 67 20 74 68 65 69 72 20 6d 65 61 6e 69 6e 67 2e 22 0a 20 20 3b 3b t.modifying.their.meaning."...;;
8f80 20 53 75 67 67 65 73 74 65 64 20 62 79 20 56 69 6c 6c 65 20 53 6b 79 74 74 61 2e 0a 20 20 28 77 .Suggested.by.Ville.Skytta....(w
8fa0 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 40 22 20 73 74 72 69 6e 67 29 0a 20 hile.(string-match."@".string)..
8fc0 20 20 20 28 73 65 74 71 20 73 74 72 69 6e 67 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 ...(setq.string.(replace-match."
8fe0 25 34 30 22 20 6e 69 6c 20 74 20 73 74 72 69 6e 67 29 29 29 0a 20 20 73 74 72 69 6e 67 29 0a 0a %40".nil.t.string)))...string)..
9000 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 74 6d 70 2d 6f 76 65 72 6c 61 79 20 (defun.htmlize-make-tmp-overlay.
9020 28 62 65 67 20 65 6e 64 20 70 72 6f 70 73 29 0a 20 20 28 6c 65 74 20 28 28 6f 76 65 72 6c 61 79 (beg.end.props)...(let.((overlay
9040 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 65 6e 64 29 29 29 0a 20 20 20 20 28 6f .(make-overlay.beg.end))).....(o
9060 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 68 74 6d 6c 69 7a 65 2d 74 6d 70 2d verlay-put.overlay.'htmlize-tmp-
9080 6f 76 65 72 6c 61 79 20 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 70 72 6f 70 73 0a 20 20 20 20 overlay.t).....(while.props.....
90a0 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 28 70 6f 70 20 70 72 6f 70 ..(overlay-put.overlay.(pop.prop
90c0 73 29 20 28 70 6f 70 20 70 72 6f 70 73 29 29 29 0a 20 20 20 20 6f 76 65 72 6c 61 79 29 29 0a 0a s).(pop.props))).....overlay))..
90e0 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 64 65 6c 65 74 65 2d 74 6d 70 2d 6f 76 65 72 6c 61 (defun.htmlize-delete-tmp-overla
9100 79 73 20 28 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 65 72 6c 61 79 20 28 6f 76 65 72 6c 61 ys.()...(dolist.(overlay.(overla
9120 79 73 2d 69 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a ys-in.(point-min).(point-max))).
9140 20 20 20 20 28 77 68 65 6e 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 65 72 6c 61 79 20 27 ....(when.(overlay-get.overlay.'
9160 68 74 6d 6c 69 7a 65 2d 74 6d 70 2d 6f 76 65 72 6c 61 79 29 0a 20 20 20 20 20 20 28 64 65 6c 65 htmlize-tmp-overlay).......(dele
9180 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 65 72 6c 61 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 te-overlay.overlay))))..(defun.h
91a0 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 6c 69 6e 6b 2d 6f 76 65 72 6c 61 79 20 28 62 65 67 20 65 6e tmlize-make-link-overlay.(beg.en
91c0 64 20 75 72 69 29 0a 20 20 28 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 74 6d 70 2d 6f 76 65 72 6c d.uri)...(htmlize-make-tmp-overl
91e0 61 79 20 62 65 67 20 65 6e 64 20 60 28 68 74 6d 6c 69 7a 65 2d 6c 69 6e 6b 20 28 3a 75 72 69 20 ay.beg.end.`(htmlize-link.(:uri.
9200 2c 75 72 69 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 63 72 65 61 74 65 2d ,uri))))..(defun.htmlize-create-
9220 61 75 74 6f 2d 6c 69 6e 6b 73 20 28 29 0a 20 20 22 41 64 64 20 60 68 74 6d 6c 69 7a 65 2d 6c 69 auto-links.()..."Add.`htmlize-li
9240 6e 6b 27 20 70 72 6f 70 65 72 74 79 20 74 6f 20 61 6c 6c 20 6d 61 69 6c 74 6f 20 6c 69 6e 6b 73 nk'.property.to.all.mailto.links
9260 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 .in.the.buffer."...(save-excursi
9280 6f 6e 0a 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 on.....(goto-char.(point-min))..
92a0 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 ...(while.(re-search-forward....
92c0 20 20 20 20 20 20 20 20 20 22 3c 5c 5c 28 5c 5c 28 6d 61 69 6c 74 6f 3a 5c 5c 29 3f 5c 5c 28 5b ........."<\\(\\(mailto:\\)?\\([
92e0 2d 3d 2b 5f 2e 61 2d 7a 41 2d 5a 30 2d 39 5d 2b 40 5b 2d 5f 2e 61 2d 7a 41 2d 5a 30 2d 39 5d 2b -=+_.a-zA-Z0-9]+@[-_.a-zA-Z0-9]+
9300 5c 5c 29 5c 5c 29 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 \\)\\)>".............nil.t).....
9320 20 20 28 6c 65 74 2a 20 28 28 61 64 64 72 65 73 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 ..(let*.((address.(match-string.
9340 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 6d 61 74 63 68 2d 62 65 67 3))..............(beg.(match-beg
9360 69 6e 6e 69 6e 67 20 30 29 29 20 28 65 6e 64 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 inning.0)).(end.(match-end.0))..
9380 20 20 20 20 20 20 20 20 20 20 20 20 28 75 72 69 20 28 63 6f 6e 63 61 74 20 22 6d 61 69 6c 74 6f ............(uri.(concat."mailto
93a0 3a 22 20 28 68 74 6d 6c 69 7a 65 2d 64 65 73 70 61 6d 2d 61 64 64 72 65 73 73 20 61 64 64 72 65 :".(htmlize-despam-address.addre
93c0 73 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 6c 69 6e ss)))).........(htmlize-make-lin
93e0 6b 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 65 6e 64 20 75 72 69 29 29 29 0a 20 20 20 20 28 67 6f k-overlay.beg.end.uri))).....(go
9400 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 to-char.(point-min)).....(while.
9420 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 3c 5c 5c 28 5c 5c 28 55 52 4c 3a 5c (re-search-forward."<\\(\\(URL:\
9440 5c 29 3f 5c 5c 28 5b 61 2d 7a 41 2d 5a 5d 2b 3a 2f 2f 5b 5e 3b 5d 2b 5c 5c 29 5c 5c 29 3e 22 0a \)?\\([a-zA-Z]+://[^;]+\\)\\)>".
9460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 ..............................ni
9480 6c 20 74 29 0a 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 6c 69 6e 6b 2d 6f 76 l.t).......(htmlize-make-link-ov
94a0 65 72 6c 61 79 0a 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 erlay........(match-beginning.0)
94c0 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 29 29 .(match-end.0).(match-string.3))
94e0 29 29 29 0a 0a 3b 3b 20 54 65 73 74 73 20 66 6f 72 20 68 74 6d 6c 69 7a 65 2d 63 72 65 61 74 65 )))..;;.Tests.for.htmlize-create
9500 2d 61 75 74 6f 2d 6c 69 6e 6b 73 3a 0a 0a 3b 3b 20 3c 6d 61 69 6c 74 6f 3a 68 6e 69 6b 73 69 63 -auto-links:..;;.<mailto:hniksic
9520 40 78 65 6d 61 63 73 2e 6f 72 67 3e 0a 3b 3b 20 3c 68 74 74 70 3a 2f 2f 66 6c 79 2e 73 72 6b 2e @xemacs.org>.;;.<http://fly.srk.
9540 66 65 72 2e 68 72 3e 0a 3b 3b 20 3c 55 52 4c 3a 68 74 74 70 3a 2f 2f 77 77 77 2e 78 65 6d 61 63 fer.hr>.;;.<URL:http://www.xemac
9560 73 2e 6f 72 67 3e 0a 3b 3b 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 61 69 6c 2d 61 72 63 68 69 s.org>.;;.<http://www.mail-archi
9580 76 65 2e 63 6f 6d 2f 62 62 64 62 2d 69 6e 66 6f 40 78 65 6d 61 63 73 2e 6f 72 67 2f 3e 0a 3b 3b ve.com/bbdb-info@xemacs.org/>.;;
95a0 20 3c 68 6e 69 6b 73 69 63 40 78 65 6d 61 63 73 2e 6f 72 67 3e 0a 3b 3b 20 3c 78 61 6c 61 6e 2d .<hniksic@xemacs.org>.;;.<xalan-
95c0 64 65 76 2d 73 63 2e 31 30 31 34 38 35 36 37 33 31 39 2e 68 61 63 75 68 69 75 63 6b 6e 66 67 6d dev-sc.10148567319.hacuhiucknfgm
95e0 70 66 6e 6a 63 70 67 2d 6a 6f 68 6e 3d 64 6f 65 2e 63 6f 6d 40 78 6d 6c 2e 61 70 61 63 68 65 2e pfnjcpg-john=doe.com@xml.apache.
9600 6f 72 67 3e 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 73 68 61 64 6f 77 2d 66 6f 72 6d org>..(defun.htmlize-shadow-form
9620 2d 66 65 65 64 73 20 28 29 0a 20 20 28 6c 65 74 20 28 28 73 20 28 70 72 6f 70 65 72 74 69 7a 65 -feeds.()...(let.((s.(propertize
9640 20 22 5c 6e 3c 68 72 20 2f 3e 22 20 27 68 74 6d 6c 69 7a 65 2d 6c 69 74 65 72 61 6c 20 74 29 29 ."\n<hr./>".'htmlize-literal.t))
9660 29 0a 20 20 20 20 28 6c 65 74 20 28 28 64 69 73 70 20 60 28 64 69 73 70 6c 61 79 20 2c 73 29 29 ).....(let.((disp.`(display.,s))
9680 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 ).......(while.(re-search-forwar
96a0 64 20 22 5c 6e 5c 5e 4c 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 d."\n\^L".nil.t).........(let*.(
96c0 28 62 65 67 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 (beg.(match-beginning.0)).......
96e0 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 .........(end.(match-end.0))....
9700 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 2d 66 65 65 64 2d 70 6f 73 20 28 31 2b 20 62 ............(form-feed-pos.(1+.b
9720 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 70 72 6f eg))................;;.don't.pro
9740 63 65 73 73 20 5e 4c 20 69 66 20 69 6e 76 69 73 69 62 6c 65 20 6f 72 20 63 6f 76 65 72 65 64 20 cess.^L.if.invisible.or.covered.
9760 62 79 20 60 64 69 73 70 6c 61 79 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 6f by.`display'................(sho
9780 77 20 28 61 6e 64 20 28 68 74 6d 6c 69 7a 65 2d 64 65 63 6f 64 65 2d 69 6e 76 69 73 69 62 69 6c w.(and.(htmlize-decode-invisibil
97a0 69 74 79 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ity-spec........................
97c0 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 66 6f 72 6d 2d 66 65 65 64 ....(get-char-property.form-feed
97e0 2d 70 6f 73 20 27 69 6e 76 69 73 69 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -pos.'invisible))...............
9800 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 ............(not.(get-char-prope
9820 72 74 79 20 66 6f 72 6d 2d 66 65 65 64 2d 70 6f 73 20 27 64 69 73 70 6c 61 79 29 29 29 29 29 0a rty.form-feed-pos.'display))))).
9840 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 68 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 ..........(when.show............
9860 20 28 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 74 6d 70 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 65 .(htmlize-make-tmp-overlay.beg.e
9880 6e 64 20 64 69 73 70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 64 nd.disp)))))))..(defun.htmlize-d
98a0 65 66 61 6e 67 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 20 28 29 0a 20 20 3b 3b 20 4a 75 efang-local-variables.()...;;.Ju
98c0 72 69 20 4c 69 6e 6b 6f 76 20 72 65 70 6f 72 74 73 20 74 68 61 74 20 61 6e 20 48 54 4d 4c 2d 69 ri.Linkov.reports.that.an.HTML-i
98e0 7a 65 64 20 22 4c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 22 20 63 61 6e 20 6c 65 61 64 0a 20 zed."Local.variables".can.lead..
9900 20 3b 3b 20 76 69 73 69 74 69 6e 67 20 74 68 65 20 48 54 4d 4c 20 74 6f 20 66 61 69 6c 20 77 69 .;;.visiting.the.HTML.to.fail.wi
9920 74 68 20 22 4c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 6c 69 73 74 20 69 73 20 6e 6f 74 0a th."Local.variables.list.is.not.
9940 20 20 3b 3b 20 70 72 6f 70 65 72 6c 79 20 74 65 72 6d 69 6e 61 74 65 64 22 2e 20 20 48 65 20 73 ..;;.properly.terminated"...He.s
9960 75 67 67 65 73 74 65 64 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 70 68 72 61 73 65 20 74 6f 0a uggested.changing.the.phrase.to.
9980 20 20 3b 3b 20 73 79 6e 74 61 63 74 69 63 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 48 54 ..;;.syntactically.equivalent.HT
99a0 4d 4c 20 74 68 61 74 20 45 6d 61 63 73 20 64 6f 65 73 6e 27 74 20 72 65 63 6f 67 6e 69 7a 65 2e ML.that.Emacs.doesn't.recognize.
99c0 0a 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 28 77 68 ...(goto-char.(point-min))...(wh
99e0 69 6c 65 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 4c 6f 63 61 6c 20 56 61 72 69 61 ile.(search-forward."Local.Varia
9a00 62 6c 65 73 3a 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 bles:".nil.t).....(replace-match
9a20 20 22 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 26 23 35 38 3b 22 20 6e 69 6c 20 74 29 29 29 ."Local.Variables&#58;".nil.t)))
9a40 0a 0a 0c 0a 3b 3b 3b 20 43 6f 6c 6f 72 20 68 61 6e 64 6c 69 6e 67 2e 0a 0a 28 64 65 66 76 61 72 ....;;;.Color.handling...(defvar
9a60 20 68 74 6d 6c 69 7a 65 2d 78 2d 6c 69 62 72 61 72 79 2d 73 65 61 72 63 68 2d 70 61 74 68 0a 20 .htmlize-x-library-search-path..
9a80 20 60 28 2c 64 61 74 61 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 22 2f 65 74 63 2f 58 31 31 .`(,data-directory....."/etc/X11
9aa0 2f 72 67 62 2e 74 78 74 22 0a 20 20 20 20 22 2f 75 73 72 2f 73 68 61 72 65 2f 58 31 31 2f 72 67 /rgb.txt"....."/usr/share/X11/rg
9ac0 62 2e 74 78 74 22 0a 20 20 20 20 3b 3b 20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 74 b.txt".....;;.the.remainder.of.t
9ae0 68 69 73 20 6c 69 73 74 20 72 65 61 6c 6c 79 20 62 65 6c 6f 6e 67 73 20 69 6e 20 61 20 6d 75 73 his.list.really.belongs.in.a.mus
9b00 65 75 6d 0a 20 20 20 20 22 2f 75 73 72 2f 58 31 31 52 36 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 eum....."/usr/X11R6/lib/X11/"...
9b20 20 20 22 2f 75 73 72 2f 58 31 31 52 35 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 .."/usr/X11R5/lib/X11/"....."/us
9b40 72 2f 6c 69 62 2f 58 31 31 52 36 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 6c 69 62 2f r/lib/X11R6/X11/"....."/usr/lib/
9b60 58 31 31 52 35 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 6c 6f 63 61 6c 2f 58 31 31 52 X11R5/X11/"....."/usr/local/X11R
9b80 36 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 6c 6f 63 61 6c 2f 58 31 31 52 6/lib/X11/"....."/usr/local/X11R
9ba0 35 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 6c 6f 63 61 6c 2f 6c 69 62 2f 5/lib/X11/"....."/usr/local/lib/
9bc0 58 31 31 52 36 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 6c 6f 63 61 6c 2f 6c 69 62 2f X11R6/X11/"....."/usr/local/lib/
9be0 58 31 31 52 35 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 58 31 31 2f 6c 69 62 2f 58 31 X11R5/X11/"....."/usr/X11/lib/X1
9c00 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 1/"....."/usr/lib/X11/"....."/us
9c20 72 2f 6c 6f 63 61 6c 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 58 33 38 36 r/local/lib/X11/"....."/usr/X386
9c40 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 78 33 38 36 2f 6c 69 62 2f 58 31 /lib/X11/"....."/usr/x386/lib/X1
9c60 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 2f 58 46 72 65 65 38 36 2f 6c 69 62 2f 58 31 31 2f 22 0a 1/"....."/usr/XFree86/lib/X11/".
9c80 20 20 20 20 22 2f 75 73 72 2f 75 6e 73 75 70 70 6f 72 74 65 64 2f 6c 69 62 2f 58 31 31 2f 22 0a ...."/usr/unsupported/lib/X11/".
9ca0 20 20 20 20 22 2f 75 73 72 2f 61 74 68 65 6e 61 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 ...."/usr/athena/lib/X11/"....."
9cc0 2f 75 73 72 2f 6c 6f 63 61 6c 2f 78 31 31 72 35 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 /usr/local/x11r5/lib/X11/"....."
9ce0 2f 75 73 72 2f 6c 70 70 2f 58 61 6d 70 6c 65 73 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 /usr/lpp/Xamples/lib/X11/"....."
9d00 2f 75 73 72 2f 6f 70 65 6e 77 69 6e 2f 6c 69 62 2f 58 31 31 2f 22 0a 20 20 20 20 22 2f 75 73 72 /usr/openwin/lib/X11/"....."/usr
9d20 2f 6f 70 65 6e 77 69 6e 2f 73 68 61 72 65 2f 6c 69 62 2f 58 31 31 2f 22 29 29 0a 0a 28 64 65 66 /openwin/share/lib/X11/"))..(def
9d40 75 6e 20 68 74 6d 6c 69 7a 65 2d 67 65 74 2d 63 6f 6c 6f 72 2d 72 67 62 2d 68 61 73 68 20 28 26 un.htmlize-get-color-rgb-hash.(&
9d60 6f 70 74 69 6f 6e 61 6c 20 72 67 62 2d 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 68 optional.rgb-file)..."Return.a.h
9d80 61 73 68 20 74 61 62 6c 65 20 6d 61 70 70 69 6e 67 20 58 20 63 6f 6c 6f 72 20 6e 61 6d 65 73 20 ash.table.mapping.X.color.names.
9da0 74 6f 20 52 47 42 20 76 61 6c 75 65 73 2e 0a 54 68 65 20 6b 65 79 73 20 69 6e 20 74 68 65 20 68 to.RGB.values..The.keys.in.the.h
9dc0 61 73 68 20 74 61 62 6c 65 20 61 72 65 20 58 31 31 20 63 6f 6c 6f 72 20 6e 61 6d 65 73 2c 20 61 ash.table.are.X11.color.names,.a
9de0 6e 64 20 74 68 65 20 76 61 6c 75 65 73 20 61 72 65 20 74 68 65 0a 23 72 72 67 67 62 62 20 52 47 nd.the.values.are.the.#rrggbb.RG
9e00 42 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 2c 20 65 78 74 72 61 63 74 65 64 20 66 72 6f 6d B.specifications,.extracted.from
9e20 20 60 72 67 62 2e 74 78 74 27 2e 0a 0a 49 66 20 52 47 42 2d 46 49 4c 45 20 69 73 20 6e 69 6c 2c .`rgb.txt'...If.RGB-FILE.is.nil,
9e40 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 74 72 79 20 68 61 72 64 20 74 6f 20 66 .the.function.will.try.hard.to.f
9e60 69 6e 64 20 61 20 73 75 69 74 61 62 6c 65 20 66 69 6c 65 0a 69 6e 20 74 68 65 20 73 79 73 74 65 ind.a.suitable.file.in.the.syste
9e80 6d 20 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 0a 49 66 20 6e 6f 20 72 67 62 2e 74 78 74 20 66 69 m.directories...If.no.rgb.txt.fi
9ea0 6c 65 20 69 73 20 66 6f 75 6e 64 2c 20 72 65 74 75 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 le.is.found,.return.nil."...(let
9ec0 20 28 28 72 67 62 2d 66 69 6c 65 20 28 6f 72 20 72 67 62 2d 66 69 6c 65 20 28 6c 6f 63 61 74 65 .((rgb-file.(or.rgb-file.(locate
9ee0 2d 66 69 6c 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 -file...........................
9f00 20 20 20 20 20 20 22 72 67 62 2e 74 78 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"rgb.txt".................
9f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 6d 6c 69 7a 65 2d 78 2d 6c 69 62 72 61 72 ................htmlize-x-librar
9f40 79 2d 73 65 61 72 63 68 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 68 61 73 68 20 6e y-search-path))).........(hash.n
9f60 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 72 67 62 2d 66 69 6c 65 0a 20 20 20 20 20 20 28 77 il)).....(when.rgb-file.......(w
9f80 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d ith-temp-buffer.........(insert-
9fa0 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 72 67 62 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 file-contents.rgb-file).........
9fc0 28 73 65 74 71 20 68 61 73 68 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 (setq.hash.(make-hash-table.:tes
9fe0 74 20 27 65 71 75 61 6c 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 t.'equal)).........(while.(not.(
a000 65 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6c 6f 6f 6b 69 6e 67 eobp))...........(cond.((looking
a020 2d 61 74 20 22 5e 5c 5c 73 2d 2a 5c 5c 28 5b 21 23 5d 5c 5c 7c 24 5c 5c 29 22 29 0a 20 20 20 20 -at."^\\s-*\\([!#]\\|$\\)").....
a040 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 6b 69 70 20 63 6f 6d 6d 65 6e 74 73 20 61 6e .............;;.Skip.comments.an
a060 64 20 65 6d 70 74 79 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.empty.lines...................
a080 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 ).................((looking-at..
a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5b 20 5c 74 5d 2a 5c 5c 28 5b 30 2d 39 5d ................."[.\t]*\\([0-9]
a0c0 2b 5c 5c 29 5b 20 5c 74 5d 2b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 5b 20 5c 74 5d 2b 5c 5c 28 5b +\\)[.\t]+\\([0-9]+\\)[.\t]+\\([
a0e0 30 2d 39 5d 2b 5c 5c 29 5b 20 5c 74 5d 2b 5c 5c 28 2e 2a 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 0-9]+\\)[.\t]+\\(.*\\)")........
a100 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 67 65 74 68 61 73 68 20 28 64 6f 77 6e 63 61 ..........(setf.(gethash.(downca
a120 73 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 34 29 29 20 68 61 73 68 29 0a 20 20 20 20 20 se.(match-string.4)).hash)......
a140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 23 25 30 32 78 ..................(format."#%02x
a160 25 30 32 78 25 30 32 78 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 %02x%02x".......................
a180 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 .........(string-to-number.(matc
a1a0 68 2d 73 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h-string.1))....................
a1c0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d ............(string-to-number.(m
a1e0 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch-string.2)).................
a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 ...............(string-to-number
a220 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(match-string.3)))))...........
a240 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 28 65 72 72 6f 72 ......(t..................(error
a260 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 55 6e 72 65 63 6f 67 6e 69 7a 65 64 ..................."Unrecognized
a280 20 6c 69 6e 65 20 69 6e 20 25 73 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .line.in.%s:.%s"................
a2a0 20 20 20 72 67 62 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 ...rgb-file...................(b
a2c0 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 70 72 6f 67 6e 20 28 uffer-substring.(point).(progn.(
a2e0 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 20 20 20 20 20 20 end-of-line).(point)))))).......
a300 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 0a 20 20 20 20 68 61 73 68 ....(forward-line.1)))).....hash
a320 29 29 0a 0a 3b 3b 20 43 6f 6d 70 69 6c 65 20 74 68 65 20 52 47 42 20 6d 61 70 20 77 68 65 6e 20 ))..;;.Compile.the.RGB.map.when.
a340 6c 6f 61 64 65 64 2e 20 20 4f 6e 20 73 79 73 74 65 6d 73 20 77 68 65 72 65 20 72 67 62 2e 74 78 loaded...On.systems.where.rgb.tx
a360 74 20 69 73 0a 3b 3b 20 6d 69 73 73 69 6e 67 2c 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 t.is.;;.missing,.the.value.of.th
a380 65 20 76 61 72 69 61 62 6c 65 20 77 69 6c 6c 20 62 65 20 6e 69 6c 2c 20 61 6e 64 20 72 67 62 2e e.variable.will.be.nil,.and.rgb.
a3a0 74 78 74 20 77 69 6c 6c 0a 3b 3b 20 6e 6f 74 20 62 65 20 75 73 65 64 2e 0a 28 64 65 66 76 61 72 txt.will.;;.not.be.used..(defvar
a3c0 20 68 74 6d 6c 69 7a 65 2d 63 6f 6c 6f 72 2d 72 67 62 2d 68 61 73 68 20 28 68 74 6d 6c 69 7a 65 .htmlize-color-rgb-hash.(htmlize
a3e0 2d 67 65 74 2d 63 6f 6c 6f 72 2d 72 67 62 2d 68 61 73 68 29 29 0a 0c 0a 3b 3b 3b 20 46 61 63 65 -get-color-rgb-hash))...;;;.Face
a400 20 68 61 6e 64 6c 69 6e 67 2e 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d .handling...(defun.htmlize-face-
a420 63 6f 6c 6f 72 2d 69 6e 74 65 72 6e 61 6c 20 28 66 61 63 65 20 66 67 29 0a 20 20 3b 3b 20 55 73 color-internal.(face.fg)...;;.Us
a440 65 64 20 6f 6e 6c 79 20 75 6e 64 65 72 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 52 65 74 75 72 6e ed.only.under.GNU.Emacs...Return
a460 20 74 68 65 20 63 6f 6c 6f 72 20 6f 66 20 46 41 43 45 2c 20 62 75 74 20 64 6f 6e 27 74 0a 20 20 .the.color.of.FACE,.but.don't...
a480 3b 3b 20 72 65 74 75 72 6e 20 22 75 6e 73 70 65 63 69 66 69 65 64 2d 66 67 22 20 6f 72 20 22 75 ;;.return."unspecified-fg".or."u
a4a0 6e 73 70 65 63 69 66 69 65 64 2d 62 67 22 2e 20 20 49 66 20 74 68 65 20 66 61 63 65 20 69 73 0a nspecified-bg"...If.the.face.is.
a4c0 20 20 3b 3b 20 60 64 65 66 61 75 6c 74 27 20 61 6e 64 20 74 68 65 20 63 6f 6c 6f 72 20 69 73 20 ..;;.`default'.and.the.color.is.
a4e0 75 6e 73 70 65 63 69 66 69 65 64 2c 20 6c 6f 6f 6b 20 75 70 20 74 68 65 20 63 6f 6c 6f 72 20 69 unspecified,.look.up.the.color.i
a500 6e 0a 20 20 3b 3b 20 66 72 61 6d 65 20 70 61 72 61 6d 65 74 65 72 73 2e 0a 20 20 28 6c 65 74 2a n...;;.frame.parameters....(let*
a520 20 28 28 66 75 6e 63 74 69 6f 6e 20 28 69 66 20 66 67 20 23 27 66 61 63 65 2d 66 6f 72 65 67 72 .((function.(if.fg.#'face-foregr
a540 6f 75 6e 64 20 23 27 66 61 63 65 2d 62 61 63 6b 67 72 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 ound.#'face-background))........
a560 20 20 28 63 6f 6c 6f 72 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 20 66 61 63 65 20 ..(color.(funcall.function.face.
a580 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 20 66 61 63 65 nil.t))).....(when.(and.(eq.face
a5a0 20 27 64 65 66 61 75 6c 74 29 20 28 6e 75 6c 6c 20 63 6f 6c 6f 72 29 29 0a 20 20 20 20 20 20 28 .'default).(null.color)).......(
a5c0 73 65 74 71 20 63 6f 6c 6f 72 20 28 63 64 72 20 28 61 73 73 71 20 28 69 66 20 66 67 20 27 66 6f setq.color.(cdr.(assq.(if.fg.'fo
a5e0 72 65 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 20 27 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 reground-color.'background-color
a600 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 )..............................(
a620 66 72 61 6d 65 2d 70 61 72 61 6d 65 74 65 72 73 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 frame-parameters))))).....(when.
a640 28 6f 72 20 28 65 71 20 63 6f 6c 6f 72 20 27 75 6e 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 (or.(eq.color.'unspecified).....
a660 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 63 6f 6c 6f 72 20 22 75 6e 73 70 65 63 69 66 ..........(equal.color."unspecif
a680 69 65 64 2d 66 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 63 6f ied-fg")...............(equal.co
a6a0 6c 6f 72 20 22 75 6e 73 70 65 63 69 66 69 65 64 2d 62 67 22 29 29 0a 20 20 20 20 20 20 28 73 65 lor."unspecified-bg")).......(se
a6c0 74 71 20 63 6f 6c 6f 72 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 tq.color.nil)).....(when.(and.(e
a6e0 71 20 66 61 63 65 20 27 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 q.face.'default)................
a700 28 6e 75 6c 6c 20 63 6f 6c 6f 72 29 29 0a 20 20 20 20 20 20 3b 3b 20 41 73 73 75 6d 69 6e 67 20 (null.color)).......;;.Assuming.
a720 62 6c 61 63 6b 20 6f 6e 20 77 68 69 74 65 20 64 6f 65 73 6e 27 74 20 73 65 65 6d 20 72 69 67 68 black.on.white.doesn't.seem.righ
a740 74 2c 20 62 75 74 20 49 20 63 61 6e 27 74 20 74 68 69 6e 6b 0a 20 20 20 20 20 20 3b 3b 20 6f 66 t,.but.I.can't.think.......;;.of
a760 20 61 6e 79 74 68 69 6e 67 20 62 65 74 74 65 72 20 74 6f 20 64 6f 2e 0a 20 20 20 20 20 20 28 73 .anything.better.to.do........(s
a780 65 74 71 20 63 6f 6c 6f 72 20 28 69 66 20 66 67 20 22 62 6c 61 63 6b 22 20 22 77 68 69 74 65 22 etq.color.(if.fg."black"."white"
a7a0 29 29 29 0a 20 20 20 20 63 6f 6c 6f 72 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d ))).....color))..(defun.htmlize-
a7c0 66 61 63 65 2d 66 6f 72 65 67 72 6f 75 6e 64 20 28 66 61 63 65 29 0a 20 20 3b 3b 20 52 65 74 75 face-foreground.(face)...;;.Retu
a7e0 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f rn.the.name.of.the.foreground.co
a800 6c 6f 72 20 6f 66 20 46 41 43 45 2e 20 20 49 66 20 46 41 43 45 20 64 6f 65 73 0a 20 20 3b 3b 20 lor.of.FACE...If.FACE.does...;;.
a820 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 2c 20 not.specify.a.foreground.color,.
a840 72 65 74 75 72 6e 20 6e 69 6c 2e 0a 20 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 63 6f 6c 6f return.nil....(htmlize-face-colo
a860 72 2d 69 6e 74 65 72 6e 61 6c 20 66 61 63 65 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c r-internal.face.t))..(defun.html
a880 69 7a 65 2d 66 61 63 65 2d 62 61 63 6b 67 72 6f 75 6e 64 20 28 66 61 63 65 29 0a 20 20 3b 3b 20 ize-face-background.(face)...;;.
a8a0 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e Return.the.name.of.the.backgroun
a8c0 64 20 63 6f 6c 6f 72 20 6f 66 20 46 41 43 45 2e 20 20 49 66 20 46 41 43 45 20 64 6f 65 73 0a 20 d.color.of.FACE...If.FACE.does..
a8e0 20 3b 3b 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c .;;.not.specify.a.background.col
a900 6f 72 2c 20 72 65 74 75 72 6e 20 6e 69 6c 2e 0a 20 20 3b 3b 20 47 4e 55 20 45 6d 61 63 73 2e 0a or,.return.nil....;;.GNU.Emacs..
a920 20 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 63 6f 6c 6f 72 2d 69 6e 74 65 72 6e 61 6c 20 66 ..(htmlize-face-color-internal.f
a940 61 63 65 20 6e 69 6c 29 29 0a 0a 3b 3b 20 43 6f 6e 76 65 72 74 20 43 4f 4c 4f 52 20 74 6f 20 74 ace.nil))..;;.Convert.COLOR.to.t
a960 68 65 20 23 52 52 47 47 42 42 20 73 74 72 69 6e 67 2e 20 20 49 66 20 43 4f 4c 4f 52 20 69 73 20 he.#RRGGBB.string...If.COLOR.is.
a980 61 6c 72 65 61 64 79 20 69 6e 20 74 68 61 74 0a 3b 3b 20 66 6f 72 6d 61 74 2c 20 69 74 27 73 20 already.in.that.;;.format,.it's.
a9a0 6c 65 66 74 20 75 6e 63 68 61 6e 67 65 64 2e 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d left.unchanged...(defun.htmlize-
a9c0 63 6f 6c 6f 72 2d 74 6f 2d 72 67 62 20 28 63 6f 6c 6f 72 29 0a 20 20 28 6c 65 74 20 28 28 72 67 color-to-rgb.(color)...(let.((rg
a9e0 62 2d 73 74 72 69 6e 67 20 6e 69 6c 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 b-string.nil)).....(cond.((null.
aa00 63 6f 6c 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 67 6e 6f 72 65 20 6e 69 6c 20 color)............;;.Ignore.nil.
aa20 43 4f 4c 4f 52 20 62 65 63 61 75 73 65 20 69 74 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 COLOR.because.it.means.that.the.
aa40 66 61 63 65 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 70 65 63 69 66 face.is.not............;;.specif
aa60 79 69 6e 67 20 61 6e 79 20 63 6f 6c 6f 72 2e 20 20 48 65 6e 63 65 20 28 68 74 6d 6c 69 7a 65 2d ying.any.color...Hence.(htmlize-
aa80 63 6f 6c 6f 72 2d 74 6f 2d 72 67 62 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 color-to-rgb.nil)............;;.
aaa0 72 65 74 75 72 6e 73 20 6e 69 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 returns.nil.............).......
aac0 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 60 23 22 20 63 6f 6c 6f 72 29 ....((string-match."\\`#".color)
aae0 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 63 6f 6c 6f 72 20 69 73 20 61 6c 72 65 ............;;.The.color.is.alre
ab00 61 64 79 20 69 6e 20 23 72 72 67 67 62 62 20 66 6f 72 6d 61 74 2e 0a 20 20 20 20 20 20 20 20 20 ady.in.#rrggbb.format...........
ab20 20 20 28 73 65 74 71 20 72 67 62 2d 73 74 72 69 6e 67 20 63 6f 6c 6f 72 29 29 0a 20 20 20 20 20 ..(setq.rgb-string.color))......
ab40 20 20 20 20 20 28 28 61 6e 64 20 68 74 6d 6c 69 7a 65 2d 75 73 65 2d 72 67 62 2d 74 78 74 0a 20 .....((and.htmlize-use-rgb-txt..
ab60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 6d 6c 69 7a 65 2d 63 6f 6c 6f 72 2d 72 67 62 ...............htmlize-color-rgb
ab80 2d 68 61 73 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 73 65 20 6f 66 20 72 67 62 2e -hash)............;;.Use.of.rgb.
aba0 74 78 74 20 69 73 20 72 65 71 75 65 73 74 65 64 2c 20 61 6e 64 20 69 74 27 73 20 61 76 61 69 6c txt.is.requested,.and.it's.avail
abc0 61 62 6c 65 20 6f 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 79 73 74 65 6d able.on.the............;;.system
abe0 2e 20 20 55 73 65 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 67 62 2d ...Use.it.............(setq.rgb-
ac00 73 74 72 69 6e 67 20 28 67 65 74 68 61 73 68 20 28 64 6f 77 6e 63 61 73 65 20 63 6f 6c 6f 72 29 string.(gethash.(downcase.color)
ac20 20 68 74 6d 6c 69 7a 65 2d 63 6f 6c 6f 72 2d 72 67 62 2d 68 61 73 68 29 29 29 0a 20 20 20 20 20 .htmlize-color-rgb-hash)))......
ac40 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 27 72 65 20 67 65 74 74 .....(t............;;.We're.gett
ac60 69 6e 67 20 74 68 65 20 52 47 42 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 66 72 6f 6d 20 45 6d 61 63 ing.the.RGB.components.from.Emac
ac80 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 67 62 20 28 6d 61 70 63 61 72 s.............(let.((rgb.(mapcar
aca0 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(lambda.(arg)..................
acc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 20 61 72 67 20 32 35 36 29 29 0a 20 20 20 20 ...............(/.arg.256)).....
ace0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6c 6f 72 ..........................(color
ad00 2d 76 61 6c 75 65 73 20 63 6f 6c 6f 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -values.color))))..............(
ad20 77 68 65 6e 20 72 67 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 67 when.rgb................(setq.rg
ad40 62 2d 73 74 72 69 6e 67 20 28 61 70 70 6c 79 20 23 27 66 6f 72 6d 61 74 20 22 23 25 30 32 78 25 b-string.(apply.#'format."#%02x%
ad60 30 32 78 25 30 32 78 22 20 72 67 62 29 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 49 66 20 52 47 42 02x%02x".rgb)))))).....;;.If.RGB
ad80 2d 53 54 52 49 4e 47 20 69 73 20 73 74 69 6c 6c 20 6e 69 6c 2c 20 69 74 20 6d 65 61 6e 73 20 74 -STRING.is.still.nil,.it.means.t
ada0 68 65 20 63 6f 6c 6f 72 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2c 0a 20 20 20 20 3b 3b he.color.cannot.be.found,.....;;
adc0 20 66 6f 72 20 77 68 61 74 65 76 65 72 20 72 65 61 73 6f 6e 2e 20 20 49 6e 20 74 68 61 74 20 63 .for.whatever.reason...In.that.c
ade0 61 73 65 20 6a 75 73 74 20 70 75 6e 74 20 61 6e 64 20 72 65 74 75 72 6e 20 43 4f 4c 4f 52 2e 0a ase.just.punt.and.return.COLOR..
ae00 20 20 20 20 3b 3b 20 4d 6f 73 74 20 62 72 6f 77 73 65 72 73 20 73 75 70 70 6f 72 74 20 61 20 64 ....;;.Most.browsers.support.a.d
ae20 65 63 65 6e 74 20 73 65 74 20 6f 66 20 63 6f 6c 6f 72 20 6e 61 6d 65 73 20 61 6e 79 77 61 79 2e ecent.set.of.color.names.anyway.
ae40 0a 20 20 20 20 28 6f 72 20 72 67 62 2d 73 74 72 69 6e 67 20 63 6f 6c 6f 72 29 29 29 0a 0a 3b 3b .....(or.rgb-string.color)))..;;
ae60 20 57 65 20 73 74 6f 72 65 20 74 68 65 20 66 61 63 65 20 70 72 6f 70 65 72 74 69 65 73 20 77 65 .We.store.the.face.properties.we
ae80 20 63 61 72 65 20 61 62 6f 75 74 20 69 6e 74 6f 20 61 6e 0a 3b 3b 20 60 68 74 6d 6c 69 7a 65 2d .care.about.into.an.;;.`htmlize-
aea0 66 73 74 72 75 63 74 27 20 74 79 70 65 2e 20 20 54 68 61 74 20 77 61 79 20 77 65 20 6f 6e 6c 79 fstruct'.type...That.way.we.only
aec0 20 68 61 76 65 20 74 6f 20 61 6e 61 6c 79 7a 65 20 66 61 63 65 0a 3b 3b 20 70 72 6f 70 65 72 74 .have.to.analyze.face.;;.propert
aee0 69 65 73 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 74 69 6d 65 20 63 6f 6e 73 75 6d 69 6e 67 ies,.which.can.be.time.consuming
af00 2c 20 6f 6e 63 65 20 70 65 72 20 65 61 63 68 20 66 61 63 65 2e 20 20 54 68 65 0a 3b 3b 20 6d 61 ,.once.per.each.face...The.;;.ma
af20 70 70 69 6e 67 20 62 65 74 77 65 65 6e 20 45 6d 61 63 73 20 66 61 63 65 73 20 61 6e 64 20 68 74 pping.between.Emacs.faces.and.ht
af40 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 73 20 69 73 20 65 73 74 61 62 6c 69 73 68 65 64 20 62 79 mlize-fstructs.is.established.by
af60 0a 3b 3b 20 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 66 61 63 65 2d 6d 61 70 2e 20 20 54 68 65 20 .;;.htmlize-make-face-map...The.
af80 6e 61 6d 65 20 22 66 73 74 72 75 63 74 22 20 72 65 66 65 72 73 20 74 6f 20 76 61 72 69 61 62 6c name."fstruct".refers.to.variabl
afa0 65 73 20 6f 66 0a 3b 3b 20 74 79 70 65 20 60 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 27 2c es.of.;;.type.`htmlize-fstruct',
afc0 20 77 68 69 6c 65 20 74 68 65 20 74 65 72 6d 20 22 66 61 63 65 22 20 69 73 20 72 65 73 65 72 76 .while.the.term."face".is.reserv
afe0 65 64 20 66 6f 72 20 45 6d 61 63 73 0a 3b 3b 20 66 61 63 65 73 2e 0a 0a 28 63 6c 2d 64 65 66 73 ed.for.Emacs.;;.faces...(cl-defs
b000 74 72 75 63 74 20 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 0a 20 20 66 6f 72 65 67 72 6f 75 truct.htmlize-fstruct...foregrou
b020 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 nd............................;.
b040 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 2c 20 23 72 72 67 67 62 62 0a 20 20 62 61 63 6b foreground.color,.#rrggbb...back
b060 67 72 6f 75 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ground..........................
b080 20 20 3b 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 2c 20 23 72 72 67 67 62 62 0a 20 20 ..;.background.color,.#rrggbb...
b0a0 73 69 7a 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 size............................
b0c0 20 20 20 20 20 20 3b 20 73 69 7a 65 0a 20 20 62 6f 6c 64 70 20 20 20 20 20 20 20 20 20 20 20 20 ......;.size...boldp............
b0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 77 .............................;.w
b100 68 65 74 68 65 72 20 66 61 63 65 20 69 73 20 62 6f 6c 64 0a 20 20 69 74 61 6c 69 63 70 20 20 20 hether.face.is.bold...italicp...
b120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 77 68 ............................;.wh
b140 65 74 68 65 72 20 66 61 63 65 20 69 73 20 69 74 61 6c 69 63 0a 20 20 75 6e 64 65 72 6c 69 6e 65 ether.face.is.italic...underline
b160 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 77 p............................;.w
b180 68 65 74 68 65 72 20 66 61 63 65 20 69 73 20 75 6e 64 65 72 6c 69 6e 65 64 0a 20 20 6f 76 65 72 hether.face.is.underlined...over
b1a0 6c 69 6e 65 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 linep...........................
b1c0 20 20 3b 20 77 68 65 74 68 65 72 20 66 61 63 65 20 69 73 20 6f 76 65 72 6c 69 6e 65 64 0a 20 20 ..;.whether.face.is.overlined...
b1e0 73 74 72 69 6b 65 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 strikep.........................
b200 20 20 20 20 20 20 3b 20 77 68 65 74 68 65 72 20 66 61 63 65 20 69 73 20 73 74 72 75 63 6b 20 74 ......;.whether.face.is.struck.t
b220 68 72 6f 75 67 68 0a 20 20 63 73 73 2d 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hrough...css-name...............
b240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 43 53 53 20 6e 61 6d 65 20 6f 66 20 66 61 63 ...............;.CSS.name.of.fac
b260 65 0a 20 20 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 73 65 74 2d 66 e...)..(defun.htmlize-face-set-f
b280 72 6f 6d 2d 6b 65 79 77 6f 72 64 2d 61 74 74 72 20 28 66 73 74 72 75 63 74 20 61 74 74 72 20 76 rom-keyword-attr.(fstruct.attr.v
b2a0 61 6c 75 65 29 0a 20 20 3b 3b 20 46 6f 72 20 41 54 54 52 20 61 6e 64 20 56 41 4c 55 45 2c 20 73 alue)...;;.For.ATTR.and.VALUE,.s
b2c0 65 74 20 74 68 65 20 65 71 75 69 76 61 6c 65 6e 74 20 76 61 6c 75 65 20 69 6e 20 46 53 54 52 55 et.the.equivalent.value.in.FSTRU
b2e0 43 54 2e 0a 20 20 28 63 6c 2d 63 61 73 65 20 61 74 74 72 0a 20 20 20 20 28 3a 66 6f 72 65 67 72 CT....(cl-case.attr.....(:foregr
b300 6f 75 6e 64 0a 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 ound......(setf.(htmlize-fstruct
b320 2d 66 6f 72 65 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 20 28 68 74 6d 6c 69 7a 65 2d 63 6f -foreground.fstruct).(htmlize-co
b340 6c 6f 72 2d 74 6f 2d 72 67 62 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 28 3a 62 61 63 6b 67 72 lor-to-rgb.value))).....(:backgr
b360 6f 75 6e 64 0a 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 ound......(setf.(htmlize-fstruct
b380 2d 62 61 63 6b 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 20 28 68 74 6d 6c 69 7a 65 2d 63 6f -background.fstruct).(htmlize-co
b3a0 6c 6f 72 2d 74 6f 2d 72 67 62 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 28 3a 68 65 69 67 68 74 lor-to-rgb.value))).....(:height
b3c0 0a 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 73 69 7a ......(setf.(htmlize-fstruct-siz
b3e0 65 20 66 73 74 72 75 63 74 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 3a 77 65 69 67 68 74 0a e.fstruct).value)).....(:weight.
b400 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 28 73 79 6d 62 6f 6c .....(when.(string-match.(symbol
b420 2d 6e 61 6d 65 20 76 61 6c 75 65 29 20 22 62 6f 6c 64 22 29 0a 20 20 20 20 20 20 20 28 73 65 74 -name.value)."bold")........(set
b440 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 62 6f 6c 64 70 20 66 73 74 72 75 63 74 f.(htmlize-fstruct-boldp.fstruct
b460 29 20 74 29 29 29 0a 20 20 20 20 28 3a 73 6c 61 6e 74 0a 20 20 20 20 20 28 73 65 74 66 20 28 68 ).t))).....(:slant......(setf.(h
b480 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 69 74 61 6c 69 63 70 20 66 73 74 72 75 63 74 29 20 tmlize-fstruct-italicp.fstruct).
b4a0 28 6f 72 20 28 65 71 20 76 61 6c 75 65 20 27 69 74 61 6c 69 63 29 0a 20 20 20 20 20 20 20 20 20 (or.(eq.value.'italic)..........
b4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
b4e0 20 20 20 20 20 20 20 20 28 65 71 20 76 61 6c 75 65 20 27 6f 62 6c 69 71 75 65 29 29 29 29 0a 20 ........(eq.value.'oblique))))..
b500 20 20 20 28 3a 62 6f 6c 64 0a 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 ...(:bold......(setf.(htmlize-fs
b520 74 72 75 63 74 2d 62 6f 6c 64 70 20 66 73 74 72 75 63 74 29 20 76 61 6c 75 65 29 29 0a 20 20 20 truct-boldp.fstruct).value))....
b540 20 28 3a 69 74 61 6c 69 63 0a 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 .(:italic......(setf.(htmlize-fs
b560 74 72 75 63 74 2d 69 74 61 6c 69 63 70 20 66 73 74 72 75 63 74 29 20 76 61 6c 75 65 29 29 0a 20 truct-italicp.fstruct).value))..
b580 20 20 20 28 3a 75 6e 64 65 72 6c 69 6e 65 0a 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 ...(:underline......(setf.(htmli
b5a0 7a 65 2d 66 73 74 72 75 63 74 2d 75 6e 64 65 72 6c 69 6e 65 70 20 66 73 74 72 75 63 74 29 20 76 ze-fstruct-underlinep.fstruct).v
b5c0 61 6c 75 65 29 29 0a 20 20 20 20 28 3a 6f 76 65 72 6c 69 6e 65 0a 20 20 20 20 20 28 73 65 74 66 alue)).....(:overline......(setf
b5e0 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 6f 76 65 72 6c 69 6e 65 70 20 66 73 74 72 .(htmlize-fstruct-overlinep.fstr
b600 75 63 74 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 3a 73 74 72 69 6b 65 2d 74 68 72 6f 75 67 uct).value)).....(:strike-throug
b620 68 0a 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 73 74 h......(setf.(htmlize-fstruct-st
b640 72 69 6b 65 70 20 66 73 74 72 75 63 74 29 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e rikep.fstruct).value))))..(defun
b660 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 73 69 7a 65 20 28 66 61 63 65 29 0a 20 20 3b 3b 20 54 .htmlize-face-size.(face)...;;.T
b680 68 65 20 73 69 7a 65 20 28 68 65 69 67 68 74 29 20 6f 66 20 46 41 43 45 2c 20 74 61 6b 69 6e 67 he.size.(height).of.FACE,.taking
b6a0 20 69 6e 68 65 72 69 74 61 6e 63 65 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 2e 0a 20 20 3b 3b 20 .inheritance.into.account....;;.
b6c0 4f 6e 6c 79 20 77 6f 72 6b 73 20 69 6e 20 45 6d 61 63 73 20 32 31 20 61 6e 64 20 6c 61 74 65 72 Only.works.in.Emacs.21.and.later
b6e0 2e 0a 20 20 28 6c 65 74 2a 20 28 28 66 61 63 65 2d 6c 69 73 74 20 28 6c 69 73 74 20 66 61 63 65 ....(let*.((face-list.(list.face
b700 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 61 64 20 66 61 63 65 2d 6c 69 73 74 29 0a 20 20 20 ))..........(head.face-list)....
b720 20 20 20 20 20 20 28 74 61 69 6c 20 66 61 63 65 2d 6c 69 73 74 29 29 0a 20 20 20 20 28 77 68 69 ......(tail.face-list)).....(whi
b740 6c 65 20 68 65 61 64 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 65 72 69 74 20 28 66 61 le.head.......(let.((inherit.(fa
b760 63 65 2d 61 74 74 72 69 62 75 74 65 20 28 63 61 72 20 68 65 61 64 29 20 3a 69 6e 68 65 72 69 74 ce-attribute.(car.head).:inherit
b780 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6c 69 73 74 70 20 69 6e 68 65 72 69 ))).........(cond.((listp.inheri
b7a0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 74 61 69 6c 20 28 t)................(setcdr.tail.(
b7c0 63 6c 2d 63 6f 70 79 2d 6c 69 73 74 20 69 6e 68 65 72 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 cl-copy-list.inherit))..........
b7e0 20 20 20 20 20 20 28 73 65 74 71 20 74 61 69 6c 20 28 6c 61 73 74 20 74 61 69 6c 29 29 29 0a 20 ......(setq.tail.(last.tail)))..
b800 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 69 6e 68 65 72 69 74 20 27 75 6e 73 70 65 .............((eq.inherit.'unspe
b820 63 69 66 69 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 cified))...............(t.......
b840 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 74 61 69 6c 20 28 6c 69 73 74 20 69 6e 68 65 .........(setcdr.tail.(list.inhe
b860 72 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 69 6c 20 rit))................(setq.tail.
b880 28 63 64 72 20 74 61 69 6c 29 29 29 29 29 0a 20 20 20 20 20 20 28 70 6f 70 20 68 65 61 64 29 29 (cdr.tail))))).......(pop.head))
b8a0 0a 20 20 20 20 28 6c 65 74 20 28 28 73 69 7a 65 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 .....(let.((size-list...........
b8c0 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 66 20 69 6e 20 66 .(cl-loop.............for.f.in.f
b8e0 61 63 65 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 68 20 3d 20 28 61 6e ace-list.............for.h.=.(an
b900 64 20 28 66 61 63 65 70 20 66 29 20 28 66 61 63 65 2d 61 74 74 72 69 62 75 74 65 20 66 20 3a 68 d.(facep.f).(face-attribute.f.:h
b920 65 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 69 66 20 eight)).............collect.(if.
b940 28 65 71 20 68 20 27 75 6e 73 70 65 63 69 66 69 65 64 29 20 6e 69 6c 20 68 29 29 29 29 0a 20 20 (eq.h.'unspecified).nil.h))))...
b960 20 20 20 20 28 63 6c 2d 72 65 64 75 63 65 20 27 68 74 6d 6c 69 7a 65 2d 6d 65 72 67 65 2d 73 69 ....(cl-reduce.'htmlize-merge-si
b980 7a 65 20 28 63 6f 6e 73 20 6e 69 6c 20 73 69 7a 65 2d 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 ze.(cons.nil.size-list)))))..(de
b9a0 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 63 73 73 2d 6e 61 6d 65 20 28 66 61 63 65 29 fun.htmlize-face-css-name.(face)
b9c0 0a 20 20 3b 3b 20 47 65 6e 65 72 61 74 65 20 74 68 65 20 63 73 73 2d 6e 61 6d 65 20 70 72 6f 70 ...;;.Generate.the.css-name.prop
b9e0 65 72 74 79 20 66 6f 72 20 74 68 65 20 67 69 76 65 6e 20 66 61 63 65 2e 20 20 45 6d 61 63 73 20 erty.for.the.given.face...Emacs.
ba00 70 6c 61 63 65 73 0a 20 20 3b 3b 20 6e 6f 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 6f 6e 20 74 places...;;.no.restrictions.on.t
ba20 68 65 20 6e 61 6d 65 73 20 6f 66 20 73 79 6d 62 6f 6c 73 20 74 68 61 74 20 72 65 70 72 65 73 65 he.names.of.symbols.that.represe
ba40 6e 74 20 66 61 63 65 73 20 2d 2d 0a 20 20 3b 3b 20 61 6e 79 20 63 68 61 72 61 63 74 65 72 73 20 nt.faces.--...;;.any.characters.
ba60 6d 61 79 20 62 65 20 69 6e 20 74 68 65 20 6e 61 6d 65 2c 20 65 76 65 6e 20 63 6f 6e 74 72 6f 6c may.be.in.the.name,.even.control
ba80 20 63 68 61 72 73 2e 20 20 57 65 20 74 72 79 0a 20 20 3b 3b 20 68 61 72 64 20 74 6f 20 62 65 61 .chars...We.try...;;.hard.to.bea
baa0 74 20 74 68 65 20 66 61 63 65 20 6e 61 6d 65 20 69 6e 74 6f 20 73 68 61 70 65 2c 20 62 6f 74 68 t.the.face.name.into.shape,.both
bac0 20 65 73 74 68 65 74 69 63 61 6c 6c 79 20 61 6e 64 0a 20 20 3b 3b 20 61 63 63 6f 72 64 69 6e 67 .esthetically.and...;;.according
bae0 20 74 6f 20 43 53 53 31 20 73 70 65 63 73 2e 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 64 .to.CSS1.specs....(let.((name.(d
bb00 6f 77 6e 63 61 73 65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 66 61 63 65 29 29 29 29 0a 20 20 owncase.(symbol-name.face))))...
bb20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 60 66 6f 6e 74 2d 6c ..(when.(string-match."\\`font-l
bb40 6f 63 6b 2d 22 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 3b 3b 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 46 ock-".name).......;;.font-lock-F
bb60 4f 4f 2d 66 61 63 65 20 2d 3e 20 46 4f 4f 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 OO-face.->.FOO........(setq.name
bb80 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 20 74 20 6e 61 6d 65 29 29 29 0a 20 .(replace-match."".t.t.name)))..
bba0 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2d 66 61 63 65 5c 5c 27 ...(when.(string-match."-face\\'
bbc0 22 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 3b 3b 20 44 72 6f 70 20 74 68 65 20 72 65 64 75 6e 64 ".name).......;;.Drop.the.redund
bbe0 61 6e 74 20 22 2d 66 61 63 65 22 20 73 75 66 66 69 78 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 ant."-face".suffix........(setq.
bc00 6e 61 6d 65 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 20 74 20 6e 61 6d 65 29 name.(replace-match."".t.t.name)
bc20 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 5e 2d )).....(while.(string-match."[^-
bc40 61 2d 7a 41 2d 5a 30 2d 39 5d 22 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 3b 3b 20 44 72 6f 70 20 a-zA-Z0-9]".name).......;;.Drop.
bc60 74 68 65 20 6e 6f 6e 2d 61 6c 70 68 61 6e 75 6d 65 72 69 63 73 2e 0a 20 20 20 20 20 20 28 73 65 the.non-alphanumerics........(se
bc80 74 71 20 6e 61 6d 65 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 58 22 20 74 20 74 20 6e tq.name.(replace-match."X".t.t.n
bca0 61 6d 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 ame))).....(when.(string-match."
bcc0 5c 5c 60 5b 2d 30 2d 39 5d 22 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 3b 3b 20 43 53 53 20 69 64 \\`[-0-9]".name).......;;.CSS.id
bce0 65 6e 74 69 66 69 65 72 73 20 6d 61 79 20 6e 6f 74 20 73 74 61 72 74 20 77 69 74 68 20 61 20 64 entifiers.may.not.start.with.a.d
bd00 69 67 69 74 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 63 6f 6e 63 61 74 20 22 igit........(setq.name.(concat."
bd20 58 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 3b 3b 20 41 66 74 65 72 20 74 68 65 73 65 20 74 72 X".name))).....;;.After.these.tr
bd40 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 2c 20 74 68 65 20 66 61 63 65 20 63 6f 75 6c 64 20 63 6f ansformations,.the.face.could.co
bd60 6d 65 20 6f 75 74 20 65 6d 70 74 79 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 6e me.out.empty......(when.(equal.n
bd80 61 6d 65 20 22 22 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 22 66 61 63 65 22 29 ame."").......(setq.name."face")
bda0 29 0a 20 20 20 20 3b 3b 20 41 70 70 6c 79 20 74 68 65 20 70 72 65 66 69 78 2e 0a 20 20 20 20 28 ).....;;.Apply.the.prefix......(
bdc0 63 6f 6e 63 61 74 20 68 74 6d 6c 69 7a 65 2d 63 73 73 2d 6e 61 6d 65 2d 70 72 65 66 69 78 20 6e concat.htmlize-css-name-prefix.n
bde0 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 74 6f 2d 66 ame)))..(defun.htmlize-face-to-f
be00 73 74 72 75 63 74 2d 31 20 28 66 61 63 65 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 45 6d 61 63 73 struct-1.(face)..."Convert.Emacs
be20 20 66 61 63 65 20 46 41 43 45 20 74 6f 20 66 73 74 72 75 63 74 2c 20 69 6e 74 65 72 6e 61 6c 2e .face.FACE.to.fstruct,.internal.
be40 22 0a 20 20 28 6c 65 74 20 28 28 66 73 74 72 75 63 74 20 28 6d 61 6b 65 2d 68 74 6d 6c 69 7a 65 "...(let.((fstruct.(make-htmlize
be60 2d 66 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 65 -fstruct...................:fore
be80 67 72 6f 75 6e 64 20 28 68 74 6d 6c 69 7a 65 2d 63 6f 6c 6f 72 2d 74 6f 2d 72 67 62 0a 20 20 20 ground.(htmlize-color-to-rgb....
bea0 20 20 20 20 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 74 6d ............................(htm
bec0 6c 69 7a 65 2d 66 61 63 65 2d 66 6f 72 65 67 72 6f 75 6e 64 20 66 61 63 65 29 29 0a 20 20 20 20 lize-face-foreground.face)).....
bee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 28 68 74 6d 6c 69 ..............:background.(htmli
bf00 7a 65 2d 63 6f 6c 6f 72 2d 74 6f 2d 72 67 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ze-color-to-rgb.................
bf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 62 61 63 ...............(htmlize-face-bac
bf40 6b 67 72 6f 75 6e 64 20 66 61 63 65 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 47 4e 55 20 45 6d 61 kground.face))))).....;;.GNU.Ema
bf60 63 73 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 61 74 74 72 20 27 28 3a 77 65 69 67 68 74 20 3a cs.....(dolist.(attr.'(:weight.:
bf80 73 6c 61 6e 74 20 3a 75 6e 64 65 72 6c 69 6e 65 20 3a 6f 76 65 72 6c 69 6e 65 20 3a 73 74 72 69 slant.:underline.:overline.:stri
bfa0 6b 65 2d 74 68 72 6f 75 67 68 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 ke-through)).......(let.((value.
bfc0 28 66 61 63 65 2d 61 74 74 72 69 62 75 74 65 20 66 61 63 65 20 61 74 74 72 20 6e 69 6c 20 74 29 (face-attribute.face.attr.nil.t)
bfe0 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 76 61 6c 75 65 20 28 6e 6f 74 )).........(when.(and.value.(not
c000 20 28 65 71 20 76 61 6c 75 65 20 27 75 6e 73 70 65 63 69 66 69 65 64 29 29 29 0a 20 20 20 20 20 .(eq.value.'unspecified)))......
c020 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 73 65 74 2d 66 72 6f 6d 2d 6b 65 79 77 .....(htmlize-face-set-from-keyw
c040 6f 72 64 2d 61 74 74 72 20 66 73 74 72 75 63 74 20 61 74 74 72 20 76 61 6c 75 65 29 29 29 29 0a ord-attr.fstruct.attr.value)))).
c060 20 20 20 20 28 6c 65 74 20 28 28 73 69 7a 65 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 73 69 ....(let.((size.(htmlize-face-si
c080 7a 65 20 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 6c 20 73 69 ze.face))).......(unless.(eql.si
c0a0 7a 65 20 31 2e 30 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 67 6e 6f 72 65 20 6e 6f 6e 2d ze.1.0)............;.ignore.non-
c0c0 73 70 65 63 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 spec.........(setf.(htmlize-fstr
c0e0 75 63 74 2d 73 69 7a 65 20 66 73 74 72 75 63 74 29 20 73 69 7a 65 29 29 29 0a 20 20 20 20 28 73 uct-size.fstruct).size))).....(s
c100 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 63 73 73 2d 6e 61 6d 65 20 66 73 etf.(htmlize-fstruct-css-name.fs
c120 74 72 75 63 74 29 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 63 73 73 2d 6e 61 6d 65 20 66 61 truct).(htmlize-face-css-name.fa
c140 63 65 29 29 0a 20 20 20 20 66 73 74 72 75 63 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 ce)).....fstruct))..(defun.htmli
c160 7a 65 2d 66 61 63 65 2d 74 6f 2d 66 73 74 72 75 63 74 20 28 66 61 63 65 29 0a 20 20 28 6c 65 74 ze-face-to-fstruct.(face)...(let
c180 2a 20 28 28 66 61 63 65 2d 6c 69 73 74 20 28 6f 72 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 *.((face-list.(or.(and.(symbolp.
c1a0 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 20 20 face)...........................
c1c0 20 20 20 28 63 64 72 20 28 61 73 73 71 20 66 61 63 65 20 66 61 63 65 2d 72 65 6d 61 70 70 69 6e ...(cdr.(assq.face.face-remappin
c1e0 67 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g-alist)))......................
c200 20 20 20 28 6c 69 73 74 20 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 73 74 72 75 ...(list.face)))..........(fstru
c220 63 74 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 72 67 65 2d 66 61 63 65 73 0a 20 20 20 20 20 20 20 20 ct.(htmlize-merge-faces.........
c240 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 61 63 65 ...........(mapcar.(lambda.(face
c260 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 )..............................(
c280 69 66 20 28 73 79 6d 62 6f 6c 70 20 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 if.(symbolp.face)...............
c2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 68 74 6d 6c 69 7a 65 2d ...................(or.(htmlize-
c2c0 67 65 74 2d 6f 76 65 72 72 69 64 65 2d 66 73 74 72 75 63 74 20 66 61 63 65 29 0a 20 20 20 20 20 get-override-fstruct.face)......
c2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c300 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 74 6f 2d 66 73 74 72 75 63 74 2d 31 20 66 61 63 65 29 (htmlize-face-to-fstruct-1.face)
c320 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
c340 20 28 68 74 6d 6c 69 7a 65 2d 61 74 74 72 6c 69 73 74 2d 74 6f 2d 66 73 74 72 75 63 74 20 66 61 .(htmlize-attrlist-to-fstruct.fa
c360 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ce)))...........................
c380 20 28 6e 72 65 76 65 72 73 65 20 66 61 63 65 2d 6c 69 73 74 29 29 29 29 29 0a 20 20 20 20 28 77 .(nreverse.face-list))))).....(w
c3a0 68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 66 61 63 65 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 hen.(symbolp.face).......(setf.(
c3c0 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 63 73 73 2d 6e 61 6d 65 20 66 73 74 72 75 63 74 htmlize-fstruct-css-name.fstruct
c3e0 29 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 63 73 73 2d 6e 61 6d 65 20 66 61 63 65 29 29 29 ).(htmlize-face-css-name.face)))
c400 0a 20 20 20 20 66 73 74 72 75 63 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 68 74 6d 6c 69 7a .....fstruct))..(defmacro.htmliz
c420 65 2d 63 6f 70 79 2d 61 74 74 72 2d 69 66 2d 73 65 74 20 28 61 74 74 72 2d 6c 69 73 74 20 64 65 e-copy-attr-if-set.(attr-list.de
c440 73 74 20 73 6f 75 72 63 65 29 0a 20 20 3b 3b 20 47 65 6e 65 72 61 74 65 20 63 6f 64 65 20 77 69 st.source)...;;.Generate.code.wi
c460 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 74 74 65 72 6e 3a 0a 20 20 3b 3b 20 28 th.the.following.pattern:...;;.(
c480 70 72 6f 67 6e 0a 20 20 3b 3b 20 20 20 28 77 68 65 6e 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 progn...;;...(when.(htmlize-fstr
c4a0 75 63 74 2d 41 54 54 52 20 73 6f 75 72 63 65 29 0a 20 20 3b 3b 20 20 20 20 20 28 73 65 74 66 20 uct-ATTR.source)...;;.....(setf.
c4c0 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 41 54 54 52 20 64 65 73 74 29 20 28 68 74 6d (htmlize-fstruct-ATTR.dest).(htm
c4e0 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 41 54 54 52 20 73 6f 75 72 63 65 29 29 29 0a 20 20 3b 3b lize-fstruct-ATTR.source)))...;;
c500 20 20 20 2e 2e 2e 29 0a 20 20 3b 3b 20 66 6f 72 20 74 68 65 20 67 69 76 65 6e 20 6c 69 73 74 20 ......)...;;.for.the.given.list.
c520 6f 66 20 62 6f 6f 6c 65 61 6e 20 61 74 74 72 69 62 75 74 65 73 2e 0a 20 20 28 63 6f 6e 73 20 27 of.boolean.attributes....(cons.'
c540 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 61 74 74 72 20 progn.........(cl-loop.for.attr.
c560 69 6e 20 61 74 74 72 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f in.attr-list..................fo
c580 72 20 61 74 74 72 2d 73 79 6d 20 3d 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 68 74 r.attr-sym.=.(intern.(format."ht
c5a0 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 25 73 22 20 61 74 74 72 29 29 0a 20 20 20 20 20 20 20 mlize-fstruct-%s".attr))........
c5c0 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 60 28 77 68 65 6e 20 28 2c 61 74 74 72 2d ..........collect.`(when.(,attr-
c5e0 73 79 6d 20 2c 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sym.,source)....................
c600 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 2c 61 74 74 72 2d 73 79 6d 20 2c 64 65 73 74 29 .........(setf.(,attr-sym.,dest)
c620 20 28 2c 61 74 74 72 2d 73 79 6d 20 2c 73 6f 75 72 63 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 .(,attr-sym.,source))))))..(defu
c640 6e 20 68 74 6d 6c 69 7a 65 2d 6d 65 72 67 65 2d 73 69 7a 65 20 28 6d 65 72 67 65 64 20 6e 65 78 n.htmlize-merge-size.(merged.nex
c660 74 29 0a 20 20 3b 3b 20 43 61 6c 63 75 6c 61 74 65 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 t)...;;.Calculate.the.size.of.th
c680 65 20 6d 65 72 67 65 20 6f 66 20 4d 45 52 47 45 44 20 61 6e 64 20 4e 45 58 54 2e 0a 20 20 28 63 e.merge.of.MERGED.and.NEXT....(c
c6a0 6f 6e 64 20 28 28 6e 75 6c 6c 20 6d 65 72 67 65 64 29 20 20 20 20 20 6e 65 78 74 29 0a 20 20 20 ond.((null.merged).....next)....
c6c0 20 20 20 20 20 28 28 69 6e 74 65 67 65 72 70 20 6e 65 78 74 29 20 20 20 6e 65 78 74 29 0a 20 20 .....((integerp.next)...next)...
c6e0 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 6e 65 78 74 29 20 20 20 20 20 20 20 6d 65 72 67 65 64 29 ......((null.next).......merged)
c700 0a 20 20 20 20 20 20 20 20 28 28 66 6c 6f 61 74 70 20 6d 65 72 67 65 64 29 20 20 20 28 2a 20 6d .........((floatp.merged)...(*.m
c720 65 72 67 65 64 20 6e 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 28 28 69 6e 74 65 67 65 72 70 20 erged.next)).........((integerp.
c740 6d 65 72 67 65 64 29 20 28 72 6f 75 6e 64 20 28 2a 20 6d 65 72 67 65 64 20 6e 65 78 74 29 29 29 merged).(round.(*.merged.next)))
c760 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6d 65 72 67 65 2d 74 77 6f 2d 66 61 63 ))..(defun.htmlize-merge-two-fac
c780 65 73 20 28 6d 65 72 67 65 64 20 6e 65 78 74 29 0a 20 20 28 68 74 6d 6c 69 7a 65 2d 63 6f 70 79 es.(merged.next)...(htmlize-copy
c7a0 2d 61 74 74 72 2d 69 66 2d 73 65 74 0a 20 20 20 28 66 6f 72 65 67 72 6f 75 6e 64 20 62 61 63 6b -attr-if-set....(foreground.back
c7c0 67 72 6f 75 6e 64 20 62 6f 6c 64 70 20 69 74 61 6c 69 63 70 20 75 6e 64 65 72 6c 69 6e 65 70 20 ground.boldp.italicp.underlinep.
c7e0 6f 76 65 72 6c 69 6e 65 70 20 73 74 72 69 6b 65 70 29 0a 20 20 20 6d 65 72 67 65 64 20 6e 65 78 overlinep.strikep)....merged.nex
c800 74 29 0a 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 73 69 7a 65 t)...(setf.(htmlize-fstruct-size
c820 20 6d 65 72 67 65 64 29 0a 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 72 67 65 2d .merged).........(htmlize-merge-
c840 73 69 7a 65 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 73 69 7a 65 20 6d 65 72 67 65 size.(htmlize-fstruct-size.merge
c860 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 d).............................(
c880 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 73 69 7a 65 20 6e 65 78 74 29 29 29 0a 20 20 6d htmlize-fstruct-size.next)))...m
c8a0 65 72 67 65 64 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6d 65 72 67 65 2d 66 61 63 erged)..(defun.htmlize-merge-fac
c8c0 65 73 20 28 66 73 74 72 75 63 74 2d 6c 69 73 74 29 0a 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c es.(fstruct-list)...(cond.((null
c8e0 20 66 73 74 72 75 63 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 6f 74 68 69 .fstruct-list)..........;;.Nothi
c900 6e 67 20 74 6f 20 64 6f 2c 20 72 65 74 75 72 6e 20 61 20 64 75 6d 6d 79 20 66 61 63 65 2e 0a 20 ng.to.do,.return.a.dummy.face...
c920 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 29 29 0a ........(make-htmlize-fstruct)).
c940 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 28 63 64 72 20 66 73 74 72 75 63 74 2d 6c 69 73 74 ........((null.(cdr.fstruct-list
c960 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 70 74 69 6d 69 7a 65 20 66 6f 72 20 74 68 65 20 ))..........;;.Optimize.for.the.
c980 63 6f 6d 6d 6f 6e 20 63 61 73 65 20 6f 66 20 61 20 73 69 6e 67 6c 65 20 66 61 63 65 2c 20 73 69 common.case.of.a.single.face,.si
c9a0 6d 70 6c 79 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 74 75 72 6e 20 69 74 2e 0a 20 20 20 20 mply..........;;.return.it......
c9c0 20 20 20 20 20 28 63 61 72 20 66 73 74 72 75 63 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 .....(car.fstruct-list))........
c9e0 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 64 75 63 65 20 23 27 68 74 6d 6c 69 7a .(t..........(cl-reduce.#'htmliz
ca00 65 2d 6d 65 72 67 65 2d 74 77 6f 2d 66 61 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-merge-two-faces...............
ca20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6d 61 6b 65 2d 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 ......(cons.(make-htmlize-fstruc
ca40 74 29 20 66 73 74 72 75 63 74 2d 6c 69 73 74 29 29 29 29 29 0a 0a 3b 3b 20 47 4e 55 20 45 6d 61 t).fstruct-list)))))..;;.GNU.Ema
ca60 63 73 20 32 30 2b 20 73 75 70 70 6f 72 74 73 20 61 74 74 72 69 62 75 74 65 20 6c 69 73 74 73 20 cs.20+.supports.attribute.lists.
ca80 69 6e 20 60 66 61 63 65 27 20 70 72 6f 70 65 72 74 69 65 73 2e 20 20 46 6f 72 0a 3b 3b 20 65 78 in.`face'.properties...For.;;.ex
caa0 61 6d 70 6c 65 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 60 28 3a 66 6f 72 65 67 72 6f 75 6e 64 ample,.you.can.use.`(:foreground
cac0 20 22 72 65 64 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 27 20 61 73 20 61 6e 0a 3b 3b 20 6f ."red".:weight.bold)'.as.an.;;.o
cae0 76 65 72 6c 61 79 27 73 20 22 66 61 63 65 22 2c 20 6f 72 20 79 6f 75 20 63 61 6e 20 65 76 65 6e verlay's."face",.or.you.can.even
cb00 20 75 73 65 20 61 20 6c 69 73 74 20 6f 66 20 73 75 63 68 20 6c 69 73 74 73 2c 20 65 74 63 2e 0a .use.a.list.of.such.lists,.etc..
cb20 3b 3b 20 57 65 20 63 61 6c 6c 20 74 68 6f 73 65 20 22 61 74 74 72 6c 69 73 74 73 22 2e 0a 3b 3b ;;.We.call.those."attrlists"..;;
cb40 0a 3b 3b 20 68 74 6d 6c 69 7a 65 20 73 75 70 70 6f 72 74 73 20 61 74 74 72 6c 69 73 74 20 62 79 .;;.htmlize.supports.attrlist.by
cb60 20 63 6f 6e 76 65 72 74 69 6e 67 20 74 68 65 6d 20 74 6f 20 66 73 74 72 75 63 74 73 2c 20 74 68 .converting.them.to.fstructs,.th
cb80 65 20 73 61 6d 65 0a 3b 3b 20 61 73 20 77 69 74 68 20 72 65 67 75 6c 61 72 20 66 61 63 65 73 2e e.same.;;.as.with.regular.faces.
cba0 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 61 74 74 72 6c 69 73 74 2d 74 6f 2d 66 73 74 ..(defun.htmlize-attrlist-to-fst
cbc0 72 75 63 74 20 28 61 74 74 72 6c 69 73 74 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 61 6d 65 29 0a 20 ruct.(attrlist.&optional.name)..
cbe0 20 3b 3b 20 4c 69 6b 65 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 74 6f 2d 66 73 74 72 75 63 74 .;;.Like.htmlize-face-to-fstruct
cc00 2c 20 62 75 74 20 61 63 63 65 70 74 73 20 61 6e 20 41 54 54 52 4c 49 53 54 20 61 73 20 69 6e 70 ,.but.accepts.an.ATTRLIST.as.inp
cc20 75 74 2e 0a 20 20 28 6c 65 74 20 28 28 66 73 74 72 75 63 74 20 28 6d 61 6b 65 2d 68 74 6d 6c 69 ut....(let.((fstruct.(make-htmli
cc40 7a 65 2d 66 73 74 72 75 63 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 28 63 61 ze-fstruct))).....(cond.((eq.(ca
cc60 72 20 61 74 74 72 6c 69 73 74 29 20 27 66 6f 72 65 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 29 0a 20 r.attrlist).'foreground-color)..
cc80 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 54 54 52 4c 49 53 54 20 69 73 20 28 66 6f 72 65 67 72 ..........;;.ATTRLIST.is.(foregr
cca0 6f 75 6e 64 2d 63 6f 6c 6f 72 20 2e 20 43 4f 4c 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 ound-color...COLOR)............(
ccc0 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 66 6f 72 65 67 72 6f 75 6e 64 setf.(htmlize-fstruct-foreground
cce0 20 66 73 74 72 75 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c .fstruct)..................(html
cd00 69 7a 65 2d 63 6f 6c 6f 72 2d 74 6f 2d 72 67 62 20 28 63 64 72 20 61 74 74 72 6c 69 73 74 29 29 ize-color-to-rgb.(cdr.attrlist))
cd20 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 28 63 61 72 20 61 74 74 72 6c 69 73 74 29 ))...........((eq.(car.attrlist)
cd40 20 27 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b .'background-color)............;
cd60 3b 20 41 54 54 52 4c 49 53 54 20 69 73 20 28 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 20 ;.ATTRLIST.is.(background-color.
cd80 2e 20 43 4f 4c 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 ..COLOR)............(setf.(htmli
cda0 7a 65 2d 66 73 74 72 75 63 74 2d 62 61 63 6b 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 0a 20 ze-fstruct-background.fstruct)..
cdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 63 6f 6c 6f 72 2d 74 ................(htmlize-color-t
cde0 6f 2d 72 67 62 20 28 63 64 72 20 61 74 74 72 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 o-rgb.(cdr.attrlist)))).........
ce00 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 54 54 52 4c 49 53 54 20 69 73 20 61 ..(t............;;.ATTRLIST.is.a
ce20 20 70 6c 69 73 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 61 74 74 72 6c 69 .plist.............(while.attrli
ce40 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 74 74 72 20 28 70 6f 70 st..............(let.((attr.(pop
ce60 20 61 74 74 72 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .attrlist))....................(
ce80 76 61 6c 75 65 20 28 70 6f 70 20 61 74 74 72 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 value.(pop.attrlist)))..........
cea0 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 76 61 6c 75 65 20 28 6e 6f 74 20 28 65 71 20 ......(when.(and.value.(not.(eq.
cec0 76 61 6c 75 65 20 27 75 6e 73 70 65 63 69 66 69 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 value.'unspecified)))...........
cee0 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 73 65 74 2d 66 72 6f 6d 2d 6b 65 .......(htmlize-face-set-from-ke
cf00 79 77 6f 72 64 2d 61 74 74 72 20 66 73 74 72 75 63 74 20 61 74 74 72 20 76 61 6c 75 65 29 29 29 yword-attr.fstruct.attr.value)))
cf20 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 63 ))).....(setf.(htmlize-fstruct-c
cf40 73 73 2d 6e 61 6d 65 20 66 73 74 72 75 63 74 29 20 28 6f 72 20 6e 61 6d 65 20 22 63 75 73 74 6f ss-name.fstruct).(or.name."custo
cf60 6d 22 29 29 0a 20 20 20 20 66 73 74 72 75 63 74 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 m")).....fstruct))..(defun.htmli
cf80 7a 65 2d 64 65 63 6f 64 65 2d 66 61 63 65 2d 70 72 6f 70 20 28 70 72 6f 70 29 0a 20 20 22 54 75 ze-decode-face-prop.(prop)..."Tu
cfa0 72 6e 20 66 61 63 65 20 70 72 6f 70 65 72 74 79 20 50 52 4f 50 20 69 6e 74 6f 20 61 20 6c 69 73 rn.face.property.PROP.into.a.lis
cfc0 74 20 6f 66 20 66 61 63 65 2d 6c 69 6b 65 20 6f 62 6a 65 63 74 73 2e 22 0a 20 20 3b 3b 20 50 52 t.of.face-like.objects."...;;.PR
cfe0 4f 50 20 63 61 6e 20 62 65 20 61 20 73 79 6d 62 6f 6c 20 6e 61 6d 69 6e 67 20 61 20 66 61 63 65 OP.can.be.a.symbol.naming.a.face
d000 2c 20 61 20 73 74 72 69 6e 67 20 6e 61 6d 69 6e 67 20 73 75 63 68 20 61 0a 20 20 3b 3b 20 73 79 ,.a.string.naming.such.a...;;.sy
d020 6d 62 6f 6c 2c 20 61 20 63 6f 6e 73 20 28 66 6f 72 65 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 20 2e mbol,.a.cons.(foreground-color..
d040 20 43 4f 4c 4f 52 29 20 6f 72 20 28 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 0a 20 20 3b .COLOR).or.(background-color...;
d060 3b 20 43 4f 4c 4f 52 29 2c 20 61 20 70 72 6f 70 65 72 74 79 20 6c 69 73 74 20 28 3a 61 74 74 72 ;.COLOR),.a.property.list.(:attr
d080 31 20 76 61 6c 31 20 3a 61 74 74 72 32 20 76 61 6c 32 20 2e 2e 2e 29 2c 20 6f 72 20 61 20 6c 69 1.val1.:attr2.val2....),.or.a.li
d0a0 73 74 0a 20 20 3b 3b 20 6f 66 20 61 6e 79 20 6f 66 20 74 68 6f 73 65 2e 0a 20 20 3b 3b 0a 20 20 st...;;.of.any.of.those....;;...
d0c0 3b 3b 20 28 68 74 6d 6c 69 7a 65 2d 64 65 63 6f 64 65 2d 66 61 63 65 2d 70 72 6f 70 20 27 66 61 ;;.(htmlize-decode-face-prop.'fa
d0e0 63 65 29 20 2d 3e 20 28 66 61 63 65 29 0a 20 20 3b 3b 20 28 68 74 6d 6c 69 7a 65 2d 64 65 63 6f ce).->.(face)...;;.(htmlize-deco
d100 64 65 2d 66 61 63 65 2d 70 72 6f 70 20 27 28 66 61 63 65 31 20 66 61 63 65 32 29 29 20 2d 3e 20 de-face-prop.'(face1.face2)).->.
d120 28 66 61 63 65 31 20 66 61 63 65 32 29 0a 20 20 3b 3b 20 28 68 74 6d 6c 69 7a 65 2d 64 65 63 6f (face1.face2)...;;.(htmlize-deco
d140 64 65 2d 66 61 63 65 2d 70 72 6f 70 20 27 28 3a 61 74 74 72 20 22 76 61 6c 22 29 29 20 2d 3e 20 de-face-prop.'(:attr."val")).->.
d160 28 28 3a 61 74 74 72 20 22 76 61 6c 22 29 29 0a 20 20 3b 3b 20 28 68 74 6d 6c 69 7a 65 2d 64 65 ((:attr."val"))...;;.(htmlize-de
d180 63 6f 64 65 2d 66 61 63 65 2d 70 72 6f 70 20 27 28 28 3a 61 74 74 72 20 22 76 61 6c 22 29 20 66 code-face-prop.'((:attr."val").f
d1a0 61 63 65 20 28 66 6f 72 65 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 20 22 72 65 64 22 29 29 29 0a 20 ace.(foreground-color."red")))..
d1c0 20 3b 3b 20 20 20 2d 3e 20 28 28 3a 61 74 74 72 20 22 76 61 6c 22 29 20 66 61 63 65 20 28 66 6f .;;...->.((:attr."val").face.(fo
d1e0 72 65 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 20 22 72 65 64 22 29 29 0a 20 20 3b 3b 0a 20 20 3b 3b reground-color."red"))...;;...;;
d200 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 20 61 74 6f 6d 73 20 6f 72 20 6e 6f 6e 2d 66 61 63 65 20 .Unrecognized.atoms.or.non-face.
d220 73 79 6d 62 6f 6c 73 2f 73 74 72 69 6e 67 73 20 61 72 65 20 73 69 6c 65 6e 74 6c 79 0a 20 20 3b symbols/strings.are.silently...;
d240 3b 20 73 74 72 69 70 70 65 64 20 61 77 61 79 2e 0a 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 ;.stripped.away....(cond.((null.
d260 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 28 73 79 prop)..........nil).........((sy
d280 6d 62 6f 6c 70 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 66 61 63 65 70 mbolp.prop)..........(and.(facep
d2a0 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 70 72 6f 70 29 .prop)...............(list.prop)
d2c0 29 29 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 70 72 6f 70 29 0a 20 20 20 20 20 )).........((stringp.prop)......
d2e0 20 20 20 20 28 61 6e 64 20 28 66 61 63 65 70 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 70 72 6f ....(and.(facep.(intern-soft.pro
d300 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 70 72 6f 70 29 29 29 0a p))...............(list.prop))).
d320 20 20 20 20 20 20 20 20 28 28 61 74 6f 6d 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 6e 69 ........((atom.prop)..........ni
d340 6c 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 28 63 61 72 20 70 l).........((and.(symbolp.(car.p
d360 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 3f 3a 20 28 61 72 65 66 rop))...............(eq.?:.(aref
d380 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 70 72 6f 70 29 29 20 30 29 29 29 0a 20 .(symbol-name.(car.prop)).0)))..
d3a0 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 28 28 6f ........(list.prop)).........((o
d3c0 72 20 28 65 71 20 28 63 61 72 20 70 72 6f 70 29 20 27 66 6f 72 65 67 72 6f 75 6e 64 2d 63 6f 6c r.(eq.(car.prop).'foreground-col
d3e0 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 61 72 20 70 72 6f 70 29 20 or)..............(eq.(car.prop).
d400 27 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 'background-color))..........(li
d420 73 74 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 61 st.prop)).........(t..........(a
d440 70 70 6c 79 20 23 27 6e 63 6f 6e 63 20 28 6d 61 70 63 61 72 20 23 27 68 74 6d 6c 69 7a 65 2d 64 pply.#'nconc.(mapcar.#'htmlize-d
d460 65 63 6f 64 65 2d 66 61 63 65 2d 70 72 6f 70 20 70 72 6f 70 29 29 29 29 29 0a 0a 28 64 65 66 75 ecode-face-prop.prop)))))..(defu
d480 6e 20 68 74 6d 6c 69 7a 65 2d 67 65 74 2d 6f 76 65 72 72 69 64 65 2d 66 73 74 72 75 63 74 20 28 n.htmlize-get-override-fstruct.(
d4a0 66 61 63 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 72 61 77 2d 64 65 66 20 28 70 6c 69 73 74 2d 67 face)...(let*.((raw-def.(plist-g
d4c0 65 74 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 6f 76 65 72 72 69 64 65 73 20 66 61 63 65 29 29 et.htmlize-face-overrides.face))
d4e0 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 70 20 72 ..........(def.(cond.((stringp.r
d500 61 77 2d 64 65 66 29 20 28 6c 69 73 74 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 72 61 77 2d 64 65 aw-def).(list.:foreground.raw-de
d520 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 69 73 74 70 20 f)).....................((listp.
d540 72 61 77 2d 64 65 66 29 20 72 61 77 2d 64 65 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 raw-def).raw-def)...............
d560 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 20 20 20 20 28 65 ......(t......................(e
d580 72 72 6f 72 20 28 66 6f 72 6d 61 74 20 28 63 6f 6e 63 61 74 20 22 66 61 63 65 20 6f 76 65 72 72 rror.(format.(concat."face.overr
d5a0 69 64 65 20 6d 75 73 74 20 62 65 20 61 6e 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ide.must.be.an."................
d5c0 20 20 20 20 20 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 61 74 ............................."at
d5e0 74 72 69 62 75 74 65 20 6c 69 73 74 20 6f 72 20 73 74 72 69 6e 67 2c 20 67 6f 74 20 25 73 22 29 tribute.list.or.string,.got.%s")
d600 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d620 20 20 20 20 20 72 61 77 2d 64 65 66 29 29 29 29 29 29 0a 20 20 20 20 28 61 6e 64 20 64 65 66 0a .....raw-def)))))).....(and.def.
d640 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 61 74 74 72 6c 69 73 74 2d 74 6f 2d 66 73 .........(htmlize-attrlist-to-fs
d660 74 72 75 63 74 20 64 65 66 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 66 61 63 65 29 29 29 29 29 truct.def.(symbol-name.face)))))
d680 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 66 61 63 65 2d 6d 61 70 20 28 ..(defun.htmlize-make-face-map.(
d6a0 66 61 63 65 73 29 0a 20 20 3b 3b 20 52 65 74 75 72 6e 20 61 20 68 61 73 68 20 74 61 62 6c 65 20 faces)...;;.Return.a.hash.table.
d6c0 6d 61 70 70 69 6e 67 20 45 6d 61 63 73 20 66 61 63 65 73 20 74 6f 20 68 74 6d 6c 69 7a 65 27 73 mapping.Emacs.faces.to.htmlize's
d6e0 20 66 73 74 72 75 63 74 73 2e 0a 20 20 3b 3b 20 54 68 65 20 6b 65 79 73 20 61 72 65 20 65 69 74 .fstructs....;;.The.keys.are.eit
d700 68 65 72 20 66 61 63 65 20 73 79 6d 62 6f 6c 73 20 6f 72 20 61 74 74 72 6c 69 73 74 73 2c 20 73 her.face.symbols.or.attrlists,.s
d720 6f 20 74 68 65 20 74 65 73 74 0a 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 o.the.test...;;.function.must.be
d740 20 60 65 71 75 61 6c 27 2e 0a 20 20 28 6c 65 74 20 28 28 66 61 63 65 2d 6d 61 70 20 28 6d 61 6b .`equal'....(let.((face-map.(mak
d760 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 0a 20 20 20 20 e-hash-table.:test.'equal)).....
d780 20 20 20 20 63 73 73 2d 6e 61 6d 65 73 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 66 61 63 65 ....css-names).....(dolist.(face
d7a0 20 66 61 63 65 73 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 68 61 73 68 20 66 .faces).......(unless.(gethash.f
d7c0 61 63 65 20 66 61 63 65 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 76 65 6e 27 74 ace.face-map).........;;.Haven't
d7e0 20 73 65 65 6e 20 46 41 43 45 20 79 65 74 3b 20 63 6f 6e 76 65 72 74 20 69 74 20 74 6f 20 61 6e .seen.FACE.yet;.convert.it.to.an
d800 20 66 73 74 72 75 63 74 20 61 6e 64 20 63 61 63 68 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 74 .fstruct.and.cache.........;;.it
d820 2e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 73 74 72 75 63 74 20 28 68 74 6d 6c 69 7a ..........(let.((fstruct.(htmliz
d840 65 2d 66 61 63 65 2d 74 6f 2d 66 73 74 72 75 63 74 20 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 e-face-to-fstruct.face))).......
d860 20 20 20 20 28 73 65 74 66 20 28 67 65 74 68 61 73 68 20 66 61 63 65 20 66 61 63 65 2d 6d 61 70 ....(setf.(gethash.face.face-map
d880 29 20 66 73 74 72 75 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 73 73 ).fstruct)...........(let*.((css
d8a0 2d 6e 61 6d 65 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 63 73 73 2d 6e 61 6d 65 20 -name.(htmlize-fstruct-css-name.
d8c0 66 73 74 72 75 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d fstruct))..................(new-
d8e0 6e 61 6d 65 20 63 73 73 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name.css-name)..................
d900 28 69 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 6e 69 71 75 69 66 79 20 74 (i.0)).............;;.Uniquify.t
d920 68 65 20 66 61 63 65 27 73 20 63 73 73 2d 6e 61 6d 65 20 62 79 20 75 73 69 6e 67 20 4e 41 4d 45 he.face's.css-name.by.using.NAME
d940 2d 31 2c 20 4e 41 4d 45 2d 32 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 74 63 2e 0a -1,.NAME-2,.............;;.etc..
d960 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6d 65 6d 62 65 72 20 6e 65 77 2d 6e ............(while.(member.new-n
d980 61 6d 65 20 63 73 73 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 ame.css-names)...............(se
d9a0 74 71 20 6e 65 77 2d 6e 61 6d 65 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 73 22 20 63 73 73 2d tq.new-name.(format."%s-%s".css-
d9c0 6e 61 6d 65 20 28 63 6c 2d 69 6e 63 66 20 69 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 name.(cl-incf.i)))).............
d9e0 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 6e 65 77 2d 6e 61 6d 65 20 63 73 73 2d 6e 61 6d 65 (unless.(equal.new-name.css-name
da00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 68 74 6d 6c 69 7a 65 2d 66 )...............(setf.(htmlize-f
da20 73 74 72 75 63 74 2d 63 73 73 2d 6e 61 6d 65 20 66 73 74 72 75 63 74 29 20 6e 65 77 2d 6e 61 6d struct-css-name.fstruct).new-nam
da40 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 65 77 2d 6e 61 6d 65 20 63 e)).............(push.new-name.c
da60 73 73 2d 6e 61 6d 65 73 29 29 29 29 29 0a 20 20 20 20 66 61 63 65 2d 6d 61 70 29 29 0a 0a 28 64 ss-names))))).....face-map))..(d
da80 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 75 6e 73 74 72 69 6e 67 69 66 79 2d 66 61 63 65 20 28 66 efun.htmlize-unstringify-face.(f
daa0 61 63 65 29 0a 20 20 22 49 66 20 46 41 43 45 20 69 73 20 61 20 73 74 72 69 6e 67 2c 20 72 65 74 ace)..."If.FACE.is.a.string,.ret
dac0 75 72 6e 20 69 74 20 69 6e 74 65 72 6e 65 64 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 urn.it.interned,.otherwise.retur
dae0 6e 20 69 74 20 75 6e 63 68 61 6e 67 65 64 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 n.it.unchanged."...(if.(stringp.
db00 66 61 63 65 29 0a 20 20 20 20 20 20 28 69 6e 74 65 72 6e 20 66 61 63 65 29 0a 20 20 20 20 66 61 face).......(intern.face).....fa
db20 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 66 61 63 65 73 2d 69 6e 2d 62 75 ce))..(defun.htmlize-faces-in-bu
db40 66 66 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 66 61 63 65 ffer.()..."Return.a.list.of.face
db60 73 20 75 73 65 64 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 s.used.in.the.current.buffer..Th
db80 69 73 20 69 73 20 74 68 65 20 73 65 74 20 6f 66 20 66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 is.is.the.set.of.faces.specified
dba0 20 62 79 20 74 68 65 20 60 66 61 63 65 27 20 74 65 78 74 20 70 72 6f 70 65 72 74 79 20 61 6e 64 .by.the.`face'.text.property.and
dbc0 20 62 79 20 62 75 66 66 65 72 0a 6f 76 65 72 6c 61 79 73 20 74 68 61 74 20 73 70 65 63 69 66 79 .by.buffer.overlays.that.specify
dbe0 20 60 66 61 63 65 27 2e 22 0a 20 20 28 6c 65 74 20 28 66 61 63 65 73 29 0a 20 20 20 20 3b 3b 20 .`face'."...(let.(faces).....;;.
dc00 46 61 63 65 73 20 75 73 65 64 20 62 79 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 20 Faces.used.by.text.properties...
dc20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 20 66 61 63 65 2d ...(let.((pos.(point-min)).face-
dc40 70 72 6f 70 20 6e 65 78 74 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 70 6f 73 20 28 prop.next).......(while.(<.pos.(
dc60 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 61 63 65 2d 70 point-max)).........(setq.face-p
dc80 72 6f 70 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 70 6f 73 20 27 66 61 63 65 rop.(get-text-property.pos.'face
dca0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 20 28 6f 72 20 28 6e 65 78 74 2d 73 )...............next.(or.(next-s
dcc0 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 70 6f 73 20 27 66 61 63 65 29 ingle-property-change.pos.'face)
dce0 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 61 63 .(point-max))).........(setq.fac
dd00 65 73 20 28 63 6c 2d 6e 75 6e 69 6f 6e 20 28 68 74 6d 6c 69 7a 65 2d 64 65 63 6f 64 65 2d 66 61 es.(cl-nunion.(htmlize-decode-fa
dd20 63 65 2d 70 72 6f 70 20 66 61 63 65 2d 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ce-prop.face-prop)..............
dd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 65 73 20 3a 74 65 73 74 20 27 65 ..................faces.:test.'e
dd60 71 75 61 6c 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 6e 65 78 74 29 29 29 qual)).........(setq.pos.next)))
dd80 0a 20 20 20 20 3b 3b 20 46 61 63 65 73 20 75 73 65 64 20 62 79 20 6f 76 65 72 6c 61 79 73 2e 0a .....;;.Faces.used.by.overlays..
dda0 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 65 72 6c 61 79 20 28 6f 76 65 72 6c 61 79 73 2d 69 ....(dolist.(overlay.(overlays-i
ddc0 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 n.(point-min).(point-max))).....
dde0 20 20 28 6c 65 74 20 28 28 66 61 63 65 2d 70 72 6f 70 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 ..(let.((face-prop.(overlay-get.
de00 6f 76 65 72 6c 61 79 20 27 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 overlay.'face))).........(setq.f
de20 61 63 65 73 20 28 63 6c 2d 6e 75 6e 69 6f 6e 20 28 68 74 6d 6c 69 7a 65 2d 64 65 63 6f 64 65 2d aces.(cl-nunion.(htmlize-decode-
de40 66 61 63 65 2d 70 72 6f 70 20 66 61 63 65 2d 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 face-prop.face-prop)............
de60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 65 73 20 3a 74 65 73 74 20 ....................faces.:test.
de80 27 65 71 75 61 6c 29 29 29 29 0a 20 20 20 20 66 61 63 65 73 29 29 0a 0a 3b 3b 20 68 74 6d 6c 69 'equal)))).....faces))..;;.htmli
dea0 7a 65 2d 66 61 63 65 73 2d 61 74 2d 70 6f 69 6e 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 61 ze-faces-at-point.returns.the.fa
dec0 63 65 73 20 69 6e 20 75 73 65 20 61 74 20 70 6f 69 6e 74 2e 20 20 54 68 65 0a 3b 3b 20 66 61 63 ces.in.use.at.point...The.;;.fac
dee0 65 73 20 61 72 65 20 73 6f 72 74 65 64 20 62 79 20 69 6e 63 72 65 61 73 69 6e 67 20 70 72 69 6f es.are.sorted.by.increasing.prio
df00 72 69 74 79 2c 20 69 2e 65 2e 20 74 68 65 20 6c 61 73 74 20 66 61 63 65 20 74 61 6b 65 73 0a 3b rity,.i.e..the.last.face.takes.;
df20 3b 20 70 72 65 63 65 64 65 6e 63 65 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 72 65 74 75 72 6e 73 ;.precedence..;;.;;.This.returns
df40 20 61 6c 6c 20 74 68 65 20 66 61 63 65 73 20 69 6e 20 74 68 65 20 60 66 61 63 65 27 20 70 72 6f .all.the.faces.in.the.`face'.pro
df60 70 65 72 74 79 20 61 6e 64 20 61 6c 6c 20 74 68 65 20 66 61 63 65 73 0a 3b 3b 20 69 6e 20 74 68 perty.and.all.the.faces.;;.in.th
df80 65 20 6f 76 65 72 6c 61 79 73 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 28 64 65 66 75 6e 20 68 74 6d e.overlays.at.point...(defun.htm
dfa0 6c 69 7a 65 2d 66 61 63 65 73 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 28 6c 65 74 20 28 61 lize-faces-at-point.()...(let.(a
dfc0 6c 6c 2d 66 61 63 65 73 29 0a 20 20 20 20 3b 3b 20 46 61 63 65 73 20 66 72 6f 6d 20 74 65 78 74 ll-faces).....;;.Faces.from.text
dfe0 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 66 61 63 65 2d 70 72 6f .properties......(let.((face-pro
e000 70 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 66 61 p.(get-text-property.(point).'fa
e020 63 65 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 6e 65 65 64 20 74 6f 20 72 65 76 65 72 73 ce))).......;;.we.need.to.revers
e040 65 20 74 68 65 20 60 66 61 63 65 27 20 70 72 6f 70 20 62 65 63 61 75 73 65 20 77 65 20 77 61 6e e.the.`face'.prop.because.we.wan
e060 74 0a 20 20 20 20 20 20 3b 3b 20 6d 6f 72 65 20 73 70 65 63 69 66 69 63 20 66 61 63 65 73 20 74 t.......;;.more.specific.faces.t
e080 6f 20 63 6f 6d 65 20 6c 61 74 65 72 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 6c 6c 2d 66 61 63 o.come.later.......(setq.all-fac
e0a0 65 73 20 28 6e 72 65 76 65 72 73 65 20 28 68 74 6d 6c 69 7a 65 2d 64 65 63 6f 64 65 2d 66 61 63 es.(nreverse.(htmlize-decode-fac
e0c0 65 2d 70 72 6f 70 20 66 61 63 65 2d 70 72 6f 70 29 29 29 29 0a 20 20 20 20 3b 3b 20 46 61 63 65 e-prop.face-prop)))).....;;.Face
e0e0 73 20 66 72 6f 6d 20 6f 76 65 72 6c 61 79 73 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 6f 76 65 72 s.from.overlays......(let.((over
e100 6c 61 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 63 74 20 6f 76 65 72 6c lays............;;.Collect.overl
e120 61 79 73 20 61 74 20 70 6f 69 6e 74 20 74 68 61 74 20 73 70 65 63 69 66 79 20 60 66 61 63 65 27 ays.at.point.that.specify.`face'
e140 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 6c 65 74 65 2d 69 66 2d 6e 6f 74 20 28 .............(cl-delete-if-not.(
e160 6c 61 6d 62 64 61 20 28 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(o)......................
e180 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 20 27 66 61 63 65 29 29 ..........(overlay-get.o.'face))
e1a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e ..............................(n
e1c0 72 65 76 65 72 73 65 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 20 74 29 29 reverse.(overlays-at.(point).t))
e1e0 29 29 0a 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 20 66 61 63 65 2d 70 72 6f 70 29 0a 20 20 20 ))...........list.face-prop)....
e200 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 65 72 6c 61 79 20 6f 76 65 72 6c 61 79 73 29 0a 20 20 ...(dolist.(overlay.overlays)...
e220 20 20 20 20 20 20 28 73 65 74 71 20 66 61 63 65 2d 70 72 6f 70 20 28 6f 76 65 72 6c 61 79 2d 67 ......(setq.face-prop.(overlay-g
e240 65 74 20 6f 76 65 72 6c 61 79 20 27 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et.overlay.'face)...............
e260 6c 69 73 74 20 28 6e 63 6f 6e 63 20 28 68 74 6d 6c 69 7a 65 2d 64 65 63 6f 64 65 2d 66 61 63 65 list.(nconc.(htmlize-decode-face
e280 2d 70 72 6f 70 20 66 61 63 65 2d 70 72 6f 70 29 20 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 3b -prop.face-prop).list))).......;
e2a0 3b 20 55 6e 64 65 72 20 22 4d 65 72 67 69 6e 67 20 46 61 63 65 73 22 20 74 68 65 20 6d 61 6e 75 ;.Under."Merging.Faces".the.manu
e2c0 61 6c 20 65 78 70 6c 69 63 69 74 6c 79 20 73 74 61 74 65 73 0a 20 20 20 20 20 20 3b 3b 20 74 68 al.explicitly.states.......;;.th
e2e0 61 74 20 66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 6f 76 65 72 6c 61 79 73 20 74 at.faces.specified.by.overlays.t
e300 61 6b 65 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 0a 20 20 20 20 20 20 3b 3b 20 66 61 63 ake.precedence.over.......;;.fac
e320 65 73 20 73 70 65 63 69 66 69 65 64 20 62 79 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 2e es.specified.by.text.properties.
e340 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 6c 6c 2d 66 61 63 65 73 20 28 6e 63 6f 6e 63 20 61 6c .......(setq.all-faces.(nconc.al
e360 6c 2d 66 61 63 65 73 20 6c 69 73 74 29 29 29 0a 20 20 20 20 61 6c 6c 2d 66 61 63 65 73 29 29 0a l-faces.list))).....all-faces)).
e380 0c 0a 3b 3b 20 68 74 6d 6c 69 7a 65 20 73 75 70 70 6f 72 74 73 20 67 65 6e 65 72 61 74 69 6e 67 ..;;.htmlize.supports.generating
e3a0 20 48 54 4d 4c 20 69 6e 20 73 65 76 65 72 61 6c 20 66 6c 61 76 6f 72 73 2c 20 73 6f 6d 65 20 6f .HTML.in.several.flavors,.some.o
e3c0 66 20 77 68 69 63 68 0a 3b 3b 20 75 73 65 20 43 53 53 2c 20 61 6e 64 20 6f 74 68 65 72 73 20 74 f.which.;;.use.CSS,.and.others.t
e3e0 68 65 20 3c 66 6f 6e 74 3e 20 65 6c 65 6d 65 6e 74 2e 20 20 57 65 20 74 61 6b 65 20 61 6e 20 4f he.<font>.element...We.take.an.O
e400 4f 20 61 70 70 72 6f 61 63 68 20 61 6e 64 0a 3b 3b 20 64 65 66 69 6e 65 20 22 6d 65 74 68 6f 64 O.approach.and.;;.define."method
e420 73 22 20 74 68 61 74 20 69 6e 64 69 72 65 63 74 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e s".that.indirect.to.the.function
e440 73 20 74 68 61 74 20 64 65 70 65 6e 64 20 6f 6e 0a 3b 3b 20 60 68 74 6d 6c 69 7a 65 2d 6f 75 74 s.that.depend.on.;;.`htmlize-out
e460 70 75 74 2d 74 79 70 65 27 2e 20 20 54 68 65 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64 20 6d put-type'...The.currently.used.m
e480 65 74 68 6f 64 73 20 61 72 65 20 60 64 6f 63 74 79 70 65 27 2c 0a 3b 3b 20 60 69 6e 73 65 72 74 ethods.are.`doctype',.;;.`insert
e4a0 2d 68 65 61 64 27 2c 20 60 62 6f 64 79 2d 74 61 67 27 2c 20 60 70 72 65 2d 74 61 67 27 2c 20 61 -head',.`body-tag',.`pre-tag',.a
e4c0 6e 64 20 60 74 65 78 74 2d 6d 61 72 6b 75 70 27 2e 20 20 4e 6f 74 20 61 6c 6c 0a 3b 3b 20 6f 75 nd.`text-markup'...Not.all.;;.ou
e4e0 74 70 75 74 20 74 79 70 65 73 20 64 65 66 69 6e 65 20 61 6c 6c 20 6d 65 74 68 6f 64 73 2e 0a 3b tput.types.define.all.methods..;
e500 3b 0a 3b 3b 20 4d 65 74 68 6f 64 73 20 61 72 65 20 63 61 6c 6c 65 64 20 65 69 74 68 65 72 20 77 ;.;;.Methods.are.called.either.w
e520 69 74 68 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 74 68 6f 64 20 4d 45 54 48 4f 44 20 41 52 47 53 2e ith.(htmlize-method.METHOD.ARGS.
e540 2e 2e 29 0a 3b 3b 20 73 70 65 63 69 61 6c 20 66 6f 72 6d 2c 20 6f 72 20 62 79 20 61 63 63 65 73 ..).;;.special.form,.or.by.acces
e560 73 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 0a 3b 3b 20 28 68 74 6d 6c 69 sing.the.function.with.;;.(htmli
e580 7a 65 2d 6d 65 74 68 6f 64 2d 66 75 6e 63 74 69 6f 6e 20 27 4d 45 54 48 4f 44 29 20 61 6e 64 20 ze-method-function.'METHOD).and.
e5a0 63 61 6c 6c 69 6e 67 20 28 66 75 6e 63 61 6c 6c 20 46 55 4e 43 54 49 4f 4e 29 2e 0a 3b 3b 20 54 calling.(funcall.FUNCTION)..;;.T
e5c0 68 65 20 6c 61 74 74 65 72 20 66 6f 72 6d 20 69 73 20 75 73 65 66 75 6c 20 69 6e 20 74 69 67 68 he.latter.form.is.useful.in.tigh
e5e0 74 20 6c 6f 6f 70 73 20 62 65 63 61 75 73 65 20 60 68 74 6d 6c 69 7a 65 2d 6d 65 74 68 6f 64 27 t.loops.because.`htmlize-method'
e600 0a 3b 3b 20 63 6f 6e 73 65 73 2e 0a 0a 28 64 65 66 6d 61 63 72 6f 20 68 74 6d 6c 69 7a 65 2d 6d .;;.conses...(defmacro.htmlize-m
e620 65 74 68 6f 64 20 28 6d 65 74 68 6f 64 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 3b 3b 20 45 ethod.(method.&rest.args)...;;.E
e640 78 70 61 6e 64 20 74 6f 20 28 68 74 6d 6c 69 7a 65 2d 54 59 50 45 2d 4d 45 54 48 4f 44 20 2e 2e xpand.to.(htmlize-TYPE-METHOD...
e660 2e 41 52 47 53 2e 2e 2e 29 2e 20 20 54 59 50 45 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 .ARGS...)...TYPE.is.the.value.of
e680 0a 20 20 3b 3b 20 60 68 74 6d 6c 69 7a 65 2d 6f 75 74 70 75 74 2d 74 79 70 65 27 20 61 74 20 72 ...;;.`htmlize-output-type'.at.r
e6a0 75 6e 20 74 69 6d 65 2e 0a 20 20 60 28 66 75 6e 63 61 6c 6c 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 un.time....`(funcall.(htmlize-me
e6c0 74 68 6f 64 2d 66 75 6e 63 74 69 6f 6e 20 27 2c 6d 65 74 68 6f 64 29 20 2c 40 61 72 67 73 29 29 thod-function.',method).,@args))
e6e0 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6d 65 74 68 6f 64 2d 66 75 6e 63 74 69 6f 6e ..(defun.htmlize-method-function
e700 20 28 6d 65 74 68 6f 64 29 0a 20 20 3b 3b 20 52 65 74 75 72 6e 20 4d 45 54 48 4f 44 27 73 20 66 .(method)...;;.Return.METHOD's.f
e720 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 unction.definition.for.the.curre
e740 6e 74 20 6f 75 74 70 75 74 20 74 79 70 65 2e 0a 20 20 3b 3b 20 54 68 65 20 72 65 74 75 72 6e 65 nt.output.type....;;.The.returne
e760 64 20 6f 62 6a 65 63 74 20 63 61 6e 20 62 65 20 73 61 66 65 6c 79 20 66 75 6e 63 61 6c 6c 65 64 d.object.can.be.safely.funcalled
e780 2e 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 ....(let.((sym.(intern.(format."
e7a0 68 74 6d 6c 69 7a 65 2d 25 73 2d 25 73 22 20 68 74 6d 6c 69 7a 65 2d 6f 75 74 70 75 74 2d 74 79 htmlize-%s-%s".htmlize-output-ty
e7c0 70 65 20 6d 65 74 68 6f 64 29 29 29 29 0a 20 20 20 20 28 69 6e 64 69 72 65 63 74 2d 66 75 6e 63 pe.method)))).....(indirect-func
e7e0 74 69 6f 6e 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 tion.(if.(fboundp.sym)..........
e800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 ..................sym...........
e820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 20 28 69 ...............(let.((default.(i
e840 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 68 74 6d 6c 69 7a 65 2d 64 65 66 61 75 6c 74 2d 22 ntern.(concat."htmlize-default-"
e860 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
e880 20 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 73 79 6d 62 6f 6c .........................(symbol
e8a0 2d 6e 61 6d 65 20 6d 65 74 68 6f 64 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -name.method)))))...............
e8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 64 65 66 61 75 6c .............(if.(fboundp.defaul
e8e0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t)..............................
e900 20 20 64 65 66 61 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 ..default.......................
e920 20 20 20 20 20 20 20 27 69 67 6e 6f 72 65 29 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 68 74 .......'ignore))))))..(defvar.ht
e940 6d 6c 69 7a 65 2d 6d 65 6d 6f 69 7a 61 74 69 6f 6e 2d 74 61 62 6c 65 20 28 6d 61 6b 65 2d 68 61 mlize-memoization-table.(make-ha
e960 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 0a 0a 28 64 65 66 6d 61 63 sh-table.:test.'equal))..(defmac
e980 72 6f 20 68 74 6d 6c 69 7a 65 2d 6d 65 6d 6f 69 7a 65 20 28 6b 65 79 20 67 65 6e 65 72 61 74 6f ro.htmlize-memoize.(key.generato
e9a0 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 47 45 4e 45 52 41 r)..."Return.the.value.of.GENERA
e9c0 54 4f 52 2c 20 6d 65 6d 6f 69 7a 65 64 20 61 73 20 4b 45 59 2e 0a 54 68 61 74 20 6d 65 61 6e 73 TOR,.memoized.as.KEY..That.means
e9e0 20 74 68 61 74 20 47 45 4e 45 52 41 54 4f 52 20 77 69 6c 6c 20 62 65 20 65 76 61 6c 75 61 74 65 .that.GENERATOR.will.be.evaluate
ea00 64 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 0a 69 74 d.and.returned.the.first.time.it
ea20 27 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 65 20 6f 66 's.called.with.the.same.value.of
ea40 20 4b 45 59 2e 20 20 41 6c 6c 20 6f 74 68 65 72 20 74 69 6d 65 73 2c 20 74 68 65 20 63 61 63 68 .KEY...All.other.times,.the.cach
ea60 65 64 0a 5c 28 6d 65 6d 6f 69 7a 65 64 29 20 76 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 72 65 74 ed.\(memoized).value.will.be.ret
ea80 75 72 6e 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 63 6c 2d 67 65 6e 73 79 urned."...(let.((value.(cl-gensy
eaa0 6d 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 76 61 6c 75 65 20 28 67 65 74 68 61 73 68 m))).....`(let.((,value.(gethash
eac0 20 2c 6b 65 79 20 68 74 6d 6c 69 7a 65 2d 6d 65 6d 6f 69 7a 61 74 69 6f 6e 2d 74 61 62 6c 65 29 .,key.htmlize-memoization-table)
eae0 29 29 0a 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 2c 76 61 6c 75 65 0a 20 20 20 20 20 20 20 ))........(unless.,value........
eb00 20 20 28 73 65 74 71 20 2c 76 61 6c 75 65 20 2c 67 65 6e 65 72 61 74 6f 72 29 0a 20 20 20 20 20 ..(setq.,value.,generator)......
eb20 20 20 20 20 28 73 65 74 66 20 28 67 65 74 68 61 73 68 20 2c 6b 65 79 20 68 74 6d 6c 69 7a 65 2d ....(setf.(gethash.,key.htmlize-
eb40 6d 65 6d 6f 69 7a 61 74 69 6f 6e 2d 74 61 62 6c 65 29 20 2c 76 61 6c 75 65 29 29 0a 20 20 20 20 memoization-table).,value)).....
eb60 20 20 20 2c 76 61 6c 75 65 29 29 29 0a 0c 0a 3b 3b 3b 20 44 65 66 61 75 6c 74 20 6d 65 74 68 6f ...,value)))...;;;.Default.metho
eb80 64 73 2e 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 64 65 66 61 75 6c 74 2d 64 6f 63 74 ds...(defun.htmlize-default-doct
eba0 79 70 65 20 28 29 0a 20 20 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype.()...nil....................
ebc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 6f 20 64 6f 63 2d 73 74 72 69 6e 67 0a 20 ...............;.no.doc-string..
ebe0 20 3b 3b 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 60 66 6f 6e 74 27 20 6f 75 74 70 75 74 20 .;;.Note.that.the.`font'.output.
ec00 69 73 20 74 65 63 68 6e 69 63 61 6c 6c 79 20 69 6e 76 61 6c 69 64 20 75 6e 64 65 72 20 74 68 69 is.technically.invalid.under.thi
ec20 73 20 44 54 44 0a 20 20 3b 3b 20 62 65 63 61 75 73 65 20 74 68 65 20 44 54 44 20 64 6f 65 73 6e s.DTD...;;.because.the.DTD.doesn
ec40 27 74 20 61 6c 6c 6f 77 20 65 6d 62 65 64 64 69 6e 67 20 3c 66 6f 6e 74 3e 20 69 6e 20 3c 70 72 't.allow.embedding.<font>.in.<pr
ec60 65 3e 2e 0a 20 20 22 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 20 50 55 42 4c 49 43 20 5c 22 2d e>...."<!DOCTYPE.html.PUBLIC.\"-
ec80 2f 2f 57 33 43 2f 2f 44 54 44 20 48 54 4d 4c 20 34 2e 30 31 2f 2f 45 4e 5c 22 3e 22 0a 20 20 29 //W3C//DTD.HTML.4.01//EN\">"...)
eca0 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 64 65 66 61 75 6c 74 2d 62 6f 64 79 2d 74 61 ..(defun.htmlize-default-body-ta
ecc0 67 20 28 66 61 63 65 2d 6d 61 70 29 0a 20 20 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g.(face-map)...nil..............
ece0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 6f 20 64 6f 63 2d 73 74 .....................;.no.doc-st
ed00 72 69 6e 67 0a 20 20 66 61 63 65 2d 6d 61 70 20 3b 20 73 68 75 74 20 75 70 20 74 68 65 20 62 79 ring...face-map.;.shut.up.the.by
ed20 74 65 2d 63 6f 6d 70 69 6c 65 72 0a 20 20 22 3c 62 6f 64 79 3e 22 29 0a 0a 28 64 65 66 75 6e 20 te-compiler..."<body>")..(defun.
ed40 68 74 6d 6c 69 7a 65 2d 64 65 66 61 75 6c 74 2d 70 72 65 2d 74 61 67 20 28 66 61 63 65 2d 6d 61 htmlize-default-pre-tag.(face-ma
ed60 70 29 0a 20 20 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p)...nil........................
ed80 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 6f 20 64 6f 63 2d 73 74 72 69 6e 67 0a 20 20 66 61 63 ...........;.no.doc-string...fac
eda0 65 2d 6d 61 70 20 3b 20 73 68 75 74 20 75 70 20 74 68 65 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 e-map.;.shut.up.the.byte-compile
edc0 72 0a 20 20 22 3c 70 72 65 3e 22 29 0a 0a 0c 0a 3b 3b 3b 20 43 53 53 20 62 61 73 65 64 20 6f 75 r..."<pre>")....;;;.CSS.based.ou
ede0 74 70 75 74 20 73 75 70 70 6f 72 74 2e 0a 0a 3b 3b 20 49 6e 74 65 72 6e 61 6c 20 66 75 6e 63 74 tput.support...;;.Internal.funct
ee00 69 6f 6e 3b 20 6e 6f 74 20 61 20 6d 65 74 68 6f 64 2e 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a ion;.not.a.method..(defun.htmliz
ee20 65 2d 63 73 73 2d 73 70 65 63 73 20 28 66 73 74 72 75 63 74 29 0a 20 20 28 6c 65 74 20 28 72 65 e-css-specs.(fstruct)...(let.(re
ee40 73 75 6c 74 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 sult).....(when.(htmlize-fstruct
ee60 2d 66 6f 72 65 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 0a 20 20 20 20 20 20 28 70 75 73 68 -foreground.fstruct).......(push
ee80 20 28 66 6f 72 6d 61 74 20 22 63 6f 6c 6f 72 3a 20 25 73 3b 22 20 28 68 74 6d 6c 69 7a 65 2d 66 .(format."color:.%s;".(htmlize-f
eea0 73 74 72 75 63 74 2d 66 6f 72 65 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 29 0a 20 20 20 20 struct-foreground.fstruct)).....
eec0 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 74 6d 6c ........result)).....(when.(html
eee0 69 7a 65 2d 66 73 74 72 75 63 74 2d 62 61 63 6b 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 0a ize-fstruct-background.fstruct).
ef00 20 20 20 20 20 20 28 70 75 73 68 20 28 66 6f 72 6d 61 74 20 22 62 61 63 6b 67 72 6f 75 6e 64 2d ......(push.(format."background-
ef20 63 6f 6c 6f 72 3a 20 25 73 3b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 color:.%s;".....................
ef40 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 62 61 63 6b 67 72 6f 75 6e 64 20 66 73 74 72 (htmlize-fstruct-background.fstr
ef60 75 63 74 29 29 0a 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 28 uct)).............result)).....(
ef80 6c 65 74 20 28 28 73 69 7a 65 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 73 69 7a 65 let.((size.(htmlize-fstruct-size
efa0 20 66 73 74 72 75 63 74 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 69 7a .fstruct))).......(when.(and.siz
efc0 65 20 28 6e 6f 74 20 28 65 71 20 68 74 6d 6c 69 7a 65 2d 69 67 6e 6f 72 65 2d 66 61 63 65 2d 73 e.(not.(eq.htmlize-ignore-face-s
efe0 69 7a 65 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 66 6c 6f 61 74 70 20 ize.t))).........(cond.((floatp.
f000 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 66 6f 72 6d size)................(push.(form
f020 61 74 20 22 66 6f 6e 74 2d 73 69 7a 65 3a 20 25 64 25 25 3b 22 20 28 2a 20 31 30 30 20 73 69 7a at."font-size:.%d%%;".(*.100.siz
f040 65 29 29 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 e)).result))...............((not
f060 20 28 65 71 20 68 74 6d 6c 69 7a 65 2d 69 67 6e 6f 72 65 2d 66 61 63 65 2d 73 69 7a 65 20 27 61 .(eq.htmlize-ignore-face-size.'a
f080 62 73 6f 6c 75 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 bsolute))................(push.(
f0a0 66 6f 72 6d 61 74 20 22 66 6f 6e 74 2d 73 69 7a 65 3a 20 25 73 70 74 3b 22 20 28 2f 20 73 69 7a format."font-size:.%spt;".(/.siz
f0c0 65 20 31 30 2e 30 29 29 20 72 65 73 75 6c 74 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 e.10.0)).result))))).....(when.(
f0e0 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 62 6f 6c 64 70 20 66 73 74 72 75 63 74 29 0a 20 htmlize-fstruct-boldp.fstruct)..
f100 20 20 20 20 20 28 70 75 73 68 20 22 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 6f 6c 64 3b 22 20 .....(push."font-weight:.bold;".
f120 72 65 73 75 6c 74 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 result)).....(when.(htmlize-fstr
f140 75 63 74 2d 69 74 61 6c 69 63 70 20 66 73 74 72 75 63 74 29 0a 20 20 20 20 20 20 28 70 75 73 68 uct-italicp.fstruct).......(push
f160 20 22 66 6f 6e 74 2d 73 74 79 6c 65 3a 20 69 74 61 6c 69 63 3b 22 20 72 65 73 75 6c 74 29 29 0a ."font-style:.italic;".result)).
f180 20 20 20 20 28 77 68 65 6e 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 75 6e 64 65 72 ....(when.(htmlize-fstruct-under
f1a0 6c 69 6e 65 70 20 66 73 74 72 75 63 74 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 74 65 78 74 linep.fstruct).......(push."text
f1c0 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 20 75 6e 64 65 72 6c 69 6e 65 3b 22 20 72 65 73 75 6c 74 29 -decoration:.underline;".result)
f1e0 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 6f 76 65 ).....(when.(htmlize-fstruct-ove
f200 72 6c 69 6e 65 70 20 66 73 74 72 75 63 74 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 74 65 78 rlinep.fstruct).......(push."tex
f220 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 20 6f 76 65 72 6c 69 6e 65 3b 22 20 72 65 73 75 6c 74 29 t-decoration:.overline;".result)
f240 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 73 74 72 ).....(when.(htmlize-fstruct-str
f260 69 6b 65 70 20 66 73 74 72 75 63 74 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 74 65 78 74 2d ikep.fstruct).......(push."text-
f280 64 65 63 6f 72 61 74 69 6f 6e 3a 20 6c 69 6e 65 2d 74 68 72 6f 75 67 68 3b 22 20 72 65 73 75 6c decoration:.line-through;".resul
f2a0 74 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 t)).....(nreverse.result)))..(de
f2c0 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 63 73 73 2d 69 6e 73 65 72 74 2d 68 65 61 64 20 28 62 75 66 fun.htmlize-css-insert-head.(buf
f2e0 66 65 72 2d 66 61 63 65 73 20 66 61 63 65 2d 6d 61 70 29 0a 20 20 28 69 6e 73 65 72 74 20 22 20 fer-faces.face-map)...(insert.".
f300 20 20 20 3c 73 74 79 6c 65 20 74 79 70 65 3d 5c 22 74 65 78 74 2f 63 73 73 5c 22 3e 5c 6e 20 20 ...<style.type=\"text/css\">\n..
f320 20 20 3c 21 2d 2d 5c 6e 22 29 0a 20 20 28 69 6e 73 65 72 74 20 22 20 20 20 20 20 20 62 6f 64 79 ..<!--\n")...(insert."......body
f340 20 7b 5c 6e 20 20 20 20 20 20 20 20 22 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 .{\n........"...........(mapconc
f360 61 74 20 23 27 69 64 65 6e 74 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 at.#'identity...................
f380 20 20 20 28 68 74 6d 6c 69 7a 65 2d 63 73 73 2d 73 70 65 63 73 20 28 67 65 74 68 61 73 68 20 27 ...(htmlize-css-specs.(gethash.'
f3a0 64 65 66 61 75 6c 74 20 66 61 63 65 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 default.face-map))..............
f3c0 20 20 20 20 20 20 20 20 22 5c 6e 20 20 20 20 20 20 20 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 ........"\n........")...........
f3e0 22 5c 6e 20 20 20 20 20 20 7d 5c 6e 22 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 66 61 63 65 20 28 "\n......}\n")...(dolist.(face.(
f400 63 6c 2d 73 6f 72 74 20 28 63 6c 2d 63 6f 70 79 2d 6c 69 73 74 20 62 75 66 66 65 72 2d 66 61 63 cl-sort.(cl-copy-list.buffer-fac
f420 65 73 29 20 23 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 es).#'string-lessp..............
f440 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 28 6c 61 6d 62 64 61 20 28 66 29 0a 20 20 20 ............:key.(lambda.(f)....
f460 20 20 20 20 20 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 74 .............................(ht
f480 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 63 73 73 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 mlize-fstruct-css-name..........
f4a0 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 67 65 74 68 61 73 68 ........................(gethash
f4c0 20 66 20 66 61 63 65 2d 6d 61 70 29 29 29 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 66 73 74 .f.face-map))))).....(let*.((fst
f4e0 72 75 63 74 20 28 67 65 74 68 61 73 68 20 66 61 63 65 20 66 61 63 65 2d 6d 61 70 29 29 0a 20 20 ruct.(gethash.face.face-map))...
f500 20 20 20 20 20 20 20 20 20 28 63 6c 65 61 6e 65 64 2d 75 70 2d 66 61 63 65 2d 6e 61 6d 65 0a 20 .........(cleaned-up-face-name..
f520 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........(let.((s.............
f540 20 20 20 20 20 20 20 3b 3b 20 55 73 65 20 60 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 27 20 .......;;.Use.`prin1-to-string'.
f560 72 61 74 68 65 72 20 74 68 61 6e 20 60 73 79 6d 62 6f 6c 2d 6e 61 6d 65 27 0a 20 20 20 20 20 20 rather.than.`symbol-name'.......
f580 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 67 65 74 20 74 68 65 20 66 61 63 65 20 .............;;.to.get.the.face.
f5a0 6e 61 6d 65 20 62 65 63 61 75 73 65 20 74 68 65 20 22 66 61 63 65 22 20 63 61 6e 20 61 6c 73 6f name.because.the."face".can.also
f5c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 20 61 6e 20 61 74 74 ....................;;.be.an.att
f5e0 72 6c 69 73 74 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 20 73 79 6d 62 6f 6c 2e 0a 20 20 rlist,.which.is.not.a.symbol....
f600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e .................(prin1-to-strin
f620 67 20 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 g.face)))...............;;.If.th
f640 65 20 6e 61 6d 65 20 63 6f 6e 74 61 69 6e 73 20 60 2d 2d 27 20 6f 72 20 60 2a 2f 27 2c 20 72 65 e.name.contains.`--'.or.`*/',.re
f660 6d 6f 76 65 20 74 68 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 move.them................(while.
f680 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2d 2d 22 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 (string-match."--".s)...........
f6a0 20 20 20 20 20 20 28 73 65 74 71 20 73 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 2d 22 ......(setq.s.(replace-match."-"
f6c0 20 74 20 74 20 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 .t.t.s)))...............(while.(
f6e0 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2a 2f 22 20 73 29 0a 20 20 20 20 20 20 20 20 20 string-match."\\*/".s)..........
f700 20 20 20 20 20 20 20 28 73 65 74 71 20 73 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 58 .......(setq.s.(replace-match."X
f720 58 22 20 74 20 74 20 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 29 29 0a 20 20 X".t.t.s)))...............s))...
f740 20 20 20 20 20 20 20 20 20 28 73 70 65 63 73 20 28 68 74 6d 6c 69 7a 65 2d 63 73 73 2d 73 70 65 .........(specs.(htmlize-css-spe
f760 63 73 20 66 73 74 72 75 63 74 29 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 20 20 cs.fstruct))).......(insert."...
f780 20 20 20 2e 22 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 63 73 73 2d 6e 61 6d 65 20 ....".(htmlize-fstruct-css-name.
f7a0 66 73 74 72 75 63 74 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 73 70 65 63 73 29 fstruct)).......(if.(null.specs)
f7c0 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 7b 22 29 0a 20 20 20 20 20 20 20 ...........(insert.".{")........
f7e0 20 28 69 6e 73 65 72 74 20 22 20 7b 5c 6e 20 20 20 20 20 20 20 20 2f 2a 20 22 20 63 6c 65 61 6e .(insert.".{\n......../*.".clean
f800 65 64 2d 75 70 2d 66 61 63 65 2d 6e 61 6d 65 20 22 20 2a 2f 5c 6e 20 20 20 20 20 20 20 20 22 0a ed-up-face-name.".*/\n........".
f820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 ................(mapconcat.#'ide
f840 6e 74 69 74 79 20 73 70 65 63 73 20 22 5c 6e 20 20 20 20 20 20 20 20 22 29 29 29 0a 20 20 20 20 ntity.specs."\n........"))).....
f860 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 20 20 20 20 20 20 7d 5c 6e 22 29 29 29 0a 20 20 28 69 6e ..(insert."\n......}\n")))...(in
f880 73 65 72 74 20 68 74 6d 6c 69 7a 65 2d 68 79 70 65 72 6c 69 6e 6b 2d 73 74 79 6c 65 0a 20 20 20 sert.htmlize-hyperlink-style....
f8a0 20 20 20 20 20 20 20 22 20 20 20 20 2d 2d 3e 5c 6e 20 20 20 20 3c 2f 73 74 79 6c 65 3e 5c 6e 22 ......."....-->\n....</style>\n"
f8c0 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 63 73 73 2d 74 65 78 74 2d 6d 61 72 6b ))..(defun.htmlize-css-text-mark
f8e0 75 70 20 28 66 73 74 72 75 63 74 2d 6c 69 73 74 20 62 75 66 66 65 72 29 0a 20 20 3b 3b 20 4f 70 up.(fstruct-list.buffer)...;;.Op
f900 65 6e 20 74 68 65 20 6d 61 72 6b 75 70 20 6e 65 65 64 65 64 20 74 6f 20 69 6e 73 65 72 74 20 74 en.the.markup.needed.to.insert.t
f920 65 78 74 20 63 6f 6c 6f 72 65 64 20 77 69 74 68 20 46 41 43 45 53 20 69 6e 74 6f 0a 20 20 3b 3b ext.colored.with.FACES.into...;;
f940 20 42 55 46 46 45 52 2e 20 20 52 65 74 75 72 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 68 .BUFFER...Return.the.function.th
f960 61 74 20 63 6c 6f 73 65 73 20 74 68 65 20 6d 61 72 6b 75 70 2e 0a 0a 20 20 3b 3b 20 49 6e 20 43 at.closes.the.markup.....;;.In.C
f980 53 53 20 6d 6f 64 65 2c 20 74 68 69 73 20 69 73 20 65 61 73 79 3a 20 6a 75 73 74 20 6e 65 73 74 SS.mode,.this.is.easy:.just.nest
f9a0 20 74 68 65 20 74 65 78 74 20 69 6e 20 6f 6e 65 20 3c 73 70 61 6e 0a 20 20 3b 3b 20 63 6c 61 73 .the.text.in.one.<span...;;.clas
f9c0 73 3d 2e 2e 2e 3e 20 74 61 67 20 66 6f 72 20 65 61 63 68 20 66 61 63 65 20 69 6e 20 46 53 54 52 s=...>.tag.for.each.face.in.FSTR
f9e0 55 43 54 2d 4c 49 53 54 2e 0a 20 20 28 64 6f 6c 69 73 74 20 28 66 73 74 72 75 63 74 20 66 73 74 UCT-LIST....(dolist.(fstruct.fst
fa00 72 75 63 74 2d 6c 69 73 74 29 0a 20 20 20 20 28 70 72 69 6e 63 20 22 3c 73 70 61 6e 20 63 6c 61 ruct-list).....(princ."<span.cla
fa20 73 73 3d 5c 22 22 20 62 75 66 66 65 72 29 0a 20 20 20 20 28 70 72 69 6e 63 20 28 68 74 6d 6c 69 ss=\"".buffer).....(princ.(htmli
fa40 7a 65 2d 66 73 74 72 75 63 74 2d 63 73 73 2d 6e 61 6d 65 20 66 73 74 72 75 63 74 29 20 62 75 66 ze-fstruct-css-name.fstruct).buf
fa60 66 65 72 29 0a 20 20 20 20 28 70 72 69 6e 63 20 22 5c 22 3e 22 20 62 75 66 66 65 72 29 29 0a 20 fer).....(princ."\">".buffer))..
fa80 20 28 68 74 6d 6c 69 7a 65 2d 6c 65 78 6c 65 74 20 28 28 66 73 74 72 75 63 74 2d 6c 69 73 74 20 .(htmlize-lexlet.((fstruct-list.
faa0 66 73 74 72 75 63 74 2d 6c 69 73 74 29 20 28 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 fstruct-list).(buffer.buffer))..
fac0 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 66 73 74 ...(lambda.().......(dolist.(fst
fae0 72 75 63 74 20 66 73 74 72 75 63 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 28 69 67 6e 6f ruct.fstruct-list).........(igno
fb00 72 65 20 66 73 74 72 75 63 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 68 75 re.fstruct)................;.shu
fb20 74 20 75 70 20 74 68 65 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 20 20 28 t.up.the.byte-compiler.........(
fb40 70 72 69 6e 63 20 22 3c 2f 73 70 61 6e 3e 22 20 62 75 66 66 65 72 29 29 29 29 29 0a 0c 0a 3b 3b princ."</span>".buffer)))))...;;
fb60 20 60 69 6e 6c 69 6e 65 2d 63 73 73 27 20 6f 75 74 70 75 74 20 73 75 70 70 6f 72 74 2e 0a 0a 28 .`inline-css'.output.support...(
fb80 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 69 6e 6c 69 6e 65 2d 63 73 73 2d 62 6f 64 79 2d 74 61 defun.htmlize-inline-css-body-ta
fba0 67 20 28 66 61 63 65 2d 6d 61 70 29 0a 20 20 28 66 6f 72 6d 61 74 20 22 3c 62 6f 64 79 20 73 74 g.(face-map)...(format."<body.st
fbc0 79 6c 65 3d 5c 22 25 73 5c 22 3e 22 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 yle=\"%s\">"...........(mapconca
fbe0 74 20 23 27 69 64 65 6e 74 69 74 79 20 28 68 74 6d 6c 69 7a 65 2d 63 73 73 2d 73 70 65 63 73 20 t.#'identity.(htmlize-css-specs.
fc00 28 67 65 74 68 61 73 68 20 27 64 65 66 61 75 6c 74 20 66 61 63 65 2d 6d 61 70 29 29 0a 20 20 20 (gethash.'default.face-map))....
fc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 29 29 29 0a 0a 28 64 65 66 75 6e ..................".")))..(defun
fc40 20 68 74 6d 6c 69 7a 65 2d 69 6e 6c 69 6e 65 2d 63 73 73 2d 70 72 65 2d 74 61 67 20 28 66 61 63 .htmlize-inline-css-pre-tag.(fac
fc60 65 2d 6d 61 70 29 0a 20 20 28 69 66 20 68 74 6d 6c 69 7a 65 2d 70 72 65 2d 73 74 79 6c 65 0a 20 e-map)...(if.htmlize-pre-style..
fc80 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 3c 70 72 65 20 73 74 79 6c 65 3d 5c 22 25 73 5c 22 3e .....(format."<pre.style=\"%s\">
fca0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 "...............(mapconcat.#'ide
fcc0 6e 74 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ntity..........................(
fce0 68 74 6d 6c 69 7a 65 2d 63 73 73 2d 73 70 65 63 73 20 28 67 65 74 68 61 73 68 20 27 64 65 66 61 htmlize-css-specs.(gethash.'defa
fd00 75 6c 74 20 66 61 63 65 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ult.face-map))..................
fd20 20 20 20 20 20 20 20 20 22 20 22 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 3c 70 72 65 3e ........".")).....(format."<pre>
fd40 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 69 6e 6c 69 6e 65 2d 63 73 73 2d ")))..(defun.htmlize-inline-css-
fd60 74 65 78 74 2d 6d 61 72 6b 75 70 20 28 66 73 74 72 75 63 74 2d 6c 69 73 74 20 62 75 66 66 65 72 text-markup.(fstruct-list.buffer
fd80 29 0a 20 20 28 6c 65 74 2a 20 28 28 6d 65 72 67 65 64 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 72 67 )...(let*.((merged.(htmlize-merg
fda0 65 2d 66 61 63 65 73 20 66 73 74 72 75 63 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 e-faces.fstruct-list))..........
fdc0 28 73 74 79 6c 65 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 6d 6f 69 7a 65 0a 20 20 20 20 20 20 20 20 (style.(htmlize-memoize.........
fde0 20 20 20 20 20 20 20 20 20 6d 65 72 67 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........merged.................
fe00 20 28 6c 65 74 20 28 28 73 70 65 63 73 20 28 68 74 6d 6c 69 7a 65 2d 63 73 73 2d 73 70 65 63 73 .(let.((specs.(htmlize-css-specs
fe20 20 6d 65 72 67 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 .merged)))....................(a
fe40 6e 64 20 73 70 65 63 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 nd.specs........................
fe60 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 0a 20 20 20 20 20 20 20 20 20 .(mapconcat.#'identity..........
fe80 20 20 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 74 6d 6c 69 ..........................(htmli
fea0 7a 65 2d 63 73 73 2d 73 70 65 63 73 20 6d 65 72 67 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 ze-css-specs.merged)............
fec0 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 29 29 29 29 29 ........................".")))))
fee0 29 0a 20 20 20 20 28 77 68 65 6e 20 73 74 79 6c 65 0a 20 20 20 20 20 20 28 70 72 69 6e 63 20 22 ).....(when.style.......(princ."
ff00 3c 73 70 61 6e 20 73 74 79 6c 65 3d 5c 22 22 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 70 <span.style=\"".buffer).......(p
ff20 72 69 6e 63 20 73 74 79 6c 65 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 70 72 69 6e 63 20 rinc.style.buffer).......(princ.
ff40 22 5c 22 3e 22 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 6c 65 78 6c "\">".buffer)).....(htmlize-lexl
ff60 65 74 20 28 28 73 74 79 6c 65 20 73 74 79 6c 65 29 20 28 62 75 66 66 65 72 20 62 75 66 66 65 72 et.((style.style).(buffer.buffer
ff80 29 29 0a 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 28 77 68 65 )).......(lambda.().........(whe
ffa0 6e 20 73 74 79 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 63 20 22 3c 2f 73 70 61 6e n.style...........(princ."</span
ffc0 3e 22 20 62 75 66 66 65 72 29 29 29 29 29 29 0a 0c 0a 3b 3b 3b 20 60 66 6f 6e 74 27 20 74 61 67 >".buffer))))))...;;;.`font'.tag
ffe0 20 62 61 73 65 64 20 6f 75 74 70 75 74 20 73 75 70 70 6f 72 74 2e 0a 0a 28 64 65 66 75 6e 20 68 .based.output.support...(defun.h
10000 74 6d 6c 69 7a 65 2d 66 6f 6e 74 2d 62 6f 64 79 2d 74 61 67 20 28 66 61 63 65 2d 6d 61 70 29 0a tmlize-font-body-tag.(face-map).
10020 20 20 28 6c 65 74 20 28 28 66 73 74 72 75 63 74 20 28 67 65 74 68 61 73 68 20 27 64 65 66 61 75 ..(let.((fstruct.(gethash.'defau
10040 6c 74 20 66 61 63 65 2d 6d 61 70 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 3c 62 6f 64 lt.face-map))).....(format."<bod
10060 79 20 74 65 78 74 3d 5c 22 25 73 5c 22 20 62 67 63 6f 6c 6f 72 3d 5c 22 25 73 5c 22 3e 22 0a 20 y.text=\"%s\".bgcolor=\"%s\">"..
10080 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 66 6f 72 65 ...........(htmlize-fstruct-fore
100a0 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d ground.fstruct).............(htm
100c0 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 62 61 63 6b 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 lize-fstruct-background.fstruct)
100e0 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 66 6f 6e 74 2d 70 72 65 2d 74 61 67 )))..(defun.htmlize-font-pre-tag
10100 20 28 66 61 63 65 2d 6d 61 70 29 0a 20 20 28 69 66 20 68 74 6d 6c 69 7a 65 2d 70 72 65 2d 73 74 .(face-map)...(if.htmlize-pre-st
10120 79 6c 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 73 74 72 75 63 74 20 28 67 65 74 68 61 73 yle.......(let.((fstruct.(gethas
10140 68 20 27 64 65 66 61 75 6c 74 20 66 61 63 65 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 28 h.'default.face-map))).........(
10160 66 6f 72 6d 61 74 20 22 3c 70 72 65 20 74 65 78 74 3d 5c 22 25 73 5c 22 20 62 67 63 6f 6c 6f 72 format."<pre.text=\"%s\".bgcolor
10180 3d 5c 22 25 73 5c 22 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 =\"%s\">".................(htmli
101a0 7a 65 2d 66 73 74 72 75 63 74 2d 66 6f 72 65 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 0a 20 ze-fstruct-foreground.fstruct)..
101c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d ...............(htmlize-fstruct-
101e0 62 61 63 6b 67 72 6f 75 6e 64 20 66 73 74 72 75 63 74 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 background.fstruct))).....(forma
10200 74 20 22 3c 70 72 65 3e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 66 6f 6e t."<pre>")))..(defun.htmlize-fon
10220 74 2d 74 65 78 74 2d 6d 61 72 6b 75 70 20 28 66 73 74 72 75 63 74 2d 6c 69 73 74 20 62 75 66 66 t-text-markup.(fstruct-list.buff
10240 65 72 29 0a 20 20 3b 3b 20 49 6e 20 60 66 6f 6e 74 27 20 6d 6f 64 65 2c 20 77 65 20 75 73 65 20 er)...;;.In.`font'.mode,.we.use.
10260 74 68 65 20 74 72 61 64 69 74 69 6f 6e 61 6c 20 48 54 4d 4c 20 6d 65 61 6e 73 20 6f 66 20 61 6c the.traditional.HTML.means.of.al
10280 74 65 72 69 6e 67 0a 20 20 3b 3b 20 70 72 65 73 65 6e 74 61 74 69 6f 6e 3a 20 3c 66 6f 6e 74 3e tering...;;.presentation:.<font>
102a0 20 74 61 67 20 66 6f 72 20 63 6f 6c 6f 72 73 2c 20 3c 62 3e 20 66 6f 72 20 62 6f 6c 64 2c 20 3c .tag.for.colors,.<b>.for.bold,.<
102c0 75 3e 20 66 6f 72 0a 20 20 3b 3b 20 75 6e 64 65 72 6c 69 6e 65 2c 20 61 6e 64 20 3c 73 74 72 69 u>.for...;;.underline,.and.<stri
102e0 6b 65 3e 20 66 6f 72 20 73 74 72 69 6b 65 2d 74 68 72 6f 75 67 68 2e 0a 20 20 28 6c 65 74 2a 20 ke>.for.strike-through....(let*.
10300 28 28 6d 65 72 67 65 64 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 72 67 65 2d 66 61 63 65 73 20 66 73 ((merged.(htmlize-merge-faces.fs
10320 74 72 75 63 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 75 70 20 28 68 truct-list))..........(markup.(h
10340 74 6d 6c 69 7a 65 2d 6d 65 6d 6f 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tmlize-memoize..................
10360 20 6d 65 72 67 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 .merged...................(cons.
10380 28 63 6f 6e 63 61 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 (concat.........................
103a0 20 28 61 6e 64 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 66 6f 72 65 67 72 6f 75 6e .(and.(htmlize-fstruct-foregroun
103c0 64 20 6d 65 72 67 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.merged).......................
103e0 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 5c 22 25 ........(format."<font.color=\"%
10400 73 5c 22 3e 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 s\">"...........................
10420 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 66 6f 72 ............(htmlize-fstruct-for
10440 65 67 72 6f 75 6e 64 20 6d 65 72 67 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eground.merged)))...............
10460 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 ...........(and.(htmlize-fstruct
10480 2d 62 6f 6c 64 70 20 6d 65 72 67 65 64 29 20 20 20 20 20 20 22 3c 62 3e 22 29 0a 20 20 20 20 20 -boldp.merged)......"<b>")......
104a0 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 68 74 6d 6c 69 7a ....................(and.(htmliz
104c0 65 2d 66 73 74 72 75 63 74 2d 69 74 61 6c 69 63 70 20 6d 65 72 67 65 64 29 20 20 20 20 22 3c 69 e-fstruct-italicp.merged)...."<i
104e0 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e >")..........................(an
10500 64 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 75 6e 64 65 72 6c 69 6e 65 70 20 6d 65 d.(htmlize-fstruct-underlinep.me
10520 72 67 65 64 29 20 22 3c 75 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rged)."<u>")....................
10540 20 20 20 20 20 20 28 61 6e 64 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 73 74 72 69 ......(and.(htmlize-fstruct-stri
10560 6b 65 70 20 6d 65 72 67 65 64 29 20 20 20 20 22 3c 73 74 72 69 6b 65 3e 22 29 29 0a 20 20 20 20 kep.merged)...."<strike>")).....
10580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 ....................(concat.....
105a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 68 74 6d 6c 69 .....................(and.(htmli
105c0 7a 65 2d 66 73 74 72 75 63 74 2d 73 74 72 69 6b 65 70 20 6d 65 72 67 65 64 29 20 20 20 20 22 3c ze-fstruct-strikep.merged)...."<
105e0 2f 73 74 72 69 6b 65 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /strike>")......................
10600 20 20 20 20 28 61 6e 64 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 75 6e 64 65 72 6c ....(and.(htmlize-fstruct-underl
10620 69 6e 65 70 20 6d 65 72 67 65 64 29 20 22 3c 2f 75 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 inep.merged)."</u>")............
10640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 ..............(and.(htmlize-fstr
10660 75 63 74 2d 69 74 61 6c 69 63 70 20 6d 65 72 67 65 64 29 20 20 20 20 22 3c 2f 69 3e 22 29 0a 20 uct-italicp.merged)...."</i>")..
10680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 68 74 ........................(and.(ht
106a0 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 62 6f 6c 64 70 20 6d 65 72 67 65 64 29 20 20 20 20 20 mlize-fstruct-boldp.merged).....
106c0 20 22 3c 2f 62 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."</b>")........................
106e0 20 20 28 61 6e 64 20 28 68 74 6d 6c 69 7a 65 2d 66 73 74 72 75 63 74 2d 66 6f 72 65 67 72 6f 75 ..(and.(htmlize-fstruct-foregrou
10700 6e 64 20 6d 65 72 67 65 64 29 20 22 3c 2f 66 6f 6e 74 3e 22 29 29 29 29 29 29 0a 20 20 20 20 28 nd.merged)."</font>")))))).....(
10720 70 72 69 6e 63 20 28 63 61 72 20 6d 61 72 6b 75 70 29 20 62 75 66 66 65 72 29 0a 20 20 20 20 28 princ.(car.markup).buffer).....(
10740 68 74 6d 6c 69 7a 65 2d 6c 65 78 6c 65 74 20 28 28 6d 61 72 6b 75 70 20 6d 61 72 6b 75 70 29 20 htmlize-lexlet.((markup.markup).
10760 28 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 (buffer.buffer)).......(lambda.(
10780 29 0a 20 20 20 20 20 20 20 20 28 70 72 69 6e 63 20 28 63 64 72 20 6d 61 72 6b 75 70 29 20 62 75 ).........(princ.(cdr.markup).bu
107a0 66 66 65 72 29 29 29 29 29 0a 0c 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 ffer)))))...(defun.htmlize-buffe
107c0 72 2d 31 20 28 29 0a 20 20 3b 3b 20 49 6e 74 65 72 6e 61 6c 20 66 75 6e 63 74 69 6f 6e 3b 20 64 r-1.()...;;.Internal.function;.d
107e0 6f 6e 27 74 20 63 61 6c 6c 20 69 74 20 66 72 6f 6d 20 6f 75 74 73 69 64 65 20 74 68 69 73 20 66 on't.call.it.from.outside.this.f
10800 69 6c 65 2e 20 20 48 74 6d 6c 69 7a 65 0a 20 20 3b 3b 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 ile...Htmlize...;;.current.buffe
10820 72 2c 20 77 72 69 74 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 48 54 4d 4c 20 74 6f r,.writing.the.resulting.HTML.to
10840 20 61 20 6e 65 77 20 62 75 66 66 65 72 2c 20 61 6e 64 0a 20 20 3b 3b 20 72 65 74 75 72 6e 20 69 .a.new.buffer,.and...;;.return.i
10860 74 2e 20 20 55 6e 6c 69 6b 65 20 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 2c 20 74 68 69 73 20 t...Unlike.htmlize-buffer,.this.
10880 64 6f 65 73 6e 27 74 20 63 68 61 6e 67 65 20 63 75 72 72 65 6e 74 0a 20 20 3b 3b 20 62 75 66 66 doesn't.change.current...;;.buff
108a0 65 72 20 6f 72 20 75 73 65 20 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 2e 0a 20 20 28 73 er.or.use.switch-to-buffer....(s
108c0 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 3b 3b 20 50 72 6f 74 65 63 74 20 61 67 61 ave-excursion.....;;.Protect.aga
108e0 69 6e 73 74 20 74 68 65 20 68 6f 6f 6b 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 63 75 72 72 65 inst.the.hook.changing.the.curre
10900 6e 74 20 62 75 66 66 65 72 2e 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 nt.buffer......(save-excursion..
10920 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 68 74 6d 6c 69 7a 65 2d 62 65 66 6f 72 65 2d .....(run-hooks.'htmlize-before-
10940 68 6f 6f 6b 29 29 0a 20 20 20 20 3b 3b 20 43 6f 6e 76 69 6e 63 65 20 66 6f 6e 74 2d 6c 6f 63 6b hook)).....;;.Convince.font-lock
10960 20 73 75 70 70 6f 72 74 20 6d 6f 64 65 73 20 74 6f 20 66 6f 6e 74 69 66 79 20 74 68 65 20 65 6e .support.modes.to.fontify.the.en
10980 74 69 72 65 20 62 75 66 66 65 72 0a 20 20 20 20 3b 3b 20 69 6e 20 61 64 76 61 6e 63 65 2e 0a 20 tire.buffer.....;;.in.advance...
109a0 20 20 20 28 68 74 6d 6c 69 7a 65 2d 65 6e 73 75 72 65 2d 66 6f 6e 74 69 66 69 65 64 29 0a 20 20 ...(htmlize-ensure-fontified)...
109c0 20 20 28 63 6c 72 68 61 73 68 20 68 74 6d 6c 69 7a 65 2d 65 78 74 65 6e 64 65 64 2d 63 68 61 72 ..(clrhash.htmlize-extended-char
109e0 61 63 74 65 72 2d 63 61 63 68 65 29 0a 20 20 20 20 28 63 6c 72 68 61 73 68 20 68 74 6d 6c 69 7a acter-cache).....(clrhash.htmliz
10a00 65 2d 6d 65 6d 6f 69 7a 61 74 69 6f 6e 2d 74 61 62 6c 65 29 0a 20 20 20 20 3b 3b 20 49 74 27 73 e-memoization-table).....;;.It's
10a20 20 69 6d 70 6f 72 74 61 6e 74 20 74 68 61 74 20 74 68 65 20 6e 65 77 20 62 75 66 66 65 72 20 69 .important.that.the.new.buffer.i
10a40 6e 68 65 72 69 74 73 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 3b 3b nherits.default-directory.....;;
10a60 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 20 20 20 20 28 6c .from.the.current.buffer......(l
10a80 65 74 20 28 28 68 74 6d 6c 62 75 66 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 et.((htmlbuf.(generate-new-buffe
10aa0 72 20 28 69 66 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 r.(if.(buffer-file-name)........
10ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
10ae0 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 .....(htmlize-make-file-name....
10b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
10b20 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
10b40 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y...............................
10b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d ................(buffer-file-nam
10b80 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e)))............................
10ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2a 68 74 6d 6c 2a 22 29 29 29 0a 20 20 20 20 20 ..............."*html*")))......
10bc0 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 65 64 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 75 6e 77 .....(completed.nil)).......(unw
10be0 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 75 ind-protect...........(let*.((bu
10c00 66 66 65 72 2d 66 61 63 65 73 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 73 2d 69 6e 2d 62 75 66 ffer-faces.(htmlize-faces-in-buf
10c20 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 61 63 65 2d 6d 61 70 fer))..................(face-map
10c40 20 28 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 66 61 63 65 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 .(htmlize-make-face-map.........
10c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 64 6a 6f 69 6e 20 27 ....................(cl-adjoin.'
10c80 64 65 66 61 75 6c 74 20 62 75 66 66 65 72 2d 66 61 63 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 default.buffer-faces))).........
10ca0 20 20 20 20 20 20 20 20 20 28 70 6c 61 63 65 73 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 0a 20 20 .........(places.(cl-gensym))...
10cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 74 6c 65 20 28 69 66 20 28 62 75 66 66 65 ...............(title.(if.(buffe
10ce0 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-file-name)....................
10d00 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 79 .........(file-name-nondirectory
10d20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(buffer-file-name))............
10d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 29 0a ...............(buffer-name)))).
10d60 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 68 74 6d 6c 69 7a 65 2d 67 65 6e 65 72 61 ............(when.htmlize-genera
10d80 74 65 2d 68 79 70 65 72 6c 69 6e 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d te-hyperlinks...............(htm
10da0 6c 69 7a 65 2d 63 72 65 61 74 65 2d 61 75 74 6f 2d 6c 69 6e 6b 73 29 29 0a 20 20 20 20 20 20 20 lize-create-auto-links))........
10dc0 20 20 20 20 20 28 77 68 65 6e 20 68 74 6d 6c 69 7a 65 2d 72 65 70 6c 61 63 65 2d 66 6f 72 6d 2d .....(when.htmlize-replace-form-
10de0 66 65 65 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 73 68 61 feeds...............(htmlize-sha
10e00 64 6f 77 2d 66 6f 72 6d 2d 66 65 65 64 73 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b dow-form-feeds))..............;;
10e20 20 49 6e 69 74 69 61 6c 69 7a 65 20 48 54 4d 4c 42 55 46 20 61 6e 64 20 69 6e 73 65 72 74 20 74 .Initialize.HTMLBUF.and.insert.t
10e40 68 65 20 48 54 4d 4c 20 70 72 6f 6c 6f 67 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 he.HTML.prolog..............(wit
10e60 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 68 74 6d 6c 62 75 66 0a 20 20 20 20 20 20 20 h-current-buffer.htmlbuf........
10e80 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 64 69 73 61 62 6c 65 2d 75 6e 64 6f 29 0a 20 20 20 .......(buffer-disable-undo)....
10ea0 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 74 68 ...........(insert.(htmlize-meth
10ec0 6f 64 20 64 6f 63 74 79 70 65 29 20 3f 5c 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 od.doctype).?\n.................
10ee0 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 3c 21 2d 2d 20 43 72 65 61 74 65 64 20 62 79 20 68 ......(format."<!--.Created.by.h
10f00 74 6d 6c 69 7a 65 2d 25 73 20 69 6e 20 25 73 20 6d 6f 64 65 2e 20 2d 2d 3e 5c 6e 22 0a 20 20 20 tmlize-%s.in.%s.mode..-->\n"....
10f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 6d 6c 69 ...........................htmli
10f40 7a 65 2d 76 65 72 73 69 6f 6e 20 68 74 6d 6c 69 7a 65 2d 6f 75 74 70 75 74 2d 74 79 70 65 29 0a ze-version.htmlize-output-type).
10f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3c 68 74 6d 6c 3e 5c 6e 20 ......................"<html>\n.
10f80 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 20 70 6c 61 63 65 73 20 27 68 .")...............(put.places.'h
10fa0 65 61 64 2d 73 74 61 72 74 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 ead-start.(point-marker)).......
10fc0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3c 68 65 61 64 3e 5c 6e 22 0a 20 20 20 20 20 ........(insert."<head>\n"......
10fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 20 20 20 3c 74 69 74 6c 65 3e 22 20 28 ................."....<title>".(
11000 68 74 6d 6c 69 7a 65 2d 70 72 6f 74 65 63 74 2d 73 74 72 69 6e 67 20 74 69 74 6c 65 29 20 22 3c htmlize-protect-string.title)."<
11020 2f 74 69 74 6c 65 3e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /title>\n"......................
11040 20 28 69 66 20 68 74 6d 6c 69 7a 65 2d 68 74 6d 6c 2d 63 68 61 72 73 65 74 0a 20 20 20 20 20 20 .(if.htmlize-html-charset.......
11060 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 20 20 20 20 ....................(format.....
11080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 .......................(concat."
110a0 20 20 20 20 3c 6d 65 74 61 20 68 74 74 70 2d 65 71 75 69 76 3d 5c 22 43 6f 6e 74 65 6e 74 2d 54 ....<meta.http-equiv=\"Content-T
110c0 79 70 65 5c 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype\".".........................
110e0 20 20 20 20 20 20 20 20 20 20 20 22 63 6f 6e 74 65 6e 74 3d 5c 22 74 65 78 74 2f 68 74 6d 6c 3b ..........."content=\"text/html;
11100 20 63 68 61 72 73 65 74 3d 25 73 5c 22 3e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .charset=%s\">\n")..............
11120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 6d 6c 69 7a 65 2d 68 74 6d 6c 2d 63 68 61 72 73 ..............htmlize-html-chars
11140 65 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 22 22 29 0a et)........................."").
11160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 6d 6c 69 7a 65 2d 68 65 ......................htmlize-he
11180 61 64 2d 74 61 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d ad-tags)...............(htmlize-
111a0 6d 65 74 68 6f 64 20 69 6e 73 65 72 74 2d 68 65 61 64 20 62 75 66 66 65 72 2d 66 61 63 65 73 20 method.insert-head.buffer-faces.
111c0 66 61 63 65 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 face-map)...............(insert.
111e0 22 20 20 3c 2f 68 65 61 64 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 20 "..</head>")...............(put.
11200 70 6c 61 63 65 73 20 27 68 65 61 64 2d 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 places.'head-end.(point-marker))
11220 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 20 20 22 29 0a 20 ...............(insert."\n..")..
11240 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 20 70 6c 61 63 65 73 20 27 62 6f 64 79 2d 73 .............(put.places.'body-s
11260 74 61 72 74 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 tart.(point-marker))............
11280 20 20 20 28 69 6e 73 65 72 74 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 74 68 6f 64 20 62 6f 64 79 2d ...(insert.(htmlize-method.body-
112a0 74 61 67 20 66 61 63 65 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tag.face-map)...................
112c0 20 20 20 20 22 5c 6e 20 20 20 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 ...."\n....")...............(put
112e0 20 70 6c 61 63 65 73 20 27 63 6f 6e 74 65 6e 74 2d 73 74 61 72 74 20 28 70 6f 69 6e 74 2d 6d 61 .places.'content-start.(point-ma
11300 72 6b 65 72 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 68 74 rker))...............(insert.(ht
11320 6d 6c 69 7a 65 2d 6d 65 74 68 6f 64 20 70 72 65 2d 74 61 67 20 66 61 63 65 2d 6d 61 70 29 20 22 mlize-method.pre-tag.face-map)."
11340 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 65 78 74 2d 6d 61 \n")).............(let.((text-ma
11360 72 6b 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 47 65 74 20 74 rkup....................;;.Get.t
11380 68 65 20 69 6e 73 65 72 74 65 72 20 6d 65 74 68 6f 64 2c 20 73 6f 20 77 65 20 63 61 6e 20 66 75 he.inserter.method,.so.we.can.fu
113a0 6e 63 61 6c 6c 20 69 74 20 69 6e 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ncall.it.inside.................
113c0 20 20 20 3b 3b 20 74 68 65 20 6c 6f 6f 70 2e 20 20 4e 6f 74 20 63 61 6c 6c 69 6e 67 20 60 68 74 ...;;.the.loop...Not.calling.`ht
113e0 6d 6c 69 7a 65 2d 6d 65 74 68 6f 64 27 20 69 6e 20 74 68 65 20 6c 6f 6f 70 0a 20 20 20 20 20 20 mlize-method'.in.the.loop.......
11400 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 6f 64 79 20 79 69 65 6c 64 73 20 61 20 6d 65 .............;;.body.yields.a.me
11420 61 73 75 72 61 62 6c 65 20 73 70 65 65 64 20 69 6e 63 72 65 61 73 65 2e 0a 20 20 20 20 20 20 20 asurable.speed.increase.........
11440 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 6d 65 74 68 6f 64 2d 66 75 6e 63 ............(htmlize-method-func
11460 74 69 6f 6e 20 27 74 65 78 74 2d 6d 61 72 6b 75 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 tion.'text-markup)).............
11480 20 20 20 20 20 20 3b 3b 20 44 65 63 6c 61 72 65 20 76 61 72 69 61 62 6c 65 73 20 75 73 65 64 20 ......;;.Declare.variables.used.
114a0 69 6e 20 6c 6f 6f 70 20 62 6f 64 79 20 6f 75 74 73 69 64 65 20 74 68 65 20 6c 6f 6f 70 0a 20 20 in.loop.body.outside.the.loop...
114c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 63 61 75 73 65 20 69 74 27 73 20 ................;;.because.it's.
114e0 66 61 73 74 65 72 20 74 6f 20 65 73 74 61 62 6c 69 73 68 20 60 6c 65 74 27 20 62 69 6e 64 69 6e faster.to.establish.`let'.bindin
11500 67 73 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6e 63 gs.only...................;;.onc
11520 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 2d 63 68 61 6e 67 65 e....................next-change
11540 20 74 65 78 74 20 66 61 63 65 2d 6c 69 73 74 20 74 72 61 69 6c 69 6e 67 2d 65 6c 6c 69 70 73 69 .text.face-list.trailing-ellipsi
11560 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 73 74 72 75 63 74 2d 6c 69 73 74 s...................fstruct-list
11580 20 6c 61 73 74 2d 66 73 74 72 75 63 74 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .last-fstruct-list..............
115a0 20 20 20 20 20 28 63 6c 6f 73 65 2d 6d 61 72 6b 75 70 20 28 6c 61 6d 62 64 61 20 28 29 29 29 29 .....(close-markup.(lambda.())))
115c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 6c 6f 6f 70 20 74 72 61 76 ...............;;.This.loop.trav
115e0 65 72 73 65 73 20 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 erses.and.reads.the.source.buffe
11600 72 2c 20 61 70 70 65 6e 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 r,.appending...............;;.th
11620 65 20 72 65 73 75 6c 74 69 6e 67 20 48 54 4d 4c 20 74 6f 20 48 54 4d 4c 42 55 46 2e 20 20 54 68 e.resulting.HTML.to.HTMLBUF...Th
11640 69 73 20 6d 65 74 68 6f 64 20 69 73 20 66 61 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 is.method.is.fast...............
11660 3b 3b 20 62 65 63 61 75 73 65 3a 20 31 29 20 69 74 20 64 6f 65 73 6e 27 74 20 72 65 71 75 69 72 ;;.because:.1).it.doesn't.requir
11680 65 20 65 78 61 6d 69 6e 69 6e 67 20 74 68 65 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 e.examining.the.text............
116a0 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 20 63 68 61 72 20 62 79 20 63 68 61 72 20 28 68 ...;;.properties.char.by.char.(h
116c0 74 6d 6c 69 7a 65 2d 6e 65 78 74 2d 66 61 63 65 2d 63 68 61 6e 67 65 20 69 73 20 75 73 65 64 0a tmlize-next-face-change.is.used.
116e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 6d 6f 76 65 20 62 65 74 77 65 65 6e ..............;;.to.move.between
11700 20 72 75 6e 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 66 61 63 65 29 2c 20 61 6e 64 20 32 .runs.with.the.same.face),.and.2
11720 29 20 69 74 20 64 6f 65 73 6e 27 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 ).it.doesn't...............;;.re
11740 71 75 69 72 65 20 66 72 65 71 75 65 6e 74 20 62 75 66 66 65 72 20 73 77 69 74 63 68 65 73 2c 20 quire.frequent.buffer.switches,.
11760 77 68 69 63 68 20 61 72 65 20 73 6c 6f 77 20 62 65 63 61 75 73 65 0a 20 20 20 20 20 20 20 20 20 which.are.slow.because..........
11780 20 20 20 20 20 3b 3b 20 74 68 65 79 20 72 65 62 69 6e 64 20 61 6c 6c 20 62 75 66 66 65 72 2d 6c .....;;.they.rebind.all.buffer-l
117a0 6f 63 61 6c 20 76 61 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 ocal.vars................(goto-c
117c0 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 har.(point-min))...............(
117e0 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 20 20 20 20 20 while.(not.(eobp))..............
11800 20 20 20 28 73 65 74 71 20 6e 65 78 74 2d 63 68 61 6e 67 65 20 28 68 74 6d 6c 69 7a 65 2d 6e 65 ...(setq.next-change.(htmlize-ne
11820 78 74 2d 66 61 63 65 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 xt-face-change.(point)))........
11840 20 20 20 20 20 20 20 20 20 3b 3b 20 47 65 74 20 66 61 63 65 73 20 69 6e 20 75 73 65 20 62 65 74 .........;;.Get.faces.in.use.bet
11860 77 65 65 6e 20 28 70 6f 69 6e 74 29 20 61 6e 64 20 4e 45 58 54 2d 43 48 41 4e 47 45 2c 20 61 6e ween.(point).and.NEXT-CHANGE,.an
11880 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6e 76 65 72 74 20 74 68 65 d.................;;.convert.the
118a0 6d 20 74 6f 20 66 73 74 72 75 63 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 m.to.fstructs..................(
118c0 73 65 74 71 20 66 61 63 65 2d 6c 69 73 74 20 28 68 74 6d 6c 69 7a 65 2d 66 61 63 65 73 2d 61 74 setq.face-list.(htmlize-faces-at
118e0 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 73 -point).......................fs
11900 74 72 75 63 74 2d 6c 69 73 74 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 20 28 6c 61 truct-list.(delq.nil.(mapcar.(la
11920 6d 62 64 61 20 28 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mbda.(f)........................
11940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11960 28 67 65 74 68 61 73 68 20 66 20 66 61 63 65 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 (gethash.f.face-map))...........
11980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
119a0 20 20 20 20 20 20 20 20 20 20 20 66 61 63 65 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 ...........face-list))).........
119c0 20 20 20 20 20 20 20 20 28 63 6c 2d 6d 75 6c 74 69 70 6c 65 2d 76 61 6c 75 65 2d 73 65 74 71 20 ........(cl-multiple-value-setq.
119e0 28 74 65 78 74 20 74 72 61 69 6c 69 6e 67 2d 65 6c 6c 69 70 73 69 73 29 0a 20 20 20 20 20 20 20 (text.trailing-ellipsis)........
11a00 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 65 78 74 72 61 63 74 2d 74 65 78 74 ...........(htmlize-extract-text
11a20 20 28 70 6f 69 6e 74 29 20 6e 65 78 74 2d 63 68 61 6e 67 65 20 74 72 61 69 6c 69 6e 67 2d 65 6c .(point).next-change.trailing-el
11a40 6c 69 70 73 69 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 lipsis)).................;;.Don'
11a60 74 20 62 6f 74 68 65 72 20 77 72 69 74 69 6e 67 20 61 6e 79 74 68 69 6e 67 20 69 66 20 74 68 65 t.bother.writing.anything.if.the
11a80 72 65 27 73 20 6e 6f 20 74 65 78 74 20 28 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 re's.no.text.(this..............
11aa0 20 20 20 3b 3b 20 68 61 70 70 65 6e 73 20 69 6e 20 69 6e 76 69 73 69 62 6c 65 20 72 65 67 69 6f ...;;.happens.in.invisible.regio
11ac0 6e 73 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c ns)..................(when.(>.(l
11ae0 65 6e 67 74 68 20 74 65 78 74 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ength.text).0)..................
11b00 20 3b 3b 20 4f 70 65 6e 20 74 68 65 20 6e 65 77 20 6d 61 72 6b 75 70 20 69 66 20 6e 65 63 65 73 .;;.Open.the.new.markup.if.neces
11b20 73 61 72 79 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 20 74 65 78 74 2e 0a 20 20 20 20 20 20 sary.and.insert.the.text........
11b40 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 63 6c 2d 65 71 75 61 6c ............(when.(not.(cl-equal
11b60 70 20 66 73 74 72 75 63 74 2d 6c 69 73 74 20 6c 61 73 74 2d 66 73 74 72 75 63 74 2d 6c 69 73 74 p.fstruct-list.last-fstruct-list
11b80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 )).....................(funcall.
11ba0 63 6c 6f 73 65 2d 6d 61 72 6b 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 close-markup)...................
11bc0 20 20 28 73 65 74 71 20 6c 61 73 74 2d 66 73 74 72 75 63 74 2d 6c 69 73 74 20 66 73 74 72 75 63 ..(setq.last-fstruct-list.fstruc
11be0 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 t-list).....................(set
11c00 71 20 63 6c 6f 73 65 2d 6d 61 72 6b 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 q.close-markup..................
11c20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 74 65 78 74 2d 6d 61 72 6b 75 70 20 66 73 .........(funcall.text-markup.fs
11c40 74 72 75 63 74 2d 6c 69 73 74 20 68 74 6d 6c 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 truct-list.htmlbuf)))...........
11c60 20 20 20 20 20 20 20 20 28 70 72 69 6e 63 20 74 65 78 74 20 68 74 6d 6c 62 75 66 29 29 0a 20 20 ........(princ.text.htmlbuf))...
11c80 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 6e 65 78 74 2d 63 68 ..............(goto-char.next-ch
11ca0 61 6e 67 65 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 27 76 65 20 67 ange))................;;.We've.g
11cc0 6f 6e 65 20 74 68 72 6f 75 67 68 20 74 68 65 20 62 75 66 66 65 72 3b 20 63 6c 6f 73 65 20 74 68 one.through.the.buffer;.close.th
11ce0 65 20 6d 61 72 6b 75 70 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 e.markup.from...............;;.t
11d00 68 65 20 6c 61 73 74 20 72 75 6e 2c 20 69 66 20 61 6e 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 he.last.run,.if.any.............
11d20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 6c 6f 73 65 2d 6d 61 72 6b 75 70 29 29 0a 0a 20 20 20 20 ...(funcall.close-markup))......
11d40 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 74 68 65 20 65 70 69 6c 6f 67 20 61 6e 64 ........;;.Insert.the.epilog.and
11d60 20 70 6f 73 74 2d 70 72 6f 63 65 73 73 20 74 68 65 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 .post-process.the.buffer........
11d80 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 68 74 6d 6c 62 ......(with-current-buffer.htmlb
11da0 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3c 2f 70 72 65 3e uf...............(insert."</pre>
11dc0 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 20 70 6c 61 63 65 73 20 27 63 6f ")...............(put.places.'co
11de0 6e 74 65 6e 74 2d 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 ntent-end.(point-marker)).......
11e00 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 20 20 3c 2f 62 6f 64 79 3e 22 29 0a 20 ........(insert."\n..</body>")..
11e20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 20 70 6c 61 63 65 73 20 27 62 6f 64 79 2d 65 .............(put.places.'body-e
11e40 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.(point-marker))..............
11e60 20 28 69 6e 73 65 72 74 20 22 5c 6e 3c 2f 68 74 6d 6c 3e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 .(insert."\n</html>\n").........
11e80 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 64 65 66 61 6e 67 2d 6c 6f 63 61 6c 2d 76 61 72 69 ......(htmlize-defang-local-vari
11ea0 61 62 6c 65 73 29 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 ables)...............(goto-char.
11ec0 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e (point-min))...............(when
11ee0 20 68 74 6d 6c 69 7a 65 2d 68 74 6d 6c 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 .htmlize-html-major-mode........
11f00 20 20 20 20 20 20 20 20 20 3b 3b 20 57 68 61 74 20 73 75 63 6b 73 20 61 62 6f 75 74 20 74 68 69 .........;;.What.sucks.about.thi
11f20 73 20 69 73 20 74 68 61 74 20 74 68 65 20 6d 69 6e 6f 72 20 6d 6f 64 65 73 2c 20 6d 6f 73 74 20 s.is.that.the.minor.modes,.most.
11f40 6e 6f 74 61 62 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 6e 74 2d notably.................;;.font-
11f60 6c 6f 63 6b 2d 6d 6f 64 65 2c 20 77 6f 6e 27 74 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 64 2e lock-mode,.won't.be.initialized.
11f80 20 20 4f 68 20 77 65 6c 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 ..Oh.well..................(func
11fa0 61 6c 6c 20 68 74 6d 6c 69 7a 65 2d 68 74 6d 6c 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 29 29 0a 20 20 all.htmlize-html-major-mode))...
11fc0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 ............(set.(make-local-var
11fe0 69 61 62 6c 65 20 27 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 2d 70 6c 61 63 65 73 29 0a 20 20 iable.'htmlize-buffer-places)...
12000 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 70 6c 69 73 74 20 70 .................(symbol-plist.p
12020 6c 61 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 laces))...............(run-hooks
12040 20 27 68 74 6d 6c 69 7a 65 2d 61 66 74 65 72 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 .'htmlize-after-hook)...........
12060 20 20 20 20 28 62 75 66 66 65 72 2d 65 6e 61 62 6c 65 2d 75 6e 64 6f 29 29 0a 20 20 20 20 20 20 ....(buffer-enable-undo)).......
12080 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 6c 65 74 65 64 20 74 29 0a 20 20 20 20 20 20 20 ......(setq.completed.t)........
120a0 20 20 20 20 20 68 74 6d 6c 62 75 66 29 0a 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f .....htmlbuf)..........(when.(no
120c0 74 20 63 6f 6d 70 6c 65 74 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 t.completed)...........(kill-buf
120e0 66 65 72 20 68 74 6d 6c 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 64 fer.htmlbuf)).........(htmlize-d
12100 65 6c 65 74 65 2d 74 6d 70 2d 6f 76 65 72 6c 61 79 73 29 29 29 29 29 0a 0a 3b 3b 20 55 74 69 6c elete-tmp-overlays)))))..;;.Util
12120 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 28 64 65 66 6d 61 63 72 6f 20 68 74 6d 6c 69 7a ity.functions...(defmacro.htmliz
12140 65 2d 77 69 74 68 2d 66 6f 6e 74 69 66 79 2d 6d 65 73 73 61 67 65 20 28 26 72 65 73 74 20 62 6f e-with-fontify-message.(&rest.bo
12160 64 79 29 0a 20 20 3b 3b 20 57 68 65 6e 20 66 6f 72 63 69 6e 67 20 66 6f 6e 74 69 66 69 63 61 74 dy)...;;.When.forcing.fontificat
12180 69 6f 6e 20 6f 66 20 6c 61 72 67 65 20 62 75 66 66 65 72 73 20 69 6e 0a 20 20 3b 3b 20 68 74 6d ion.of.large.buffers.in...;;.htm
121a0 6c 69 7a 65 2d 65 6e 73 75 72 65 2d 66 6f 6e 74 69 66 69 65 64 2c 20 69 6e 66 6f 72 6d 20 74 68 lize-ensure-fontified,.inform.th
121c0 65 20 75 73 65 72 20 74 68 61 74 20 68 65 20 69 73 20 77 61 69 74 69 6e 67 20 66 6f 72 0a 20 20 e.user.that.he.is.waiting.for...
121e0 3b 3b 20 66 6f 6e 74 2d 6c 6f 63 6b 2c 20 6e 6f 74 20 66 6f 72 20 68 74 6d 6c 69 7a 65 20 74 6f ;;.font-lock,.not.for.htmlize.to
12200 20 66 69 6e 69 73 68 2e 0a 20 20 60 28 70 72 6f 67 6e 0a 20 20 20 20 20 28 69 66 20 28 3e 20 28 .finish....`(progn......(if.(>.(
12220 62 75 66 66 65 72 2d 73 69 7a 65 29 20 36 35 35 33 36 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 buffer-size).65536)..........(me
12240 73 73 61 67 65 20 22 46 6f 72 63 69 6e 67 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 ssage."Forcing.fontification.of.
12260 25 73 2e 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 %s..."...................(buffer
12280 2d 6e 61 6d 65 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 2c -name.(current-buffer))))......,
122a0 40 62 6f 64 79 0a 20 20 20 20 20 28 69 66 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 @body......(if.(>.(buffer-size).
122c0 36 35 35 33 36 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 46 6f 72 63 69 6e 65536)..........(message."Forcin
122e0 67 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 25 73 2e 2e 2e 64 6f 6e 65 22 0a 20 20 g.fontification.of.%s...done"...
12300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 63 75 ................(buffer-name.(cu
12320 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 rrent-buffer))))))..(defun.htmli
12340 7a 65 2d 65 6e 73 75 72 65 2d 66 6f 6e 74 69 66 69 65 64 20 28 29 0a 20 20 3b 3b 20 49 66 20 66 ze-ensure-fontified.()...;;.If.f
12360 6f 6e 74 2d 6c 6f 63 6b 20 69 73 20 62 65 69 6e 67 20 75 73 65 64 2c 20 65 6e 73 75 72 65 20 74 ont-lock.is.being.used,.ensure.t
12380 68 61 74 20 74 68 65 20 22 73 75 70 70 6f 72 74 22 20 6d 6f 64 65 73 0a 20 20 3b 3b 20 61 63 74 hat.the."support".modes...;;.act
123a0 75 61 6c 6c 79 20 66 6f 6e 74 69 66 79 20 74 68 65 20 62 75 66 66 65 72 2e 20 20 49 66 20 66 6f ually.fontify.the.buffer...If.fo
123c0 6e 74 2d 6c 6f 63 6b 20 69 73 20 6e 6f 74 20 69 6e 20 75 73 65 2c 20 77 65 0a 20 20 3b 3b 20 64 nt-lock.is.not.in.use,.we...;;.d
123e0 6f 6e 27 74 20 63 61 72 65 20 62 65 63 61 75 73 65 2c 20 65 78 63 65 70 74 20 69 6e 20 68 74 6d on't.care.because,.except.in.htm
12400 6c 69 7a 65 2d 66 69 6c 65 2c 20 77 65 20 64 6f 6e 27 74 20 66 6f 72 63 65 0a 20 20 3b 3b 20 66 lize-file,.we.don't.force...;;.f
12420 6f 6e 74 2d 6c 6f 63 6b 20 6f 6e 20 74 68 65 20 75 73 65 72 2e 0a 20 20 28 77 68 65 6e 20 66 6f ont-lock.on.the.user....(when.fo
12440 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 0a 20 20 20 20 3b 3b 20 49 6e 20 70 61 72 74 20 74 61 6b 65 nt-lock-mode.....;;.In.part.take
12460 6e 20 66 72 6f 6d 20 70 73 2d 70 72 69 6e 74 2d 65 6e 73 75 72 65 2d 66 6f 6e 74 69 66 69 65 64 n.from.ps-print-ensure-fontified
12480 20 69 6e 20 47 4e 55 20 45 6d 61 63 73 20 32 31 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 .in.GNU.Emacs.21......(when.(and
124a0 20 28 62 6f 75 6e 64 70 20 27 6a 69 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 .(boundp.'jit-lock-mode)........
124c0 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 27 6a 69 74 2d 6c 6f 63 6b 2d ........(symbol-value.'jit-lock-
124e0 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 77 69 74 68 2d 66 6f 6e 74 69 mode)).......(htmlize-with-fonti
12500 66 79 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 28 6a 69 74 2d 6c 6f 63 6b 2d 66 6f 6e 74 fy-message........(jit-lock-font
12520 69 66 79 2d 6e 6f 77 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 ify-now.(point-min).(point-max))
12540 29 29 0a 0a 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d ))......(if.(fboundp.'font-lock-
12560 65 6e 73 75 72 65 29 0a 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 65 6e 73 75 72 ensure).........(font-lock-ensur
12580 65 29 0a 20 20 20 20 20 20 3b 3b 20 45 6d 61 63 73 20 70 72 69 6f 72 20 74 6f 20 32 35 2e 31 0a e).......;;.Emacs.prior.to.25.1.
125a0 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 ......(with-no-warnings.........
125c0 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 20 20 28 66 6f 6e 74 (font-lock-mode.1).........(font
125e0 2d 6c 6f 63 6b 2d 66 6f 6e 74 69 66 79 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b -lock-fontify-buffer)))))....;;;
12600 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 ###autoload.(defun.htmlize-buffe
12620 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 66 65 72 20 69 6e 74 65 72 61 63 74 69 76 65 29 r.(&optional.buffer.interactive)
12640 0a 20 20 22 43 6f 6e 76 65 72 74 20 42 55 46 46 45 52 20 74 6f 20 48 54 4d 4c 2c 20 70 72 65 73 ..."Convert.BUFFER.to.HTML,.pres
12660 65 72 76 69 6e 67 20 63 6f 6c 6f 72 73 20 61 6e 64 20 64 65 63 6f 72 61 74 69 6f 6e 73 2e 0a 0a erving.colors.and.decorations...
12680 54 68 65 20 67 65 6e 65 72 61 74 65 64 20 48 54 4d 4c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 The.generated.HTML.is.available.
126a0 69 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 2c 20 77 68 69 63 68 20 69 73 20 72 65 74 75 72 6e in.a.new.buffer,.which.is.return
126c0 65 64 2e 0a 57 68 65 6e 20 69 6e 76 6f 6b 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 28 ed..When.invoked.interactively.(
126e0 6f 72 20 69 66 20 6f 70 74 69 6f 6e 61 6c 20 49 4e 54 45 52 41 43 54 49 56 45 20 69 73 20 6e 6f or.if.optional.INTERACTIVE.is.no
12700 6e 2d 6e 69 6c 29 2c 0a 74 68 65 20 6e 65 77 20 62 75 66 66 65 72 20 69 73 20 73 65 6c 65 63 74 n-nil),.the.new.buffer.is.select
12720 65 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 69 6e 64 6f 77 2e 20 20 54 68 65 20 74 ed.in.the.current.window...The.t
12740 69 74 6c 65 20 6f 66 20 74 68 65 0a 67 65 6e 65 72 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 20 77 itle.of.the.generated.document.w
12760 69 6c 6c 20 62 65 20 73 65 74 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 27 73 20 66 69 6c 65 20 ill.be.set.to.the.buffer's.file.
12780 6e 61 6d 65 20 6f 72 2c 20 69 66 20 74 68 61 74 0a 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c name.or,.if.that.is.not.availabl
127a0 65 2c 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 27 73 20 6e 61 6d 65 2e 0a 0a 4e 6f 74 65 20 74 e,.to.the.buffer's.name...Note.t
127c0 68 61 74 20 68 74 6d 6c 69 7a 65 20 64 6f 65 73 6e 27 74 20 66 6f 6e 74 69 66 79 20 79 6f 75 72 hat.htmlize.doesn't.fontify.your
127e0 20 62 75 66 66 65 72 73 2c 20 69 74 20 6f 6e 6c 79 20 75 73 65 73 20 74 68 65 0a 64 65 63 6f 72 .buffers,.it.only.uses.the.decor
12800 61 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 61 6c 72 65 61 64 79 20 70 72 65 73 65 6e 74 2e ations.that.are.already.present.
12820 20 20 49 66 20 79 6f 75 20 64 6f 6e 27 74 20 73 65 74 20 75 70 20 66 6f 6e 74 2d 6c 6f 63 6b 20 ..If.you.don't.set.up.font-lock.
12840 6f 72 0a 73 6f 6d 65 74 68 69 6e 67 20 65 6c 73 65 20 74 6f 20 66 6f 6e 74 69 66 79 20 79 6f 75 or.something.else.to.fontify.you
12860 72 20 62 75 66 66 65 72 73 2c 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 48 54 4d 4c 20 77 69 r.buffers,.the.resulting.HTML.wi
12880 6c 6c 20 62 65 0a 70 6c 61 69 6e 2e 20 20 4c 69 6b 65 77 69 73 65 2c 20 69 66 20 79 6f 75 20 64 ll.be.plain...Likewise,.if.you.d
128a0 6f 6e 27 74 20 6c 69 6b 65 20 74 68 65 20 63 68 6f 69 63 65 20 6f 66 20 63 6f 6c 6f 72 73 2c 20 on't.like.the.choice.of.colors,.
128c0 66 69 78 20 74 68 65 20 6d 6f 64 65 0a 74 68 61 74 20 63 72 65 61 74 65 64 20 74 68 65 6d 2c 20 fix.the.mode.that.created.them,.
128e0 6f 72 20 73 69 6d 70 6c 79 20 61 6c 74 65 72 20 74 68 65 20 66 61 63 65 73 20 69 74 20 75 73 65 or.simply.alter.the.faces.it.use
12900 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 69 5c 6e 70 22 29 0a 20 20 28 6c 65 s."...(interactive."i\np")...(le
12920 74 20 28 28 68 74 6d 6c 62 75 66 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 t.((htmlbuf.(with-current-buffer
12940 20 28 6f 72 20 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 .(or.buffer.(current-buffer))...
12960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 .................(htmlize-buffer
12980 2d 31 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 -1)))).....(when.interactive....
129a0 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 68 74 6d 6c 62 75 66 29 29 0a 20 ...(switch-to-buffer.htmlbuf))..
129c0 20 20 20 68 74 6d 6c 62 75 66 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 ...htmlbuf))..;;;###autoload.(de
129e0 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 72 65 67 69 6f 6e 20 28 62 65 67 20 65 6e 64 20 26 6f 70 74 fun.htmlize-region.(beg.end.&opt
12a00 69 6f 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 74 68 ional.interactive)..."Convert.th
12a20 65 20 72 65 67 69 6f 6e 20 74 6f 20 48 54 4d 4c 2c 20 70 72 65 73 65 72 76 69 6e 67 20 63 6f 6c e.region.to.HTML,.preserving.col
12a40 6f 72 73 20 61 6e 64 20 64 65 63 6f 72 61 74 69 6f 6e 73 2e 0a 53 65 65 20 60 68 74 6d 6c 69 7a ors.and.decorations..See.`htmliz
12a60 65 2d 62 75 66 66 65 72 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 28 69 6e 74 65 72 e-buffer'.for.details."...(inter
12a80 61 63 74 69 76 65 20 22 72 5c 6e 70 22 29 0a 20 20 3b 3b 20 44 6f 6e 27 74 20 6c 65 74 20 7a 6d active."r\np")...;;.Don't.let.zm
12aa0 61 63 73 20 72 65 67 69 6f 6e 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 65 6e 64 20 75 70 20 69 acs.region.highlighting.end.up.i
12ac0 6e 20 48 54 4d 4c 2e 0a 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 7a 6d 61 63 73 2d n.HTML....(when.(fboundp.'zmacs-
12ae0 64 65 61 63 74 69 76 61 74 65 2d 72 65 67 69 6f 6e 29 0a 20 20 20 20 28 7a 6d 61 63 73 2d 64 65 deactivate-region).....(zmacs-de
12b00 61 63 74 69 76 61 74 65 2d 72 65 67 69 6f 6e 29 29 0a 20 20 28 6c 65 74 20 28 28 68 74 6d 6c 62 activate-region))...(let.((htmlb
12b20 75 66 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 uf.(save-restriction............
12b40 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 62 65 67 20 65 6e ........(narrow-to-region.beg.en
12b60 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 69 7a 65 2d 62 d)....................(htmlize-b
12b80 75 66 66 65 72 2d 31 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 74 65 72 61 63 74 69 76 uffer-1)))).....(when.interactiv
12ba0 65 0a 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 68 74 6d 6c 62 75 e.......(switch-to-buffer.htmlbu
12bc0 66 29 29 0a 20 20 20 20 68 74 6d 6c 62 75 66 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a f)).....htmlbuf))..(defun.htmliz
12be0 65 2d 72 65 67 69 6f 6e 2d 66 6f 72 2d 70 61 73 74 65 20 28 62 65 67 20 65 6e 64 29 0a 20 20 22 e-region-for-paste.(beg.end)..."
12c00 48 74 6d 6c 69 7a 65 20 74 68 65 20 72 65 67 69 6f 6e 20 61 6e 64 20 72 65 74 75 72 6e 20 6a 75 Htmlize.the.region.and.return.ju
12c20 73 74 20 74 68 65 20 48 54 4d 4c 20 61 73 20 61 20 73 74 72 69 6e 67 2e 0a 54 68 69 73 20 66 6f st.the.HTML.as.a.string..This.fo
12c40 72 63 65 73 20 74 68 65 20 60 69 6e 6c 69 6e 65 2d 63 73 73 27 20 73 74 79 6c 65 20 61 6e 64 20 rces.the.`inline-css'.style.and.
12c60 6f 6e 6c 79 20 72 65 74 75 72 6e 73 20 74 68 65 20 48 54 4d 4c 20 62 6f 64 79 2c 0a 62 75 74 20 only.returns.the.HTML.body,.but.
12c80 77 69 74 68 6f 75 74 20 74 68 65 20 42 4f 44 59 20 74 61 67 2e 20 20 54 68 69 73 20 73 68 6f 75 without.the.BODY.tag...This.shou
12ca0 6c 64 20 6d 61 6b 65 20 69 74 20 75 73 65 66 75 6c 20 66 6f 72 20 69 6e 73 65 72 74 69 6e 67 0a ld.make.it.useful.for.inserting.
12cc0 74 68 65 20 74 65 78 74 20 74 6f 20 61 6e 6f 74 68 65 72 20 48 54 4d 4c 20 62 75 66 66 65 72 2e the.text.to.another.HTML.buffer.
12ce0 22 0a 20 20 28 6c 65 74 2a 20 28 28 68 74 6d 6c 69 7a 65 2d 6f 75 74 70 75 74 2d 74 79 70 65 20 "...(let*.((htmlize-output-type.
12d00 27 69 6e 6c 69 6e 65 2d 63 73 73 29 0a 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c 62 75 66 20 28 'inline-css)..........(htmlbuf.(
12d20 68 74 6d 6c 69 7a 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 29 29 0a 20 20 20 20 28 75 htmlize-region.beg.end))).....(u
12d40 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 nwind-protect.........(with-curr
12d60 65 6e 74 2d 62 75 66 66 65 72 20 68 74 6d 6c 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 62 75 ent-buffer.htmlbuf...........(bu
12d80 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 68 74 6d 6c 69 7a ffer-substring.(plist-get.htmliz
12da0 65 2d 62 75 66 66 65 72 2d 70 6c 61 63 65 73 20 27 63 6f 6e 74 65 6e 74 2d 73 74 61 72 74 29 0a e-buffer-places.'content-start).
12dc0 20 20 20 20 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 70 6c 69 ............................(pli
12de0 73 74 2d 67 65 74 20 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 2d 70 6c 61 63 65 73 20 27 63 6f st-get.htmlize-buffer-places.'co
12e00 6e 74 65 6e 74 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 ntent-end))).......(kill-buffer.
12e20 68 74 6d 6c 62 75 66 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 72 65 67 69 htmlbuf))))..(defun.htmlize-regi
12e40 6f 6e 2d 73 61 76 65 2d 73 63 72 65 65 6e 73 68 6f 74 20 28 62 65 67 20 65 6e 64 29 0a 20 20 22 on-save-screenshot.(beg.end)..."
12e60 53 61 76 65 20 74 68 65 20 68 74 6d 6c 69 7a 65 64 20 28 73 65 65 20 60 68 74 6d 6c 69 7a 65 2d Save.the.htmlized.(see.`htmlize-
12e80 72 65 67 69 6f 6e 2d 66 6f 72 2d 70 61 73 74 65 27 29 20 72 65 67 69 6f 6e 20 69 6e 0a 74 68 65 region-for-paste').region.in.the
12ea0 20 6b 69 6c 6c 20 72 69 6e 67 2e 20 55 73 65 73 20 60 69 6e 6c 69 6e 65 2d 63 73 73 27 2c 20 77 .kill.ring..Uses.`inline-css',.w
12ec0 69 74 68 20 73 74 79 6c 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 0a 60 3c 70 72 65 3e 27 ith.style.information.in.`<pre>'
12ee0 20 74 61 67 73 2c 20 73 6f 20 74 68 61 74 20 74 68 65 20 72 65 6e 64 65 72 69 6e 67 20 6f 66 20 .tags,.so.that.the.rendering.of.
12f00 74 68 65 20 6d 61 72 6b 65 64 20 75 70 20 74 65 78 74 0a 61 70 70 72 6f 78 69 6d 61 74 65 73 20 the.marked.up.text.approximates.
12f20 74 68 65 20 62 75 66 66 65 72 20 61 73 20 63 6c 6f 73 65 6c 79 20 61 73 20 70 6f 73 73 69 62 6c the.buffer.as.closely.as.possibl
12f40 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 72 22 29 0a 20 20 28 6c 65 74 20 28 e."...(interactive."r")...(let.(
12f60 28 68 74 6d 6c 69 7a 65 2d 70 72 65 2d 73 74 79 6c 65 20 74 29 29 0a 20 20 20 20 28 6b 69 6c 6c (htmlize-pre-style.t)).....(kill
12f80 2d 6e 65 77 20 28 68 74 6d 6c 69 7a 65 2d 72 65 67 69 6f 6e 2d 66 6f 72 2d 70 61 73 74 65 20 62 -new.(htmlize-region-for-paste.b
12fa0 65 67 20 65 6e 64 29 29 29 0a 20 20 28 64 65 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 29 0a 0a eg.end)))...(deactivate-mark))..
12fc0 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 (defun.htmlize-make-file-name.(f
12fe0 69 6c 65 29 0a 20 20 22 4d 61 6b 65 20 61 6e 20 48 54 4d 4c 20 66 69 6c 65 20 6e 61 6d 65 20 66 ile)..."Make.an.HTML.file.name.f
13000 72 6f 6d 20 46 49 4c 45 2e 0a 0a 49 6e 20 69 74 73 20 64 65 66 61 75 6c 74 20 69 6d 70 6c 65 6d rom.FILE...In.its.default.implem
13020 65 6e 74 61 74 69 6f 6e 2c 20 74 68 69 73 20 73 69 6d 70 6c 79 20 61 70 70 65 6e 64 73 20 60 2e entation,.this.simply.appends.`.
13040 68 74 6d 6c 27 20 74 6f 20 46 49 4c 45 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 html'.to.FILE..This.function.is.
13060 63 61 6c 6c 65 64 20 62 79 20 68 74 6d 6c 69 7a 65 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 called.by.htmlize.to.create.the.
13080 62 75 66 66 65 72 20 66 69 6c 65 20 6e 61 6d 65 2c 20 61 6e 64 0a 62 79 20 60 68 74 6d 6c 69 7a buffer.file.name,.and.by.`htmliz
130a0 65 2d 66 69 6c 65 27 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 74 61 72 67 65 74 20 66 69 6c e-file'.to.create.the.target.fil
130c0 65 20 6e 61 6d 65 2e 0a 0a 4d 6f 72 65 20 65 6c 61 62 6f 72 61 74 65 20 74 72 61 6e 73 66 6f 72 e.name...More.elaborate.transfor
130e0 6d 61 74 69 6f 6e 73 20 61 72 65 20 63 6f 6e 63 65 69 76 61 62 6c 65 2c 20 73 75 63 68 20 61 73 mations.are.conceivable,.such.as
13100 20 63 68 61 6e 67 69 6e 67 20 46 49 4c 45 27 73 0a 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 60 2e .changing.FILE's.extension.to.`.
13120 68 74 6d 6c 27 20 28 5c 22 66 69 6c 65 2e 63 5c 22 20 2d 3e 20 5c 22 66 69 6c 65 2e 68 74 6d 6c html'.(\"file.c\".->.\"file.html
13140 5c 22 29 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 68 65 6d 2c 0a 6f 76 65 72 6c 6f 61 64 \")...If.you.want.them,.overload
13160 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 64 6f 20 69 74 20 61 6e 64 20 68 74 6d 6c .this.function.to.do.it.and.html
13180 69 7a 65 20 77 69 6c 6c 20 63 6f 6d 70 6c 79 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 66 69 6c 65 ize.will.comply."...(concat.file
131a0 20 22 2e 68 74 6d 6c 22 29 29 0a 0a 3b 3b 20 4f 6c 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 61 74 .".html"))..;;.Older.implementat
131c0 69 6f 6e 20 6f 66 20 68 74 6d 6c 69 7a 65 2d 6d 61 6b 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 74 68 ion.of.htmlize-make-file-name.th
131e0 61 74 20 63 68 61 6e 67 65 73 20 46 49 4c 45 27 73 0a 3b 3b 20 65 78 74 65 6e 73 69 6f 6e 20 74 at.changes.FILE's.;;.extension.t
13200 6f 20 22 2e 68 74 6d 6c 22 2e 0a 3b 3b 20 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6d 61 6b o.".html"..;;.(defun.htmlize-mak
13220 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 29 0a 3b 3b 20 20 28 6c 65 74 20 28 28 65 78 e-file-name.(file).;;..(let.((ex
13240 74 65 6e 73 69 6f 6e 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 66 69 6c tension.(file-name-extension.fil
13260 65 29 29 0a 3b 3b 20 20 20 20 20 20 28 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20 28 66 69 6c e)).;;......(sans-extension.(fil
13280 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20 66 69 6c 65 29 29 29 0a 3b 3b e-name-sans-extension.file))).;;
132a0 20 20 20 20 28 69 66 20 28 6f 72 20 28 65 71 75 61 6c 20 65 78 74 65 6e 73 69 6f 6e 20 22 68 74 ....(if.(or.(equal.extension."ht
132c0 6d 6c 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 65 78 74 65 6e 73 69 6f ml").;;..........(equal.extensio
132e0 6e 20 22 68 74 6d 22 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 73 61 6e 73 n."htm").;;..........(equal.sans
13300 2d 65 78 74 65 6e 73 69 6f 6e 20 22 22 29 29 0a 3b 3b 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 -extension."")).;;......(concat.
13320 66 69 6c 65 20 22 2e 68 74 6d 6c 22 29 0a 3b 3b 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 73 61 file.".html").;;......(concat.sa
13340 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20 22 2e 68 74 6d 6c 22 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 ns-extension.".html"))))..;;;###
13360 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 66 69 6c 65 20 28 66 69 autoload.(defun.htmlize-file.(fi
13380 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 74 61 72 67 65 74 29 0a 20 20 22 4c 6f 61 64 20 46 49 4c le.&optional.target)..."Load.FIL
133a0 45 2c 20 66 6f 6e 74 69 66 79 20 69 74 2c 20 63 6f 6e 76 65 72 74 20 69 74 20 74 6f 20 48 54 4d E,.fontify.it,.convert.it.to.HTM
133c0 4c 2c 20 61 6e 64 20 73 61 76 65 20 74 68 65 20 72 65 73 75 6c 74 2e 0a 0a 43 6f 6e 74 65 6e 74 L,.and.save.the.result...Content
133e0 73 20 6f 66 20 46 49 4c 45 20 61 72 65 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 61 20 74 65 s.of.FILE.are.inserted.into.a.te
13400 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 2c 20 77 68 6f 73 65 20 6d 61 6a 6f 72 20 6d 6f 64 65 mporary.buffer,.whose.major.mode
13420 0a 69 73 20 73 65 74 20 77 69 74 68 20 60 6e 6f 72 6d 61 6c 2d 6d 6f 64 65 27 20 61 73 20 61 70 .is.set.with.`normal-mode'.as.ap
13440 70 72 6f 70 72 69 61 74 65 20 66 6f 72 20 74 68 65 20 66 69 6c 65 20 74 79 70 65 2e 20 20 54 68 propriate.for.the.file.type...Th
13460 65 20 62 75 66 66 65 72 0a 69 73 20 73 75 62 73 65 71 75 65 6e 74 6c 79 20 66 6f 6e 74 69 66 69 e.buffer.is.subsequently.fontifi
13480 65 64 20 77 69 74 68 20 60 66 6f 6e 74 2d 6c 6f 63 6b 27 20 61 6e 64 20 63 6f 6e 76 65 72 74 65 ed.with.`font-lock'.and.converte
134a0 64 20 74 6f 20 48 54 4d 4c 2e 20 20 4e 6f 74 65 0a 74 68 61 74 2c 20 75 6e 6c 69 6b 65 20 60 68 d.to.HTML...Note.that,.unlike.`h
134c0 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 27 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 78 tmlize-buffer',.this.function.ex
134e0 70 6c 69 63 69 74 6c 79 20 74 75 72 6e 73 20 6f 6e 0a 66 6f 6e 74 2d 6c 6f 63 6b 2e 20 20 49 66 plicitly.turns.on.font-lock...If
13500 20 61 20 66 6f 72 6d 20 6f 66 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 6f 74 68 65 72 20 74 68 .a.form.of.highlighting.other.th
13520 61 6e 20 66 6f 6e 74 2d 6c 6f 63 6b 20 69 73 20 64 65 73 69 72 65 64 2c 0a 70 6c 65 61 73 65 20 an.font-lock.is.desired,.please.
13540 75 73 65 20 60 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 27 20 64 69 72 65 63 74 6c 79 20 6f 6e use.`htmlize-buffer'.directly.on
13560 20 62 75 66 66 65 72 73 20 73 6f 20 68 69 67 68 6c 69 67 68 74 65 64 2e 0a 0a 42 75 66 66 65 72 .buffers.so.highlighted...Buffer
13580 73 20 63 75 72 72 65 6e 74 6c 79 20 76 69 73 69 74 69 6e 67 20 46 49 4c 45 20 61 72 65 20 75 6e s.currently.visiting.FILE.are.un
135a0 61 66 66 65 63 74 65 64 20 62 79 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 20 20 54 68 65 0a affected.by.this.function...The.
135c0 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 63 68 61 6e 67 65 20 63 75 72 72 65 6e 74 function.does.not.change.current
135e0 20 62 75 66 66 65 72 20 6f 72 20 6d 6f 76 65 20 74 68 65 20 70 6f 69 6e 74 2e 0a 0a 49 66 20 54 .buffer.or.move.the.point...If.T
13600 41 52 47 45 54 20 69 73 20 73 70 65 63 69 66 69 65 64 20 61 6e 64 20 6e 61 6d 65 73 20 61 20 64 ARGET.is.specified.and.names.a.d
13620 69 72 65 63 74 6f 72 79 2c 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 66 69 6c 65 20 77 69 6c irectory,.the.resulting.file.wil
13640 6c 20 62 65 0a 73 61 76 65 64 20 74 68 65 72 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 6f 20 46 l.be.saved.there.instead.of.to.F
13660 49 4c 45 27 73 20 64 69 72 65 63 74 6f 72 79 2e 20 20 49 66 20 54 41 52 47 45 54 20 69 73 20 73 ILE's.directory...If.TARGET.is.s
13680 70 65 63 69 66 69 65 64 20 61 6e 64 0a 64 6f 65 73 20 6e 6f 74 20 6e 61 6d 65 20 61 20 64 69 72 pecified.and.does.not.name.a.dir
136a0 65 63 74 6f 72 79 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 61 73 20 6f 75 74 70 75 ectory,.it.will.be.used.as.outpu
136c0 74 20 66 69 6c 65 20 6e 61 6d 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 t.file.name."...(interactive.(li
136e0 73 74 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 st.(read-file-name..............
13700 20 20 20 20 20 20 20 20 20 22 48 54 4d 4c 2d 69 7a 65 20 66 69 6c 65 3a 20 22 0a 20 20 20 20 20 ........."HTML-ize.file:."......
13720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 20 28 61 6e .................nil.nil.nil.(an
13740 64 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 d.(buffer-file-name)............
13760 20 20 20 20 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 66 69 6c ............................(fil
13780 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 e-name-nondirectory.............
137a0 20 20 20 20 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 ............................(buf
137c0 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 6f 75 74 fer-file-name))))))...(let.((out
137e0 70 75 74 2d 66 69 6c 65 20 28 69 66 20 28 61 6e 64 20 74 61 72 67 65 74 20 28 6e 6f 74 20 28 66 put-file.(if.(and.target.(not.(f
13800 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 74 61 72 67 65 74 29 29 29 0a 20 20 20 20 20 20 ile-directory-p.target))).......
13820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 74 0a 20 20 20 20 20 20 ...................target.......
13840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 .................(expand-file-na
13860 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 6d 6c me.........................(html
13880 69 7a 65 2d 6d 61 6b 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f ize-make-file-name.(file-name-no
138a0 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ndirectory.file))...............
138c0 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 74 61 72 67 65 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d ..........(or.target.(file-name-
138e0 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 directory.file))))).........;;.T
13900 72 79 20 74 6f 20 70 72 65 76 65 6e 74 20 60 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 ry.to.prevent.`find-file-noselec
13920 74 27 20 66 72 6f 6d 20 74 72 69 67 67 65 72 69 6e 67 0a 20 20 20 20 20 20 20 20 3b 3b 20 66 6f t'.from.triggering.........;;.fo
13940 6e 74 2d 6c 6f 63 6b 20 62 65 63 61 75 73 65 20 77 65 27 6c 6c 20 66 6f 6e 74 69 66 79 20 65 78 nt-lock.because.we'll.fontify.ex
13960 70 6c 69 63 69 74 6c 79 20 62 65 6c 6f 77 2e 0a 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f plicitly.below..........(font-lo
13980 63 6b 2d 6d 6f 64 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d ck-mode.nil).........(font-lock-
139a0 61 75 74 6f 2d 66 6f 6e 74 69 66 79 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 67 6c 6f 62 61 auto-fontify.nil).........(globa
139c0 6c 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 69 74 68 l-font-lock-mode.nil)).....(with
139e0 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 46 49 4c -temp-buffer.......;;.Insert.FIL
13a00 45 20 69 6e 74 6f 20 74 68 65 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 2e 0a 20 20 20 E.into.the.temporary.buffer.....
13a20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 69 6c 65 29 0a 20 ...(insert-file-contents.file)..
13a40 20 20 20 20 20 3b 3b 20 53 65 74 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 20 73 6f 20 6e 6f 72 .....;;.Set.the.file.name.so.nor
13a60 6d 61 6c 2d 6d 6f 64 65 20 61 6e 64 20 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 2d 31 20 70 69 mal-mode.and.htmlize-buffer-1.pi
13a80 63 6b 20 69 74 0a 20 20 20 20 20 20 3b 3b 20 75 70 2e 20 20 52 65 73 74 6f 72 65 20 69 74 20 61 ck.it.......;;.up...Restore.it.a
13aa0 66 74 65 72 77 61 72 64 73 20 73 6f 20 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 27 73 20 fterwards.so.with-temp-buffer's.
13ac0 6b 69 6c 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 3b 3b 20 64 6f 65 73 6e 27 74 20 63 6f 6d kill-buffer.......;;.doesn't.com
13ae0 70 6c 61 69 6e 20 61 62 6f 75 74 20 6b 69 6c 6c 69 6e 67 20 61 20 6d 6f 64 69 66 69 65 64 20 62 plain.about.killing.a.modified.b
13b00 75 66 66 65 72 2e 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 2d 66 69 6c 65 2d uffer........(let.((buffer-file-
13b20 6e 61 6d 65 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 65 74 20 74 68 65 20 6d name.file)).........;;.Set.the.m
13b40 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 74 68 65 20 73 61 6b 65 20 6f 66 20 66 6f 6e 74 2d 6c ajor.mode.for.the.sake.of.font-l
13b60 6f 63 6b 2e 0a 20 20 20 20 20 20 20 20 28 6e 6f 72 6d 61 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 ock..........(normal-mode)......
13b80 20 20 20 3b 3b 20 68 74 6d 6c 69 7a 65 20 74 68 65 20 62 75 66 66 65 72 20 61 6e 64 20 73 61 76 ...;;.htmlize.the.buffer.and.sav
13ba0 65 20 74 68 65 20 48 54 4d 4c 2e 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e e.the.HTML..........(with-curren
13bc0 74 2d 62 75 66 66 65 72 20 28 68 74 6d 6c 69 7a 65 2d 62 75 66 66 65 72 2d 31 29 0a 20 20 20 20 t-buffer.(htmlize-buffer-1).....
13be0 20 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 ......(unwind-protect...........
13c00 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d ....(progn.................(run-
13c20 68 6f 6f 6b 73 20 27 68 74 6d 6c 69 7a 65 2d 66 69 6c 65 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 hooks.'htmlize-file-hook).......
13c40 20 20 20 20 20 20 20 20 20 20 28 77 72 69 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d ..........(write-region.(point-m
13c60 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 6f 75 74 70 75 74 2d 66 69 6c 65 29 29 0a 20 20 in).(point-max).output-file))...
13c80 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d ..........(kill-buffer.(current-
13ca0 62 75 66 66 65 72 29 29 29 29 29 29 29 0a 20 20 3b 3b 20 49 20 68 61 76 65 6e 27 74 20 64 65 63 buffer)))))))...;;.I.haven't.dec
13cc0 69 64 65 64 20 6f 6e 20 61 20 75 73 65 66 75 6c 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 79 65 ided.on.a.useful.return.value.ye
13ce0 74 2c 20 73 6f 20 6a 75 73 74 20 72 65 74 75 72 6e 0a 20 20 3b 3b 20 6e 69 6c 2e 0a 20 20 6e 69 t,.so.just.return...;;.nil....ni
13d00 6c 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 74 6d 6c 69 7a l)..;;;###autoload.(defun.htmliz
13d20 65 2d 6d 61 6e 79 2d 66 69 6c 65 73 20 28 66 69 6c 65 73 20 26 6f 70 74 69 6f 6e 61 6c 20 74 61 e-many-files.(files.&optional.ta
13d40 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 46 49 4c 45 53 rget-directory)..."Convert.FILES
13d60 20 74 6f 20 48 54 4d 4c 20 61 6e 64 20 73 61 76 65 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 .to.HTML.and.save.the.correspond
13d80 69 6e 67 20 48 54 4d 4c 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 46 49 4c 45 53 20 73 68 6f 75 6c 64 ing.HTML.versions...FILES.should
13da0 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 20 6e 61 6d 65 73 20 74 6f 20 63 6f 6e 76 .be.a.list.of.file.names.to.conv
13dc0 65 72 74 2e 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 0a 60 68 74 6d 6c 69 ert...This.function.calls.`htmli
13de0 7a 65 2d 66 69 6c 65 27 20 6f 6e 20 65 61 63 68 20 66 69 6c 65 3b 20 73 65 65 20 74 68 61 74 20 ze-file'.on.each.file;.see.that.
13e00 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 20 20 57 68 65 6e 0a 69 6e 76 6f function.for.details...When.invo
13e20 6b 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2c 20 79 6f 75 20 61 72 65 20 70 72 6f 6d 70 ked.interactively,.you.are.promp
13e40 74 65 64 20 66 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 74 6f 20 63 6f 6e 76 65 ted.for.a.list.of.files.to.conve
13e60 72 74 2c 0a 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 52 45 54 2e 0a 0a 49 66 20 54 41 52 rt,.terminated.with.RET...If.TAR
13e80 47 45 54 2d 44 49 52 45 43 54 4f 52 59 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 20 GET-DIRECTORY.is.specified,.the.
13ea0 48 54 4d 4c 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 73 61 76 65 64 20 74 6f 20 74 68 61 74 HTML.files.will.be.saved.to.that
13ec0 0a 64 69 72 65 63 74 6f 72 79 2e 20 20 4e 6f 72 6d 61 6c 6c 79 2c 20 65 61 63 68 20 48 54 4d 4c .directory...Normally,.each.HTML
13ee0 20 66 69 6c 65 20 69 73 20 73 61 76 65 64 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 .file.is.saved.to.the.directory.
13f00 6f 66 20 74 68 65 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 73 6f 75 72 63 65 20 66 69 6c 65 of.the.corresponding.source.file
13f20 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 28 ."...(interactive....(list.....(
13f40 6c 65 74 20 28 6c 69 73 74 20 66 69 6c 65 29 0a 20 20 20 20 20 20 3b 3b 20 55 73 65 20 65 6d 70 let.(list.file).......;;.Use.emp
13f60 74 79 20 73 74 72 69 6e 67 20 61 73 20 44 45 46 41 55 4c 54 20 62 65 63 61 75 73 65 20 73 65 74 ty.string.as.DEFAULT.because.set
13f80 74 69 6e 67 20 44 45 46 41 55 4c 54 20 74 6f 20 6e 69 6c 0a 20 20 20 20 20 20 3b 3b 20 64 65 66 ting.DEFAULT.to.nil.......;;.def
13fa0 61 75 6c 74 73 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 2c 20 77 68 69 aults.to.the.directory.name,.whi
13fc0 63 68 20 69 73 20 6e 6f 74 20 77 68 61 74 20 77 65 20 77 61 6e 74 2e 0a 20 20 20 20 20 20 28 77 ch.is.not.what.we.want........(w
13fe0 68 69 6c 65 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 28 73 65 74 71 20 66 69 6c 65 20 28 72 65 61 hile.(not.(equal.(setq.file.(rea
14000 64 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-file-name.....................
14020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 48 54 4d 4c 2d 69 7a 65 20 66 69 6c 65 20 ................."HTML-ize.file.
14040 28 52 45 54 20 74 6f 20 66 69 6e 69 73 68 29 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (RET.to.finish):."..............
14060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6c 69 73 ........................(and.lis
14080 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 t.(file-name-directory..........
140a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
140c0 20 20 20 20 20 20 20 28 63 61 72 20 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .......(car.list))).............
140e0 20 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 22 20 74 29 29 0a ........................."".t)).
14100 20 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 22 29 29 0a 20 20 .........................""))...
14120 20 20 20 20 20 20 28 70 75 73 68 20 66 69 6c 65 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 6e ......(push.file.list)).......(n
14140 72 65 76 65 72 73 65 20 6c 69 73 74 29 29 29 29 0a 20 20 3b 3b 20 56 65 72 69 66 79 20 74 68 61 reverse.list))))...;;.Verify.tha
14160 74 20 54 41 52 47 45 54 2d 44 49 52 45 43 54 4f 52 59 20 69 73 20 69 6e 64 65 65 64 20 61 20 64 t.TARGET-DIRECTORY.is.indeed.a.d
14180 69 72 65 63 74 6f 72 79 2e 20 20 49 66 20 69 74 27 73 20 61 0a 20 20 3b 3b 20 66 69 6c 65 2c 20 irectory...If.it's.a...;;.file,.
141a0 68 74 6d 6c 69 7a 65 2d 66 69 6c 65 20 77 69 6c 6c 20 75 73 65 20 69 74 20 61 73 20 74 61 72 67 htmlize-file.will.use.it.as.targ
141c0 65 74 2c 20 61 6e 64 20 74 68 61 74 20 64 6f 65 73 6e 27 74 20 6d 61 6b 65 0a 20 20 3b 3b 20 73 et,.and.that.doesn't.make...;;.s
141e0 65 6e 73 65 2e 0a 20 20 28 61 6e 64 20 74 61 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 ense....(and.target-directory...
14200 20 20 20 20 20 28 6e 6f 74 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 74 61 72 67 .....(not.(file-directory-p.targ
14220 65 74 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 74 61 et-directory))........(error."ta
14240 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 20 6d 75 73 74 20 6e 61 6d 65 20 61 20 64 69 72 65 63 rget-directory.must.name.a.direc
14260 74 6f 72 79 3a 20 25 73 22 20 74 61 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 28 tory:.%s".target-directory))...(
14280 64 6f 6c 69 73 74 20 28 66 69 6c 65 20 66 69 6c 65 73 29 0a 20 20 20 20 28 68 74 6d 6c 69 7a 65 dolist.(file.files).....(htmlize
142a0 2d 66 69 6c 65 20 66 69 6c 65 20 74 61 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a -file.file.target-directory)))..
142c0 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 64 69 72 65 64 2d 67 65 74 2d 6d 61 72 6b (declare-function.dired-get-mark
142e0 65 64 2d 66 69 6c 65 73 20 22 64 69 72 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ed-files."dired"................
14300 20 20 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6c 6f 63 61 6c 70 20 61 72 67 20 66 69 6c 74 65 72 20 ...(&optional.localp.arg.filter.
14320 64 69 73 74 69 6e 67 75 69 73 68 2d 6f 6e 65 2d 6d 61 72 6b 65 64 20 65 72 72 6f 72 29 29 0a 0a distinguish-one-marked.error))..
14340 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 68 74 6d 6c 69 7a 65 2d 6d 61 ;;;###autoload.(defun.htmlize-ma
14360 6e 79 2d 66 69 6c 65 73 2d 64 69 72 65 64 20 28 61 72 67 20 26 6f 70 74 69 6f 6e 61 6c 20 74 61 ny-files-dired.(arg.&optional.ta
14380 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 48 54 4d 4c 69 7a 65 20 64 69 72 65 64 rget-directory)..."HTMLize.dired
143a0 2d 6d 61 72 6b 65 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 -marked.files."...(interactive."
143c0 50 22 29 0a 20 20 28 68 74 6d 6c 69 7a 65 2d 6d 61 6e 79 2d 66 69 6c 65 73 20 28 64 69 72 65 64 P")...(htmlize-many-files.(dired
143e0 2d 67 65 74 2d 6d 61 72 6b 65 64 2d 66 69 6c 65 73 20 6e 69 6c 20 61 72 67 29 20 74 61 72 67 65 -get-marked-files.nil.arg).targe
14400 74 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 68 74 6d 6c 69 7a 65 t-directory))..(provide.'htmlize
14420 29 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 69 6e 64 65 6e 74 )..;;.Local.Variables:.;;.indent
14440 2d 74 61 62 73 2d 6d 6f 64 65 3a 20 6e 69 6c 0a 3b 3b 20 45 6e 64 3a 0a 3b 3b 3b 20 68 74 6d 6c -tabs-mode:.nil.;;.End:.;;;.html
14460 69 7a 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ize.el.ends.here................
14480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
145e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14600 68 74 6d 6c 69 7a 65 2d 31 2e 35 38 2f 4e 45 57 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 htmlize-1.58/NEWS...............
14620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14660 00 00 00 00 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
14680 30 30 30 33 30 31 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 32 36 32 00 20 30 00 00 00 0003017.00000000000.012262..0...
146a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
146e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14700 00 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...................
14720 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...................
14740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
147e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14800 68 74 6d 6c 69 7a 65 20 4e 45 57 53 20 2d 2d 20 68 69 73 74 6f 72 79 20 6f 66 20 75 73 65 72 2d htmlize.NEWS.--.history.of.user-
14820 76 69 73 69 62 6c 65 20 63 68 61 6e 67 65 73 2e 0a 0c 0a 2a 20 43 68 61 6e 67 65 73 20 69 6e 20 visible.changes....*.Changes.in.
14840 68 74 6d 6c 69 7a 65 20 31 2e 35 31 0a 0a 2a 2a 20 60 68 74 6d 6c 69 7a 65 2d 66 61 63 65 2d 6f htmlize.1.51..**.`htmlize-face-o
14860 76 65 72 72 69 64 65 73 27 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 6f 76 65 72 72 69 64 verrides'.can.be.used.to.overrid
14880 65 20 45 6d 61 63 73 27 73 20 66 61 63 65 0a 64 65 66 69 6e 69 74 69 6f 6e 73 2e 0a 0a 0c 0a 2a e.Emacs's.face.definitions.....*
148a0 20 43 68 61 6e 67 65 73 20 69 6e 20 68 74 6d 6c 69 7a 65 20 31 2e 34 37 0a 0a 2a 2a 20 47 4e 55 .Changes.in.htmlize.1.47..**.GNU
148c0 20 45 6d 61 63 73 20 32 31 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 73 75 70 70 6f 72 74 65 64 .Emacs.21.is.no.longer.supported
148e0 2e 0a 0a 0c 0a 2a 20 43 68 61 6e 67 65 73 20 69 6e 20 68 74 6d 6c 69 7a 65 20 31 2e 34 35 0a 0a .....*.Changes.in.htmlize.1.45..
14900 2a 2a 20 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 3a 69 6e 68 65 72 69 74 20 73 70 65 **.Correctly.handle.:inherit.spe
14920 63 69 66 79 69 6e 67 20 61 20 6c 69 73 74 20 6f 66 20 66 61 63 65 73 2e 20 20 28 54 68 69 73 20 cifying.a.list.of.faces...(This.
14940 62 75 67 0a 77 6f 75 6c 64 20 63 61 75 73 65 20 61 6e 20 65 72 72 6f 72 20 69 6e 20 41 55 58 20 bug.would.cause.an.error.in.AUX.
14960 54 65 58 20 62 75 66 66 65 72 73 2e 29 0a 0a 0c 0a 2a 20 43 68 61 6e 67 65 73 20 69 6e 20 68 74 TeX.buffers.)....*.Changes.in.ht
14980 6d 6c 69 7a 65 20 31 2e 34 34 0a 0a 2a 2a 20 46 61 63 65 73 20 73 70 65 63 69 66 69 65 64 20 69 mlize.1.44..**.Faces.specified.i
149a0 6e 20 74 68 65 20 60 66 61 63 65 27 20 70 72 6f 70 65 72 74 79 20 61 72 65 20 6e 6f 77 20 70 72 n.the.`face'.property.are.now.pr
149c0 69 6f 72 69 74 69 7a 65 64 20 74 68 65 20 73 61 6d 65 0a 77 61 79 20 74 68 61 74 20 45 6d 61 63 ioritized.the.same.way.that.Emac
149e0 73 20 72 65 64 69 73 70 6c 61 79 20 64 6f 65 73 20 69 74 3a 20 66 61 63 65 73 20 74 68 61 74 20 s.redisplay.does.it:.faces.that.
14a00 61 70 70 65 61 72 20 65 61 72 6c 69 65 72 20 68 61 76 65 0a 70 72 65 63 65 64 65 6e 63 65 20 6f appear.earlier.have.precedence.o
14a20 76 65 72 20 74 68 6f 73 65 20 74 68 61 74 20 61 70 70 65 61 72 20 6c 61 74 65 72 2e 0a 0a 0c 0a ver.those.that.appear.later.....
14a40 2a 20 43 68 61 6e 67 65 73 20 69 6e 20 68 74 6d 6c 69 7a 65 20 31 2e 34 31 0a 0a 2a 2a 20 60 62 *.Changes.in.htmlize.1.41..**.`b
14a60 65 66 6f 72 65 2d 73 74 72 69 6e 67 27 20 61 6e 64 20 60 61 66 74 65 72 2d 73 74 72 69 6e 67 27 efore-string'.and.`after-string'
14a80 20 6f 76 65 72 6c 61 79 20 70 72 6f 70 65 72 74 69 65 73 20 61 72 65 20 6e 6f 77 0a 72 65 63 6f .overlay.properties.are.now.reco
14aa0 67 6e 69 7a 65 64 20 62 79 20 68 74 6d 6c 69 7a 65 20 61 6e 64 20 69 6e 73 65 72 74 65 64 20 69 gnized.by.htmlize.and.inserted.i
14ac0 6e 74 6f 20 74 68 65 20 48 54 4d 4c 2e 0a 0a 2a 2a 20 49 6d 61 67 65 73 20 73 70 65 63 69 66 69 nto.the.HTML...**.Images.specifi
14ae0 65 64 20 62 79 20 60 64 69 73 70 6c 61 79 27 20 70 72 6f 70 65 72 74 79 20 61 72 65 20 72 65 63 ed.by.`display'.property.are.rec
14b00 6f 67 6e 69 7a 65 64 20 61 6e 64 20 69 6e 73 65 72 74 65 64 0a 69 6e 74 6f 20 74 68 65 20 48 54 ognized.and.inserted.into.the.HT
14b20 4d 4c 20 61 73 20 3c 69 6d 67 20 73 72 63 3d 2e 2e 2e 3e 2e 0a 0a 2a 2a 2a 20 49 66 20 74 68 65 ML.as.<img.src=...>...***.If.the
14b40 20 69 6d 61 67 65 20 64 61 74 61 20 63 6f 6d 65 73 20 66 72 6f 6d 20 61 20 66 69 6c 65 2c 20 74 .image.data.comes.from.a.file,.t
14b60 68 65 20 69 6d 61 67 65 20 77 69 6c 6c 20 62 65 20 72 65 6e 64 65 72 65 64 20 61 73 0a 61 20 72 he.image.will.be.rendered.as.a.r
14b80 65 6c 61 74 69 76 65 20 55 52 49 20 74 68 61 74 20 77 6f 75 6c 64 20 72 65 73 6f 6c 76 65 20 74 elative.URI.that.would.resolve.t
14ba0 6f 20 74 68 61 74 20 66 69 6c 65 2e 20 20 49 6d 61 67 65 73 20 77 68 6f 73 65 20 64 61 74 61 0a o.that.file...Images.whose.data.
14bc0 63 6f 6d 65 73 20 66 72 6f 6d 20 61 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 62 65 20 72 65 6e 64 comes.from.a.string.will.be.rend
14be0 65 72 65 64 20 69 6e 6c 69 6e 65 20 61 73 20 64 61 74 61 3a 20 55 52 49 73 2e 20 20 54 68 65 20 ered.inline.as.data:.URIs...The.
14c00 66 6c 61 67 0a 60 68 74 6d 6c 69 7a 65 2d 66 6f 72 63 65 2d 69 6e 6c 69 6e 65 2d 69 6d 61 67 65 flag.`htmlize-force-inline-image
14c20 73 27 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 66 6f 72 63 65 20 69 6e 73 65 72 74 69 6e s'.can.be.used.to.force.insertin
14c40 67 20 2a 61 6c 6c 2a 0a 69 6d 61 67 65 73 20 69 6e 6c 69 6e 65 20 61 73 20 64 61 74 61 3a 20 55 g.*all*.images.inline.as.data:.U
14c60 52 49 73 2e 0a 0a 2a 2a 20 54 68 65 20 69 6d 61 67 65 27 73 20 41 4c 54 20 74 65 78 74 20 77 69 RIs...**.The.image's.ALT.text.wi
14c80 6c 6c 20 62 65 20 74 68 65 20 74 65 78 74 20 74 68 61 74 20 74 68 65 20 60 64 69 73 70 6c 61 79 ll.be.the.text.that.the.`display
14ca0 27 20 70 72 6f 70 65 72 74 79 20 69 73 0a 72 65 70 6c 61 63 69 6e 67 2c 20 69 66 20 6e 6f 6e 2d '.property.is.replacing,.if.non-
14cc0 65 6d 70 74 79 2e 0a 0a 2a 2a 20 41 72 62 69 74 72 61 72 79 20 6c 69 6e 6b 73 20 63 61 6e 20 6e empty...**.Arbitrary.links.can.n
14ce0 6f 77 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 48 54 4d ow.be.added.to.the.generated.HTM
14d00 4c 2e 20 20 49 66 20 68 74 6d 6c 69 7a 65 0a 65 6e 63 6f 75 6e 74 65 72 73 20 62 75 66 66 65 72 L...If.htmlize.encounters.buffer
14d20 20 74 65 78 74 20 77 69 74 68 20 60 68 74 6d 6c 69 7a 65 2d 6c 69 6e 6b 27 20 70 72 6f 70 65 72 .text.with.`htmlize-link'.proper
14d40 74 79 2c 20 69 74 20 77 69 6c 6c 20 77 72 61 70 20 74 68 65 0a 74 65 78 74 20 69 6e 20 3c 61 20 ty,.it.will.wrap.the.text.in.<a.
14d60 68 72 65 66 3d 22 75 72 69 22 3e 2e 2e 2e 3c 2f 61 3e 2e 20 20 49 66 20 74 68 65 20 70 72 6f 70 href="uri">...</a>...If.the.prop
14d80 65 72 74 79 20 76 61 6c 75 65 20 69 73 20 61 20 73 74 72 69 6e 67 2c 20 69 74 0a 69 73 20 69 6e erty.value.is.a.string,.it.is.in
14da0 74 65 72 70 72 65 74 65 64 20 61 73 20 74 68 65 20 55 52 49 2e 20 20 49 66 20 69 74 20 69 73 20 terpreted.as.the.URI...If.it.is.
14dc0 61 20 6c 69 73 74 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 61 20 70 72 6f 70 65 72 74 79 0a a.list,.it.should.be.a.property.
14de0 6c 69 73 74 20 77 68 6f 73 65 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 64 65 66 69 6e 65 list.whose.currently.only.define
14e00 64 20 6b 65 79 20 69 73 20 3a 75 72 69 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d.key.is.:uri...................
14e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15000 68 74 6d 6c 69 7a 65 2d 31 2e 35 38 2f 68 74 6d 6c 69 7a 65 2d 70 6b 67 2e 65 6c 00 00 00 00 00 htmlize-1.58/htmlize-pkg.el.....
15020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15060 00 00 00 00 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
15080 30 30 30 30 36 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 34 32 00 20 30 00 00 00 0000643.00000000000.014342..0...
150a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
150c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
150e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15100 00 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...................
15120 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...................
15140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15200 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e ;;.Generated.package.description
15220 20 66 72 6f 6d 20 68 74 6d 6c 69 7a 65 2e 65 6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f .from.htmlize.el..-*-.no-byte-co
15240 6d 70 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 68 74 mpile:.t.-*-.(define-package."ht
15260 6d 6c 69 7a 65 22 20 22 31 2e 35 38 22 20 22 43 6f 6e 76 65 72 74 20 62 75 66 66 65 72 20 74 65 mlize"."1.58"."Convert.buffer.te
15280 78 74 20 61 6e 64 20 64 65 63 6f 72 61 74 69 6f 6e 73 20 74 6f 20 48 54 4d 4c 2e 22 20 27 28 28 xt.and.decorations.to.HTML.".'((
152a0 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 20 3a 63 6f 6d 6d 69 74 20 22 35 64 32 37 35 31 63 34 emacs."25.1")).:commit."5d2751c4
152c0 63 61 31 30 31 66 61 30 38 38 34 63 65 38 36 36 32 66 35 35 36 36 37 33 36 66 38 32 35 37 66 65 ca101fa0884ce8662f5566736f8257fe
152e0 22 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 48 72 76 6f 6a 65 20 4e 69 6b 73 69 63 22 20 2e 20 ".:authors.'(("Hrvoje.Niksic"...
15300 22 68 6e 69 6b 73 69 63 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 20 3a 6d 61 69 6e 74 61 69 6e 65 "hniksic@gmail.com")).:maintaine
15320 72 20 27 28 22 48 72 76 6f 6a 65 20 4e 69 6b 73 69 63 22 20 2e 20 22 68 6e 69 6b 73 69 63 40 67 r.'("Hrvoje.Niksic"..."hniksic@g
15340 6d 61 69 6c 2e 63 6f 6d 22 29 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 68 79 70 65 72 6d 65 64 mail.com").:keywords.'("hypermed
15360 69 61 22 20 22 65 78 74 65 6e 73 69 6f 6e 73 22 29 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f ia"."extensions").:url."https://
15380 67 69 74 68 75 62 2e 63 6f 6d 2f 68 6e 69 6b 73 69 63 2f 65 6d 61 63 73 2d 68 74 6d 6c 69 7a 65 github.com/hniksic/emacs-htmlize
153a0 22 29 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 ")..............................
153c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
156e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
157e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
158e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
159a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
159c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
159e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
160a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
160c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
160e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
164e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
165a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
165c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
165e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
166e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
167e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................