diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2009-01-07 15:31:49 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2009-01-07 15:31:49 +0000 |
commit | 897b50d358c60ff00c87780cf60cc2f2ca7537f5 (patch) | |
tree | b9c7d56e2ffbd6a8de9785bc4addb952ee33e2ce /gpsctl.c | |
parent | d5655fe70eda657fd6243ff7c4a8dce3c11b7505 (diff) | |
download | gpsd-897b50d358c60ff00c87780cf60cc2f2ca7537f5.tar.gz |
Hex p[arsing fix by Beat Bolli.
Diffstat (limited to 'gpsctl.c')
-rw-r--r-- | gpsctl.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -336,7 +336,7 @@ int main(int argc, char **argv) if (*control != '\\') *tp++ = *control; else { - switch(*control++) { + switch(*++control) { case 'b': *tp++ = '\b'; break; case 'e': *tp++ = '\x1b'; break; case 'f': *tp++ = '\f'; break; @@ -345,7 +345,7 @@ int main(int argc, char **argv) case 't': *tp++ = '\r'; break; case 'v': *tp++ = '\v'; break; case 'x': - switch(*control++) { + switch(*++control) { case '0': c = 0x00; break; case '1': c = 0x10; break; case '2': c = 0x20; break; @@ -366,7 +366,7 @@ int main(int argc, char **argv) (void)fprintf(stderr, "gpsctl: invalid hex digit.\n"); err = true; } - switch(*control++) { + switch(*++control) { case '0': c += 0x00; break; case '1': c += 0x01; break; case '2': c += 0x02; break; @@ -389,6 +389,7 @@ int main(int argc, char **argv) } *tp++ = c; break; + case '\\': *tp++ = '\\'; break; default: (void)fprintf(stderr, "gpsctl: invalid escape\n"); err = true; |