rtl_fm/rtl_power: Improve scanning range parsing

master
A. Maitland Bottoms 5 years ago committed by Steve Markgraf
parent b2ee24eff5
commit f2a9a81c4b
  1. 13
      src/rtl_fm.c
  2. 8
      src/rtl_power.c

@ -926,8 +926,21 @@ void frequency_range(struct controller_state *s, char *arg)
int i;
start = arg;
stop = strchr(start, ':') + 1;
if (stop == (char *)1) { // no stop or step given
s->freqs[s->freq_len] = (uint32_t) atofs(start);
s->freq_len++;
return;
}
stop[-1] = '\0';
step = strchr(stop, ':') + 1;
if (step == (char *)1) { // no step given
s->freqs[s->freq_len] = (uint32_t) atofs(start);
s->freq_len++;
s->freqs[s->freq_len] = (uint32_t) atofs(stop);
s->freq_len++;
stop[-1] = ':';
return;
}
step[-1] = '\0';
for(i=(int)atofs(start); i<=(int)atofs(stop); i+=(int)atofs(step))
{

@ -437,8 +437,16 @@ void frequency_range(char *arg, double crop)
/* hacky string parsing */
start = arg;
stop = strchr(start, ':') + 1;
if (stop == (char *)1) {
fprintf(stderr, "Bad frequency range specification: %s\n", arg);
exit(1);
}
stop[-1] = '\0';
step = strchr(stop, ':') + 1;
if (step == (char *)1) {
fprintf(stderr, "Bad frequency range specification: %s\n", arg);
exit(1);
}
step[-1] = '\0';
lower = (int)atofs(start);
upper = (int)atofs(stop);

Loading…
Cancel
Save