home *** CD-ROM | disk | FTP | other *** search
Emacs Compiled Lisp | 1994-05-28 | 7.0 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: Emacs Compiled Lisp
(other/emacsCompiledLisp).
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
1%
| dexvert
| Emacs Compiled Lisp (other/emacsCompiledLisp)
| magic
| Unsupported |
100%
| file
| Emacs/XEmacs v19 byte-compiled Lisp data
| default
| |
99%
| file
| data
| default
| |
100%
| TrID
| Emacs/XEmacs byte-compiled Lisp (generic)
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 13 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 72 6d 73 40 6d 6f 6c |piled by| rms@mol|
|00000020| 65 2e 67 6e 75 2e 61 69 | 2e 6d 69 74 2e 65 64 75 |e.gnu.ai|.mit.edu|
|00000030| 20 6f 6e 20 53 61 74 20 | 4d 61 79 20 32 38 20 30 | on Sat |May 28 0|
|00000040| 34 3a 34 34 3a 31 34 20 | 31 39 39 34 0a 3b 3b 3b |4:44:14 |1994.;;;|
|00000050| 20 66 72 6f 6d 20 66 69 | 6c 65 20 2f 68 6f 6d 65 | from fi|le /home|
|00000060| 2f 66 73 66 2f 72 6d 73 | 2f 65 31 39 2f 6c 69 73 |/fsf/rms|/e19/lis|
|00000070| 70 2f 64 65 72 69 76 65 | 64 2e 65 6c 0a 3b 3b 3b |p/derive|d.el.;;;|
|00000080| 20 65 6d 61 63 73 20 76 | 65 72 73 69 6f 6e 20 31 | emacs v|ersion 1|
|00000090| 39 2e 32 33 2e 39 30 2e | 31 2e 0a 3b 3b 3b 20 62 |9.23.90.|1..;;; b|
|000000a0| 79 74 65 63 6f 6d 70 20 | 76 65 72 73 69 6f 6e 20 |ytecomp |version |
|000000b0| 46 53 46 20 32 2e 31 30 | 0a 3b 3b 3b 20 6f 70 74 |FSF 2.10|.;;; opt|
|000000c0| 69 6d 69 7a 61 74 69 6f | 6e 20 69 73 20 6f 6e 2e |imizatio|n is on.|
|000000d0| 0a 3b 3b 3b 20 74 68 69 | 73 20 66 69 6c 65 20 75 |.;;; thi|s file u|
|000000e0| 73 65 73 20 6f 70 63 6f | 64 65 73 20 77 68 69 63 |ses opco|des whic|
|000000f0| 68 20 64 6f 20 6e 6f 74 | 20 65 78 69 73 74 20 69 |h do not| exist i|
|00000100| 6e 20 45 6d 61 63 73 20 | 31 38 2e 0a 0a 28 69 66 |n Emacs |18...(if|
|00000110| 20 28 61 6e 64 20 28 62 | 6f 75 6e 64 70 20 27 65 | (and (b|oundp 'e|
|00000120| 6d 61 63 73 2d 76 65 72 | 73 69 6f 6e 29 0a 09 20 |macs-ver|sion).. |
|00000130| 28 6f 72 20 28 61 6e 64 | 20 28 62 6f 75 6e 64 70 |(or (and| (boundp|
|00000140| 20 27 65 70 6f 63 68 3a | 3a 76 65 72 73 69 6f 6e | 'epoch:|:version|
|00000150| 29 20 65 70 6f 63 68 3a | 3a 76 65 72 73 69 6f 6e |) epoch:|:version|
|00000160| 29 0a 09 20 20 20 20 20 | 28 73 74 72 69 6e 67 2d |).. |(string-|
|00000170| 6c 65 73 73 70 20 65 6d | 61 63 73 2d 76 65 72 73 |lessp em|acs-vers|
|00000180| 69 6f 6e 20 22 31 39 22 | 29 29 29 0a 20 20 20 20 |ion "19"|))). |
|00000190| 28 65 72 72 6f 72 20 22 | 60 2f 68 6f 6d 65 2f 66 |(error "|`/home/f|
|000001a0| 73 66 2f 72 6d 73 2f 65 | 31 39 2f 6c 69 73 70 2f |sf/rms/e|19/lisp/|
|000001b0| 64 65 72 69 76 65 64 2e | 65 6c 27 20 77 61 73 20 |derived.|el' was |
|000001c0| 63 6f 6d 70 69 6c 65 64 | 20 66 6f 72 20 45 6d 61 |compiled| for Ema|
|000001d0| 63 73 20 31 39 22 29 29 | 0a 0a 28 64 65 66 61 6c |cs 19"))|..(defal|
|000001e0| 69 61 73 20 27 64 65 66 | 69 6e 65 2d 64 65 72 69 |ias 'def|ine-deri|
|000001f0| 76 65 64 2d 6d 6f 64 65 | 20 27 28 6d 61 63 72 6f |ved-mode| '(macro|
|00000200| 20 2e 20 23 5b 28 63 68 | 69 6c 64 20 70 61 72 65 | . #[(ch|ild pare|
|00000210| 6e 74 20 6e 61 6d 65 20 | 26 6f 70 74 69 6f 6e 61 |nt name |&optiona|
|00000220| 6c 20 64 6f 63 73 74 72 | 69 6e 67 20 26 72 65 73 |l docstr|ing &res|
|00000230| 74 20 62 6f 64 79 29 20 | 22 08 83 0f 00 08 3b 84 |t body) |".....;.|
|00000240| 0f 00 08 09 42 11 c2 10 | 08 86 17 00 c3 5c 66 0d |....B...|.....\f.|
|00000250| 5c 22 10 c6 c7 c8 0d 44 | 44 c9 0d c2 08 ca 5c 66 |\".....D|D.....\f|
|00000260| 43 cb cc c8 5c 66 44 cd | 42 42 ce c8 0d 44 cf 42 |C...\fD.|BB...D.B|
|00000270| 42 45 d0 d1 c8 0d 44 45 | d0 d2 0e 13 45 d4 c8 0d |BE....DE|....E...|
|00000280| 44 44 d5 c8 0d 44 44 d6 | c8 0d 44 44 d7 09 d8 c8 |DD...DD.|..DD....|
|00000290| 0d 44 44 43 5c 22 42 42 | 42 42 42 42 42 42 42 42 |.DDC\"BB|BBBBBBBB|
|000002a0| 42 42 45 87 22 20 5b 64 | 6f 63 73 74 72 69 6e 67 |BBE." [d|ocstring|
|000002b0| 20 62 6f 64 79 20 6e 69 | 6c 20 64 65 72 69 76 65 | body ni|l derive|
|000002c0| 64 2d 6d 6f 64 65 2d 6d | 61 6b 65 2d 64 6f 63 73 |d-mode-m|ake-docs|
|000002d0| 74 72 69 6e 67 20 70 61 | 72 65 6e 74 20 63 68 69 |tring pa|rent chi|
|000002e0| 6c 64 20 70 72 6f 67 6e | 20 64 65 72 69 76 65 64 |ld progn| derived|
|000002f0| 2d 6d 6f 64 65 2d 69 6e | 69 74 2d 6d 6f 64 65 2d |-mode-in|it-mode-|
|00000300| 76 61 72 69 61 62 6c 65 | 73 20 71 75 6f 74 65 20 |variable|s quote |
|00000310| 64 65 66 75 6e 20 28 69 | 6e 74 65 72 61 63 74 69 |defun (i|nteracti|
|00000320| 76 65 29 20 69 66 20 67 | 65 74 20 28 28 71 75 6f |ve) if g|et ((quo|
|00000330| 74 65 20 73 70 65 63 69 | 61 6c 29 29 20 70 75 74 |te speci|al)) put|
|00000340| 20 28 28 71 75 6f 74 65 | 20 73 70 65 63 69 61 6c | ((quote| special|
|00000350| 29 20 74 29 20 73 65 74 | 71 20 6d 61 6a 6f 72 2d |) t) set|q major-|
|00000360| 6d 6f 64 65 20 6d 6f 64 | 65 2d 6e 61 6d 65 20 6e |mode mod|e-name n|
|00000370| 61 6d 65 20 64 65 72 69 | 76 65 64 2d 6d 6f 64 65 |ame deri|ved-mode|
|00000380| 2d 73 65 74 2d 6b 65 79 | 6d 61 70 20 64 65 72 69 |-set-key|map deri|
|00000390| 76 65 64 2d 6d 6f 64 65 | 2d 73 65 74 2d 73 79 6e |ved-mode|-set-syn|
|000003a0| 74 61 78 2d 74 61 62 6c | 65 20 64 65 72 69 76 65 |tax-tabl|e derive|
|000003b0| 64 2d 6d 6f 64 65 2d 73 | 65 74 2d 61 62 62 72 65 |d-mode-s|et-abbre|
|000003c0| 76 2d 74 61 62 6c 65 20 | 61 70 70 65 6e 64 20 64 |v-table |append d|
|000003d0| 65 72 69 76 65 64 2d 6d | 6f 64 65 2d 72 75 6e 2d |erived-m|ode-run-|
|000003e0| 68 6f 6f 6b 73 5d 20 31 | 39 20 22 5c 0a 43 72 65 |hooks] 1|9 "\.Cre|
|000003f0| 61 74 65 20 61 20 6e 65 | 77 20 6d 6f 64 65 20 61 |ate a ne|w mode a|
|00000400| 73 20 61 20 76 61 72 69 | 61 6e 74 20 6f 66 20 61 |s a vari|ant of a|
|00000410| 6e 20 65 78 69 73 74 69 | 6e 67 20 6d 6f 64 65 2e |n existi|ng mode.|
|00000420| 0a 0a 54 68 65 20 61 72 | 67 75 6d 65 6e 74 73 20 |..The ar|guments |
|00000430| 74 6f 20 74 68 69 73 20 | 63 6f 6d 6d 61 6e 64 20 |to this |command |
|00000440| 61 72 65 20 61 73 20 66 | 6f 6c 6c 6f 77 3a 0a 0a |are as f|ollow:..|
|00000450| 50 41 52 45 4e 54 3a 20 | 20 20 20 74 68 65 20 6e |PARENT: | the n|
|00000460| 61 6d 65 20 6f 66 20 74 | 68 65 20 63 6f 6d 6d 61 |ame of t|he comma|
|00000470| 6e 64 20 66 6f 72 20 74 | 68 65 20 70 61 72 65 6e |nd for t|he paren|
|00000480| 74 20 6d 6f 64 65 20 28 | 69 65 2e 20 74 65 78 74 |t mode (|ie. text|
|00000490| 2d 6d 6f 64 65 29 2e 0a | 43 48 49 4c 44 3a 20 20 |-mode)..|CHILD: |
|000004a0| 20 20 20 74 68 65 20 6e | 61 6d 65 20 6f 66 20 74 | the n|ame of t|
|000004b0| 68 65 20 63 6f 6d 6d 61 | 6e 64 20 66 6f 72 20 74 |he comma|nd for t|
|000004c0| 68 65 20 64 65 72 69 76 | 65 64 20 6d 6f 64 65 2e |he deriv|ed mode.|
|000004d0| 0a 4e 41 4d 45 3a 20 20 | 20 20 20 20 61 20 73 74 |.NAME: | a st|
|000004e0| 72 69 6e 67 20 77 68 69 | 63 68 20 77 69 6c 6c 20 |ring whi|ch will |
|000004f0| 61 70 70 65 61 72 20 69 | 6e 20 74 68 65 20 73 74 |appear i|n the st|
|00000500| 61 74 75 73 20 6c 69 6e | 65 20 28 69 65 2e 20 5c |atus lin|e (ie. \|
|00000510| 22 48 79 70 65 72 74 65 | 78 74 5c 22 29 0a 44 4f |"Hyperte|xt\").DO|
|00000520| 43 53 54 52 49 4e 47 3a | 20 61 6e 20 6f 70 74 69 |CSTRING:| an opti|
|00000530| 6f 6e 61 6c 20 64 6f 63 | 75 6d 65 6e 74 61 74 69 |onal doc|umentati|
|00000540| 6f 6e 20 73 74 72 69 6e | 67 2d 2d 69 66 20 79 6f |on strin|g--if yo|
|00000550| 75 20 64 6f 20 6e 6f 74 | 20 73 75 70 70 6c 79 20 |u do not| supply |
|00000560| 6f 6e 65 2c 0a 20 20 20 | 20 20 20 20 20 20 20 20 |one,. | |
|00000570| 74 68 65 20 66 75 6e 63 | 74 69 6f 6e 20 77 69 6c |the func|tion wil|
|00000580| 6c 20 61 74 74 65 6d 70 | 74 20 74 6f 20 69 6e 76 |l attemp|t to inv|
|00000590| 65 6e 74 20 73 6f 6d 65 | 74 68 69 6e 67 20 75 73 |ent some|thing us|
|000005a0| 65 66 75 6c 2e 0a 42 4f | 44 59 3a 20 20 20 20 20 |eful..BO|DY: |
|000005b0| 20 66 6f 72 6d 73 20 74 | 6f 20 65 78 65 63 75 74 | forms t|o execut|
|000005c0| 65 20 6a 75 73 74 20 62 | 65 66 6f 72 65 20 72 75 |e just b|efore ru|
|000005d0| 6e 6e 69 6e 67 20 74 68 | 65 0a 20 20 20 20 20 20 |nning th|e. |
|000005e0| 20 20 20 20 20 68 6f 6f | 6b 73 20 66 6f 72 20 74 | hoo|ks for t|
|000005f0| 68 65 20 6e 65 77 20 6d | 6f 64 65 2e 0a 0a 48 65 |he new m|ode...He|
|00000600| 72 65 20 69 73 20 68 6f | 77 20 79 6f 75 20 63 6f |re is ho|w you co|
|00000610| 75 6c 64 20 64 65 66 69 | 6e 65 20 4c 61 54 65 58 |uld defi|ne LaTeX|
|00000620| 2d 54 68 65 73 69 73 20 | 6d 6f 64 65 20 61 73 20 |-Thesis |mode as |
|00000630| 61 20 76 61 72 69 61 6e | 74 20 6f 66 20 4c 61 54 |a varian|t of LaT|
|00000640| 65 58 20 6d 6f 64 65 3a | 0a 0a 20 20 28 64 65 66 |eX mode:|.. (def|
|00000650| 69 6e 65 2d 64 65 72 69 | 76 65 64 2d 6d 6f 64 65 |ine-deri|ved-mode|
|00000660| 20 4c 61 54 65 58 2d 74 | 68 65 73 69 73 2d 6d 6f | LaTeX-t|hesis-mo|
|00000670| 64 65 20 4c 61 54 65 58 | 2d 6d 6f 64 65 20 5c 22 |de LaTeX|-mode \"|
|00000680| 4c 61 54 65 58 2d 54 68 | 65 73 69 73 5c 22 29 0a |LaTeX-Th|esis\").|
|00000690| 0a 59 6f 75 20 63 6f 75 | 6c 64 20 74 68 65 6e 20 |.You cou|ld then |
|000006a0| 6d 61 6b 65 20 6e 65 77 | 20 6b 65 79 20 62 69 6e |make new| key bin|
|000006b0| 64 69 6e 67 73 20 66 6f | 72 20 60 4c 61 54 65 58 |dings fo|r `LaTeX|
|000006c0| 2d 74 68 65 73 69 73 2d | 6d 6f 64 65 2d 6d 61 70 |-thesis-|mode-map|
|000006d0| 27 0a 77 69 74 68 6f 75 | 74 20 63 68 61 6e 67 69 |'.withou|t changi|
|000006e0| 6e 67 20 72 65 67 75 6c | 61 72 20 4c 61 54 65 58 |ng regul|ar LaTeX|
|000006f0| 20 6d 6f 64 65 2e 20 20 | 49 6e 20 74 68 69 73 20 | mode. |In this |
|00000700| 65 78 61 6d 70 6c 65 2c | 20 42 4f 44 59 20 69 73 |example,| BODY is|
|00000710| 20 65 6d 70 74 79 2c 0a | 61 6e 64 20 44 4f 43 53 | empty,.|and DOCS|
|00000720| 54 52 49 4e 47 20 69 73 | 20 67 65 6e 65 72 61 74 |TRING is| generat|
|00000730| 65 64 20 62 79 20 64 65 | 66 61 75 6c 74 2e 0a 0a |ed by de|fault...|
|00000740| 4f 6e 20 61 20 6d 6f 72 | 65 20 63 6f 6d 70 6c 69 |On a mor|e compli|
|00000750| 63 61 74 65 64 20 6c 65 | 76 65 6c 2c 20 74 68 65 |cated le|vel, the|
|00000760| 20 66 6f 6c 6c 6f 77 69 | 6e 67 20 63 6f 6d 6d 61 | followi|ng comma|
|00000770| 6e 64 20 75 73 65 73 20 | 73 67 6d 6c 2d 6d 6f 64 |nd uses |sgml-mod|
|00000780| 65 20 61 73 0a 74 68 65 | 20 70 61 72 65 6e 74 2c |e as.the| parent,|
|00000790| 20 61 6e 64 20 74 68 65 | 6e 20 73 65 74 73 20 74 | and the|n sets t|
|000007a0| 68 65 20 76 61 72 69 61 | 62 6c 65 20 60 63 61 73 |he varia|ble `cas|
|000007b0| 65 2d 66 6f 6c 64 2d 73 | 65 61 72 63 68 27 20 74 |e-fold-s|earch' t|
|000007c0| 6f 20 6e 69 6c 3a 0a 0a | 20 20 28 64 65 66 69 6e |o nil:..| (defin|
|000007d0| 65 2d 64 65 72 69 76 65 | 64 2d 6d 6f 64 65 20 61 |e-derive|d-mode a|
|000007e0| 72 74 69 63 6c 65 2d 6d | 6f 64 65 20 73 67 6d 6c |rticle-m|ode sgml|
|000007f0| 2d 6d 6f 64 65 20 5c 22 | 41 72 74 69 63 6c 65 5c |-mode \"|Article\|
|00000800| 22 0a 20 20 20 20 5c 22 | 4d 61 6a 6f 72 20 6d 6f |". \"|Major mo|
|00000810| 64 65 20 66 6f 72 20 65 | 64 69 74 69 6e 67 20 74 |de for e|diting t|
|00000820| 65 63 68 6e 69 63 61 6c | 20 61 72 74 69 63 6c 65 |echnical| article|
|00000830| 73 2e 5c 22 0a 20 20 20 | 20 28 73 65 74 71 20 63 |s.\". | (setq c|
|00000840| 61 73 65 2d 66 6f 6c 64 | 2d 73 65 61 72 63 68 20 |ase-fold|-search |
|00000850| 6e 69 6c 29 29 0a 0a 4e | 6f 74 65 20 74 68 61 74 |nil))..N|ote that|
|00000860| 20 69 66 20 74 68 65 20 | 64 6f 63 75 6d 65 6e 74 | if the |document|
|00000870| 61 74 69 6f 6e 20 73 74 | 72 69 6e 67 20 68 61 64 |ation st|ring had|
|00000880| 20 62 65 65 6e 20 6c 65 | 66 74 20 6f 75 74 2c 20 | been le|ft out, |
|00000890| 69 74 20 77 6f 75 6c 64 | 20 68 61 76 65 0a 62 65 |it would| have.be|
|000008a0| 65 6e 20 67 65 6e 65 72 | 61 74 65 64 20 61 75 74 |en gener|ated aut|
|000008b0| 6f 6d 61 74 69 63 61 6c | 6c 79 2c 20 77 69 74 68 |omatical|ly, with|
|000008c0| 20 61 20 72 65 66 65 72 | 65 6e 63 65 20 74 6f 20 | a refer|ence to |
|000008d0| 74 68 65 20 6b 65 79 6d | 61 70 2e 22 5d 29 29 0a |the keym|ap."])).|
|000008e0| 28 64 65 66 61 6c 69 61 | 73 20 27 64 65 72 69 76 |(defalia|s 'deriv|
|000008f0| 65 64 2d 6d 6f 64 65 2d | 63 6c 61 73 73 20 23 5b |ed-mode-|class #[|
|00000900| 28 6d 6f 64 65 29 20 22 | 08 c1 4e 83 0e 00 08 c1 |(mode) "|..N.....|
|00000910| 4e 89 10 82 01 00 08 87 | 22 20 5b 6d 6f 64 65 20 |N.......|" [mode |
|00000920| 64 65 72 69 76 65 64 2d | 6d 6f 64 65 2d 70 61 72 |derived-|mode-par|
|00000930| 65 6e 74 5d 20 33 20 22 | 5c 0a 46 69 6e 64 20 74 |ent] 3 "|\.Find t|
|00000940| 68 65 20 63 6c 61 73 73 | 20 6f 66 20 61 20 6d 61 |he class| of a ma|
|00000950| 6a 6f 72 20 6d 6f 64 65 | 2e 0a 41 20 6d 6f 64 65 |jor mode|..A mode|
|00000960| 27 73 20 63 6c 61 73 73 | 20 69 73 20 74 68 65 20 |'s class| is the |
|00000970| 66 69 72 73 74 20 61 6e | 63 65 73 74 6f 72 20 77 |first an|cestor w|
|00000980| 68 69 63 68 20 69 73 20 | 4e 4f 54 20 61 20 64 65 |hich is |NOT a de|
|00000990| 72 69 76 65 64 20 6d 6f | 64 65 2e 0a 55 73 65 20 |rived mo|de..Use |
|000009a0| 74 68 65 20 60 64 65 72 | 69 76 65 64 2d 6d 6f 64 |the `der|ived-mod|
|000009b0| 65 2d 70 61 72 65 6e 74 | 27 20 70 72 6f 70 65 72 |e-parent|' proper|
|000009c0| 74 79 20 6f 66 20 74 68 | 65 20 73 79 6d 62 6f 6c |ty of th|e symbol|
|000009d0| 20 74 6f 20 74 72 61 63 | 65 20 62 61 63 6b 77 61 | to trac|e backwa|
|000009e0| 72 64 73 2e 22 5d 29 0a | 28 64 65 66 61 6c 69 61 |rds."]).|(defalia|
|000009f0| 73 20 27 64 65 72 69 76 | 65 64 2d 6d 6f 64 65 2d |s 'deriv|ed-mode-|
|00000a00| 73 65 74 75 70 2d 66 75 | 6e 63 74 69 6f 6e 2d 6e |setup-fu|nction-n|
|00000a10| 61 6d 65 20 23 5b 28 6d | 6f 64 65 29 20 22 c0 c1 |ame #[(m|ode) "..|
|00000a20| 5c 6e 21 c3 50 21 87 22 | 20 5b 69 6e 74 65 72 6e |\n!.P!."| [intern|
|00000a30| 20 73 79 6d 62 6f 6c 2d | 6e 61 6d 65 20 6d 6f 64 | symbol-|name mod|
|00000a40| 65 20 22 2d 73 65 74 75 | 70 22 5d 20 33 20 22 5c |e "-setu|p"] 3 "\|
|00000a50| 0a 43 6f 6e 73 74 72 75 | 63 74 20 61 20 73 65 74 |.Constru|ct a set|
|00000a60| 75 70 2d 66 75 6e 63 74 | 69 6f 6e 20 6e 61 6d 65 |up-funct|ion name|
|00000a70| 20 62 61 73 65 64 20 6f | 6e 20 61 20 6d 6f 64 65 | based o|n a mode|
|00000a80| 20 6e 61 6d 65 2e 22 5d | 29 0a 28 70 75 74 20 28 | name."]|).(put (|
|00000a90| 71 75 6f 74 65 20 64 65 | 72 69 76 65 64 2d 6d 6f |quote de|rived-mo|
|00000aa0| 64 65 2d 73 65 74 75 70 | 2d 66 75 6e 63 74 69 6f |de-setup|-functio|
|00000ab0| 6e 2d 6e 61 6d 65 29 20 | 28 71 75 6f 74 65 20 62 |n-name) |(quote b|
|00000ac0| 79 74 65 2d 6f 70 74 69 | 6d 69 7a 65 72 29 20 28 |yte-opti|mizer) (|
|00000ad0| 71 75 6f 74 65 20 62 79 | 74 65 2d 63 6f 6d 70 69 |quote by|te-compi|
|00000ae0| 6c 65 2d 69 6e 6c 69 6e | 65 2d 65 78 70 61 6e 64 |le-inlin|e-expand|
|00000af0| 29 29 0a 28 64 65 66 61 | 6c 69 61 73 20 27 64 65 |)).(defa|lias 'de|
|00000b00| 72 69 76 65 64 2d 6d 6f | 64 65 2d 68 6f 6f 6b 73 |rived-mo|de-hooks|
|00000b10| 2d 6e 61 6d 65 20 23 5b | 28 6d 6f 64 65 29 20 22 |-name #[|(mode) "|
|00000b20| c0 c1 5c 6e 21 c3 50 21 | 87 22 20 5b 69 6e 74 65 |..\n!.P!|." [inte|
|00000b30| 72 6e 20 73 79 6d 62 6f | 6c 2d 6e 61 6d 65 20 6d |rn symbo|l-name m|
|00000b40| 6f 64 65 20 22 2d 68 6f | 6f 6b 73 22 5d 20 33 20 |ode "-ho|oks"] 3 |
|00000b50| 22 5c 0a 43 6f 6e 73 74 | 72 75 63 74 20 61 20 68 |"\.Const|ruct a h|
|00000b60| 6f 6f 6b 73 20 6e 61 6d | 65 20 62 61 73 65 64 20 |ooks nam|e based |
|00000b70| 6f 6e 20 61 20 6d 6f 64 | 65 20 6e 61 6d 65 2e 22 |on a mod|e name."|
|00000b80| 5d 29 0a 28 70 75 74 20 | 28 71 75 6f 74 65 20 64 |]).(put |(quote d|
|00000b90| 65 72 69 76 65 64 2d 6d | 6f 64 65 2d 68 6f 6f 6b |erived-m|ode-hook|
|00000ba0| 73 2d 6e 61 6d 65 29 20 | 28 71 75 6f 74 65 20 62 |s-name) |(quote b|
|00000bb0| 79 74 65 2d 6f 70 74 69 | 6d 69 7a 65 72 29 20 28 |yte-opti|mizer) (|
|00000bc0| 71 75 6f 74 65 20 62 79 | 74 65 2d 63 6f 6d 70 69 |quote by|te-compi|
|00000bd0| 6c 65 2d 69 6e 6c 69 6e | 65 2d 65 78 70 61 6e 64 |le-inlin|e-expand|
|00000be0| 29 29 0a 28 64 65 66 61 | 6c 69 61 73 20 27 64 65 |)).(defa|lias 'de|
|00000bf0| 72 69 76 65 64 2d 6d 6f | 64 65 2d 6d 61 70 2d 6e |rived-mo|de-map-n|
|00000c00| 61 6d 65 20 23 5b 28 6d | 6f 64 65 29 20 22 c0 c1 |ame #[(m|ode) "..|
|00000c10| 5c 6e 21 c3 50 21 87 22 | 20 5b 69 6e 74 65 72 6e |\n!.P!."| [intern|
|00000c20| 20 73 79 6d 62 6f 6c 2d | 6e 61 6d 65 20 6d 6f 64 | symbol-|name mod|
|00000c30| 65 20 22 2d 6d 61 70 22 | 5d 20 33 20 22 5c 0a 43 |e "-map"|] 3 "\.C|
|00000c40| 6f 6e 73 74 72 75 63 74 | 20 61 20 6d 61 70 20 6e |onstruct| a map n|
|00000c50| 61 6d 65 20 62 61 73 65 | 64 20 6f 6e 20 61 20 6d |ame base|d on a m|
|00000c60| 6f 64 65 20 6e 61 6d 65 | 2e 22 5d 29 0a 28 70 75 |ode name|."]).(pu|
|00000c70| 74 20 28 71 75 6f 74 65 | 20 64 65 72 69 76 65 64 |t (quote| derived|
|00000c80| 2d 6d 6f 64 65 2d 6d 61 | 70 2d 6e 61 6d 65 29 20 |-mode-ma|p-name) |
|00000c90| 28 71 75 6f 74 65 20 62 | 79 74 65 2d 6f 70 74 69 |(quote b|yte-opti|
|00000ca0| 6d 69 7a 65 72 29 20 28 | 71 75 6f 74 65 20 62 79 |mizer) (|quote by|
|00000cb0| 74 65 2d 63 6f 6d 70 69 | 6c 65 2d 69 6e 6c 69 6e |te-compi|le-inlin|
|00000cc0| 65 2d 65 78 70 61 6e 64 | 29 29 0a 28 64 65 66 61 |e-expand|)).(defa|
|00000cd0| 6c 69 61 73 20 27 64 65 | 72 69 76 65 64 2d 6d 6f |lias 'de|rived-mo|
|00000ce0| 64 65 2d 73 79 6e 74 61 | 78 2d 74 61 62 6c 65 2d |de-synta|x-table-|
|00000cf0| 6e 61 6d 65 20 23 5b 28 | 6d 6f 64 65 29 20 22 c0 |name #[(|mode) ".|
|00000d00| c1 5c 6e 21 c3 50 21 87 | 22 20 5b 69 6e 74 65 72 |.\n!.P!.|" [inter|
|00000d10| 6e 20 73 79 6d 62 6f 6c | 2d 6e 61 6d 65 20 6d 6f |n symbol|-name mo|
|00000d20| 64 65 20 22 2d 73 79 6e | 74 61 78 2d 74 61 62 6c |de "-syn|tax-tabl|
|00000d30| 65 22 5d 20 33 20 22 5c | 0a 43 6f 6e 73 74 72 75 |e"] 3 "\|.Constru|
|00000d40| 63 74 20 61 20 73 79 6e | 74 61 78 2d 74 61 62 6c |ct a syn|tax-tabl|
|00000d50| 65 20 6e 61 6d 65 20 62 | 61 73 65 64 20 6f 6e 20 |e name b|ased on |
|00000d60| 61 20 6d 6f 64 65 20 6e | 61 6d 65 2e 22 5d 29 0a |a mode n|ame."]).|
|00000d70| 28 70 75 74 20 28 71 75 | 6f 74 65 20 64 65 72 69 |(put (qu|ote deri|
|00000d80| 76 65 64 2d 6d 6f 64 65 | 2d 73 79 6e 74 61 78 2d |ved-mode|-syntax-|
|00000d90| 74 61 62 6c 65 2d 6e 61 | 6d 65 29 20 28 71 75 6f |table-na|me) (quo|
|00000da0| 74 65 20 62 79 74 65 2d | 6f 70 74 69 6d 69 7a 65 |te byte-|optimize|
|00000db0| 72 29 20 28 71 75 6f 74 | 65 20 62 79 74 65 2d 63 |r) (quot|e byte-c|
|00000dc0| 6f 6d 70 69 6c 65 2d 69 | 6e 6c 69 6e 65 2d 65 78 |ompile-i|nline-ex|
|00000dd0| 70 61 6e 64 29 29 0a 28 | 64 65 66 61 6c 69 61 73 |pand)).(|defalias|
|00000de0| 20 27 64 65 72 69 76 65 | 64 2d 6d 6f 64 65 2d 61 | 'derive|d-mode-a|
|00000df0| 62 62 72 65 76 2d 74 61 | 62 6c 65 2d 6e 61 6d 65 |bbrev-ta|ble-name|
|00000e00| 20 23 5b 28 6d 6f 64 65 | 29 20 22 c0 c1 5c 6e 21 | #[(mode|) "..\n!|
|00000e10| c3 50 21 87 22 20 5b 69 | 6e 74 65 72 6e 20 73 79 |.P!." [i|ntern sy|
|00000e20| 6d 62 6f 6c 2d 6e 61 6d | 65 20 6d 6f 64 65 20 22 |mbol-nam|e mode "|
|00000e30| 2d 61 62 62 72 65 76 2d | 74 61 62 6c 65 22 5d 20 |-abbrev-|table"] |
|00000e40| 33 20 22 5c 0a 43 6f 6e | 73 74 72 75 63 74 20 61 |3 "\.Con|struct a|
|00000e50| 6e 20 61 62 62 72 65 76 | 2d 74 61 62 6c 65 20 6e |n abbrev|-table n|
|00000e60| 61 6d 65 20 62 61 73 65 | 64 20 6f 6e 20 61 20 6d |ame base|d on a m|
|00000e70| 6f 64 65 20 6e 61 6d 65 | 2e 22 5d 29 0a 28 70 75 |ode name|."]).(pu|
|00000e80| 74 20 28 71 75 6f 74 65 | 20 64 65 72 69 76 65 64 |t (quote| derived|
|00000e90| 2d 6d 6f 64 65 2d 61 62 | 62 72 65 76 2d 74 61 62 |-mode-ab|brev-tab|
|00000ea0| 6c 65 2d 6e 61 6d 65 29 | 20 28 71 75 6f 74 65 20 |le-name)| (quote |
|00000eb0| 62 79 74 65 2d 6f 70 74 | 69 6d 69 7a 65 72 29 20 |byte-opt|imizer) |
|00000ec0| 28 71 75 6f 74 65 20 62 | 79 74 65 2d 63 6f 6d 70 |(quote b|yte-comp|
|00000ed0| 69 6c 65 2d 69 6e 6c 69 | 6e 65 2d 65 78 70 61 6e |ile-inli|ne-expan|
|00000ee0| 64 29 29 0a 28 64 65 66 | 61 6c 69 61 73 20 27 64 |d)).(def|alias 'd|
|00000ef0| 65 72 69 76 65 64 2d 6d | 6f 64 65 2d 69 6e 69 74 |erived-m|ode-init|
|00000f00| 2d 6d 6f 64 65 2d 76 61 | 72 69 61 62 6c 65 73 20 |-mode-va|riables |
|00000f10| 23 5b 28 6d 6f 64 65 29 | 20 22 c0 09 19 c2 c3 09 |#[(mode)| "......|
|00000f20| 21 c4 50 21 29 21 84 32 | 00 c5 c6 09 19 c2 c3 09 |!.P!)!.2|........|
|00000f30| 21 c4 50 21 29 c7 c8 c9 | 09 5c 22 46 21 88 ca 09 |!.P!)...|.\"F!...|
|00000f40| 19 c2 c3 09 21 c4 50 21 | 29 cb cc 23 88 c0 09 19 |....!.P!|)..#....|
|00000f50| c2 c3 09 21 cd 50 21 29 | 21 84 64 00 c5 c6 09 19 |...!.P!)|!.d.....|
|00000f60| c2 c3 09 21 cd 50 21 29 | ce c8 cf 09 5c 22 46 21 |...!.P!)|....\"F!|
|00000f70| 88 ca 09 19 c2 c3 09 21 | cd 50 21 29 cb cc 23 88 |.......!|.P!)..#.|
|00000f80| c0 09 19 c2 c3 09 21 d0 | 50 21 29 21 83 75 00 cc |......!.|P!)!.u..|
|00000f90| 87 c5 c6 09 19 c2 c3 09 | 21 d0 50 21 29 d1 c8 d2 |........|!.P!)...|
|00000fa0| 09 5c 22 46 21 87 22 20 | 5b 62 6f 75 6e 64 70 20 |.\"F!." |[boundp |
|00000fb0| 6d 6f 64 65 20 69 6e 74 | 65 72 6e 20 73 79 6d 62 |mode int|ern symb|
|00000fc0| 6f 6c 2d 6e 61 6d 65 20 | 22 2d 6d 61 70 22 20 65 |ol-name |"-map" e|
|00000fd0| 76 61 6c 20 64 65 66 76 | 61 72 20 28 6d 61 6b 65 |val defv|ar (make|
|00000fe0| 2d 73 70 61 72 73 65 2d | 6b 65 79 6d 61 70 29 20 |-sparse-|keymap) |
|00000ff0| 66 6f 72 6d 61 74 20 22 | 4b 65 79 6d 61 70 20 66 |format "|Keymap f|
|00001000| 6f 72 20 25 73 2e 22 20 | 70 75 74 20 64 65 72 69 |or %s." |put deri|
|00001010| 76 65 64 2d 6d 6f 64 65 | 2d 75 6e 6d 65 72 67 65 |ved-mode|-unmerge|
|00001020| 64 20 74 20 22 2d 73 79 | 6e 74 61 78 2d 74 61 62 |d t "-sy|ntax-tab|
|00001030| 6c 65 22 20 28 6d 61 6b | 65 2d 76 65 63 74 6f 72 |le" (mak|e-vector|
|00001040| 20 32 35 36 20 6e 69 6c | 29 20 22 53 79 6e 74 61 | 256 nil|) "Synta|
|00001050| 78 20 74 61 62 6c 65 20 | 66 6f 72 20 25 73 2e 22 |x table |for %s."|
|00001060| 20 22 2d 61 62 62 72 65 | 76 2d 74 61 62 6c 65 22 | "-abbre|v-table"|
|00001070| 20 28 70 72 6f 67 6e 20 | 28 64 65 66 69 6e 65 2d | (progn |(define-|
|00001080| 61 62 62 72 65 76 2d 74 | 61 62 6c 65 20 28 64 65 |abbrev-t|able (de|
|00001090| 72 69 76 65 64 2d 6d 6f | 64 65 2d 61 62 62 72 65 |rived-mo|de-abbre|
|000010a0| 76 2d 74 61 62 6c 65 2d | 6e 61 6d 65 20 6d 6f 64 |v-table-|name mod|
|000010b0| 65 29 20 6e 69 6c 29 20 | 28 6d 61 6b 65 2d 61 62 |e) nil) |(make-ab|
|000010c0| 62 72 65 76 2d 74 61 62 | 6c 65 29 29 20 22 41 62 |brev-tab|le)) "Ab|
|000010d0| 62 72 65 76 20 74 61 62 | 6c 65 20 66 6f 72 20 25 |brev tab|le for %|
|000010e0| 73 2e 22 5d 20 37 20 22 | 5c 0a 49 6e 69 74 69 61 |s."] 7 "|\.Initia|
|000010f0| 6c 69 73 65 20 76 61 72 | 69 61 62 6c 65 73 20 66 |lise var|iables f|
|00001100| 6f 72 20 61 20 6e 65 77 | 20 6d 6f 64 65 2e 20 0a |or a new| mode. .|
|00001110| 52 69 67 68 74 20 6e 6f | 77 2c 20 69 66 20 74 68 |Right no|w, if th|
|00001120| 65 79 20 64 6f 6e 27 74 | 20 61 6c 72 65 61 64 79 |ey don't| already|
|00001130| 20 65 78 69 73 74 2c 20 | 73 65 74 20 75 70 20 61 | exist, |set up a|
|00001140| 20 62 6c 61 6e 6b 20 6b | 65 79 6d 61 70 2c 20 61 | blank k|eymap, a|
|00001150| 6e 0a 65 6d 70 74 79 20 | 73 79 6e 74 61 78 20 74 |n.empty |syntax t|
|00001160| 61 62 6c 65 2c 20 61 6e | 64 20 61 6e 20 65 6d 70 |able, an|d an emp|
|00001170| 74 79 20 61 62 62 72 65 | 76 20 74 61 62 6c 65 20 |ty abbre|v table |
|00001180| 2d 2d 20 74 68 65 73 65 | 20 77 69 6c 6c 20 62 65 |-- these| will be|
|00001190| 20 6d 65 72 67 65 64 0a | 74 68 65 20 66 69 72 73 | merged.|the firs|
|000011a0| 74 20 74 69 6d 65 20 74 | 68 65 20 6d 6f 64 65 20 |t time t|he mode |
|000011b0| 69 73 20 75 73 65 64 2e | 22 5d 29 0a 28 64 65 66 |is used.|"]).(def|
|000011c0| 61 6c 69 61 73 20 27 64 | 65 72 69 76 65 64 2d 6d |alias 'd|erived-m|
|000011d0| 6f 64 65 2d 6d 61 6b 65 | 2d 64 6f 63 73 74 72 69 |ode-make|-docstri|
|000011e0| 6e 67 20 23 5b 28 70 61 | 72 65 6e 74 20 63 68 69 |ng #[(pa|rent chi|
|000011f0| 6c 64 29 20 22 c0 c1 5c | 6e 0b 89 5c 6e 89 0b 26 |ld) "..\|n..\n..&|
|00001200| 07 87 22 20 5b 66 6f 72 | 6d 61 74 20 22 54 68 69 |.." [for|mat "Thi|
|00001210| 73 20 6d 61 6a 6f 72 20 | 6d 6f 64 65 20 69 73 20 |s major |mode is |
|00001220| 61 20 76 61 72 69 61 6e | 74 20 6f 66 20 60 25 73 |a varian|t of `%s|
|00001230| 27 2c 20 63 72 65 61 74 | 65 64 20 62 79 20 60 64 |', creat|ed by `d|
|00001240| 65 66 69 6e 65 2d 64 65 | 72 69 76 65 64 2d 6d 6f |efine-de|rived-mo|
|00001250| 64 65 27 2e 5c 6e 49 74 | 20 69 6e 68 65 72 69 74 |de'.\nIt| inherit|
|00001260| 73 20 61 6c 6c 20 6f 66 | 20 74 68 65 20 70 61 72 |s all of| the par|
|00001270| 65 6e 74 27 73 20 61 74 | 74 72 69 62 75 74 65 73 |ent's at|tributes|
|00001280| 2c 20 62 75 74 20 68 61 | 73 20 69 74 73 20 6f 77 |, but ha|s its ow|
|00001290| 6e 20 6b 65 79 6d 61 70 | 2c 5c 6e 61 62 62 72 65 |n keymap|,\nabbre|
|000012a0| 76 20 74 61 62 6c 65 20 | 61 6e 64 20 73 79 6e 74 |v table |and synt|
|000012b0| 61 78 20 74 61 62 6c 65 | 3a 5c 6e 5c 6e 20 20 60 |ax table|:\n\n `|
|000012c0| 25 73 2d 6d 61 70 27 20 | 61 6e 64 20 60 25 73 2d |%s-map' |and `%s-|
|000012d0| 73 79 6e 74 61 78 2d 74 | 61 62 6c 65 27 5c 6e 5c |syntax-t|able'\n\|
|000012e0| 6e 77 68 69 63 68 20 6d | 6f 72 65 2d 6f 72 2d 6c |nwhich m|ore-or-l|
|000012f0| 65 73 73 20 73 68 61 64 | 6f 77 5c 6e 5c 6e 20 20 |ess shad|ow\n\n |
|00001300| 60 25 73 2d 6d 61 70 27 | 20 61 6e 64 20 60 25 73 |`%s-map'| and `%s|
|00001310| 2d 73 79 6e 74 61 78 2d | 74 61 62 6c 65 27 5c 6e |-syntax-|table'\n|
|00001320| 5c 6e 5c 5c 7b 25 73 2d | 6d 61 70 7d 22 20 70 61 |\n\\{%s-|map}" pa|
|00001330| 72 65 6e 74 20 63 68 69 | 6c 64 5d 20 38 20 22 5c |rent chi|ld] 8 "\|
|00001340| 0a 43 6f 6e 73 74 72 75 | 63 74 20 61 20 64 6f 63 |.Constru|ct a doc|
|00001350| 73 74 72 69 6e 67 20 66 | 6f 72 20 61 20 6e 65 77 |string f|or a new|
|00001360| 20 6d 6f 64 65 20 69 66 | 20 6e 6f 6e 65 20 69 73 | mode if| none is|
|00001370| 20 70 72 6f 76 69 64 65 | 64 2e 22 5d 29 0a 28 64 | provide|d."]).(d|
|00001380| 65 66 61 6c 69 61 73 20 | 27 64 65 72 69 76 65 64 |efalias |'derived|
|00001390| 2d 6d 6f 64 65 2d 73 65 | 74 2d 6b 65 79 6d 61 70 |-mode-se|t-keymap|
|000013a0| 20 23 5b 28 6d 6f 64 65 | 29 20 22 08 18 c1 c2 08 | #[(mode|) ".....|
|000013b0| 21 c3 50 21 29 1c c5 5c | 66 21 1e 06 c7 20 1e 08 |!.P!)..\|f!... ..|
|000013c0| 5c 66 c9 4e 83 21 00 ca | 0e 08 0e 06 5c 22 88 cb |\f.N.!..|....\"..|
|000013d0| 5c 66 c9 cc 23 88 cd 0e | 06 21 2b 87 22 20 5b 6d |\f..#...|.!+." [m|
|000013e0| 6f 64 65 20 69 6e 74 65 | 72 6e 20 73 79 6d 62 6f |ode inte|rn symbo|
|000013f0| 6c 2d 6e 61 6d 65 20 22 | 2d 6d 61 70 22 20 6d 61 |l-name "|-map" ma|
|00001400| 70 2d 6e 61 6d 65 20 65 | 76 61 6c 20 6e 65 77 2d |p-name e|val new-|
|00001410| 6d 61 70 20 63 75 72 72 | 65 6e 74 2d 6c 6f 63 61 |map curr|ent-loca|
|00001420| 6c 2d 6d 61 70 20 6f 6c | 64 2d 6d 61 70 20 64 65 |l-map ol|d-map de|
|00001430| 72 69 76 65 64 2d 6d 6f | 64 65 2d 75 6e 6d 65 72 |rived-mo|de-unmer|
|00001440| 67 65 64 20 64 65 72 69 | 76 65 64 2d 6d 6f 64 65 |ged deri|ved-mode|
|00001450| 2d 6d 65 72 67 65 2d 6b | 65 79 6d 61 70 73 20 70 |-merge-k|eymaps p|
|00001460| 75 74 20 6e 69 6c 20 75 | 73 65 2d 6c 6f 63 61 6c |ut nil u|se-local|
|00001470| 2d 6d 61 70 5d 20 34 20 | 22 5c 0a 53 65 74 20 74 |-map] 4 |"\.Set t|
|00001480| 68 65 20 6b 65 79 6d 61 | 70 20 6f 66 20 74 68 65 |he keyma|p of the|
|00001490| 20 6e 65 77 20 6d 6f 64 | 65 2c 20 6d 61 79 62 65 | new mod|e, maybe|
|000014a0| 20 6d 65 72 67 69 6e 67 | 20 77 69 74 68 20 74 68 | merging| with th|
|000014b0| 65 20 70 61 72 65 6e 74 | 2e 22 5d 29 0a 28 64 65 |e parent|."]).(de|
|000014c0| 66 61 6c 69 61 73 20 27 | 64 65 72 69 76 65 64 2d |falias '|derived-|
|000014d0| 6d 6f 64 65 2d 73 65 74 | 2d 73 79 6e 74 61 78 2d |mode-set|-syntax-|
|000014e0| 74 61 62 6c 65 20 23 5b | 28 6d 6f 64 65 29 20 22 |table #[|(mode) "|
|000014f0| 08 18 c1 c2 08 21 c3 50 | 21 29 1c c5 20 1e 06 c7 |.....!.P|!).. ...|
|00001500| 5c 66 21 1e 08 5c 66 c9 | 4e 83 21 00 ca 0e 06 0e |\f!..\f.|N.!.....|
|00001510| 08 5c 22 88 cb 5c 66 c9 | cc 23 88 cd 0e 08 21 2b |.\"..\f.|.#....!+|
|00001520| 87 22 20 5b 6d 6f 64 65 | 20 69 6e 74 65 72 6e 20 |." [mode| intern |
|00001530| 73 79 6d 62 6f 6c 2d 6e | 61 6d 65 20 22 2d 73 79 |symbol-n|ame "-sy|
|00001540| 6e 74 61 78 2d 74 61 62 | 6c 65 22 20 74 61 62 6c |ntax-tab|le" tabl|
|00001550| 65 2d 6e 61 6d 65 20 73 | 79 6e 74 61 78 2d 74 61 |e-name s|yntax-ta|
|00001560| 62 6c 65 20 6f 6c 64 2d | 74 61 62 6c 65 20 65 76 |ble old-|table ev|
|00001570| 61 6c 20 6e 65 77 2d 74 | 61 62 6c 65 20 64 65 72 |al new-t|able der|
|00001580| 69 76 65 64 2d 6d 6f 64 | 65 2d 75 6e 6d 65 72 67 |ived-mod|e-unmerg|
|00001590| 65 64 20 64 65 72 69 76 | 65 64 2d 6d 6f 64 65 2d |ed deriv|ed-mode-|
|000015a0| 6d 65 72 67 65 2d 73 79 | 6e 74 61 78 2d 74 61 62 |merge-sy|ntax-tab|
|000015b0| 6c 65 73 20 70 75 74 20 | 6e 69 6c 20 73 65 74 2d |les put |nil set-|
|000015c0| 73 79 6e 74 61 78 2d 74 | 61 62 6c 65 5d 20 34 20 |syntax-t|able] 4 |
|000015d0| 22 5c 0a 53 65 74 20 74 | 68 65 20 73 79 6e 74 61 |"\.Set t|he synta|
|000015e0| 78 20 74 61 62 6c 65 20 | 6f 66 20 74 68 65 20 6e |x table |of the n|
|000015f0| 65 77 20 6d 6f 64 65 2c | 20 6d 61 79 62 65 20 6d |ew mode,| maybe m|
|00001600| 65 72 67 69 6e 67 20 77 | 69 74 68 20 74 68 65 20 |erging w|ith the |
|00001610| 70 61 72 65 6e 74 2e 22 | 5d 29 0a 28 64 65 66 61 |parent."|]).(defa|
|00001620| 6c 69 61 73 20 27 64 65 | 72 69 76 65 64 2d 6d 6f |lias 'de|rived-mo|
|00001630| 64 65 2d 73 65 74 2d 61 | 62 62 72 65 76 2d 74 61 |de-set-a|bbrev-ta|
|00001640| 62 6c 65 20 23 5b 28 6d | 6f 64 65 29 20 22 08 18 |ble #[(m|ode) "..|
|00001650| c1 c2 08 21 c3 50 21 29 | 1c 0d 1e 06 c7 5c 66 21 |...!.P!)|.....\f!|
|00001660| 1e 08 c9 0e 06 0e 08 5c | 22 88 0e 08 89 15 2b 87 |.......\|".....+.|
|00001670| 22 20 5b 6d 6f 64 65 20 | 69 6e 74 65 72 6e 20 73 |" [mode |intern s|
|00001680| 79 6d 62 6f 6c 2d 6e 61 | 6d 65 20 22 2d 61 62 62 |ymbol-na|me "-abb|
|00001690| 72 65 76 2d 74 61 62 6c | 65 22 20 74 61 62 6c 65 |rev-tabl|e" table|
|000016a0| 2d 6e 61 6d 65 20 6c 6f | 63 61 6c 2d 61 62 62 72 |-name lo|cal-abbr|
|000016b0| 65 76 2d 74 61 62 6c 65 | 20 6f 6c 64 2d 74 61 62 |ev-table| old-tab|
|000016c0| 6c 65 20 65 76 61 6c 20 | 6e 65 77 2d 74 61 62 6c |le eval |new-tabl|
|000016d0| 65 20 64 65 72 69 76 65 | 64 2d 6d 6f 64 65 2d 6d |e derive|d-mode-m|
|000016e0| 65 72 67 65 2d 61 62 62 | 72 65 76 2d 74 61 62 6c |erge-abb|rev-tabl|
|000016f0| 65 73 5d 20 33 20 22 5c | 0a 53 65 74 20 74 68 65 |es] 3 "\|.Set the|
|00001700| 20 61 62 62 72 65 76 20 | 74 61 62 6c 65 20 69 66 | abbrev |table if|
|00001710| 20 69 74 20 65 78 69 73 | 74 73 2e 20 20 0a 41 6c | it exis|ts. .Al|
|00001720| 77 61 79 73 20 6d 65 72 | 67 65 20 69 74 73 20 70 |ways mer|ge its p|
|00001730| 61 72 65 6e 74 20 69 6e | 74 6f 20 69 74 2c 20 73 |arent in|to it, s|
|00001740| 69 6e 63 65 20 74 68 65 | 20 6d 65 72 67 65 20 69 |ince the| merge i|
|00001750| 73 20 6e 6f 6e 2d 64 65 | 73 74 72 75 63 74 69 76 |s non-de|structiv|
|00001760| 65 2e 22 5d 29 0a 28 64 | 65 66 61 6c 69 61 73 20 |e."]).(d|efalias |
|00001770| 27 64 65 72 69 76 65 64 | 2d 6d 6f 64 65 2d 72 75 |'derived|-mode-ru|
|00001780| 6e 2d 68 6f 6f 6b 73 20 | 23 5b 28 6d 6f 64 65 29 |n-hooks |#[(mode)|
|00001790| 20 22 08 18 c1 c2 08 21 | c3 50 21 29 1c c5 5c 66 | ".....!|.P!)..\f|
|000017a0| 21 85 14 00 c6 5c 66 21 | 29 87 22 20 5b 6d 6f 64 |!....\f!|)." [mod|
|000017b0| 65 20 69 6e 74 65 72 6e | 20 73 79 6d 62 6f 6c 2d |e intern| symbol-|
|000017c0| 6e 61 6d 65 20 22 2d 68 | 6f 6f 6b 73 22 20 68 6f |name "-h|ooks" ho|
|000017d0| 6f 6b 73 2d 6e 61 6d 65 | 20 62 6f 75 6e 64 70 20 |oks-name| boundp |
|000017e0| 72 75 6e 2d 68 6f 6f 6b | 73 5d 20 33 20 22 5c 0a |run-hook|s] 3 "\.|
|000017f0| 52 75 6e 20 74 68 65 20 | 68 6f 6f 6b 73 20 69 66 |Run the |hooks if|
|00001800| 20 74 68 65 79 20 65 78 | 69 73 74 2e 22 5d 29 0a | they ex|ist."]).|
|00001810| 28 64 65 66 61 6c 69 61 | 73 20 27 64 65 72 69 76 |(defalia|s 'deriv|
|00001820| 65 64 2d 6d 6f 64 65 2d | 6d 65 72 67 65 2d 6b 65 |ed-mode-|merge-ke|
|00001830| 79 6d 61 70 73 20 23 5b | 28 6f 6c 64 20 6e 65 77 |ymaps #[|(old new|
|00001840| 29 20 22 08 47 53 08 9b | 09 a1 87 22 20 5b 6e 65 |) ".GS..|..." [ne|
|00001850| 77 20 6f 6c 64 5d 20 32 | 20 22 5c 0a 4d 65 72 67 |w old] 2| "\.Merg|
|00001860| 65 20 61 6e 20 6f 6c 64 | 20 6b 65 79 6d 61 70 20 |e an old| keymap |
|00001870| 69 6e 74 6f 20 61 20 6e | 65 77 20 6f 6e 65 2e 0a |into a n|ew one..|
|00001880| 54 68 65 20 6f 6c 64 20 | 6b 65 79 6d 61 70 20 69 |The old |keymap i|
|00001890| 73 20 73 65 74 20 74 6f | 20 62 65 20 74 68 65 20 |s set to| be the |
|000018a0| 63 64 72 20 6f 66 20 74 | 68 65 20 6e 65 77 20 6f |cdr of t|he new o|
|000018b0| 6e 65 2c 20 73 6f 20 74 | 68 61 74 20 74 68 65 72 |ne, so t|hat ther|
|000018c0| 65 20 77 69 6c 6c 0a 62 | 65 20 61 75 74 6f 6d 61 |e will.b|e automa|
|000018d0| 74 69 63 20 69 6e 68 65 | 72 69 74 61 6e 63 65 2e |tic inhe|ritance.|
|000018e0| 22 5d 29 0a 28 64 65 66 | 61 6c 69 61 73 20 27 64 |"]).(def|alias 'd|
|000018f0| 65 72 69 76 65 64 2d 6d | 6f 64 65 2d 6d 65 72 67 |erived-m|ode-merg|
|00001900| 65 2d 73 79 6e 74 61 78 | 2d 74 61 62 6c 65 73 20 |e-syntax|-tables |
|00001910| 23 5b 28 6f 6c 64 20 6e | 65 77 29 20 22 c0 09 47 |#[(old n|ew) "..G|
|00001920| 5c 6e 47 5e 1b 89 1c 0b | 57 85 5c 22 00 09 5c 66 |\nG^....|W.\"..\f|
|00001930| 48 84 1b 00 09 5c 66 5c | 6e 5c 66 48 49 88 5c 66 |H....\f\|n\fHI.\f|
|00001940| 54 89 14 82 09 00 2a 87 | 22 20 5b 30 20 6e 65 77 |T.....*.|" [0 new|
|00001950| 20 6f 6c 64 20 65 6e 64 | 20 69 64 78 5d 20 35 20 | old end| idx] 5 |
|00001960| 22 5c 0a 4d 65 72 67 65 | 20 61 6e 20 6f 6c 64 20 |"\.Merge| an old |
|00001970| 73 79 6e 74 61 78 20 74 | 61 62 6c 65 20 69 6e 74 |syntax t|able int|
|00001980| 6f 20 61 20 6e 65 77 20 | 6f 6e 65 2e 0a 57 68 65 |o a new |one..Whe|
|00001990| 72 65 20 74 68 65 20 6e | 65 77 20 74 61 62 6c 65 |re the n|ew table|
|000019a0| 20 61 6c 72 65 61 64 79 | 20 68 61 73 20 61 6e 20 | already| has an |
|000019b0| 65 6e 74 72 79 2c 20 6e | 6f 74 68 69 6e 67 20 69 |entry, n|othing i|
|000019c0| 73 20 63 6f 70 69 65 64 | 20 66 72 6f 6d 20 74 68 |s copied| from th|
|000019d0| 65 20 6f 6c 64 20 6f 6e | 65 2e 22 5d 29 0a 28 64 |e old on|e."]).(d|
|000019e0| 65 66 61 6c 69 61 73 20 | 27 64 65 72 69 76 65 64 |efalias |'derived|
|000019f0| 2d 6d 6f 64 65 2d 6d 65 | 72 67 65 2d 61 62 62 72 |-mode-me|rge-abbr|
|00001a00| 65 76 2d 74 61 62 6c 65 | 73 20 23 5b 28 6f 6c 64 |ev-table|s #[(old|
|00001a10| 20 6e 65 77 29 20 22 c0 | c1 5c 6e 5c 22 87 22 20 | new) ".|.\n\"." |
|00001a20| 5b 6d 61 70 61 74 6f 6d | 73 20 23 5b 28 73 79 6d |[mapatom|s #[(sym|
|00001a30| 62 6f 6c 29 20 22 c0 c1 | 5c 6e 21 0b 5c 22 86 13 |bol) "..|\n!.\"..|
|00001a40| 00 c4 0b c1 5c 6e 21 5c | 6e 4a 5c 6e 4b 24 87 22 |....\n!\|nJ\nK$."|
|00001a50| 20 5b 69 6e 74 65 72 6e | 2d 73 6f 66 74 20 73 79 | [intern|-soft sy|
|00001a60| 6d 62 6f 6c 2d 6e 61 6d | 65 20 73 79 6d 62 6f 6c |mbol-nam|e symbol|
|00001a70| 20 6e 65 77 20 64 65 66 | 69 6e 65 2d 61 62 62 72 | new def|ine-abbr|
|00001a80| 65 76 5d 20 35 5d 20 6f | 6c 64 5d 20 33 20 22 5c |ev] 5] o|ld] 3 "\|
|00001a90| 0a 4d 65 72 67 65 20 61 | 6e 20 6f 6c 64 20 61 62 |.Merge a|n old ab|
|00001aa0| 62 72 65 76 20 74 61 62 | 6c 65 20 69 6e 74 6f 20 |brev tab|le into |
|00001ab0| 61 20 6e 65 77 20 6f 6e | 65 2e 0a 54 68 69 73 20 |a new on|e..This |
|00001ac0| 66 75 6e 63 74 69 6f 6e | 20 72 65 71 75 69 72 65 |function| require|
|00001ad0| 73 20 69 6e 74 65 72 6e | 61 6c 20 6b 6e 6f 77 6c |s intern|al knowl|
|00001ae0| 65 64 67 65 20 6f 66 20 | 68 6f 77 20 61 62 62 72 |edge of |how abbr|
|00001af0| 65 76 20 74 61 62 6c 65 | 73 20 77 6f 72 6b 2c 0a |ev table|s work,.|
|00001b00| 70 72 65 73 75 6d 69 6e | 67 20 74 68 61 74 20 74 |presumin|g that t|
|00001b10| 68 65 79 20 61 72 65 20 | 6f 62 61 72 72 61 79 73 |hey are |obarrays|
|00001b20| 20 77 69 74 68 20 74 68 | 65 20 61 62 62 72 65 76 | with th|e abbrev|
|00001b30| 20 61 73 20 74 68 65 20 | 73 79 6d 62 6f 6c 2c 20 | as the |symbol, |
|00001b40| 74 68 65 20 65 78 70 61 | 6e 73 69 6f 6e 0a 61 73 |the expa|nsion.as|
|00001b50| 20 74 68 65 20 76 61 6c | 75 65 20 6f 66 20 74 68 | the val|ue of th|
|00001b60| 65 20 73 79 6d 62 6f 6c | 2c 20 61 6e 64 20 74 68 |e symbol|, and th|
|00001b70| 65 20 68 6f 6f 6b 20 61 | 73 20 74 68 65 20 66 75 |e hook a|s the fu|
|00001b80| 6e 63 74 69 6f 6e 20 64 | 65 66 69 6e 69 74 69 6f |nction d|efinitio|
|00001b90| 6e 2e 0a 54 68 69 73 20 | 63 6f 75 6c 64 20 77 65 |n..This |could we|
|00001ba0| 6c 6c 20 62 72 65 61 6b | 20 77 69 74 68 20 73 6f |ll break| with so|
|00001bb0| 6d 65 20 66 75 74 75 72 | 65 20 76 65 72 73 69 6f |me futur|e versio|
|00001bc0| 6e 20 6f 66 20 47 6e 75 | 20 45 6d 61 63 73 2e 22 |n of Gnu| Emacs."|
|00001bd0| 5d 29 0a 28 70 72 6f 76 | 69 64 65 20 28 71 75 6f |]).(prov|ide (quo|
|00001be0| 74 65 20 64 65 72 69 76 | 65 64 29 29 0a |te deriv|ed)). |
+--------+-------------------------+-------------------------+--------+--------+