summaryrefslogtreecommitdiff
path: root/sys/src/cmd/aux/getflags.c
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2020-06-04 11:41:03 -0700
committerOri Bernstein <ori@eigenstate.org>2020-06-04 11:41:03 -0700
commit2327b48d77c28dbf70d811b765ddd7e1a72618ac (patch)
tree00f53fdd8781e00061198baaaed9cf8bdd22b4bd /sys/src/cmd/aux/getflags.c
parent5f3e72eb844582693e1b0bd4f73be59ab822531e (diff)
aux/getflags: fix named rune arguments.
Flags can be runes. That means that we can't just look at p[1] to decide if we have a named argument, we need to look one rune forward. This change does that.
Diffstat (limited to 'sys/src/cmd/aux/getflags.c')
-rw-r--r--sys/src/cmd/aux/getflags.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/cmd/aux/getflags.c b/sys/src/cmd/aux/getflags.c
index f4d97271b..400c68c13 100644
--- a/sys/src/cmd/aux/getflags.c
+++ b/sys/src/cmd/aux/getflags.c
@@ -76,6 +76,7 @@ main(int argc, char *argv[])
{
char *flags, *p, *s, *e, buf[512];
int i, n;
+ Rune r;
Fmt fmt;
doquote = needsrcquote;
@@ -92,14 +93,15 @@ main(int argc, char *argv[])
fmtfdinit(&fmt, 1, buf, sizeof buf);
for(p=skipspace(flags); *p; p=nextarg(p)){
s = e = nil;
- if(p[1] == ':'){
- s = p + 2;
+ n = chartorune(&r, p);
+ if(p[n] == ':'){
+ s = p + n + 1;
e = argname(s);
}
if(s != e)
fmtprint(&fmt, "%.*s=()\n", (int)(e - s), s);
else
- fmtprint(&fmt, "flag%.1s=()\n", p);
+ fmtprint(&fmt, "flag%C=()\n", r);
}
ARGBEGIN{
default: