diff --git a/.gitignore b/.gitignore index 6688893..8ed37e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,8 @@ a.out *.o fake-values -essai serial/t +essai +serial/t doc/*.toc doc/*.log doc/*.aux doc/*.pdf diff --git a/serial/serial.c b/serial/serial.c index 5a51a57..f086c13 100644 --- a/serial/serial.c +++ b/serial/serial.c @@ -146,21 +146,27 @@ retval = retval < 0 ? -1 : retval; switch (retval) { case -1: - fprintf(stderr, "omg ?\n"); break; + fprintf(stderr, "omg ?\n"); + byte = -1; + break; case 0: - fprintf(stderr, "timeout\n"); break; - - + fprintf(stderr, "timeout\n"); + byte = -99; + break; default: - return -99; + if (retval==fd) { + read(fd, &byte, 1); + fprintf(stderr, "got 0x%02x\n", byte); + } + else { + fprintf(stderr, "%d bad fd ?\n", retval); + byte = -3; + } + break; } - - - - -return -3; +return byte; } /* -------------------------------------------------------------------- */