@@ 189,7 189,10 @@ ipifcunbind(Ipifc *ifc)
av[2] = mask;
av[3] = 0;
while(ifc->lifc){
- sprint(ip, "%I", ifc->lifc->local);
+ if(ipcmp(ifc->lifc->mask, IPallbits) == 0)
+ sprint(ip, "%I", ifc->lifc->remote);
+ else
+ sprint(ip, "%I", ifc->lifc->local);
sprint(mask, "%M", ifc->lifc->mask);
ipifcrem(ifc, av, 3, 0);
}
@@ 595,8 598,11 @@ ipifcconnect(Conv* c, char **argv, int argc)
}
wlock(ifc);
while(ifc->lifc){
- sprint(ip, "%I", ifc->lifc->local);
- sprint(mask, "%I", ifc->lifc->mask);
+ if(ipcmp(ifc->lifc->mask, IPallbits) == 0)
+ sprint(ip, "%I", ifc->lifc->remote);
+ else
+ sprint(ip, "%I", ifc->lifc->local);
+ sprint(mask, "%M", ifc->lifc->mask);
ipifcrem(ifc, av, 3, 0);
}
wunlock(ifc);
@@ 49,6 49,10 @@ enum {
Scroll= KF|21,
};
+/*
+ * The codes at 0x79 and 0x81 are produed by the PFU Happy Hacking keyboard.
+ * A 'standard' keyboard doesn't produce anything above 0x58.
+ */
Rune kbtab[] =
{
[0x00] No, 0x1b, '1', '2', '3', '4', '5', '6',
@@ 66,7 70,7 @@ Rune kbtab[] =
[0x60] No, No, No, No, No, No, No, No,
[0x68] No, No, No, No, No, No, No, No,
[0x70] No, No, No, No, No, No, No, No,
-[0x78] No, No, No, No, No, No, No, No,
+[0x78] No, View, No, Up, No, No, No, No,
};
Rune kbtabshift[] =
@@ 86,7 90,7 @@ Rune kbtabshift[] =
[0x60] No, No, No, No, No, No, No, No,
[0x68] No, No, No, No, No, No, No, No,
[0x70] No, No, No, No, No, No, No, No,
-[0x78] No, No, No, No, No, No, No, No,
+[0x78] No, Up, No, Up, No, No, No, No,
};
Rune kbtabesc1[] =
@@ 106,7 110,7 @@ Rune kbtabesc1[] =
[0x60] No, No, No, No, No, No, No, No,
[0x68] No, No, No, No, No, No, No, No,
[0x70] No, No, No, No, No, No, No, No,
-[0x78] No, No, No, No, No, No, No, No,
+[0x78] No, Up, No, No, No, No, No, No,
};
enum
@@ 33,7 33,7 @@ Dirtab procdir[] =
"ctl", {Qctl}, 0, 0000,
"fd", {Qfd}, 0, 0000,
"fpregs", {Qfpregs}, sizeof(FPsave), 0000,
- "kregs", {Qkregs}, sizeof(Ureg), 0400,
+ "kregs", {Qkregs}, sizeof(Ureg), 0440,
"mem", {Qmem}, 0, 0000,
"note", {Qnote}, 0, 0000,
"noteid", {Qnoteid}, 0, 0666,