ref: 285abe87a61e6e66f3a5948e022fc523864788dc
parent: 289c1224fa58874d18511fb67ce776b2bf344b9b
author: glenda <[email protected]>
date: Wed Dec 15 19:45:17 EST 2021
dump: fix printing of wstat messages we compute the end of the wstat message wrong.
--- a/dump.c
+++ b/dump.c
@@ -44,12 +44,12 @@
}
static int
-showval(Fmt *fmt, Kvp *v, int op, int statop)
+showval(Fmt *fmt, Kvp *v, int op)
{
char *p;
Bptr bp;
Dir d;
- int n, ht;
+ int n, wop, ht;
n = 0;
switch(v->k[0]){
@@ -83,15 +83,16 @@
break;
case Owstat:
p = v->v;
- if(statop & Owmtime){
+ wop = *p++;
+ if(wop & Owmtime){
n += fmtprint(fmt, "mtime:%llx ", GBIT64(p));
p += 8;
}
- if(statop & Owsize){
+ if(wop & Owsize){
n += fmtprint(fmt, "size:%llx ", GBIT64(p));
p += 8;
}
- if(statop & Owmode){
+ if(wop & Owmode){
n += fmtprint(fmt, "mode:%o ", GBIT32(p));
p += 4;
}
@@ -140,18 +141,15 @@
[Owstat] "Owstat",
};
Msg *m;
- int n, o;
+ int n;
- o = 0;
m = va_arg(fmt->args, Msg*);
if(m == nil)
return fmtprint(fmt, "Msg{nil}");
- if(m->op == Owstat)
- o = m->v[0];
n = fmtprint(fmt, "Msg(%s, ", opname[m->op]);
n += showkey(fmt, m);
n += fmtprint(fmt, ") => (");
- n += showval(fmt, m, m->op, o);
+ n += showval(fmt, m, m->op);
n += fmtprint(fmt, ")");
return n;
}
@@ -169,7 +167,7 @@
n += showkey(fmt, kv);
n += fmtprint(fmt, ") => (");
if(kv->type == Vinl)
- n += showval(fmt, kv, Onop, 0);
+ n += showval(fmt, kv, Onop);
else
n += fmtprint(fmt, "(%B,%ud))", kv->bp, kv->fill);
n += fmtprint(fmt, ")");