changeset 138:f3f3651d2520

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Wed, 12 Dec 1990 05:12:45 +0000
parents 6e5406a8359d
children 8e1e4ca81016
files lisp/server.el
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/server.el	Tue Dec 11 22:39:57 1990 +0000
+++ b/lisp/server.el	Wed Dec 12 05:12:45 1990 +0000
@@ -75,6 +75,8 @@
 (defvar server-process nil 
   "the current server process")
 
+(defvar server-previous-string "")
+
 (defvar server-clients nil
   "List of current server clients.
 Each element is (CLIENTID FILES...) where CLIENTID is a string
@@ -144,9 +146,14 @@
 ;Format of STRING is "Client: CLIENTID PATH PATH PATH... \n"
 (defun server-process-filter (proc string)
   (server-log string)
-  (if (not (eq 0 (string-match "Client: " string)))
-      nil
+  (setq string (concat server-previous-string string))
+  (if (not (and (eq ?\n (aref string (1- (length string))))
+		(eq 0 (string-match "Client: " string))))
+      ;; If input is not complete, save it for later.
+      (setq server-previous-string string)
+    ;; If it is complete, process it now, and discard what was saved.
     (setq string (substring string (match-end 0)))
+    (setq server-previous-string "")
     (let ((client (list (substring string 0 (string-match " " string))))
 	  (files nil)
 	  (lineno 1))