Today, I want to use expr(1), but I can't get correct result.
For example
Code:
# uname -a
2.11BSD pic32 2.11BSD 2.11 BSD Unix for PIC32, revision G488 build 2: Compiled 2016-02-01 by mutoh@mutoubushinokonpyuta.local: /Users/mutoh/work/BSD/retrobsd/sys/pic32/max32 pic32
# expr 1 + 1
00 00 9c 00 00 00 04 00 00 00 40 00 00 00 80 00
I think to fix this problem, use patch below:
Code:
% git diff src/cmd/expr.y
diff --git a/src/cmd/expr.y b/src/cmd/expr.y
index 0b81aca..32c892f 100644
--- a/src/cmd/expr.y
+++ b/src/cmd/expr.y
@@ -132,7 +132,7 @@ char *arith(op, r1, r2) char *r1, *r2;
case REM: i1 = i1 % i2; break;
}
rv = malloc(16);
- sprintf(rv, "%D", i1);
+ sprintf(rv, "%ld", i1);
return rv;
}