FreeCalypso > hg > fc-sim-tools
comparison calypso/tpinterf.c @ 7:b25d4dfe5798
fcsim-calypso-be actually works now
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sun, 14 Mar 2021 05:33:51 +0000 |
| parents | deeeef558279 |
| children |
comparison
equal
deleted
inserted
replaced
| 6:0a21a7ffe144 | 7:b25d4dfe5798 |
|---|---|
| 134 tpinterf_pass_output(timeout) | 134 tpinterf_pass_output(timeout) |
| 135 { | 135 { |
| 136 char buf[1024], *cp; | 136 char buf[1024], *cp; |
| 137 fd_set fds; | 137 fd_set fds; |
| 138 struct timeval tv; | 138 struct timeval tv; |
| 139 int cc, newline = 1, termflag = 0; | 139 int cc, newline = 1, termflag = 0, finish = 0; |
| 140 unsigned goodchar; | 140 unsigned goodchar; |
| 141 | 141 |
| 142 for (goodchar = 0; ; ) { | 142 for (goodchar = 0; !finish; ) { |
| 143 FD_ZERO(&fds); | 143 FD_ZERO(&fds); |
| 144 FD_SET(target_fd, &fds); | 144 FD_SET(target_fd, &fds); |
| 145 tv.tv_sec = timeout; | 145 tv.tv_sec = timeout; |
| 146 tv.tv_usec = 0; | 146 tv.tv_usec = 0; |
| 147 cc = select(target_fd+1, &fds, NULL, NULL, &tv); | 147 cc = select(target_fd+1, &fds, NULL, NULL, &tv); |
| 162 "back end error: failed read after successful select\n"); | 162 "back end error: failed read after successful select\n"); |
| 163 return(-1); | 163 return(-1); |
| 164 } | 164 } |
| 165 for (cp = buf + goodchar; cc; cp++) { | 165 for (cp = buf + goodchar; cc; cp++) { |
| 166 cc--; | 166 cc--; |
| 167 if (*cp == '=' && newline && !cc) | 167 if (*cp == '=' && newline && !cc) { |
| 168 finish = 1; | |
| 168 break; | 169 break; |
| 170 } | |
| 169 if (*cp == '\n') { | 171 if (*cp == '\n') { |
| 170 newline = 1; | 172 newline = 1; |
| 171 termflag = 1; | 173 termflag = 1; |
| 172 continue; | 174 continue; |
| 173 } | 175 } |
