diff --git a/src/main.c b/src/main.c index 718ab7d..43a4e18 100644 --- a/src/main.c +++ b/src/main.c @@ -172,27 +172,34 @@ static int _parse_options(int argc, char *argv[], struct device_t *dev, struct e { _dest = _value; break; } # define OPT_UNSIGNED(_dest, _name, _min, _max) { \ - errno = 0; char *_end = NULL; int _tmp = strtol(optarg, &_end, 0); \ - if (errno || *_end || _tmp < _min || _tmp > _max) { \ - printf("Invalid value for '%s=%s'; min=%u; max=%u\n", _name, optarg, _min, _max); \ - return -1; \ - } _dest = _tmp; break; } + errno = 0; char *_end = NULL; int _tmp = strtol(optarg, &_end, 0); \ + if (errno || *_end || _tmp < _min || _tmp > _max) { \ + printf("Invalid value for '%s=%s'; min=%u; max=%u\n", _name, optarg, _min, _max); \ + return -1; \ + } \ + _dest = _tmp; \ + break; \ + } # define OPT_PARSE(_dest, _func, _invalid, _name) { \ - if ((_dest = _func(optarg)) == _invalid) { \ - printf("Unknown " _name ": %s\n", optarg); \ - return -1; \ - } break; } + if ((_dest = _func(optarg)) == _invalid) { \ + printf("Unknown " _name ": %s\n", optarg); \ + return -1; \ + } \ + break; \ + } # define OPT_INT(_dest, _name, _base) { \ - errno = 0; char *_end = NULL; int _tmp = strtol(optarg, &_end, _base); \ - if (errno || *_end) { \ - printf("Invalid value for '%s=%s'\n", _name, optarg); \ - return -1; \ - } _dest = _tmp; break; } + errno = 0; char *_end = NULL; int _tmp = strtol(optarg, &_end, _base); \ + if (errno || *_end) { \ + printf("Invalid value for '%s=%s'\n", _name, optarg); \ + return -1; \ + } \ + _dest = _tmp; \ + break; \ + } -# define OPT_CHMOD(_dest, _name) \ - OPT_INT(_dest, _name, 8) +# define OPT_CHMOD(_dest, _name) OPT_INT(_dest, _name, 8) # define OPT_IMG(_dest) \ { dev->img->_dest##_set = true; OPT_INT(dev->img->_dest, "--image-"#_dest, 10); break; } diff --git a/src/stream.c b/src/stream.c index 277d577..94f84d7 100644 --- a/src/stream.c +++ b/src/stream.c @@ -136,9 +136,11 @@ void stream_loop(struct stream_t *stream) { # define INIT_FD_SET(_set) \ fd_set _set; FD_ZERO(&_set); FD_SET(stream->dev->run->fd, &_set); + INIT_FD_SET(read_fds); INIT_FD_SET(write_fds); INIT_FD_SET(error_fds); + # undef INIT_FD_SET struct timeval timeout;