DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ s

⟦c6e1af10e⟧

    Length: 4417 (0x1141)
    Names: »server.elc«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦this⟧ »EUUGD11/gnu-31mar87/emacs/lisp/server.elc« 

Hex Dump

0x0000…0020 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"┆
0x0020…0040 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┆
0x0040…0060 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┆
0x0060…0080 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┆
0x0080…00a0 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 63 6c 69 65 6e 74 73   ┆rocess")  (defvar server-clients┆
0x00a0…00c0 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 65 72 20 63   ┆ nil "\ List of current server c┆
0x00c0…00e0 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 45 4e 54 49   ┆lients. Each element is (CLIENTI┆
0x00e0…0100 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 73 20 61 20   ┆D FILES...) where CLIENTID is a ┆
0x0100…0120 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 74 68 65 20   ┆string that can be given to the ┆
0x0120…0140 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 20 63 6c 69   ┆server process to identify a cli┆
0x0140…0160 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 20 61 73 20   ┆ent. When a buffer is marked as ┆
0x0160…0180 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 20 74 68 69   ┆\"done\", it is removed from thi┆
0x0180…01a0 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 66 66 65 72   ┆s list.")  (defvar server-buffer┆
0x01a0…01c0 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 6e 74 69 64   ┆-clients nil "\ List of clientid┆
0x01c0…01e0 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 74 69 6e 67   ┆s for clients requesting editing┆
0x01e0…0200 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 2d 76 61 72   ┆ of current buffer.")  (make-var┆
0x0200…0220 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 72 76 65 72   ┆iable-buffer-local (quote server┆
0x0220…0240 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 61 75 6c 74   ┆-buffer-clients))  (setq-default┆
0x0240…0260 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 0a 28 6f 72   ┆ server-buffer-clients nil)  (or┆
0x0260…0280 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 63 6c 69 65   ┆ (assq (quote server-buffer-clie┆
0x0280…02a0 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 20 6d 69 6e   ┆nts) minor-mode-alist) (setq min┆
0x02a0…02c0 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 73 65 72 76   ┆or-mode-alist (cons (quote (serv┆
0x02c0…02e0 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 29 20 6d 69   ┆er-buffer-clients " Server")) mi┆
0x02e0…0300 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 72 76 65 72   ┆nor-mode-alist)))  (defun server┆
0x0300…0320 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 21 85 17 00   ┆-log (string) (byte-code "  !   ┆
0x0320…0340 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 67 65 74 2d   ┆  q db  c o     ) " [string get-┆
0x0340…0360 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 29 29 0a 0a   ┆buffer "*server*" newline] 3))  ┆
0x0360…0380 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 20 6d 73 67   ┆(defun server-sentinel (proc msg┆
0x0380…03a0 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 1d 00 c1 08   ┆) (byte-code "  ! =      !!     ┆
0x03a0…03c0 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 73 74 61 74   ┆! =      !! " [proc process-stat┆
0x03c0…03e0 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 53 65 72 76   ┆us exit server-log message "Serv┆
0x03e0…0400 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 20 22 53 65   ┆er subprocess exited" signal "Se┆
0x0400…0420 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 0a 0a 28 64   ┆rver subprocess killed"] 7))  (d┆
0x0420…0440 65 66 75 6e 20 73 65 72 76 65 72 2d 73 74 61 72 74 20 28 6c 65 61 76 65 2d 64 65 61 64 29 20 22   ┆efun server-start (leave-dead) "┆
0x0440…0460 5c 0a 53 74 61 72 74 20 61 20 73 65 72 76 65 72 20 70 72 6f 63 65 73 73 2c 20 6b 69 6c 6c 69 6e   ┆\ Start a server process, killin┆
0x0460…0480 67 20 61 6e 79 20 65 78 69 73 74 69 6e 67 20 73 65 72 76 65 72 20 66 69 72 73 74 2e 0a 50 72 65   ┆g any existing server first. Pre┆
0x0480…04a0 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 78 69 73   ┆fix arg means just kill any exis┆
0x04a0…04c0 74 69 6e 67 20 73 65 72 76 65 72 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 20   ┆ting server." (interactive "P") ┆
0x04c0…04e0 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 88 08 85 0f 00 c6 08 c1 5c 22 88 c1 c7 c8 8f 88 c1 c9 ca   ┆(byte-code "         \"         ┆
0x04e0…0500 8f 88 0a 85 26 00 cb 0a 40 38 1b cc 0b 21 29 88 82 15 00 88 0c 83 2f 00 c1 82 48 00 cd ce c1 0d   ┆    &   @8   !)       /   H     ┆
0x0500…0520 23 89 10 88 c6 08 cf 5c 22 88 d0 08 d1 5c 22 88 d2 08 21 88 d3 d4 21 87 22 20 5b 73 65 72 76 65   ┆#      \"    \"   !   ! " [serve┆
0x0520…0540 72 2d 70 72 6f 63 65 73 73 20 6e 69 6c 20 73 65 72 76 65 72 2d 63 6c 69 65 6e 74 73 20 62 75 66   ┆r-process nil server-clients buf┆
0x0540…0560 66 65 72 20 6c 65 61 76 65 2d 64 65 61 64 20 73 65 72 76 65 72 2d 70 72 6f 67 72 61 6d 20 73 65   ┆fer leave-dead server-program se┆
0x0560…0580 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 65 20 22 c1   ┆t-process-sentinel (byte-code " ┆
0x0580…05a0 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 70 72 6f 63   ┆ ! " [server-process delete-proc┆
0x05a0…05c0 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 c0 87 22 20   ┆ess] 2) ((error (byte-code "  " ┆
0x05c0…05e0 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 20 5b 64 65   ┆[nil] 1))) (byte-code "  ! " [de┆
0x05e0…0600 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 20 32 29 20   ┆lete-file "~/.emacs_server"] 2) ┆
0x0600…0620 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 5d 20 31 29   ┆((error (byte-code "  " [nil] 1)┆
0x0620…0640 29 29 20 31 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 64 6f 6e 65 20 73 74 61 72 74 2d 70 72   ┆)) 1 server-buffer-done start-pr┆
0x0640…0660 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 65 6c 20 73   ┆ocess "server" server-sentinel s┆
0x0660…0680 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 63 65 73 73   ┆et-process-filter server-process┆
0x0680…06a0 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 2d 71 75 65   ┆-filter process-kill-without-que┆
0x06a0…06c0 72 79 20 73 65 72 76 65 72 2d 6c 6f 67 20 22 53 74 61 72 74 69 6e 67 20 73 65 72 76 65 72 22 5d   ┆ry server-log "Starting server"]┆
0x06c0…06e0 20 38 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74   ┆ 8))  (defun server-process-filt┆
0x06e0…0700 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 64 65 20 22 c5 08 21   ┆er (proc string) (byte-code "  !┆
0x0700…0720 88 c6 c7 c8 08 5c 22 3d 3f 83 12 00 c1 82 68 00 08 c9 c6 21 c1 4f 89 10 88 08 c6 c7 ca 08 5c 22   ┆     \"=?     h    ! O        \"┆
0x0720…0740 4f 43 c1 1b 1a 08 c9 c6 21 c1 4f 89 10 88 c7 cb 08 5c 22 85 50 00 08 cc c6 21 c9 c6 21 53 4f 0b   ┆OC      ! O      \" P    !  !SO ┆
0x0740…0760 42 89 13 88 08 c9 c6 21 c1 4f 89 10 88 82 2f 00 88 cd 0b 0a 5c 22 88 0a 0c 42 89 14 88 ce cf 0a   ┆B      ! O    /     \"   B      ┆
0x0760…0780 38 21 88 d0 d1 d2 21 21 2a 87 22 20 5b 73 74 72 69 6e 67 20 6e 69 6c 20 63 6c 69 65 6e 74 20 66   ┆8!    !!* " [string nil client f┆
0x0780…07a0 69 6c 65 6e 61 6d 65 73 20 73 65 72 76 65 72 2d 63 6c 69 65 6e 74 73 20 73 65 72 76 65 72 2d 6c   ┆ilenames server-clients server-l┆
0x07a0…07c0 6f 67 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 61 74   ┆og 0 string-match "Client: " mat┆
0x07c0…07e0 63 68 2d 65 6e 64 20 22 20 22 20 22 5b 5e 20 5d 2b 20 22 20 6d 61 74 63 68 2d 62 65 67 69 6e 6e   ┆ch-end " " "[^ ]+ " match-beginn┆
0x07e0…0800 69 6e 67 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   ┆ing server-visit-files switch-to┆
0x0800…0820 2d 62 75 66 66 65 72 20 31 20 6d 65 73 73 61 67 65 20 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d   ┆-buffer 1 message substitute-com┆
0x0820…0840 6d 61 6e 64 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   ┆mand-keys "When done with a buff┆
0x0840…0860 65 72 2c 20 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 34 29 29   ┆er, type \\[server-edit]."] 14))┆
0x0860…0880 0a 0a 28 64 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   ┆  (defun server-visit-files (fil┆
0x0880…08a0 65 6e 61 6d 65 73 20 63 6c 69 65 6e 74 29 20 22 5c 0a 46 69 6e 64 73 20 46 49 4c 45 53 20 61 6e   ┆enames client) "\ Finds FILES an┆
0x08a0…08c0 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 6c 69 73 74 20 43 4c 49 45 4e 54 20 77 69 74 68 20 74   ┆d returns the list CLIENT with t┆
0x08c0…08e0 68 65 20 62 75 66 66 65 72 73 20 6e 63 6f 6e 63 27 64 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20   ┆he buffers nconc'd." (byte-code ┆
0x08e0…0900 22 c6 18 09 85 46 00 8a c7 09 40 21 1a 0a 85 1c 00 c8 0a 21 3f 85 1c 00 c9 ca 0a 21 21 83 29 00   ┆"    F    @!       !?      !! ) ┆
0x0900…0920 0a 71 88 cb c3 c3 5c 22 82 2e 00 cc 09 40 21 71 29 88 0d 40 0c 42 89 14 88 70 08 42 89 10 29 88   ┆ q    \" .   @!q)  @ B   p B  ) ┆
0x0920…0940 09 41 89 11 88 82 02 00 88 cd 0d 08 5c 22 29 87 22 20 5b 63 6c 69 65 6e 74 2d 72 65 63 6f 72 64   ┆ A          \") " [client-record┆
0x0940…0960 20 66 69 6c 65 6e 61 6d 65 73 20 6f 62 75 66 20 74 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d   ┆ filenames obuf t server-buffer-┆
0x0960…0980 63 6c 69 65 6e 74 73 20 63 6c 69 65 6e 74 20 6e 69 6c 20 67 65 74 2d 66 69 6c 65 2d 62 75 66 66   ┆clients client nil get-file-buff┆
0x0980…09a0 65 72 20 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 66 69 6c 65 2d 65 78 69 73 74 73   ┆er buffer-modified-p file-exists┆
0x09a0…09c0 2d 70 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 72 65 76 65 72 74 2d 62 75 66 66 65   ┆-p buffer-file-name revert-buffe┆
0x09c0…09e0 72 20 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 6e 63 6f 6e 63 5d 20 39 29 29 0a   ┆r find-file-noselect nconc] 9)) ┆
0x09e0…0a00 0a 28 64 65 66 75 6e 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   ┆ (defun server-buffer-done (buff┆
0x0a00…0a20 65 72 29 20 22 5c 0a 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   ┆er) "\ Mark BUFFER as \"done\" f┆
0x0a20…0a40 6f 72 20 69 74 73 20 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   ┆or its client(s). Buries the buf┆
0x0a40…0a60 66 65 72 2c 20 61 6e 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   ┆fer, and returns another server ┆
0x0a60…0a80 62 75 66 66 65 72 0a 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   ┆buffer as a suggestion for what ┆
0x0a80…0aa0 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 20 22 c9 09 21   ┆to select next." (byte-code "  !┆
0x0aa0…0ac0 ca 3d c3 0d 1c 1a 18 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   ┆ =       Y  @           >8      ┆
0x0ac0…0ae0 0e 06 5c 22 88 0e 06 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   ┆  \"   A 1   O   G       @\"\"  ┆
0x0ae0…0b00 ce cf 0e 06 40 5c 22 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   ┆    @\"!     \"  )  A          !┆
0x0b00…0b20 85 6b 00 8a 0e 07 71 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   ┆ k    q     )    !  + " [running┆
0x0b20…0b40 20 73 65 72 76 65 72 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   ┆ server-process next-buffer nil ┆
0x0b40…0b60 6f 6c 64 2d 63 6c 69 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   ┆old-clients server-clients clien┆
0x0b60…0b80 74 20 62 75 66 66 65 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   ┆t buffer server-buffer-clients p┆
0x0b80…0ba0 72 6f 63 65 73 73 2d 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   ┆rocess-status run 1 delq send-st┆
0x0ba0…0bc0 72 69 6e 67 20 66 6f 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   ┆ring format "Close: %s Done " se┆
0x0bc0…0be0 72 76 65 72 2d 6c 6f 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   ┆rver-log buffer-name bury-buffer┆
0x0be0…0c00 5d 20 31 30 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   ┆] 10))  (defun server-done nil "┆
0x0c00…0c20 5c 0a 4f 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   ┆\ Offer to save current buffer, ┆
0x0c20…0c40 6d 61 72 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   ┆mark it as \"done\" for clients,┆
0x0c40…0c60 0a 62 75 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   ┆ bury it, and return a suggested┆
0x0c60…0c80 20 62 75 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   ┆ buffer to select next." (byte-c┆
0x0c80…0ca0 6f 64 65 20 22 70 18 09 85 35 00 c3 c4 20 c5 5c 22 83 20 00 c6 08 21 88 c7 65 64 0a c8 50 23 88   ┆ode "p   5     \"     !  ed  P# ┆
0x0ca0…0cc0 c9 08 21 82 31 00 ca 20 85 2b 00 cb cc 0a cd 51 21 85 31 00 c6 08 21 88 ce 08 21 29 87 22 20 5b   ┆  ! 1    +     Q! 1   !   !) " [┆
0x0cc0…0ce0 62 75 66 66 65 72 20 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   ┆buffer server-buffer-clients buf┆
0x0ce0…0d00 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 73 74 72 69 6e 67 3d 20 62 75 66 66 65 72 2d 6e 61 6d   ┆fer-file-name string= buffer-nam┆
0x0d00…0d20 65 20 22 64 72 61 66 74 22 20 73 61 76 65 2d 62 75 66 66 65 72 20 77 72 69 74 65 2d 72 65 67 69   ┆e "draft" save-buffer write-regi┆
0x0d20…0d40 6f 6e 20 22 7e 22 20 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 2d 6d 6f 64 69 66 69   ┆on "~" kill-buffer buffer-modifi┆
0x0d40…0d60 65 64 2d 70 20 79 2d 6f 72 2d 6e 2d 70 20 22 53 61 76 65 20 66 69 6c 65 22 20 22 3f 20 22 20 73   ┆ed-p y-or-n-p "Save file" "? " s┆
0x0d60…0d80 65 72 76 65 72 2d 62 75 66 66 65 72 2d 64 6f 6e 65 5d 20 31 30 29 29 0a 0a 28 64 65 66 75 6e 20   ┆erver-buffer-done] 10))  (defun ┆
0x0d80…0da0 73 65 72 76 65 72 2d 65 64 69 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 20 22 5c 0a 53   ┆server-edit (&optional arg) "\ S┆
0x0da0…0dc0 77 69 74 63 68 20 74 6f 20 6e 65 78 74 20 73 65 72 76 65 72 20 65 64 69 74 69 6e 67 20 62 75 66   ┆witch to next server editing buf┆
0x0dc0…0de0 66 65 72 3b 20 73 61 79 20 5c 22 44 6f 6e 65 5c 22 20 66 6f 72 20 63 75 72 72 65 6e 74 20 62 75   ┆fer; say \"Done\" for current bu┆
0x0de0…0e00 66 66 65 72 2e 0a 49 66 20 61 20 73 65 72 76 65 72 20 62 75 66 66 65 72 20 69 73 20 63 75 72 72   ┆ffer. If a server buffer is curr┆
0x0e00…0e20 65 6e 74 2c 20 69 74 20 69 73 20 6d 61 72 6b 65 64 20 5c 22 64 6f 6e 65 5c 22 20 61 6e 64 20 6f   ┆ent, it is marked \"done\" and o┆
0x0e20…0e40 70 74 69 6f 6e 61 6c 6c 79 20 73 61 76 65 64 2e 0a 4d 48 20 3c 64 72 61 66 74 3e 20 66 69 6c 65   ┆ptionally saved. MH <draft> file┆
0x0e40…0e60 73 20 61 72 65 20 61 6c 77 61 79 73 20 73 61 76 65 64 20 61 6e 64 20 62 61 63 6b 65 64 20 75 70   ┆s are always saved and backed up┆
0x0e60…0e80 2c 20 6e 6f 20 71 75 65 73 74 69 6f 6e 73 20 61 73 6b 65 64 2e 0a 57 68 65 6e 20 61 6c 6c 20 6f   ┆, no questions asked. When all o┆
0x0e80…0ea0 66 20 61 20 63 6c 69 65 6e 74 27 73 20 62 75 66 66 65 72 73 20 61 72 65 20 6d 61 72 6b 65 64 20   ┆f a client's buffers are marked ┆
0x0ea0…0ec0 61 73 20 5c 22 64 6f 6e 65 5c 22 2c 20 74 68 65 20 63 6c 69 65 6e 74 20 69 73 20 6e 6f 74 69 66   ┆as \"done\", the client is notif┆
0x0ec0…0ee0 69 65 64 2e 0a 0a 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 65 72 76 65 72 20 70 72 6f 63   ┆ied.  If there is no server proc┆
0x0ee0…0f00 65 73 73 20 72 75 6e 6e 69 6e 67 2c 20 6f 6e 65 20 69 73 20 73 74 61 72 74 65 64 20 61 6e 64 20   ┆ess running, one is started and ┆
0x0f00…0f20 74 68 61 74 27 73 20 61 6c 6c 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 20 28 62 79 74 65   ┆that's all." (interactive) (byte┆
0x0f20…0f40 2d 63 6f 64 65 20 22 c2 88 08 86 10 00 09 3f 86 10 00 c3 09 21 c4 3e 83 19 00 c5 c2 21 82 1d 00   ┆-code "       ?     ! >     !   ┆
0x0f40…0f60 c6 c7 20 21 87 22 20 5b 61 72 67 20 73 65 72 76 65 72 2d 70 72 6f 63 65 73 73 20 6e 69 6c 20 70   ┆   ! " [arg server-process nil p┆
0x0f60…0f80 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 28 73 69 67 6e 61 6c 20 65 78 69 74 29 20 73 65 72 76   ┆rocess-status (signal exit) serv┆
0x0f80…0fa0 65 72 2d 73 74 61 72 74 20 73 65 72 76 65 72 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 65   ┆er-start server-switch-buffer se┆
0x0fa0…0fc0 72 76 65 72 2d 64 6f 6e 65 5d 20 35 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 73 77   ┆rver-done] 5))  (defun server-sw┆
0x0fc0…0fe0 69 74 63 68 2d 62 75 66 66 65 72 20 28 6e 65 78 74 2d 62 75 66 66 65 72 29 20 22 5c 0a 53 77 69   ┆itch-buffer (next-buffer) "\ Swi┆
0x0fe0…1000 74 63 68 20 74 6f 20 61 6e 6f 74 68 65 72 20 62 75 66 66 65 72 2c 20 70 72 65 66 65 72 61 62 6c   ┆tch to another buffer, preferabl┆
0x1000…1020 79 20 6f 6e 65 20 74 68 61 74 20 68 61 73 20 61 20 63 6c 69 65 6e 74 2e 0a 41 72 67 20 4e 45 58   ┆y one that has a client. Arg NEX┆
0x1020…1040 54 2d 42 55 46 46 45 52 20 69 73 20 61 20 73 75 67 67 65 73 74 69 6f 6e 3b 20 69 66 20 69 74 20   ┆T-BUFFER is a suggestion; if it ┆
0x1040…1060 69 73 20 61 20 6c 69 76 65 20 62 75 66 66 65 72 2c 20 75 73 65 20 69 74 2e 22 20 28 62 79 74 65   ┆is a live buffer, use it." (byte┆
0x1060…1080 2d 63 6f 64 65 20 22 08 83 1e 00 c2 08 21 85 0d 00 c3 08 21 83 16 00 c4 08 21 82 1b 00 c5 c6 08   ┆-code "      !     !     !      ┆
0x1080…10a0 21 21 82 2f 00 09 83 2b 00 c5 c7 09 40 38 21 82 2f 00 c4 c8 20 21 87 22 20 5b 6e 65 78 74 2d 62   ┆!! /   +    @8! /    ! " [next-b┆
0x10a0…10c0 75 66 66 65 72 20 73 65 72 76 65 72 2d 63 6c 69 65 6e 74 73 20 62 75 66 66 65 72 70 20 62 75 66   ┆uffer server-clients bufferp buf┆
0x10c0…10e0 66 65 72 2d 6e 61 6d 65 20 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 73 65 72 76 65 72   ┆fer-name switch-to-buffer server┆
0x10e0…1100 2d 73 77 69 74 63 68 2d 62 75 66 66 65 72 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d 64 6f 6e   ┆-switch-buffer server-buffer-don┆
0x1100…1120 65 20 31 20 6f 74 68 65 72 2d 62 75 66 66 65 72 5d 20 39 29 29 0a 0a 28 67 6c 6f 62 61 6c 2d 73   ┆e 1 other-buffer] 9))  (global-s┆
0x1120…1140 65 74 2d 6b 65 79 20 22 18 23 22 20 28 71 75 6f 74 65 20 73 65 72 76 65 72 2d 65 64 69 74 29 29   ┆et-key " #" (quote server-edit))┆
0x1140…1141 0a   ┆ ┆