diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-07 19:04:12 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-07 19:04:12 +0100 |
commit | 4308f6e7e6586e3a27aa46c4d54c434b8533b16d (patch) | |
tree | 5a0229a80dd8dd900a9dbec809481c8538a80161 /sys/src/ape | |
parent | 772afbe98c7e74be35e7e5318967ce594e4d93e8 (diff) |
ape/fmt: %p and %z format for amd64
Diffstat (limited to 'sys/src/ape')
-rw-r--r-- | sys/src/ape/lib/fmt/dofmt.c | 11 | ||||
-rw-r--r-- | sys/src/ape/lib/fmt/fmt.c | 1 | ||||
-rw-r--r-- | sys/src/ape/lib/fmt/mkfile | 2 | ||||
-rw-r--r-- | sys/src/ape/lib/fmt/test.c | 2 |
4 files changed, 14 insertions, 2 deletions
diff --git a/sys/src/ape/lib/fmt/dofmt.c b/sys/src/ape/lib/fmt/dofmt.c index 7f314e93e..3422e62cd 100644 --- a/sys/src/ape/lib/fmt/dofmt.c +++ b/sys/src/ape/lib/fmt/dofmt.c @@ -348,7 +348,11 @@ __ifmt(Fmt *f) break; } if(f->r == 'p'){ - u = (ulong)va_arg(f->args, void*); + if(sizeof(void*) == sizeof(uvlong)){ + isv = 1; + vu = (uvlong)va_arg(f->args, void*); + } else + u = (ulong)va_arg(f->args, void*); f->r = 'x'; fl |= FmtUnsigned; }else if(fl & FmtVLong){ @@ -538,6 +542,11 @@ __flagfmt(Fmt *f) f->flags |= FmtVLong; f->flags |= FmtLong; break; + case 'z': + f->flags |= FmtLong; + if(sizeof(void*) == sizeof(vlong)) + f->flags |= FmtVLong; + break; } return 1; } diff --git a/sys/src/ape/lib/fmt/fmt.c b/sys/src/ape/lib/fmt/fmt.c index 51bf9884d..179de4bca 100644 --- a/sys/src/ape/lib/fmt/fmt.c +++ b/sys/src/ape/lib/fmt/fmt.c @@ -66,6 +66,7 @@ static Convfmt knownfmt[] = { 's', __strfmt, 'u', __flagfmt, /* in Unix, __ifmt */ 'x', __ifmt, + 'z', __flagfmt, 0, nil, }; diff --git a/sys/src/ape/lib/fmt/mkfile b/sys/src/ape/lib/fmt/mkfile index 5644f2a45..75d48f29b 100644 --- a/sys/src/ape/lib/fmt/mkfile +++ b/sys/src/ape/lib/fmt/mkfile @@ -53,7 +53,7 @@ $NAN.$O: nan.h strtod.$O: nan.h test: $LIB test.$O - $CC -o test test.$O $LIB -L$PLAN9/lib -lutf + $CC -o test test.$O $LIB -lutf CFLAGS=-c -D_POSIX_SOURCE -D_PLAN9_SOURCE -D_BSD_EXTENSION diff --git a/sys/src/ape/lib/fmt/test.c b/sys/src/ape/lib/fmt/test.c index a1a1d5edc..3d082a816 100644 --- a/sys/src/ape/lib/fmt/test.c +++ b/sys/src/ape/lib/fmt/test.c @@ -35,5 +35,7 @@ main(int argc, char *argv[]) print("%f\n", 3.1415927/4); print("%d\n", 23); print("%i\n", 23); + print("%p\n", argv); + print("%zd\n", &argv[1] - &argv[0]); return 0; } |