home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 6 / FreshFish_September1994.bin / bbs / gnu / emacs-18.59-src.lha / GNU / src / amiga / emacs-18.59 / lisp / server.elc < prev    next >
Emacs Compiled Lisp  |  1991-09-13  |  5.4 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

This file was processed as: Emacs Compiled Lisp (other/emacsCompiledLisp).
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert Emacs Compiled Lisp (other/emacsCompiledLisp) magic Unsupported
100% file Emacs v18 byte-compiled Lisp data default
99% file data default
100% gt2 Kopftext: '(defvar server-program ' default (weak)
100% detectItEasy Format: plain text[LF] default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0a 28 64 65 66 76 61 72 | 20 73 65 72 76 65 72 2d |.(defvar| server-|
|00000010| 70 72 6f 67 72 61 6d 20 | 22 73 65 72 76 65 72 22 |program |"server"|
|00000020| 20 22 5c 0a 2a 54 68 65 | 20 70 72 6f 67 72 61 6d | "\.*The| program|
|00000030| 20 74 6f 20 75 73 65 20 | 61 73 20 74 68 65 20 65 | to use |as the e|
|00000040| 64 69 74 20 73 65 72 76 | 65 72 22 29 0a 0a 28 64 |dit serv|er")..(d|
|00000050| 65 66 76 61 72 20 73 65 | 72 76 65 72 2d 70 72 6f |efvar se|rver-pro|
|00000060| 63 65 73 73 20 6e 69 6c | 20 22 5c 0a 74 68 65 20 |cess nil| "\.the |
|00000070| 63 75 72 72 65 6e 74 20 | 73 65 72 76 65 72 20 70 |current |server p|
|00000080| 72 6f 63 65 73 73 22 29 | 0a 0a 28 64 65 66 76 61 |rocess")|..(defva|
|00000090| 72 20 73 65 72 76 65 72 | 2d 70 72 65 76 69 6f 75 |r server|-previou|
|000000a0| 73 2d 73 74 72 69 6e 67 | 20 22 22 29 0a 0a 28 64 |s-string| "")..(d|
|000000b0| 65 66 76 61 72 20 73 65 | 72 76 65 72 2d 63 6c 69 |efvar se|rver-cli|
|000000c0| 65 6e 74 73 20 6e 69 6c | 20 22 5c 0a 4c 69 73 74 |ents nil| "\.List|
|000000d0| 20 6f 66 20 63 75 72 72 | 65 6e 74 20 73 65 72 76 | of curr|ent serv|
|000000e0| 65 72 20 63 6c 69 65 6e | 74 73 2e 0a 45 61 63 68 |er clien|ts..Each|
|000000f0| 20 65 6c 65 6d 65 6e 74 | 20 69 73 20 28 43 4c 49 | element| is (CLI|
|00000100| 45 4e 54 49 44 20 46 49 | 4c 45 53 2e 2e 2e 29 20 |ENTID FI|LES...) |
|00000110| 77 68 65 72 65 20 43 4c | 49 45 4e 54 49 44 20 69 |where CL|IENTID i|
|00000120| 73 20 61 20 73 74 72 69 | 6e 67 0a 74 68 61 74 20 |s a stri|ng.that |
|00000130| 63 61 6e 20 62 65 20 67 | 69 76 65 6e 20 74 6f 20 |can be g|iven to |
|00000140| 74 68 65 20 73 65 72 76 | 65 72 20 70 72 6f 63 65 |the serv|er proce|
|00000150| 73 73 20 74 6f 20 69 64 | 65 6e 74 69 66 79 20 61 |ss to id|entify a|
|00000160| 20 63 6c 69 65 6e 74 2e | 0a 57 68 65 6e 20 61 20 | client.|.When a |
|00000170| 62 75 66 66 65 72 20 69 | 73 20 6d 61 72 6b 65 64 |buffer i|s marked|
|00000180| 20 61 73 20 5c 22 64 6f | 6e 65 5c 22 2c 20 69 74 | as \"do|ne\", it|
|00000190| 20 69 73 20 72 65 6d 6f | 76 65 64 20 66 72 6f 6d | is remo|ved from|
|000001a0| 20 74 68 69 73 20 6c 69 | 73 74 2e 22 29 0a 0a 28 | this li|st.")..(|
|000001b0| 64 65 66 76 61 72 20 73 | 65 72 76 65 72 2d 62 75 |defvar s|erver-bu|
|000001c0| 66 66 65 72 2d 63 6c 69 | 65 6e 74 73 20 6e 69 6c |ffer-cli|ents nil|
|000001d0| 20 22 5c 0a 4c 69 73 74 | 20 6f 66 20 63 6c 69 65 | "\.List| of clie|
|000001e0| 6e 74 69 64 73 20 66 6f | 72 20 63 6c 69 65 6e 74 |ntids fo|r client|
|000001f0| 73 20 72 65 71 75 65 73 | 74 69 6e 67 20 65 64 69 |s reques|ting edi|
|00000200| 74 69 6e 67 20 6f 66 20 | 63 75 72 72 65 6e 74 20 |ting of |current |
|00000210| 62 75 66 66 65 72 2e 22 | 29 0a 0a 28 6d 61 6b 65 |buffer."|)..(make|
|00000220| 2d 76 61 72 69 61 62 6c | 65 2d 62 75 66 66 65 72 |-variabl|e-buffer|
|00000230| 2d 6c 6f 63 61 6c 20 28 | 71 75 6f 74 65 20 73 65 |-local (|quote se|
|00000240| 72 76 65 72 2d 62 75 66 | 66 65 72 2d 63 6c 69 65 |rver-buf|fer-clie|
|00000250| 6e 74 73 29 29 0a 0a 28 | 73 65 74 71 2d 64 65 66 |nts))..(|setq-def|
|00000260| 61 75 6c 74 20 73 65 72 | 76 65 72 2d 62 75 66 66 |ault ser|ver-buff|
|00000270| 65 72 2d 63 6c 69 65 6e | 74 73 20 6e 69 6c 29 0a |er-clien|ts nil).|
|00000280| 0a 28 6f 72 20 28 61 73 | 73 71 20 28 71 75 6f 74 |.(or (as|sq (quot|
|00000290| 65 20 73 65 72 76 65 72 | 2d 62 75 66 66 65 72 2d |e server|-buffer-|
|000002a0| 63 6c 69 65 6e 74 73 29 | 20 6d 69 6e 6f 72 2d 6d |clients)| minor-m|
|000002b0| 6f 64 65 2d 61 6c 69 73 | 74 29 20 28 73 65 74 71 |ode-alis|t) (setq|
|000002c0| 20 6d 69 6e 6f 72 2d 6d | 6f 64 65 2d 61 6c 69 73 | minor-m|ode-alis|
|000002d0| 74 20 28 63 6f 6e 73 20 | 28 71 75 6f 74 65 20 28 |t (cons |(quote (|
|000002e0| 73 65 72 76 65 72 2d 62 | 75 66 66 65 72 2d 63 6c |server-b|uffer-cl|
|000002f0| 69 65 6e 74 73 20 22 20 | 53 65 72 76 65 72 22 29 |ients " |Server")|
|00000300| 29 20 6d 69 6e 6f 72 2d | 6d 6f 64 65 2d 61 6c 69 |) minor-|mode-ali|
|00000310| 73 74 29 29 29 0a 0a 28 | 64 65 66 75 6e 20 73 65 |st)))..(|defun se|
|00000320| 72 76 65 72 2d 6c 6f 67 | 20 28 73 74 72 69 6e 67 |rver-log| (string|
|00000330| 29 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 c1 c2 |) (byte-|code "..|
|00000340| 21 85 17 00 8a c2 71 88 | 64 62 88 08 63 88 6f 86 |!.....q.|db..c.o.|
|00000350| 16 00 c3 20 29 87 22 20 | 5b 73 74 72 69 6e 67 20 |... )." |[string |
|00000360| 67 65 74 2d 62 75 66 66 | 65 72 20 22 2a 73 65 72 |get-buff|er "*ser|
|00000370| 76 65 72 2a 22 20 6e 65 | 77 6c 69 6e 65 5d 20 33 |ver*" ne|wline] 3|
|00000380| 29 29 0a 0a 28 64 65 66 | 75 6e 20 73 65 72 76 65 |))..(def|un serve|
|00000390| 72 2d 73 65 6e 74 69 6e | 65 6c 20 28 70 72 6f 63 |r-sentin|el (proc|
|000003a0| 20 6d 73 67 29 20 28 62 | 79 74 65 2d 63 6f 64 65 | msg) (b|yte-code|
|000003b0| 20 22 c1 08 21 c2 3d 83 | 10 00 c3 c4 c5 21 21 82 | "..!.=.|.....!!.|
|000003c0| 1d 00 c1 08 21 c6 3d 85 | 1d 00 c3 c4 c7 21 21 87 |....!.=.|.....!!.|
|000003d0| 22 20 5b 70 72 6f 63 20 | 70 72 6f 63 65 73 73 2d |" [proc |process-|
|000003e0| 73 74 61 74 75 73 20 65 | 78 69 74 20 73 65 72 76 |status e|xit serv|
|000003f0| 65 72 2d 6c 6f 67 20 6d | 65 73 73 61 67 65 20 22 |er-log m|essage "|
|00000400| 53 65 72 76 65 72 20 73 | 75 62 70 72 6f 63 65 73 |Server s|ubproces|
|00000410| 73 20 65 78 69 74 65 64 | 22 20 73 69 67 6e 61 6c |s exited|" signal|
|00000420| 20 22 53 65 72 76 65 72 | 20 73 75 62 70 72 6f 63 | "Server| subproc|
|00000430| 65 73 73 20 6b 69 6c 6c | 65 64 22 5d 20 37 29 29 |ess kill|ed"] 7))|
|00000440| 0a 0a 28 64 65 66 75 6e | 20 73 65 72 76 65 72 2d |..(defun| server-|
|00000450| 73 74 61 72 74 20 28 26 | 6f 70 74 69 6f 6e 61 6c |start (&|optional|
|00000460| 20 6c 65 61 76 65 2d 64 | 65 61 64 29 20 22 5c 0a | leave-d|ead) "\.|
|00000470| 41 6c 6c 6f 77 20 74 68 | 69 73 20 45 6d 61 63 73 |Allow th|is Emacs|
|00000480| 20 70 72 6f 63 65 73 73 | 20 74 6f 20 62 65 20 61 | process| to be a|
|00000490| 20 73 65 72 76 65 72 20 | 66 6f 72 20 63 6c 69 65 | server |for clie|
|000004a0| 6e 74 20 70 72 6f 63 65 | 73 73 65 73 2e 0a 54 68 |nt proce|sses..Th|
|000004b0| 69 73 20 73 74 61 72 74 | 73 20 61 20 73 65 72 76 |is start|s a serv|
|000004c0| 65 72 20 63 6f 6d 6d 75 | 6e 69 63 61 74 69 6f 6e |er commu|nication|
|000004d0| 73 20 73 75 62 70 72 6f | 63 65 73 73 20 74 68 72 |s subpro|cess thr|
|000004e0| 6f 75 67 68 20 77 68 69 | 63 68 0a 63 6c 69 65 6e |ough whi|ch.clien|
|000004f0| 74 20 5c 22 65 64 69 74 | 6f 72 73 5c 22 20 63 61 |t \"edit|ors\" ca|
|00000500| 6e 20 73 65 6e 64 20 79 | 6f 75 72 20 65 64 69 74 |n send y|our edit|
|00000510| 69 6e 67 20 63 6f 6d 6d | 61 6e 64 73 20 74 6f 20 |ing comm|ands to |
|00000520| 74 68 69 73 20 45 6d 61 | 63 73 20 6a 6f 62 2e 0a |this Ema|cs job..|
|00000530| 54 6f 20 75 73 65 20 74 | 68 65 20 73 65 72 76 65 |To use t|he serve|
|00000540| 72 2c 20 73 65 74 20 75 | 70 20 74 68 65 20 70 72 |r, set u|p the pr|
|00000550| 6f 67 72 61 6d 20 60 65 | 74 63 2f 65 6d 61 63 73 |ogram `e|tc/emacs|
|00000560| 63 6c 69 65 6e 74 27 20 | 69 6e 20 74 68 65 0a 45 |client' |in the.E|
|00000570| 6d 61 63 73 20 64 69 73 | 74 72 69 62 75 74 69 6f |macs dis|tributio|
|00000580| 6e 20 61 73 20 79 6f 75 | 72 20 73 74 61 6e 64 61 |n as you|r standa|
|00000590| 72 64 20 5c 22 65 64 69 | 74 6f 72 5c 22 2e 0a 0a |rd \"edi|tor\"...|
|000005a0| 50 72 65 66 69 78 20 61 | 72 67 20 6d 65 61 6e 73 |Prefix a|rg means|
|000005b0| 20 6a 75 73 74 20 6b 69 | 6c 6c 20 61 6e 79 20 65 | just ki|ll any e|
|000005c0| 78 69 73 74 69 6e 67 20 | 73 65 72 76 65 72 20 63 |xisting |server c|
|000005d0| 6f 6d 6d 75 6e 69 63 61 | 74 69 6f 6e 73 20 73 75 |ommunica|tions su|
|000005e0| 62 70 72 6f 63 65 73 73 | 2e 22 20 28 69 6e 74 65 |bprocess|." (inte|
|000005f0| 72 61 63 74 69 76 65 20 | 22 50 22 29 20 28 62 79 |ractive |"P") (by|
|00000600| 74 65 2d 63 6f 64 65 20 | 22 c1 88 08 85 0f 00 c7 |te-code |".......|
|00000610| 08 c1 5c 22 88 c1 c8 c9 | 8f 88 c1 ca cb 8f 88 c1 |..\"....|........|
|00000620| cc cd 8f 88 0a 85 2b 00 | ce 0a 40 38 1b cf 0b 21 |......+.|..@8...!|
|00000630| 29 88 82 1a 00 88 0c 83 | 34 00 c1 82 57 00 08 85 |).......|4...W...|
|00000640| 3d 00 d0 d1 d2 21 21 88 | c1 1d d3 d4 c1 0e 06 23 |=....!!.|.......#|
|00000650| 89 10 29 88 c7 08 d5 5c | 22 88 d6 08 d7 5c 22 88 |..)....\|"....\".|
|00000660| d8 08 21 87 22 20 5b 73 | 65 72 76 65 72 2d 70 72 |..!." [s|erver-pr|
|00000670| 6f 63 65 73 73 20 6e 69 | 6c 20 73 65 72 76 65 72 |ocess ni|l server|
|00000680| 2d 63 6c 69 65 6e 74 73 | 20 62 75 66 66 65 72 20 |-clients| buffer |
|00000690| 6c 65 61 76 65 2d 64 65 | 61 64 20 70 72 6f 63 65 |leave-de|ad proce|
|000006a0| 73 73 2d 63 6f 6e 6e 65 | 63 74 69 6f 6e 2d 74 79 |ss-conne|ction-ty|
|000006b0| 70 65 20 73 65 72 76 65 | 72 2d 70 72 6f 67 72 61 |pe serve|r-progra|
|000006c0| 6d 20 73 65 74 2d 70 72 | 6f 63 65 73 73 2d 73 65 |m set-pr|ocess-se|
|000006d0| 6e 74 69 6e 65 6c 20 28 | 62 79 74 65 2d 63 6f 64 |ntinel (|byte-cod|
|000006e0| 65 20 22 c1 08 21 87 22 | 20 5b 73 65 72 76 65 72 |e "..!."| [server|
|000006f0| 2d 70 72 6f 63 65 73 73 | 20 64 65 6c 65 74 65 2d |-process| delete-|
|00000700| 70 72 6f 63 65 73 73 5d | 20 32 29 20 28 28 65 72 |process]| 2) ((er|
|00000710| 72 6f 72 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |ror (byt|e-code "|
|00000720| c0 87 22 20 5b 6e 69 6c | 5d 20 31 29 29 29 20 28 |.." [nil|] 1))) (|
|00000730| 62 79 74 65 2d 63 6f 64 | 65 20 22 c0 c1 21 87 22 |byte-cod|e "..!."|
|00000740| 20 5b 64 65 6c 65 74 65 | 2d 66 69 6c 65 20 22 7e | [delete|-file "~|
|00000750| 2f 2e 65 6d 61 63 73 5f | 73 65 72 76 65 72 22 5d |/.emacs_|server"]|
|00000760| 20 32 29 20 28 28 65 72 | 72 6f 72 20 28 62 79 74 | 2) ((er|ror (byt|
|00000770| 65 2d 63 6f 64 65 20 22 | c0 87 22 20 5b 6e 69 6c |e-code "|.." [nil|
|00000780| 5d 20 31 29 29 29 20 28 | 62 79 74 65 2d 63 6f 64 |] 1))) (|byte-cod|
|00000790| 65 20 22 c0 c1 c2 c3 20 | c4 20 23 21 87 22 20 5b |e ".... |. #!." [|
|000007a0| 64 65 6c 65 74 65 2d 66 | 69 6c 65 20 66 6f 72 6d |delete-f|ile form|
|000007b0| 61 74 20 22 2f 74 6d 70 | 2f 65 73 72 76 25 64 2d |at "/tmp|/esrv%d-|
|000007c0| 25 73 22 20 75 73 65 72 | 2d 75 69 64 20 73 79 73 |%s" user|-uid sys|
|000007d0| 74 65 6d 2d 6e 61 6d 65 | 5d 20 37 29 20 28 28 65 |tem-name|] 7) ((e|
|000007e0| 72 72 6f 72 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |rror (by|te-code |
|000007f0| 22 c0 87 22 20 5b 6e 69 | 6c 5d 20 31 29 29 29 20 |".." [ni|l] 1))) |
|00000800| 31 20 73 65 72 76 65 72 | 2d 62 75 66 66 65 72 2d |1 server|-buffer-|
|00000810| 64 6f 6e 65 20 73 65 72 | 76 65 72 2d 6c 6f 67 20 |done ser|ver-log |
|00000820| 6d 65 73 73 61 67 65 20 | 22 52 65 73 74 61 72 74 |message |"Restart|
|00000830| 69 6e 67 20 73 65 72 76 | 65 72 22 20 73 74 61 72 |ing serv|er" star|
|00000840| 74 2d 70 72 6f 63 65 73 | 73 20 22 73 65 72 76 65 |t-proces|s "serve|
|00000850| 72 22 20 73 65 72 76 65 | 72 2d 73 65 6e 74 69 6e |r" serve|r-sentin|
|00000860| 65 6c 20 73 65 74 2d 70 | 72 6f 63 65 73 73 2d 66 |el set-p|rocess-f|
|00000870| 69 6c 74 65 72 20 73 65 | 72 76 65 72 2d 70 72 6f |ilter se|rver-pro|
|00000880| 63 65 73 73 2d 66 69 6c | 74 65 72 20 70 72 6f 63 |cess-fil|ter proc|
|00000890| 65 73 73 2d 6b 69 6c 6c | 2d 77 69 74 68 6f 75 74 |ess-kill|-without|
|000008a0| 2d 71 75 65 72 79 5d 20 | 39 29 29 0a 0a 28 64 65 |-query] |9))..(de|
|000008b0| 66 75 6e 20 73 65 72 76 | 65 72 2d 70 72 6f 63 65 |fun serv|er-proce|
|000008c0| 73 73 2d 66 69 6c 74 65 | 72 20 28 70 72 6f 63 20 |ss-filte|r (proc |
|000008d0| 73 74 72 69 6e 67 29 20 | 28 62 79 74 65 2d 63 6f |string) |(byte-co|
|000008e0| 64 65 20 22 c8 08 21 88 | 09 08 50 89 10 88 c9 08 |de "..!.|..P.....|
|000008f0| 08 47 53 48 3d 85 1a 00 | ca cb cc 08 5c 22 3d 3f |.GSH=...|....\"=?|
|00000900| 83 24 00 08 89 11 82 a1 | 00 08 cd ca 21 c4 4f 89 |.$......|....!.O.|
|00000910| 10 88 ce 89 11 88 08 ca | cb cf 08 5c 22 4f 43 c4 |........|...\"OC.|
|00000920| d0 1d 1b 1a 08 cd ca 21 | c4 4f 89 10 88 cb d1 08 |.......!|.O......|
|00000930| 5c 22 85 87 00 08 d2 ca | 21 cd ca 21 53 4f 1e 06 |\"......|!..!SO..|
|00000940| 08 cd ca 21 c4 4f 89 10 | 88 cb d3 0e 06 5c 22 83 |...!.O..|.....\".|
|00000950| 76 00 d4 0e 06 d0 c4 4f | 21 89 15 82 82 00 0e 06 |v......O|!.......|
|00000960| 0d 44 0b 42 89 13 88 d0 | 89 15 29 88 82 47 00 88 |.D.B....|..)..G..|
|00000970| d5 0b 0a 5c 22 88 0a 0e | 07 42 89 16 07 88 d6 d0 |...\"...|.B......|
|00000980| 0a 38 21 88 d7 d8 d9 21 | 21 2b 87 22 20 5b 73 74 |.8!....!|!+." [st|
|00000990| 72 69 6e 67 20 73 65 72 | 76 65 72 2d 70 72 65 76 |ring ser|ver-prev|
|000009a0| 69 6f 75 73 2d 73 74 72 | 69 6e 67 20 63 6c 69 65 |ious-str|ing clie|
|000009b0| 6e 74 20 66 69 6c 65 73 | 20 6e 69 6c 20 6c 69 6e |nt files| nil lin|
|000009c0| 65 6e 6f 20 61 72 67 20 | 73 65 72 76 65 72 2d 63 |eno arg |server-c|
|000009d0| 6c 69 65 6e 74 73 20 73 | 65 72 76 65 72 2d 6c 6f |lients s|erver-lo|
|000009e0| 67 20 31 30 20 30 20 73 | 74 72 69 6e 67 2d 6d 61 |g 10 0 s|tring-ma|
|000009f0| 74 63 68 20 22 43 6c 69 | 65 6e 74 3a 20 22 20 6d |tch "Cli|ent: " m|
|00000a00| 61 74 63 68 2d 65 6e 64 | 20 22 22 20 22 20 22 20 |atch-end| "" " " |
|00000a10| 31 20 22 5b 5e 20 5d 2b | 20 22 20 6d 61 74 63 68 |1 "[^ ]+| " match|
|00000a20| 2d 62 65 67 69 6e 6e 69 | 6e 67 20 22 5c 5c 60 5c |-beginni|ng "\\`\|
|00000a30| 5c 2b 5b 30 2d 39 5d 2b | 5c 5c 27 22 20 72 65 61 |\+[0-9]+|\\'" rea|
|00000a40| 64 20 73 65 72 76 65 72 | 2d 76 69 73 69 74 2d 66 |d server|-visit-f|
|00000a50| 69 6c 65 73 20 73 77 69 | 74 63 68 2d 74 6f 2d 62 |iles swi|tch-to-b|
|00000a60| 75 66 66 65 72 20 6d 65 | 73 73 61 67 65 20 73 75 |uffer me|ssage su|
|00000a70| 62 73 74 69 74 75 74 65 | 2d 63 6f 6d 6d 61 6e 64 |bstitute|-command|
|00000a80| 2d 6b 65 79 73 20 22 57 | 68 65 6e 20 64 6f 6e 65 |-keys "W|hen done|
|00000a90| 20 77 69 74 68 20 61 20 | 62 75 66 66 65 72 2c 20 | with a |buffer, |
|00000aa0| 74 79 70 65 20 5c 5c 5b | 73 65 72 76 65 72 2d 65 |type \\[|server-e|
|00000ab0| 64 69 74 5d 2e 22 5d 20 | 31 36 29 29 0a 0a 28 64 |dit]."] |16))..(d|
|00000ac0| 65 66 75 6e 20 73 65 72 | 76 65 72 2d 76 69 73 69 |efun ser|ver-visi|
|00000ad0| 74 2d 66 69 6c 65 73 20 | 28 66 69 6c 65 73 20 63 |t-files |(files c|
|00000ae0| 6c 69 65 6e 74 29 20 22 | 5c 0a 46 69 6e 64 73 20 |lient) "|\.Finds |
|00000af0| 46 49 4c 45 53 20 61 6e | 64 20 72 65 74 75 72 6e |FILES an|d return|
|00000b00| 73 20 74 68 65 20 6c 69 | 73 74 20 43 4c 49 45 4e |s the li|st CLIEN|
|00000b10| 54 20 77 69 74 68 20 74 | 68 65 20 62 75 66 66 65 |T with t|he buffe|
|00000b20| 72 73 20 6e 63 6f 6e 63 | 27 64 2e 0a 46 49 4c 45 |rs nconc|'d..FILE|
|00000b30| 53 20 69 73 20 61 6e 20 | 61 6c 69 73 74 20 77 68 |S is an |alist wh|
|00000b40| 6f 73 65 20 65 6c 65 6d | 65 6e 74 73 20 61 72 65 |ose elem|ents are|
|00000b50| 20 28 46 49 4c 45 4e 41 | 4d 45 20 4c 49 4e 45 4e | (FILENA|ME LINEN|
|00000b60| 55 4d 42 45 52 29 2e 22 | 20 28 62 79 74 65 2d 63 |UMBER)."| (byte-c|
|00000b70| 6f 64 65 20 22 c5 18 09 | 85 67 00 8a 09 40 40 1a |ode "...|.g...@@.|
|00000b80| c8 0a 21 1b 0b 85 15 00 | 0b 71 83 41 00 c9 0a 21 |..!.....|.q.A...!|
|00000b90| 83 32 00 ca 0b 21 3f 86 | 28 00 cb 0b 21 85 2f 00 |.2...!?.|(...!./.|
|00000ba0| cc c4 c5 5c 22 82 3e 00 | cd ce 0a cf 51 21 85 3e |...\".>.|....Q!.>|
|00000bb0| 00 d0 0a 21 82 45 00 d1 | 0a 21 71 2a 88 d2 d3 09 |...!.E..|.!q*....|
|00000bc0| 40 38 21 88 0e 07 40 0e | 06 42 89 16 06 88 70 08 |@8!...@.|.B....p.|
|00000bd0| 42 89 10 29 88 09 41 89 | 11 88 82 02 00 88 d4 0e |B..)..A.|........|
|00000be0| 07 08 5c 22 29 87 22 20 | 5b 63 6c 69 65 6e 74 2d |..\")." |[client-|
|00000bf0| 72 65 63 6f 72 64 20 66 | 69 6c 65 73 20 66 69 6c |record f|iles fil|
|00000c00| 65 6e 20 6f 62 75 66 20 | 74 20 6e 69 6c 20 73 65 |en obuf |t nil se|
|00000c10| 72 76 65 72 2d 62 75 66 | 66 65 72 2d 63 6c 69 65 |rver-buf|fer-clie|
|00000c20| 6e 74 73 20 63 6c 69 65 | 6e 74 20 67 65 74 2d 66 |nts clie|nt get-f|
|00000c30| 69 6c 65 2d 62 75 66 66 | 65 72 20 66 69 6c 65 2d |ile-buff|er file-|
|00000c40| 65 78 69 73 74 73 2d 70 | 20 76 65 72 69 66 79 2d |exists-p| verify-|
|00000c50| 76 69 73 69 74 65 64 2d | 66 69 6c 65 2d 6d 6f 64 |visited-|file-mod|
|00000c60| 74 69 6d 65 20 62 75 66 | 66 65 72 2d 6d 6f 64 69 |time buf|fer-modi|
|00000c70| 66 69 65 64 2d 70 20 72 | 65 76 65 72 74 2d 62 75 |fied-p r|evert-bu|
|00000c80| 66 66 65 72 20 79 2d 6f | 72 2d 6e 2d 70 20 22 46 |ffer y-o|r-n-p "F|
|00000c90| 69 6c 65 20 6e 6f 20 6c | 6f 6e 67 65 72 20 65 78 |ile no l|onger ex|
|00000ca0| 69 73 74 73 3a 20 22 20 | 22 2c 20 77 72 69 74 65 |ists: " |", write|
|00000cb0| 20 62 75 66 66 65 72 20 | 74 6f 20 66 69 6c 65 3f | buffer |to file?|
|00000cc0| 20 22 20 77 72 69 74 65 | 2d 66 69 6c 65 20 66 69 | " write|-file fi|
|00000cd0| 6e 64 2d 66 69 6c 65 2d | 6e 6f 73 65 6c 65 63 74 |nd-file-|noselect|
|00000ce0| 20 67 6f 74 6f 2d 6c 69 | 6e 65 20 31 20 6e 63 6f | goto-li|ne 1 nco|
|00000cf0| 6e 63 5d 20 31 32 29 29 | 0a 0a 28 64 65 66 75 6e |nc] 12))|..(defun|
|00000d00| 20 73 65 72 76 65 72 2d | 62 75 66 66 65 72 2d 64 | server-|buffer-d|
|00000d10| 6f 6e 65 20 28 62 75 66 | 66 65 72 29 20 22 5c 0a |one (buf|fer) "\.|
|00000d20| 4d 61 72 6b 20 42 55 46 | 46 45 52 20 61 73 20 5c |Mark BUF|FER as \|
|00000d30| 22 64 6f 6e 65 5c 22 20 | 66 6f 72 20 69 74 73 20 |"done\" |for its |
|00000d40| 63 6c 69 65 6e 74 28 73 | 29 2e 0a 42 75 72 69 65 |client(s|)..Burie|
|00000d50| 73 20 74 68 65 20 62 75 | 66 66 65 72 2c 20 61 6e |s the bu|ffer, an|
|00000d60| 64 20 72 65 74 75 72 6e | 73 20 61 6e 6f 74 68 65 |d return|s anothe|
|00000d70| 72 20 73 65 72 76 65 72 | 20 62 75 66 66 65 72 0a |r server| buffer.|
|00000d80| 61 73 20 61 20 73 75 67 | 67 65 73 74 69 6f 6e 20 |as a sug|gestion |
|00000d90| 66 6f 72 20 77 68 61 74 | 20 74 6f 20 73 65 6c 65 |for what| to sele|
|00000da0| 63 74 20 6e 65 78 74 2e | 22 20 28 62 79 74 65 2d |ct next.|" (byte-|
|00000db0| 63 6f 64 65 20 22 c9 09 | 21 ca 3d c3 0d 1c 1a 18 |code "..|!.=.....|
|00000dc0| 0c 85 59 00 0c 40 1e 06 | 0a 86 1f 00 cb 0e 07 0e |..Y..@..|........|
|00000dd0| 06 3e 38 89 12 88 cc 0e | 07 0e 06 5c 22 88 0e 06 |.>8.....|...\"...|
|00000de0| 41 83 31 00 c3 82 4f 00 | 08 85 47 00 cd 09 ce cf |A.1...O.|..G.....|
|00000df0| 0e 06 40 5c 22 5c 22 88 | d0 ce cf 0e 06 40 5c 22 |..@\"\".|.....@\"|
|00000e00| 21 88 cc 0e 06 0d 5c 22 | 89 15 29 88 0c 41 89 14 |!.....\"|..)..A..|
|00000e10| 88 82 0a 00 88 d1 0e 07 | 21 85 6b 00 8a 0e 07 71 |........|!.k....q|
|00000e20| 88 c3 89 16 08 29 88 d2 | 0e 07 21 88 0a 2b 87 22 |.....)..|..!..+."|
|00000e30| 20 5b 72 75 6e 6e 69 6e | 67 20 73 65 72 76 65 72 | [runnin|g server|
|00000e40| 2d 70 72 6f 63 65 73 73 | 20 6e 65 78 74 2d 62 75 |-process| next-bu|
|00000e50| 66 66 65 72 20 6e 69 6c | 20 6f 6c 64 2d 63 6c 69 |ffer nil| old-cli|
|00000e60| 65 6e 74 73 20 73 65 72 | 76 65 72 2d 63 6c 69 65 |ents ser|ver-clie|
|00000e70| 6e 74 73 20 63 6c 69 65 | 6e 74 20 62 75 66 66 65 |nts clie|nt buffe|
|00000e80| 72 20 73 65 72 76 65 72 | 2d 62 75 66 66 65 72 2d |r server|-buffer-|
|00000e90| 63 6c 69 65 6e 74 73 20 | 70 72 6f 63 65 73 73 2d |clients |process-|
|00000ea0| 73 74 61 74 75 73 20 72 | 75 6e 20 31 20 64 65 6c |status r|un 1 del|
|00000eb0| 71 20 73 65 6e 64 2d 73 | 74 72 69 6e 67 20 66 6f |q send-s|tring fo|
|00000ec0| 72 6d 61 74 20 22 43 6c | 6f 73 65 3a 20 25 73 20 |rmat "Cl|ose: %s |
|00000ed0| 44 6f 6e 65 0a 22 20 73 | 65 72 76 65 72 2d 6c 6f |Done." s|erver-lo|
|00000ee0| 67 20 62 75 66 66 65 72 | 2d 6e 61 6d 65 20 62 75 |g buffer|-name bu|
|00000ef0| 72 79 2d 62 75 66 66 65 | 72 5d 20 31 30 29 29 0a |ry-buffe|r] 10)).|
|00000f00| 0a 28 64 65 66 75 6e 20 | 6d 68 2d 64 72 61 66 74 |.(defun |mh-draft|
|00000f10| 2d 70 20 28 62 75 66 66 | 65 72 29 20 22 5c 0a 52 |-p (buff|er) "\.R|
|00000f20| 65 74 75 72 6e 20 6e 6f | 6e 2d 6e 69 6c 20 69 66 |eturn no|n-nil if|
|00000f30| 20 74 68 69 73 20 42 55 | 46 46 45 52 20 69 73 20 | this BU|FFER is |
|00000f40| 61 6e 20 6d 68 20 3c 64 | 72 61 66 74 3e 20 66 69 |an mh <d|raft> fi|
|00000f50| 6c 65 2e 0a 53 69 6e 63 | 65 20 4d 48 20 64 65 6c |le..Sinc|e MH del|
|00000f60| 65 74 65 73 20 64 72 61 | 66 74 20 2a 42 45 46 4f |etes dra|ft *BEFO|
|00000f70| 52 45 2a 20 69 74 20 69 | 73 20 65 64 69 74 65 64 |RE* it i|s edited|
|00000f80| 2c 20 74 68 65 20 73 65 | 72 76 65 72 20 74 72 65 |, the se|rver tre|
|00000f90| 61 74 73 20 74 68 65 6d | 20 73 70 65 63 69 61 6c |ats them| special|
|00000fa0| 6c 79 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |ly." (by|te-code |
|00000fb0| 22 c1 c2 08 21 c3 5c 22 | 87 22 20 5b 62 75 66 66 |"...!.\"|." [buff|
|00000fc0| 65 72 20 73 74 72 69 6e | 67 3d 20 62 75 66 66 65 |er strin|g= buffe|
|00000fd0| 72 2d 6e 61 6d 65 20 22 | 64 72 61 66 74 22 5d 20 |r-name "|draft"] |
|00000fe0| 34 29 29 0a 0a 28 64 65 | 66 75 6e 20 73 65 72 76 |4))..(de|fun serv|
|00000ff0| 65 72 2d 64 6f 6e 65 20 | 6e 69 6c 20 22 5c 0a 4f |er-done |nil "\.O|
|00001000| 66 66 65 72 20 74 6f 20 | 73 61 76 65 20 63 75 72 |ffer to |save cur|
|00001010| 72 65 6e 74 20 62 75 66 | 66 65 72 2c 20 6d 61 72 |rent buf|fer, mar|
|00001020| 6b 20 69 74 20 61 73 20 | 5c 22 64 6f 6e 65 5c 22 |k it as |\"done\"|
|00001030| 20 66 6f 72 20 63 6c 69 | 65 6e 74 73 2c 0a 62 75 | for cli|ents,.bu|
|00001040| 72 79 20 69 74 2c 20 61 | 6e 64 20 72 65 74 75 72 |ry it, a|nd retur|
|00001050| 6e 20 61 20 73 75 67 67 | 65 73 74 65 64 20 62 75 |n a sugg|ested bu|
|00001060| 66 66 65 72 20 74 6f 20 | 73 65 6c 65 63 74 20 6e |ffer to |select n|
|00001070| 65 78 74 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |ext." (b|yte-code|
|00001080| 20 22 70 18 09 85 32 00 | c3 08 21 83 1d 00 c4 20 | "p...2.|..!.... |
|00001090| 88 c5 65 64 0a c6 50 23 | 88 c7 08 21 82 2e 00 c8 |..ed..P#|...!....|
|000010a0| 20 85 28 00 c9 ca 0a cb | 51 21 85 2e 00 c4 08 21 | .(.....|Q!.....!|
|000010b0| 88 cc 08 21 29 87 22 20 | 5b 62 75 66 66 65 72 20 |...!)." |[buffer |
|000010c0| 73 65 72 76 65 72 2d 62 | 75 66 66 65 72 2d 63 6c |server-b|uffer-cl|
|000010d0| 69 65 6e 74 73 20 62 75 | 66 66 65 72 2d 66 69 6c |ients bu|ffer-fil|
|000010e0| 65 2d 6e 61 6d 65 20 6d | 68 2d 64 72 61 66 74 2d |e-name m|h-draft-|
|000010f0| 70 20 73 61 76 65 2d 62 | 75 66 66 65 72 20 77 72 |p save-b|uffer wr|
|00001100| 69 74 65 2d 72 65 67 69 | 6f 6e 20 22 7e 22 20 6b |ite-regi|on "~" k|
|00001110| 69 6c 6c 2d 62 75 66 66 | 65 72 20 62 75 66 66 65 |ill-buff|er buffe|
|00001120| 72 2d 6d 6f 64 69 66 69 | 65 64 2d 70 20 79 2d 6f |r-modifi|ed-p y-o|
|00001130| 72 2d 6e 2d 70 20 22 53 | 61 76 65 20 66 69 6c 65 |r-n-p "S|ave file|
|00001140| 20 22 20 22 3f 20 22 20 | 73 65 72 76 65 72 2d 62 | " "? " |server-b|
|00001150| 75 66 66 65 72 2d 64 6f | 6e 65 5d 20 39 29 29 0a |uffer-do|ne] 9)).|
|00001160| 0a 28 64 65 66 75 6e 20 | 73 65 72 76 65 72 2d 65 |.(defun |server-e|
|00001170| 64 69 74 20 28 26 6f 70 | 74 69 6f 6e 61 6c 20 61 |dit (&op|tional a|
|00001180| 72 67 29 20 22 5c 0a 53 | 77 69 74 63 68 20 74 6f |rg) "\.S|witch to|
|00001190| 20 6e 65 78 74 20 73 65 | 72 76 65 72 20 65 64 69 | next se|rver edi|
|000011a0| 74 69 6e 67 20 62 75 66 | 66 65 72 3b 20 73 61 79 |ting buf|fer; say|
|000011b0| 20 5c 22 44 6f 6e 65 5c | 22 20 66 6f 72 20 63 75 | \"Done\|" for cu|
|000011c0| 72 72 65 6e 74 20 62 75 | 66 66 65 72 2e 0a 49 66 |rrent bu|ffer..If|
|000011d0| 20 61 20 73 65 72 76 65 | 72 20 62 75 66 66 65 72 | a serve|r buffer|
|000011e0| 20 69 73 20 63 75 72 72 | 65 6e 74 2c 20 69 74 20 | is curr|ent, it |
|000011f0| 69 73 20 6d 61 72 6b 65 | 64 20 5c 22 64 6f 6e 65 |is marke|d \"done|
|00001200| 5c 22 20 61 6e 64 20 6f | 70 74 69 6f 6e 61 6c 6c |\" and o|ptionall|
|00001210| 79 20 73 61 76 65 64 2e | 0a 4d 48 20 3c 64 72 61 |y saved.|.MH <dra|
|00001220| 66 74 3e 20 66 69 6c 65 | 73 20 61 72 65 20 61 6c |ft> file|s are al|
|00001230| 77 61 79 73 20 73 61 76 | 65 64 20 61 6e 64 20 62 |ways sav|ed and b|
|00001240| 61 63 6b 65 64 20 75 70 | 2c 20 6e 6f 20 71 75 65 |acked up|, no que|
|00001250| 73 74 69 6f 6e 73 20 61 | 73 6b 65 64 2e 0a 57 68 |stions a|sked..Wh|
|00001260| 65 6e 20 61 6c 6c 20 6f | 66 20 61 20 63 6c 69 65 |en all o|f a clie|
|00001270| 6e 74 27 73 20 62 75 66 | 66 65 72 73 20 61 72 65 |nt's buf|fers are|
|00001280| 20 6d 61 72 6b 65 64 20 | 61 73 20 5c 22 64 6f 6e | marked |as \"don|
|00001290| 65 5c 22 2c 20 74 68 65 | 20 63 6c 69 65 6e 74 20 |e\", the| client |
|000012a0| 69 73 20 6e 6f 74 69 66 | 69 65 64 2e 0a 0a 49 66 |is notif|ied...If|
|000012b0| 20 69 6e 76 6f 6b 65 64 | 20 77 69 74 68 20 61 20 | invoked| with a |
|000012c0| 70 72 65 66 69 78 20 61 | 72 67 75 6d 65 6e 74 2c |prefix a|rgument,|
|000012d0| 20 6f 72 20 69 66 20 74 | 68 65 72 65 20 69 73 20 | or if t|here is |
|000012e0| 6e 6f 20 73 65 72 76 65 | 72 20 70 72 6f 63 65 73 |no serve|r proces|
|000012f0| 73 20 72 75 6e 6e 69 6e | 67 2c 20 0a 73 74 61 72 |s runnin|g, .star|
|00001300| 74 73 20 73 65 72 76 65 | 72 20 70 72 6f 63 65 73 |ts serve|r proces|
|00001310| 73 20 61 6e 64 20 74 68 | 61 74 20 69 73 20 61 6c |s and th|at is al|
|00001320| 6c 2e 20 20 49 6e 76 6f | 6b 65 64 20 62 79 20 5c |l. Invo|ked by \|
|00001330| 5c 5b 73 65 72 76 65 72 | 2d 65 64 69 74 5d 2e 22 |\[server|-edit]."|
|00001340| 20 28 69 6e 74 65 72 61 | 63 74 69 76 65 20 22 50 | (intera|ctive "P|
|00001350| 22 29 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c2 |") (byte|-code ".|
|00001360| 88 08 86 10 00 09 3f 86 | 10 00 c3 09 21 c4 3e 83 |......?.|....!.>.|
|00001370| 19 00 c5 c2 21 82 1d 00 | c6 c7 20 21 87 22 20 5b |....!...|.. !." [|
|00001380| 61 72 67 20 73 65 72 76 | 65 72 2d 70 72 6f 63 65 |arg serv|er-proce|
|00001390| 73 73 20 6e 69 6c 20 70 | 72 6f 63 65 73 73 2d 73 |ss nil p|rocess-s|
|000013a0| 74 61 74 75 73 20 28 73 | 69 67 6e 61 6c 20 65 78 |tatus (s|ignal ex|
|000013b0| 69 74 29 20 73 65 72 76 | 65 72 2d 73 74 61 72 74 |it) serv|er-start|
|000013c0| 20 73 65 72 76 65 72 2d | 73 77 69 74 63 68 2d 62 | server-|switch-b|
|000013d0| 75 66 66 65 72 20 73 65 | 72 76 65 72 2d 64 6f 6e |uffer se|rver-don|
|000013e0| 65 5d 20 35 29 29 0a 0a | 28 64 65 66 75 6e 20 73 |e] 5))..|(defun s|
|000013f0| 65 72 76 65 72 2d 73 77 | 69 74 63 68 2d 62 75 66 |erver-sw|itch-buf|
|00001400| 66 65 72 20 28 6e 65 78 | 74 2d 62 75 66 66 65 72 |fer (nex|t-buffer|
|00001410| 29 20 22 5c 0a 53 77 69 | 74 63 68 20 74 6f 20 61 |) "\.Swi|tch to a|
|00001420| 6e 6f 74 68 65 72 20 62 | 75 66 66 65 72 2c 20 70 |nother b|uffer, p|
|00001430| 72 65 66 65 72 61 62 6c | 79 20 6f 6e 65 20 74 68 |referabl|y one th|
|00001440| 61 74 20 68 61 73 20 61 | 20 63 6c 69 65 6e 74 2e |at has a| client.|
|00001450| 0a 41 72 67 20 4e 45 58 | 54 2d 42 55 46 46 45 52 |.Arg NEX|T-BUFFER|
|00001460| 20 69 73 20 61 20 73 75 | 67 67 65 73 74 69 6f 6e | is a su|ggestion|
|00001470| 3b 20 69 66 20 69 74 20 | 69 73 20 61 20 6c 69 76 |; if it |is a liv|
|00001480| 65 20 62 75 66 66 65 72 | 2c 20 75 73 65 20 69 74 |e buffer|, use it|
|00001490| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 08 |." (byte|-code ".|
|000014a0| 83 1e 00 c2 08 21 85 0d | 00 c3 08 21 83 16 00 c4 |.....!..|...!....|
|000014b0| 08 21 82 1b 00 c5 c6 08 | 21 21 82 2f 00 09 83 2b |.!......|!!./...+|
|000014c0| 00 c5 c7 09 40 38 21 82 | 2f 00 c4 c8 20 21 87 22 |....@8!.|/... !."|
|000014d0| 20 5b 6e 65 78 74 2d 62 | 75 66 66 65 72 20 73 65 | [next-b|uffer se|
|000014e0| 72 76 65 72 2d 63 6c 69 | 65 6e 74 73 20 62 75 66 |rver-cli|ents buf|
|000014f0| 66 65 72 70 20 62 75 66 | 66 65 72 2d 6e 61 6d 65 |ferp buf|fer-name|
|00001500| 20 73 77 69 74 63 68 2d | 74 6f 2d 62 75 66 66 65 | switch-|to-buffe|
|00001510| 72 20 73 65 72 76 65 72 | 2d 73 77 69 74 63 68 2d |r server|-switch-|
|00001520| 62 75 66 66 65 72 20 73 | 65 72 76 65 72 2d 62 75 |buffer s|erver-bu|
|00001530| 66 66 65 72 2d 64 6f 6e | 65 20 31 20 6f 74 68 65 |ffer-don|e 1 othe|
|00001540| 72 2d 62 75 66 66 65 72 | 5d 20 39 29 29 0a 0a 28 |r-buffer|] 9))..(|
|00001550| 67 6c 6f 62 61 6c 2d 73 | 65 74 2d 6b 65 79 20 22 |global-s|et-key "|
|00001560| 18 23 22 20 28 71 75 6f | 74 65 20 73 65 72 76 65 |.#" (quo|te serve|
|00001570| 72 2d 65 64 69 74 29 29 | 0a |r-edit))|. |
+--------+-------------------------+-------------------------+--------+--------+