|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: s
Length: 5251 (0x1483) Names: »server.elc«
└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89 └─⟦46d41b2d0⟧ »./emacs-18.55.tar.Z« └─⟦fa971747f⟧ └─⟦this⟧ »dist-18.55/lisp/server.elc«
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 26 6f 70 74 69 6f 6e 61 6c 20 6c 65 61 ┆efun server-start (&optional lea┆ 0x0440…0460 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 20 70 72 6f ┆ve-dead) "\ Allow this Emacs pro┆ 0x0460…0480 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 6e 74 20 70 ┆cess to be a server for client p┆ 0x0480…04a0 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 65 72 20 63 ┆rocesses. This starts a server c┆ 0x04a0…04c0 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 6f 75 67 68 ┆ommunications subprocess through┆ 0x04c0…04e0 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 6e 20 73 65 ┆ which client \"editors\" can se┆ 0x04e0…0500 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 74 68 69 73 ┆nd your editing commands to this┆ 0x0500…0520 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 72 2c 20 73 ┆ Emacs job. To use the server, s┆ 0x0520…0540 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 63 6c 69 65 ┆et up the program `etc/emacsclie┆ 0x0540…0560 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 6e 20 61 73 ┆nt' in the Emacs distribution as┆ 0x0560…0580 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 50 72 65 66 ┆ your standard \"editor\". Pref┆ 0x0580…05a0 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 74 ┆ix arg means just kill any exist┆ 0x05a0…05c0 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 62 70 72 6f ┆ing server communications subpro┆ 0x05c0…05e0 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 74 65 2d 63 ┆cess." (interactive "P") (byte-c┆ 0x05e0…0600 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 8f 88 0a 85 26 00 cb ┆ode " \" & ┆ 0x0600…0620 0a 40 38 1b cc 0b 21 29 88 82 15 00 88 0c 83 2f 00 c1 82 4e 00 08 85 38 00 cd ce cf 21 21 88 d0 ┆ @8 !) / N 8 !! ┆ 0x0620…0640 d1 c1 0d 23 89 10 88 c6 08 d2 5c 22 88 d3 08 d4 5c 22 88 d5 08 21 87 22 20 5b 73 65 72 76 65 72 ┆ # \" \" ! " [server┆ 0x0640…0660 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 66 ┆-process nil server-clients buff┆ 0x0660…0680 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 74 ┆er leave-dead server-program set┆ 0x0680…06a0 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 08 ┆-process-sentinel (byte-code " ┆ 0x06a0…06c0 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 65 ┆! " [server-process delete-proce┆ 0x06c0…06e0 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 5b ┆ss] 2) ((error (byte-code " " [┆ 0x06e0…0700 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 6c ┆nil] 1))) (byte-code " ! " [del┆ 0x0700…0720 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 28 ┆ete-file "~/.emacs_server"] 2) (┆ 0x0720…0740 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 29 ┆(error (byte-code " " [nil] 1))┆ 0x0740…0760 29 20 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 ┆) 1 server-buffer-done server-lo┆ 0x0760…0780 67 20 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 ┆g message "Restarting server" st┆ 0x0780…07a0 61 72 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 ┆art-process "server" server-sent┆ 0x07a0…07c0 69 6e 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 ┆inel set-process-filter server-p┆ 0x07c0…07e0 72 6f 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 ┆rocess-filter process-kill-witho┆ 0x07e0…0800 75 74 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 ┆ut-query] 9)) (defun server-pro┆ 0x0800…0820 63 65 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 ┆cess-filter (proc string) (byte-┆ 0x0820…0840 63 6f 64 65 20 22 c7 08 21 88 c8 c9 ca 08 5c 22 3d 3f 83 12 00 c1 82 87 00 08 cb c8 21 c1 4f 89 ┆code " ! \"=? ! O ┆ 0x0840…0860 10 88 08 c8 c9 cc 08 5c 22 4f 43 c1 cd 1c 1b 1a 08 cb c8 21 c1 4f 89 10 88 c9 ce 08 5c 22 85 6d ┆ \"OC ! O \" m┆ 0x0860…0880 00 08 cf c8 21 cb c8 21 53 4f 1d 08 cb c8 21 c1 4f 89 10 88 c9 d0 0d 5c 22 83 5d 00 d1 0d cd c1 ┆ ! !SO ! O \" ] ┆ 0x0880…08a0 4f 21 89 14 82 68 00 0d 0c 44 0b 42 89 13 88 cd 89 14 29 88 82 31 00 88 d2 0b 0a 5c 22 88 0a 0e ┆O! h D B ) 1 \" ┆ 0x08a0…08c0 06 42 89 16 06 88 d3 cd 0a 38 21 88 d4 d5 d6 21 21 2b 87 22 20 5b 73 74 72 69 6e 67 20 6e 69 6c ┆ B 8! !!+ " [string nil┆ 0x08c0…08e0 20 63 6c 69 65 6e 74 20 66 69 6c 65 73 20 6c 69 6e 65 6e 6f 20 61 72 67 20 73 65 72 76 65 72 2d ┆ client files lineno arg server-┆ 0x08e0…0900 63 6c 69 65 6e 74 73 20 73 65 72 76 65 72 2d 6c 6f 67 20 30 20 73 74 72 69 6e 67 2d 6d 61 74 63 ┆clients server-log 0 string-matc┆ 0x0900…0920 68 20 22 43 6c 69 65 6e 74 3a 20 22 20 6d 61 74 63 68 2d 65 6e 64 20 22 20 22 20 31 20 22 5b 5e ┆h "Client: " match-end " " 1 "[^┆ 0x0920…0940 20 5d 2b 20 22 20 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 22 5c 5c 60 5c 5c 2b 5b 30 2d ┆ ]+ " match-beginning "\\`\\+[0-┆ 0x0940…0960 39 5d 2b 5c 5c 27 22 20 72 65 61 64 20 73 65 72 76 65 72 2d 76 69 73 69 74 2d 66 69 6c 65 73 20 ┆9]+\\'" read server-visit-files ┆ 0x0960…0980 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 6d 65 73 73 61 67 65 20 73 75 62 73 74 69 74 ┆switch-to-buffer message substit┆ 0x0980…09a0 75 74 65 2d 63 6f 6d 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 ┆ute-command-keys "When done with┆ 0x09a0…09c0 20 61 20 62 75 66 66 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 ┆ a buffer, type \\[server-edit].┆ 0x09c0…09e0 22 5d 20 31 36 29 29 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 ┆"] 16)) (defun server-visit-fil┆ 0x09e0…0a00 65 73 20 28 66 69 6c 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 ┆es (files client) "\ Finds FILES┆ 0x0a00…0a20 20 61 6e 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 ┆ and returns the list CLIENT wit┆ 0x0a20…0a40 68 20 74 68 65 20 62 75 66 66 65 72 73 20 6e 63 6f 6e 63 27 64 2e 0a 46 49 4c 45 53 20 69 73 20 ┆h the buffers nconc'd. FILES is ┆ 0x0a40…0a60 61 6e 20 61 6c 69 73 74 20 77 68 6f 73 65 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 28 46 49 4c ┆an alist whose elements are (FIL┆ 0x0a60…0a80 45 4e 41 4d 45 20 4c 49 4e 45 4e 55 4d 42 45 52 29 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 ┆ENAME LINENUMBER)." (byte-code "┆ 0x0a80…0aa0 c5 18 09 85 67 00 8a 09 40 40 1a c8 0a 21 1b 0b 85 15 00 0b 71 83 41 00 c9 0a 21 83 32 00 ca 0b ┆ g @@ ! q A ! 2 ┆ 0x0aa0…0ac0 21 3f 86 28 00 cb 0b 21 85 2f 00 cc c4 c5 5c 22 82 3e 00 cd ce 0a cf 51 21 85 3e 00 d0 0a 21 82 ┆!? ( ! / \" > Q! > ! ┆ 0x0ac0…0ae0 45 00 d1 0a 21 71 2a 88 d2 d3 09 40 38 21 88 0e 07 40 0e 06 42 89 16 06 88 70 08 42 89 10 29 88 ┆E !q* @8! @ B p B ) ┆ 0x0ae0…0b00 09 41 89 11 88 82 02 00 88 d4 0e 07 08 5c 22 29 87 22 20 5b 63 6c 69 65 6e 74 2d 72 65 63 6f 72 ┆ A \") " [client-recor┆ 0x0b00…0b20 64 20 66 69 6c 65 73 20 66 69 6c 65 6e 20 6f 62 75 66 20 74 20 6e 69 6c 20 73 65 72 76 65 72 2d ┆d files filen obuf t nil server-┆ 0x0b20…0b40 62 75 66 66 65 72 2d 63 6c 69 65 6e 74 73 20 63 6c 69 65 6e 74 20 67 65 74 2d 66 69 6c 65 2d 62 ┆buffer-clients client get-file-b┆ 0x0b40…0b60 75 66 66 65 72 20 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 76 65 72 69 66 79 2d 76 69 73 69 74 ┆uffer file-exists-p verify-visit┆ 0x0b60…0b80 65 64 2d 66 69 6c 65 2d 6d 6f 64 74 69 6d 65 20 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d ┆ed-file-modtime buffer-modified-┆ 0x0b80…0ba0 70 20 72 65 76 65 72 74 2d 62 75 66 66 65 72 20 79 2d 6f 72 2d 6e 2d 70 20 22 46 69 6c 65 20 6e ┆p revert-buffer y-or-n-p "File n┆ 0x0ba0…0bc0 6f 20 6c 6f 6e 67 65 72 20 65 78 69 73 74 73 3a 20 22 20 22 2c 20 77 72 69 74 65 20 62 75 66 66 ┆o longer exists: " ", write buff┆ 0x0bc0…0be0 65 72 20 74 6f 20 66 69 6c 65 3f 20 22 20 77 72 69 74 65 2d 66 69 6c 65 20 66 69 6e 64 2d 66 69 ┆er to file? " write-file find-fi┆ 0x0be0…0c00 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 67 6f 74 6f 2d 6c 69 6e 65 20 31 20 6e 63 6f 6e 63 5d 20 31 ┆le-noselect goto-line 1 nconc] 1┆ 0x0c00…0c20 32 29 29 0a 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 ┆2)) (defun server-buffer-done (┆ 0x0c20…0c40 62 75 66 66 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 ┆buffer) "\ Mark BUFFER as \"done┆ 0x0c40…0c60 5c 22 20 66 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 ┆\" for its client(s). Buries the┆ 0x0c60…0c80 20 62 75 66 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 ┆ buffer, and returns another ser┆ 0x0c80…0ca0 76 65 72 20 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 ┆ver buffer as a suggestion for w┆ 0x0ca0…0cc0 68 61 74 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 20 ┆hat to select next." (byte-code ┆ 0x0cc0…0ce0 22 c9 09 21 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 ┆" ! = Y @ >8 ┆ 0x0ce0…0d00 88 cc 0e 07 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 ┆ \" A 1 O G @\"┆ 0x0d00…0d20 5c 22 88 d0 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 ┆\" @\"! \" ) A ┆ 0x0d20…0d40 d1 0e 07 21 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 ┆ ! k q ) ! + " [run┆ 0x0d40…0d60 6e 69 6e 67 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 ┆ning server-process next-buffer ┆ 0x0d60…0d80 6e 69 6c 20 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 ┆nil old-clients server-clients c┆ 0x0d80…0da0 6c 69 65 6e 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 ┆lient buffer server-buffer-clien┆ 0x0da0…0dc0 74 73 20 70 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 ┆ts process-status run 1 delq sen┆ 0x0dc0…0de0 64 2d 73 74 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 ┆d-string format "Close: %s Done ┆ 0x0de0…0e00 22 20 73 65 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 ┆" server-log buffer-name bury-bu┆ 0x0e00…0e20 66 66 65 72 5d 20 31 30 29 29 0a 0a 28 64 65 66 75 6e 20 6d 68 2d 64 72 61 66 74 2d 70 20 28 62 ┆ffer] 10)) (defun mh-draft-p (b┆ 0x0e20…0e40 75 66 66 65 72 29 20 22 5c 0a 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 69 73 ┆uffer) "\ Return non-nil if this┆ 0x0e40…0e60 20 42 55 46 46 45 52 20 69 73 20 61 6e 20 6d 68 20 3c 64 72 61 66 74 3e 20 66 69 6c 65 2e 0a 53 ┆ BUFFER is an mh <draft> file. S┆ 0x0e60…0e80 69 6e 63 65 20 4d 48 20 64 65 6c 65 74 65 73 20 64 72 61 66 74 20 2a 42 45 46 4f 52 45 2a 20 69 ┆ince MH deletes draft *BEFORE* i┆ 0x0e80…0ea0 74 20 69 73 20 65 64 69 74 65 64 2c 20 74 68 65 20 73 65 72 76 65 72 20 74 72 65 61 74 73 20 74 ┆t is edited, the server treats t┆ 0x0ea0…0ec0 68 65 6d 20 73 70 65 63 69 61 6c 6c 79 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 c2 08 21 ┆hem specially." (byte-code " !┆ 0x0ec0…0ee0 c3 5c 22 87 22 20 5b 62 75 66 66 65 72 20 73 74 72 69 6e 67 3d 20 62 75 66 66 65 72 2d 6e 61 6d ┆ \" " [buffer string= buffer-nam┆ 0x0ee0…0f00 65 20 22 64 72 61 66 74 22 5d 20 34 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 64 6f ┆e "draft"] 4)) (defun server-do┆ 0x0f00…0f20 6e 65 20 6e 69 6c 20 22 5c 0a 4f 66 66 65 72 20 74 6f 20 73 61 76 65 20 63 75 72 72 65 6e 74 20 ┆ne nil "\ Offer to save current ┆ 0x0f20…0f40 62 75 66 66 65 72 2c 20 6d 61 72 6b 20 69 74 20 61 73 20 5c 22 64 6f 6e 65 5c 22 20 66 6f 72 20 ┆buffer, mark it as \"done\" for ┆ 0x0f40…0f60 63 6c 69 65 6e 74 73 2c 0a 62 75 72 79 20 69 74 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 73 ┆clients, bury it, and return a s┆ 0x0f60…0f80 75 67 67 65 73 74 65 64 20 62 75 66 66 65 72 20 74 6f 20 73 65 6c 65 63 74 20 6e 65 78 74 2e 22 ┆uggested buffer to select next."┆ 0x0f80…0fa0 20 28 62 79 74 65 2d 63 6f 64 65 20 22 70 18 09 85 32 00 c3 08 21 83 1d 00 c4 20 88 c5 65 64 0a ┆ (byte-code "p 2 ! ed ┆ 0x0fa0…0fc0 c6 50 23 88 c7 08 21 82 2e 00 c8 20 85 28 00 c9 ca 0a cb 51 21 85 2e 00 c4 08 21 88 cc 08 21 29 ┆ P# ! . ( Q! . ! !)┆ 0x0fc0…0fe0 87 22 20 5b 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 ┆ " [buffer server-buffer-clients┆ 0x0fe0…1000 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 6d 68 2d 64 72 61 66 74 2d 70 20 73 61 76 ┆ buffer-file-name mh-draft-p sav┆ 0x1000…1020 65 2d 62 75 66 66 65 72 20 77 72 69 74 65 2d 72 65 67 69 6f 6e 20 22 7e 22 20 6b 69 6c 6c 2d 62 ┆e-buffer write-region "~" kill-b┆ 0x1020…1040 75 66 66 65 72 20 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 79 2d 6f 72 2d 6e 2d 70 ┆uffer buffer-modified-p y-or-n-p┆ 0x1040…1060 20 22 53 61 76 65 20 66 69 6c 65 22 20 22 3f 20 22 20 73 65 72 76 65 72 2d 62 75 66 66 65 72 2d ┆ "Save file" "? " server-buffer-┆ 0x1060…1080 64 6f 6e 65 5d 20 39 29 29 0a 0a 28 64 65 66 75 6e 20 73 65 72 76 65 72 2d 65 64 69 74 20 28 26 ┆done] 9)) (defun server-edit (&┆ 0x1080…10a0 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 20 22 5c 0a 53 77 69 74 63 68 20 74 6f 20 6e 65 78 74 20 ┆optional arg) "\ Switch to next ┆ 0x10a0…10c0 73 65 72 76 65 72 20 65 64 69 74 69 6e 67 20 62 75 66 66 65 72 3b 20 73 61 79 20 5c 22 44 6f 6e ┆server editing buffer; say \"Don┆ 0x10c0…10e0 65 5c 22 20 66 6f 72 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 49 66 20 61 20 73 65 72 ┆e\" for current buffer. If a ser┆ 0x10e0…1100 76 65 72 20 62 75 66 66 65 72 20 69 73 20 63 75 72 72 65 6e 74 2c 20 69 74 20 69 73 20 6d 61 72 ┆ver buffer is current, it is mar┆ 0x1100…1120 6b 65 64 20 5c 22 64 6f 6e 65 5c 22 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 73 61 76 65 ┆ked \"done\" and optionally save┆ 0x1120…1140 64 2e 0a 4d 48 20 3c 64 72 61 66 74 3e 20 66 69 6c 65 73 20 61 72 65 20 61 6c 77 61 79 73 20 73 ┆d. MH <draft> files are always s┆ 0x1140…1160 61 76 65 64 20 61 6e 64 20 62 61 63 6b 65 64 20 75 70 2c 20 6e 6f 20 71 75 65 73 74 69 6f 6e 73 ┆aved and backed up, no questions┆ 0x1160…1180 20 61 73 6b 65 64 2e 0a 57 68 65 6e 20 61 6c 6c 20 6f 66 20 61 20 63 6c 69 65 6e 74 27 73 20 62 ┆ asked. When all of a client's b┆ 0x1180…11a0 75 66 66 65 72 73 20 61 72 65 20 6d 61 72 6b 65 64 20 61 73 20 5c 22 64 6f 6e 65 5c 22 2c 20 74 ┆uffers are marked as \"done\", t┆ 0x11a0…11c0 68 65 20 63 6c 69 65 6e 74 20 69 73 20 6e 6f 74 69 66 69 65 64 2e 0a 0a 49 66 20 69 6e 76 6f 6b ┆he client is notified. If invok┆ 0x11c0…11e0 65 64 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 6f 72 20 69 66 ┆ed with a prefix argument, or if┆ 0x11e0…1200 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 65 72 76 65 72 20 70 72 6f 63 65 73 73 20 72 75 6e 6e ┆ there is no server process runn┆ 0x1200…1220 69 6e 67 2c 20 0a 73 74 61 72 74 73 20 73 65 72 76 65 72 20 70 72 6f 63 65 73 73 20 61 6e 64 20 ┆ing, starts server process and ┆ 0x1220…1240 74 68 61 74 20 69 73 20 61 6c 6c 2e 20 20 49 6e 76 6f 6b 65 64 20 62 79 20 5c 5c 5b 73 65 72 76 ┆that is all. Invoked by \\[serv┆ 0x1240…1260 65 72 2d 65 64 69 74 5d 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 20 28 62 79 ┆er-edit]." (interactive "P") (by┆ 0x1260…1280 74 65 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 ┆te-code " ? ! > ! ┆ 0x1280…12a0 1d 00 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 ┆ ! " [arg server-process nil┆ 0x12a0…12c0 20 70 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 ┆ process-status (signal exit) se┆ 0x12c0…12e0 72 76 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 ┆rver-start server-switch-buffer ┆ 0x12e0…1300 73 65 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 ┆server-done] 5)) (defun server-┆ 0x1300…1320 73 77 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 ┆switch-buffer (next-buffer) "\ S┆ 0x1320…1340 77 69 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 ┆witch to another buffer, prefera┆ 0x1340…1360 62 6c 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 ┆bly one that has a client. Arg N┆ 0x1360…1380 45 58 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 ┆EXT-BUFFER is a suggestion; if i┆ 0x1380…13a0 74 20 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 ┆t is a live buffer, use it." (by┆ 0x13a0…13c0 74 65 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 ┆te-code " ! ! ! ┆ 0x13c0…13e0 c6 08 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 ┆ !! / + @8! / ! " [next┆ 0x13e0…1400 2d 62 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 ┆-buffer server-clients bufferp b┆ 0x1400…1420 75 66 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 ┆uffer-name switch-to-buffer serv┆ 0x1420…1440 65 72 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 ┆er-switch-buffer server-buffer-d┆ 0x1440…1460 6f 6e 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 ┆one 1 other-buffer] 9)) (global┆ 0x1460…1480 2d 73 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 ┆-set-key " #" (quote server-edit┆ 0x1480…1483 29 29 0a ┆)) ┆