aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/convS2M.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/convS2M.c')
-rw-r--r--src/lib9/convS2M.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/lib9/convS2M.c b/src/lib9/convS2M.c
index 6e9d2719..c004babc 100644
--- a/src/lib9/convS2M.c
+++ b/src/lib9/convS2M.c
@@ -46,7 +46,7 @@ stringsz(char *s)
}
uint
-sizeS2M(Fcall *f)
+sizeS2Mu(Fcall *f, int dotu)
{
uint n;
int i;
@@ -141,6 +141,8 @@ sizeS2M(Fcall *f)
case Rerror:
n += stringsz(f->ename);
+ if(dotu)
+ n += BIT16SZ;
break;
case Rflush:
@@ -198,7 +200,13 @@ sizeS2M(Fcall *f)
}
uint
-convS2M(Fcall *f, uchar *ap, uint nap)
+sizeS2M(Fcall *f)
+{
+ return sizeS2Mu(f, 0);
+}
+
+uint
+convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu)
{
uchar *p;
uint i, size;
@@ -331,6 +339,10 @@ convS2M(Fcall *f, uchar *ap, uint nap)
case Rerror:
p = pstring(p, f->ename);
+ if(dotu){
+ PBIT16(p, f->errornum);
+ p += BIT16SZ;
+ }
break;
case Rflush:
@@ -397,3 +409,9 @@ convS2M(Fcall *f, uchar *ap, uint nap)
return 0;
return size;
}
+
+uint
+convS2M(Fcall *f, uchar *ap, uint nap)
+{
+ return convS2Mu(f, ap, nap, 0);
+}