summaryrefslogtreecommitdiff
path: root/gpsctl.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2009-01-07 15:31:49 +0000
committerEric S. Raymond <esr@thyrsus.com>2009-01-07 15:31:49 +0000
commit897b50d358c60ff00c87780cf60cc2f2ca7537f5 (patch)
treeb9c7d56e2ffbd6a8de9785bc4addb952ee33e2ce /gpsctl.c
parentd5655fe70eda657fd6243ff7c4a8dce3c11b7505 (diff)
downloadgpsd-897b50d358c60ff00c87780cf60cc2f2ca7537f5.tar.gz
Hex p[arsing fix by Beat Bolli.
Diffstat (limited to 'gpsctl.c')
-rw-r--r--gpsctl.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gpsctl.c b/gpsctl.c
index 88ce5ae1..df077933 100644
--- a/gpsctl.c
+++ b/gpsctl.c
@@ -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;