summaryrefslogtreecommitdiff
path: root/lisp/server.elc
blob: 0a8e8888ed42b03820342cb63a16b02c3edef79e (plain)
ofshex dumpascii
0000 0a 28 64 65 66 76 61 72 20 73 65 72 76 65 72 2d 70 72 6f 67 72 61 6d 20 22 73 65 72 76 65 72 22 .(defvar.server-program."server"
0020 20 22 5c 0a 2a 54 68 65 20 70 72 6f 67 72 61 6d 20 74 6f 20 75 73 65 20 61 73 20 74 68 65 20 65 ."\.*The.program.to.use.as.the.e
0040 64 69 74 20 73 65 72 76 65 72 22 29 0a 0a 28 64 65 66 76 61 72 20 73 65 72 76 65 72 2d 70 72 6f dit.server")..(defvar.server-pro
0060 63 65 73 73 20 6e 69 6c 20 22 5c 0a 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 72 76 65 72 20 70 cess.nil."\.the.current.server.p
0080 72 6f 63 65 73 73 22 29 0a 0a 28 64 65 66 76 61 72 20 73 65 72 76 65 72 2d 70 72 65 76 69 6f 75 rocess")..(defvar.server-previou
00a0 73 2d 73 74 72 69 6e 67 20 22 22 29 0a 0a 28 64 65 66 76 61 72 20 73 65 72 76 65 72 2d 63 6c 69 s-string."")..(defvar.server-cli
00c0 65 6e 74 73 20 6e 69 6c 20 22 5c 0a 4c 69 73 74 20 6f 66 20 63 75 72 72 65 6e 74 20 73 65 72 76 ents.nil."\.List.of.current.serv
00e0 65 72 20 63 6c 69 65 6e 74 73 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 28 43 4c 49 er.clients..Each.element.is.(CLI
0100 45 4e 54 49 44 20 46 49 4c 45 53 2e 2e 2e 29 20 77 68 65 72 65 20 43 4c 49 45 4e 54 49 44 20 69 ENTID.FILES...).where.CLIENTID.i
0120 73 20 61 20 73 74 72 69 6e 67 0a 74 68 61 74 20 63 61 6e 20 62 65 20 67 69 76 65 6e 20 74 6f 20 s.a.string.that.can.be.given.to.
0140 74 68 65 20 73 65 72 76 65 72 20 70 72 6f 63 65 73 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20 61 the.server.process.to.identify.a
0160 20 63 6c 69 65 6e 74 2e 0a 57 68 65 6e 20 61 20 62 75 66 66 65 72 20 69 73 20 6d 61 72 6b 65 64 .client..When.a.buffer.is.marked
0180 20 61 73 20 5c 22 64 6f 6e 65 5c 22 2c 20 69 74 20 69 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d .as.\"done\",.it.is.removed.from
01a0 20 74 68 69 73 20 6c 69 73 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 73 65 72 76 65 72 2d 62 75 .this.list.")..(defvar.server-bu
01c0 66 66 65 72 2d 63 6c 69 65 6e 74 73 20 6e 69 6c 20 22 5c 0a 4c 69 73 74 20 6f 66 20 63 6c 69 65 ffer-clients.nil."\.List.of.clie
01e0 6e 74 69 64 73 20 66 6f 72 20 63 6c 69 65 6e 74 73 20 72 65 71 75 65 73 74 69 6e 67 20 65 64 69 ntids.for.clients.requesting.edi
0200 74 69 6e 67 20 6f 66 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 6d 61 6b 65 ting.of.current.buffer.")..(make
0220 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 28 71 75 6f 74 65 20 73 65 -variable-buffer-local.(quote.se
0240 72 76 65 72 2d 62 75 66 66 65 72 2d 63 6c 69 65 6e 74 73 29 29 0a 0a 28 73 65 74 71 2d 64 65 66 rver-buffer-clients))..(setq-def
0260 61 75 6c 74 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 63 6c 69 65 6e 74 73 20 6e 69 6c 29 0a ault.server-buffer-clients.nil).
0280 0a 28 6f 72 20 28 61 73 73 71 20 28 71 75 6f 74 65 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d .(or.(assq.(quote.server-buffer-
02a0 63 6c 69 65 6e 74 73 29 20 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 61 6c 69 73 74 29 20 28 73 65 74 71 clients).minor-mode-alist).(setq
02c0 20 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 61 6c 69 73 74 20 28 63 6f 6e 73 20 28 71 75 6f 74 65 20 28 .minor-mode-alist.(cons.(quote.(
02e0 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 63 6c 69 65 6e 74 73 20 22 20 53 65 72 76 65 72 22 29 server-buffer-clients.".Server")
0300 29 20 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 ).minor-mode-alist)))..(defun.se
0320 72 76 65 72 2d 6c 6f 67 20 28 73 74 72 69 6e 67 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 c2 rver-log.(string).(byte-code."..
0340 21 85 17 00 8a c2 71 88 64 62 88 08 63 88 6f 86 16 00 c3 20 29 87 22 20 5b 73 74 72 69 6e 67 20 !.....q.db..c.o.....).".[string.
0360 67 65 74 2d 62 75 66 66 65 72 20 22 2a 73 65 72 76 65 72 2a 22 20 6e 65 77 6c 69 6e 65 5d 20 33 get-buffer."*server*".newline].3
0380 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 73 65 6e 74 69 6e 65 6c 20 28 70 72 6f 63 ))..(defun.server-sentinel.(proc
03a0 20 6d 73 67 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 08 21 c2 3d 83 10 00 c3 c4 c5 21 21 82 .msg).(byte-code."..!.=......!!.
03c0 1d 00 c1 08 21 c6 3d 85 1d 00 c3 c4 c7 21 21 87 22 20 5b 70 72 6f 63 20 70 72 6f 63 65 73 73 2d ....!.=......!!.".[proc.process-
03e0 73 74 61 74 75 73 20 65 78 69 74 20 73 65 72 76 65 72 2d 6c 6f 67 20 6d 65 73 73 61 67 65 20 22 status.exit.server-log.message."
0400 53 65 72 76 65 72 20 73 75 62 70 72 6f 63 65 73 73 20 65 78 69 74 65 64 22 20 73 69 67 6e 61 6c Server.subprocess.exited".signal
0420 20 22 53 65 72 76 65 72 20 73 75 62 70 72 6f 63 65 73 73 20 6b 69 6c 6c 65 64 22 5d 20 37 29 29 ."Server.subprocess.killed"].7))
0440 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 73 74 61 72 74 20 28 26 6f 70 74 69 6f 6e 61 6c ..(defun.server-start.(&optional
0460 20 6c 65 61 76 65 2d 64 65 61 64 29 20 22 5c 0a 41 6c 6c 6f 77 20 74 68 69 73 20 45 6d 61 63 73 .leave-dead)."\.Allow.this.Emacs
0480 20 70 72 6f 63 65 73 73 20 74 6f 20 62 65 20 61 20 73 65 72 76 65 72 20 66 6f 72 20 63 6c 69 65 .process.to.be.a.server.for.clie
04a0 6e 74 20 70 72 6f 63 65 73 73 65 73 2e 0a 54 68 69 73 20 73 74 61 72 74 73 20 61 20 73 65 72 76 nt.processes..This.starts.a.serv
04c0 65 72 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 73 75 62 70 72 6f 63 65 73 73 20 74 68 72 er.communications.subprocess.thr
04e0 6f 75 67 68 20 77 68 69 63 68 0a 63 6c 69 65 6e 74 20 5c 22 65 64 69 74 6f 72 73 5c 22 20 63 61 ough.which.client.\"editors\".ca
0500 6e 20 73 65 6e 64 20 79 6f 75 72 20 65 64 69 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 n.send.your.editing.commands.to.
0520 74 68 69 73 20 45 6d 61 63 73 20 6a 6f 62 2e 0a 54 6f 20 75 73 65 20 74 68 65 20 73 65 72 76 65 this.Emacs.job..To.use.the.serve
0540 72 2c 20 73 65 74 20 75 70 20 74 68 65 20 70 72 6f 67 72 61 6d 20 60 65 74 63 2f 65 6d 61 63 73 r,.set.up.the.program.`etc/emacs
0560 63 6c 69 65 6e 74 27 20 69 6e 20 74 68 65 0a 45 6d 61 63 73 20 64 69 73 74 72 69 62 75 74 69 6f client'.in.the.Emacs.distributio
0580 6e 20 61 73 20 79 6f 75 72 20 73 74 61 6e 64 61 72 64 20 5c 22 65 64 69 74 6f 72 5c 22 2e 0a 0a n.as.your.standard.\"editor\"...
05a0 50 72 65 66 69 78 20 61 72 67 20 6d 65 61 6e 73 20 6a 75 73 74 20 6b 69 6c 6c 20 61 6e 79 20 65 Prefix.arg.means.just.kill.any.e
05c0 78 69 73 74 69 6e 67 20 73 65 72 76 65 72 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 73 75 xisting.server.communications.su
05e0 62 70 72 6f 63 65 73 73 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 20 28 62 79 bprocess.".(interactive."P").(by
0600 74 65 2d 63 6f 64 65 20 22 c1 88 08 85 0f 00 c7 08 c1 5c 22 88 c1 c8 c9 8f 88 c1 ca cb 8f 88 c1 te-code.".........\"............
0620 cc cd 8f 88 0a 85 2b 00 ce 0a 40 38 1b cf 0b 21 29 88 82 1a 00 88 0c 83 34 00 c1 82 57 00 08 85 ......+...@8...!).......4...W...
0640 3d 00 d0 d1 d2 21 21 88 c1 1d d3 d4 c1 0e 06 23 89 10 29 88 c7 08 d5 5c 22 88 d6 08 d7 5c 22 88 =....!!........#..)....\"....\".
0660 d8 08 21 87 22 20 5b 73 65 72 76 65 72 2d 70 72 6f 63 65 73 73 20 6e 69 6c 20 73 65 72 76 65 72 ..!.".[server-process.nil.server
0680 2d 63 6c 69 65 6e 74 73 20 62 75 66 66 65 72 20 6c 65 61 76 65 2d 64 65 61 64 20 70 72 6f 63 65 -clients.buffer.leave-dead.proce
06a0 73 73 2d 63 6f 6e 6e 65 63 74 69 6f 6e 2d 74 79 70 65 20 73 65 72 76 65 72 2d 70 72 6f 67 72 61 ss-connection-type.server-progra
06c0 6d 20 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 28 62 79 74 65 2d 63 6f 64 m.set-process-sentinel.(byte-cod
06e0 65 20 22 c1 08 21 87 22 20 5b 73 65 72 76 65 72 2d 70 72 6f 63 65 73 73 20 64 65 6c 65 74 65 2d e."..!.".[server-process.delete-
0700 70 72 6f 63 65 73 73 5d 20 32 29 20 28 28 65 72 72 6f 72 20 28 62 79 74 65 2d 63 6f 64 65 20 22 process].2).((error.(byte-code."
0720 c0 87 22 20 5b 6e 69 6c 5d 20 31 29 29 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c0 c1 21 87 22 ..".[nil].1))).(byte-code."..!."
0740 20 5b 64 65 6c 65 74 65 2d 66 69 6c 65 20 22 7e 2f 2e 65 6d 61 63 73 5f 73 65 72 76 65 72 22 5d .[delete-file."~/.emacs_server"]
0760 20 32 29 20 28 28 65 72 72 6f 72 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c0 87 22 20 5b 6e 69 6c .2).((error.(byte-code."..".[nil
0780 5d 20 31 29 29 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c0 c1 c2 c3 20 c4 20 23 21 87 22 20 5b ].1))).(byte-code.".......#!.".[
07a0 64 65 6c 65 74 65 2d 66 69 6c 65 20 66 6f 72 6d 61 74 20 22 2f 74 6d 70 2f 65 73 72 76 25 64 2d delete-file.format."/tmp/esrv%d-
07c0 25 73 22 20 75 73 65 72 2d 75 69 64 20 73 79 73 74 65 6d 2d 6e 61 6d 65 5d 20 37 29 20 28 28 65 %s".user-uid.system-name].7).((e
07e0 72 72 6f 72 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c0 87 22 20 5b 6e 69 6c 5d 20 31 29 29 29 20 rror.(byte-code."..".[nil].1))).
0800 31 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 64 6f 6e 65 20 73 65 72 76 65 72 2d 6c 6f 67 20 1.server-buffer-done.server-log.
0820 6d 65 73 73 61 67 65 20 22 52 65 73 74 61 72 74 69 6e 67 20 73 65 72 76 65 72 22 20 73 74 61 72 message."Restarting.server".star
0840 74 2d 70 72 6f 63 65 73 73 20 22 73 65 72 76 65 72 22 20 73 65 72 76 65 72 2d 73 65 6e 74 69 6e t-process."server".server-sentin
0860 65 6c 20 73 65 74 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 65 72 20 73 65 72 76 65 72 2d 70 72 6f el.set-process-filter.server-pro
0880 63 65 73 73 2d 66 69 6c 74 65 72 20 70 72 6f 63 65 73 73 2d 6b 69 6c 6c 2d 77 69 74 68 6f 75 74 cess-filter.process-kill-without
08a0 2d 71 75 65 72 79 5d 20 39 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 70 72 6f 63 65 -query].9))..(defun.server-proce
08c0 73 73 2d 66 69 6c 74 65 72 20 28 70 72 6f 63 20 73 74 72 69 6e 67 29 20 28 62 79 74 65 2d 63 6f ss-filter.(proc.string).(byte-co
08e0 64 65 20 22 c8 08 21 88 09 08 50 89 10 88 c9 08 08 47 53 48 3d 85 1a 00 ca cb cc 08 5c 22 3d 3f de."..!...P......GSH=.......\"=?
0900 83 24 00 08 89 11 82 a1 00 08 cd ca 21 c4 4f 89 10 88 ce 89 11 88 08 ca cb cf 08 5c 22 4f 43 c4 .$..........!.O............\"OC.
0920 d0 1d 1b 1a 08 cd ca 21 c4 4f 89 10 88 cb d1 08 5c 22 85 87 00 08 d2 ca 21 cd ca 21 53 4f 1e 06 .......!.O......\"......!..!SO..
0940 08 cd ca 21 c4 4f 89 10 88 cb d3 0e 06 5c 22 83 76 00 d4 0e 06 d0 c4 4f 21 89 15 82 82 00 0e 06 ...!.O.......\".v......O!.......
0960 0d 44 0b 42 89 13 88 d0 89 15 29 88 82 47 00 88 d5 0b 0a 5c 22 88 0a 0e 07 42 89 16 07 88 d6 d0 .D.B......)..G.....\"....B......
0980 0a 38 21 88 d7 d8 d9 21 21 2b 87 22 20 5b 73 74 72 69 6e 67 20 73 65 72 76 65 72 2d 70 72 65 76 .8!....!!+.".[string.server-prev
09a0 69 6f 75 73 2d 73 74 72 69 6e 67 20 63 6c 69 65 6e 74 20 66 69 6c 65 73 20 6e 69 6c 20 6c 69 6e ious-string.client.files.nil.lin
09c0 65 6e 6f 20 61 72 67 20 73 65 72 76 65 72 2d 63 6c 69 65 6e 74 73 20 73 65 72 76 65 72 2d 6c 6f eno.arg.server-clients.server-lo
09e0 67 20 31 30 20 30 20 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 43 6c 69 65 6e 74 3a 20 22 20 6d g.10.0.string-match."Client:.".m
0a00 61 74 63 68 2d 65 6e 64 20 22 22 20 22 20 22 20 31 20 22 5b 5e 20 5d 2b 20 22 20 6d 61 74 63 68 atch-end."".".".1."[^.]+.".match
0a20 2d 62 65 67 69 6e 6e 69 6e 67 20 22 5c 5c 60 5c 5c 2b 5b 30 2d 39 5d 2b 5c 5c 27 22 20 72 65 61 -beginning."\\`\\+[0-9]+\\'".rea
0a40 64 20 73 65 72 76 65 72 2d 76 69 73 69 74 2d 66 69 6c 65 73 20 73 77 69 74 63 68 2d 74 6f 2d 62 d.server-visit-files.switch-to-b
0a60 75 66 66 65 72 20 6d 65 73 73 61 67 65 20 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 uffer.message.substitute-command
0a80 2d 6b 65 79 73 20 22 57 68 65 6e 20 64 6f 6e 65 20 77 69 74 68 20 61 20 62 75 66 66 65 72 2c 20 -keys."When.done.with.a.buffer,.
0aa0 74 79 70 65 20 5c 5c 5b 73 65 72 76 65 72 2d 65 64 69 74 5d 2e 22 5d 20 31 36 29 29 0a 0a 28 64 type.\\[server-edit]."].16))..(d
0ac0 65 66 75 6e 20 73 65 72 76 65 72 2d 76 69 73 69 74 2d 66 69 6c 65 73 20 28 66 69 6c 65 73 20 63 efun.server-visit-files.(files.c
0ae0 6c 69 65 6e 74 29 20 22 5c 0a 46 69 6e 64 73 20 46 49 4c 45 53 20 61 6e 64 20 72 65 74 75 72 6e lient)."\.Finds.FILES.and.return
0b00 73 20 74 68 65 20 6c 69 73 74 20 43 4c 49 45 4e 54 20 77 69 74 68 20 74 68 65 20 62 75 66 66 65 s.the.list.CLIENT.with.the.buffe
0b20 72 73 20 6e 63 6f 6e 63 27 64 2e 0a 46 49 4c 45 53 20 69 73 20 61 6e 20 61 6c 69 73 74 20 77 68 rs.nconc'd..FILES.is.an.alist.wh
0b40 6f 73 65 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 28 46 49 4c 45 4e 41 4d 45 20 4c 49 4e 45 4e ose.elements.are.(FILENAME.LINEN
0b60 55 4d 42 45 52 29 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c5 18 09 85 67 00 8a 09 40 40 1a UMBER).".(byte-code."....g...@@.
0b80 c8 0a 21 1b 0b 85 15 00 0b 71 83 41 00 c9 0a 21 83 32 00 ca 0b 21 3f 86 28 00 cb 0b 21 85 2f 00 ..!......q.A...!.2...!?.(...!./.
0ba0 cc c4 c5 5c 22 82 3e 00 cd ce 0a cf 51 21 85 3e 00 d0 0a 21 82 45 00 d1 0a 21 71 2a 88 d2 d3 09 ...\".>.....Q!.>...!.E...!q*....
0bc0 40 38 21 88 0e 07 40 0e 06 42 89 16 06 88 70 08 42 89 10 29 88 09 41 89 11 88 82 02 00 88 d4 0e @8!...@..B....p.B..)..A.........
0be0 07 08 5c 22 29 87 22 20 5b 63 6c 69 65 6e 74 2d 72 65 63 6f 72 64 20 66 69 6c 65 73 20 66 69 6c ..\").".[client-record.files.fil
0c00 65 6e 20 6f 62 75 66 20 74 20 6e 69 6c 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 63 6c 69 65 en.obuf.t.nil.server-buffer-clie
0c20 6e 74 73 20 63 6c 69 65 6e 74 20 67 65 74 2d 66 69 6c 65 2d 62 75 66 66 65 72 20 66 69 6c 65 2d nts.client.get-file-buffer.file-
0c40 65 78 69 73 74 73 2d 70 20 76 65 72 69 66 79 2d 76 69 73 69 74 65 64 2d 66 69 6c 65 2d 6d 6f 64 exists-p.verify-visited-file-mod
0c60 74 69 6d 65 20 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 72 65 76 65 72 74 2d 62 75 time.buffer-modified-p.revert-bu
0c80 66 66 65 72 20 79 2d 6f 72 2d 6e 2d 70 20 22 46 69 6c 65 20 6e 6f 20 6c 6f 6e 67 65 72 20 65 78 ffer.y-or-n-p."File.no.longer.ex
0ca0 69 73 74 73 3a 20 22 20 22 2c 20 77 72 69 74 65 20 62 75 66 66 65 72 20 74 6f 20 66 69 6c 65 3f ists:.".",.write.buffer.to.file?
0cc0 20 22 20 77 72 69 74 65 2d 66 69 6c 65 20 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 .".write-file.find-file-noselect
0ce0 20 67 6f 74 6f 2d 6c 69 6e 65 20 31 20 6e 63 6f 6e 63 5d 20 31 32 29 29 0a 0a 28 64 65 66 75 6e .goto-line.1.nconc].12))..(defun
0d00 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 64 6f 6e 65 20 28 62 75 66 66 65 72 29 20 22 5c 0a .server-buffer-done.(buffer)."\.
0d20 4d 61 72 6b 20 42 55 46 46 45 52 20 61 73 20 5c 22 64 6f 6e 65 5c 22 20 66 6f 72 20 69 74 73 20 Mark.BUFFER.as.\"done\".for.its.
0d40 63 6c 69 65 6e 74 28 73 29 2e 0a 42 75 72 69 65 73 20 74 68 65 20 62 75 66 66 65 72 2c 20 61 6e client(s)..Buries.the.buffer,.an
0d60 64 20 72 65 74 75 72 6e 73 20 61 6e 6f 74 68 65 72 20 73 65 72 76 65 72 20 62 75 66 66 65 72 0a d.returns.another.server.buffer.
0d80 61 73 20 61 20 73 75 67 67 65 73 74 69 6f 6e 20 66 6f 72 20 77 68 61 74 20 74 6f 20 73 65 6c 65 as.a.suggestion.for.what.to.sele
0da0 63 74 20 6e 65 78 74 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c9 09 21 ca 3d c3 0d 1c 1a 18 ct.next.".(byte-code."..!.=.....
0dc0 0c 85 59 00 0c 40 1e 06 0a 86 1f 00 cb 0e 07 0e 06 3e 38 89 12 88 cc 0e 07 0e 06 5c 22 88 0e 06 ..Y..@...........>8........\"...
0de0 41 83 31 00 c3 82 4f 00 08 85 47 00 cd 09 ce cf 0e 06 40 5c 22 5c 22 88 d0 ce cf 0e 06 40 5c 22 A.1...O...G.......@\"\"......@\"
0e00 21 88 cc 0e 06 0d 5c 22 89 15 29 88 0c 41 89 14 88 82 0a 00 88 d1 0e 07 21 85 6b 00 8a 0e 07 71 !.....\"..)..A..........!.k....q
0e20 88 c3 89 16 08 29 88 d2 0e 07 21 88 0a 2b 87 22 20 5b 72 75 6e 6e 69 6e 67 20 73 65 72 76 65 72 .....)....!..+.".[running.server
0e40 2d 70 72 6f 63 65 73 73 20 6e 65 78 74 2d 62 75 66 66 65 72 20 6e 69 6c 20 6f 6c 64 2d 63 6c 69 -process.next-buffer.nil.old-cli
0e60 65 6e 74 73 20 73 65 72 76 65 72 2d 63 6c 69 65 6e 74 73 20 63 6c 69 65 6e 74 20 62 75 66 66 65 ents.server-clients.client.buffe
0e80 72 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 63 6c 69 65 6e 74 73 20 70 72 6f 63 65 73 73 2d r.server-buffer-clients.process-
0ea0 73 74 61 74 75 73 20 72 75 6e 20 31 20 64 65 6c 71 20 73 65 6e 64 2d 73 74 72 69 6e 67 20 66 6f status.run.1.delq.send-string.fo
0ec0 72 6d 61 74 20 22 43 6c 6f 73 65 3a 20 25 73 20 44 6f 6e 65 0a 22 20 73 65 72 76 65 72 2d 6c 6f rmat."Close:.%s.Done.".server-lo
0ee0 67 20 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 72 79 2d 62 75 66 66 65 72 5d 20 31 30 29 29 0a g.buffer-name.bury-buffer].10)).
0f00 0a 28 64 65 66 75 6e 20 6d 68 2d 64 72 61 66 74 2d 70 20 28 62 75 66 66 65 72 29 20 22 5c 0a 52 .(defun.mh-draft-p.(buffer)."\.R
0f20 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 69 73 20 42 55 46 46 45 52 20 69 73 20 eturn.non-nil.if.this.BUFFER.is.
0f40 61 6e 20 6d 68 20 3c 64 72 61 66 74 3e 20 66 69 6c 65 2e 0a 53 69 6e 63 65 20 4d 48 20 64 65 6c an.mh.<draft>.file..Since.MH.del
0f60 65 74 65 73 20 64 72 61 66 74 20 2a 42 45 46 4f 52 45 2a 20 69 74 20 69 73 20 65 64 69 74 65 64 etes.draft.*BEFORE*.it.is.edited
0f80 2c 20 74 68 65 20 73 65 72 76 65 72 20 74 72 65 61 74 73 20 74 68 65 6d 20 73 70 65 63 69 61 6c ,.the.server.treats.them.special
0fa0 6c 79 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 c2 08 21 c3 5c 22 87 22 20 5b 62 75 66 66 ly.".(byte-code."...!.\".".[buff
0fc0 65 72 20 73 74 72 69 6e 67 3d 20 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 64 72 61 66 74 22 5d 20 er.string=.buffer-name."draft"].
0fe0 34 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 64 6f 6e 65 20 6e 69 6c 20 22 5c 0a 4f 4))..(defun.server-done.nil."\.O
1000 66 66 65 72 20 74 6f 20 73 61 76 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 6d 61 72 ffer.to.save.current.buffer,.mar
1020 6b 20 69 74 20 61 73 20 5c 22 64 6f 6e 65 5c 22 20 66 6f 72 20 63 6c 69 65 6e 74 73 2c 0a 62 75 k.it.as.\"done\".for.clients,.bu
1040 72 79 20 69 74 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 73 75 67 67 65 73 74 65 64 20 62 75 ry.it,.and.return.a.suggested.bu
1060 66 66 65 72 20 74 6f 20 73 65 6c 65 63 74 20 6e 65 78 74 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 ffer.to.select.next.".(byte-code
1080 20 22 70 18 09 85 32 00 c3 08 21 83 1d 00 c4 20 88 c5 65 64 0a c6 50 23 88 c7 08 21 82 2e 00 c8 ."p...2...!.......ed..P#...!....
10a0 20 85 28 00 c9 ca 0a cb 51 21 85 2e 00 c4 08 21 88 cc 08 21 29 87 22 20 5b 62 75 66 66 65 72 20 ..(.....Q!.....!...!).".[buffer.
10c0 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 63 6c 69 65 6e 74 73 20 62 75 66 66 65 72 2d 66 69 6c server-buffer-clients.buffer-fil
10e0 65 2d 6e 61 6d 65 20 6d 68 2d 64 72 61 66 74 2d 70 20 73 61 76 65 2d 62 75 66 66 65 72 20 77 72 e-name.mh-draft-p.save-buffer.wr
1100 69 74 65 2d 72 65 67 69 6f 6e 20 22 7e 22 20 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 66 65 ite-region."~".kill-buffer.buffe
1120 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 79 2d 6f 72 2d 6e 2d 70 20 22 53 61 76 65 20 66 69 6c 65 r-modified-p.y-or-n-p."Save.file
1140 20 22 20 22 3f 20 22 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 64 6f 6e 65 5d 20 39 29 29 0a ."."?.".server-buffer-done].9)).
1160 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 65 64 69 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 .(defun.server-edit.(&optional.a
1180 72 67 29 20 22 5c 0a 53 77 69 74 63 68 20 74 6f 20 6e 65 78 74 20 73 65 72 76 65 72 20 65 64 69 rg)."\.Switch.to.next.server.edi
11a0 74 69 6e 67 20 62 75 66 66 65 72 3b 20 73 61 79 20 5c 22 44 6f 6e 65 5c 22 20 66 6f 72 20 63 75 ting.buffer;.say.\"Done\".for.cu
11c0 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 49 66 20 61 20 73 65 72 76 65 72 20 62 75 66 66 65 72 rrent.buffer..If.a.server.buffer
11e0 20 69 73 20 63 75 72 72 65 6e 74 2c 20 69 74 20 69 73 20 6d 61 72 6b 65 64 20 5c 22 64 6f 6e 65 .is.current,.it.is.marked.\"done
1200 5c 22 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 73 61 76 65 64 2e 0a 4d 48 20 3c 64 72 61 \".and.optionally.saved..MH.<dra
1220 66 74 3e 20 66 69 6c 65 73 20 61 72 65 20 61 6c 77 61 79 73 20 73 61 76 65 64 20 61 6e 64 20 62 ft>.files.are.always.saved.and.b
1240 61 63 6b 65 64 20 75 70 2c 20 6e 6f 20 71 75 65 73 74 69 6f 6e 73 20 61 73 6b 65 64 2e 0a 57 68 acked.up,.no.questions.asked..Wh
1260 65 6e 20 61 6c 6c 20 6f 66 20 61 20 63 6c 69 65 6e 74 27 73 20 62 75 66 66 65 72 73 20 61 72 65 en.all.of.a.client's.buffers.are
1280 20 6d 61 72 6b 65 64 20 61 73 20 5c 22 64 6f 6e 65 5c 22 2c 20 74 68 65 20 63 6c 69 65 6e 74 20 .marked.as.\"done\",.the.client.
12a0 69 73 20 6e 6f 74 69 66 69 65 64 2e 0a 0a 49 66 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 20 61 20 is.notified...If.invoked.with.a.
12c0 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 6f 72 20 69 66 20 74 68 65 72 65 20 69 73 20 prefix.argument,.or.if.there.is.
12e0 6e 6f 20 73 65 72 76 65 72 20 70 72 6f 63 65 73 73 20 72 75 6e 6e 69 6e 67 2c 20 0a 73 74 61 72 no.server.process.running,..star
1300 74 73 20 73 65 72 76 65 72 20 70 72 6f 63 65 73 73 20 61 6e 64 20 74 68 61 74 20 69 73 20 61 6c ts.server.process.and.that.is.al
1320 6c 2e 20 20 49 6e 76 6f 6b 65 64 20 62 79 20 5c 5c 5b 73 65 72 76 65 72 2d 65 64 69 74 5d 2e 22 l...Invoked.by.\\[server-edit]."
1340 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c2 .(interactive."P").(byte-code.".
1360 88 08 86 10 00 09 3f 86 10 00 c3 09 21 c4 3e 83 19 00 c5 c2 21 82 1d 00 c6 c7 20 21 87 22 20 5b ......?.....!.>.....!......!.".[
1380 61 72 67 20 73 65 72 76 65 72 2d 70 72 6f 63 65 73 73 20 6e 69 6c 20 70 72 6f 63 65 73 73 2d 73 arg.server-process.nil.process-s
13a0 74 61 74 75 73 20 28 73 69 67 6e 61 6c 20 65 78 69 74 29 20 73 65 72 76 65 72 2d 73 74 61 72 74 tatus.(signal.exit).server-start
13c0 20 73 65 72 76 65 72 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 65 72 76 65 72 2d 64 6f 6e .server-switch-buffer.server-don
13e0 65 5d 20 35 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 73 77 69 74 63 68 2d 62 75 66 e].5))..(defun.server-switch-buf
1400 66 65 72 20 28 6e 65 78 74 2d 62 75 66 66 65 72 29 20 22 5c 0a 53 77 69 74 63 68 20 74 6f 20 61 fer.(next-buffer)."\.Switch.to.a
1420 6e 6f 74 68 65 72 20 62 75 66 66 65 72 2c 20 70 72 65 66 65 72 61 62 6c 79 20 6f 6e 65 20 74 68 nother.buffer,.preferably.one.th
1440 61 74 20 68 61 73 20 61 20 63 6c 69 65 6e 74 2e 0a 41 72 67 20 4e 45 58 54 2d 42 55 46 46 45 52 at.has.a.client..Arg.NEXT-BUFFER
1460 20 69 73 20 61 20 73 75 67 67 65 73 74 69 6f 6e 3b 20 69 66 20 69 74 20 69 73 20 61 20 6c 69 76 .is.a.suggestion;.if.it.is.a.liv
1480 65 20 62 75 66 66 65 72 2c 20 75 73 65 20 69 74 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 08 e.buffer,.use.it.".(byte-code.".
14a0 83 1e 00 c2 08 21 85 0d 00 c3 08 21 83 16 00 c4 08 21 82 1b 00 c5 c6 08 21 21 82 2f 00 09 83 2b .....!.....!.....!......!!./...+
14c0 00 c5 c7 09 40 38 21 82 2f 00 c4 c8 20 21 87 22 20 5b 6e 65 78 74 2d 62 75 66 66 65 72 20 73 65 ....@8!./....!.".[next-buffer.se
14e0 72 76 65 72 2d 63 6c 69 65 6e 74 73 20 62 75 66 66 65 72 70 20 62 75 66 66 65 72 2d 6e 61 6d 65 rver-clients.bufferp.buffer-name
1500 20 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 73 65 72 76 65 72 2d 73 77 69 74 63 68 2d .switch-to-buffer.server-switch-
1520 62 75 66 66 65 72 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 64 6f 6e 65 20 31 20 6f 74 68 65 buffer.server-buffer-done.1.othe
1540 72 2d 62 75 66 66 65 72 5d 20 39 29 29 0a 0a 28 67 6c 6f 62 61 6c 2d 73 65 74 2d 6b 65 79 20 22 r-buffer].9))..(global-set-key."
1560 18 23 22 20 28 71 75 6f 74 65 20 73 65 72 76 65 72 2d 65 64 69 74 29 29 0a .#".(quote.server-edit)).