|
@@ -221,8 +221,6 @@ void serial_communicate(struct serial_device *port, int infd, int outfd) {
|
|
|
n = write(port->fd, buf, n);
|
|
|
ringbuf_move(&port->out_buf, n);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
|
|
|
if(FD_ISSET(infd, &read_set)) {
|
|
|
bytes = sizeof(port->out_buf.data) - port->out_buf.size;
|
|
@@ -271,7 +269,7 @@ int ringbuf_append(struct ring_buf *buf, const char *data, unsigned int len) {
|
|
|
for(i=0; i<len; i++) {
|
|
|
if(p>=sizeof(buf->data))
|
|
|
p -= sizeof(buf->data);
|
|
|
- buf->data[p] = data[i];
|
|
|
+ buf->data[p++] = data[i];
|
|
|
}
|
|
|
buf->size += len;
|
|
|
return 0;
|
|
@@ -288,6 +286,7 @@ int ringbuf_getline(struct ring_buf *buf, char *data, unsigned int len) {
|
|
|
if(p>=sizeof(buf->data))
|
|
|
p -= sizeof(buf->data);
|
|
|
if(buf->data[p]=='\r' || buf->data[p]=='\n') break;
|
|
|
+ p++;
|
|
|
}
|
|
|
|
|
|
if((len-datap-1)<i) return -1;
|
|
@@ -321,7 +320,7 @@ int ringbuf_getdata(struct ring_buf *buf, char *data, unsigned int len) {
|
|
|
for(i=0; i<len; i++) {
|
|
|
if(p>=sizeof(buf->data))
|
|
|
p -= sizeof(buf->data);
|
|
|
- data[i] = buf->data[p];
|
|
|
+ data[i] = buf->data[p++];
|
|
|
}
|
|
|
return len;
|
|
|
}
|