]> git.pond.sub.org Git - empserver/commitdiff
(parseid): New, factored out of recvline() and recv_output().
authorMarkus Armbruster <armbru@pond.sub.org>
Fri, 14 Dec 2007 07:44:12 +0000 (07:44 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Fri, 14 Dec 2007 07:44:12 +0000 (07:44 +0000)
(recvline, recv_output): Use it.

src/client/expect.c
src/client/misc.h
src/client/play.c

index cb0e9571ce2d9f370a6eb459ae50a3ad3cec2041..d278eba4c4f3c6baeb81775a59406667cf6207bf 100644 (file)
@@ -58,10 +58,9 @@ int
 recvline(int s, char *buf)
 {
     int sz = 1024;
 recvline(int s, char *buf)
 {
     int sz = 1024;
-    char *bp, *end;
+    char *bp;
     char ch;
     ssize_t n;
     char ch;
     ssize_t n;
-    long id;
 
     bp = buf;
     for (;;) {
 
     bp = buf;
     for (;;) {
@@ -84,10 +83,18 @@ recvline(int s, char *buf)
 
     *bp++ = ch;
     *bp = 0;
 
     *bp++ = ch;
     *bp = 0;
+    return parseid(buf);
+}
+
+int
+parseid(char *line)
+{
+    char *end;
+    long id;
 
 
-    id = strtol(buf, &end, 16);
-    if (end == buf || *end != ' ') {
-       fprintf(stderr, "Malformed id in line %s", buf);
+    id = strtol(line, &end, 16);
+    if (end == line || *end != ' ') {
+       fprintf(stderr, "Malformed id in line %s", line);
        id = -1;
     }
     if (id > C_LAST)
        id = -1;
     }
     if (id > C_LAST)
index 2b6329471188e9b5aee33989df3bdd5e26d87c1e..05d4f3d565efcc9feb7c308b1c4881968c7df5a7 100644 (file)
@@ -57,6 +57,7 @@ void putso(void);
 void putse(void);
 #endif
 int recvline(int s, char *buf);
 void putse(void);
 #endif
 int recvline(int s, char *buf);
+int parseid(char *);
 int expect(int s, int match, char *buf);
 int tcp_connect(char *, char *);
 int login(int s, char *uname, char *cname, char *cpass, int kill_proc, int);
 int expect(int s, int match, char *buf);
 int tcp_connect(char *, char *);
 int login(int s, char *uname, char *cname, char *cpass, int kill_proc, int);
index 22a1add8bd6a417ae39dc522d4ddf8193cbb5ade..072c5e754377db6eef920b20621b9ceed9889bbb 100644 (file)
@@ -322,7 +322,7 @@ recv_output(int sock)
     char buf[4096];
     ssize_t n;
     int i, ch, len;
     char buf[4096];
     ssize_t n;
     int i, ch, len;
-    char *line, *end;
+    char *line;
 
     n = read(sock, buf, sizeof(buf));
     if (n < 0)
 
     n = read(sock, buf, sizeof(buf));
     if (n < 0)
@@ -337,16 +337,11 @@ recv_output(int sock)
                lbuf_init(&lbuf);
                break;
            }
                lbuf_init(&lbuf);
                break;
            }
-           if (ch != ' ') {
-               lbuf_putc(&lbuf, ch);
+           lbuf_putc(&lbuf, ch);
+           if (ch != ' ')
                break;
                break;
-           }
            line = lbuf_line(&lbuf);
            line = lbuf_line(&lbuf);
-           id = strtol(line, &end, 16);
-           if (end == line || *end) {
-               /* FIXME gripe bad id */
-               id = -1;
-           }
+           id = parseid(line);
            lbuf_init(&lbuf);
 
            switch (id) {
            lbuf_init(&lbuf);
 
            switch (id) {