diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-07 04:39:09 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-07 04:39:09 +0100 |
commit | 3e38194d72b2b017b85bf85f11ef4e580d44be4f (patch) | |
tree | d7eba462a903793200bce8aa0b8bc10836244eb5 /sys/src | |
parent | 59245c73f0645e4e2ca1b01b3e3551dbbc5273d9 (diff) |
introduce signed intptr and %z format modifier for formating uintptr and intptr
Diffstat (limited to 'sys/src')
-rw-r--r-- | sys/src/9/port/lib.h | 8 | ||||
-rw-r--r-- | sys/src/cmd/cc/dpchk.c | 1 | ||||
-rw-r--r-- | sys/src/libc/fmt/dofmt.c | 5 | ||||
-rw-r--r-- | sys/src/libc/fmt/fmt.c | 1 |
4 files changed, 15 insertions, 0 deletions
diff --git a/sys/src/9/port/lib.h b/sys/src/9/port/lib.h index 67d08e502..1dbccbcc5 100644 --- a/sys/src/9/port/lib.h +++ b/sys/src/9/port/lib.h @@ -98,6 +98,14 @@ extern int sprint(char*, char*, ...); #pragma varargck type "lb" ulong #pragma varargck type "ld" ulong #pragma varargck type "lx" ulong +#pragma varargck type "zd" intptr +#pragma varargck type "zo" intptr +#pragma varargck type "zx" intptr +#pragma varargck type "zb" intptr +#pragma varargck type "zd" uintptr +#pragma varargck type "zo" uintptr +#pragma varargck type "zx" uintptr +#pragma varargck type "zb" uintptr #pragma varargck type "b" int #pragma varargck type "d" int #pragma varargck type "x" int diff --git a/sys/src/cmd/cc/dpchk.c b/sys/src/cmd/cc/dpchk.c index 217e005c3..a08dd6970 100644 --- a/sys/src/cmd/cc/dpchk.c +++ b/sys/src/cmd/cc/dpchk.c @@ -165,6 +165,7 @@ arginit(void) argflag('*', Fstar); argflag('l', Fl); + argflag('z', ewidth[TVLONG]==ewidth[TIND] ? Fvl : Fl); argflag('o', Fverb); flagbits['x'] = flagbits['o']; diff --git a/sys/src/libc/fmt/dofmt.c b/sys/src/libc/fmt/dofmt.c index 95852f5c2..bb6ee99a5 100644 --- a/sys/src/libc/fmt/dofmt.c +++ b/sys/src/libc/fmt/dofmt.c @@ -504,6 +504,11 @@ _flagfmt(Fmt *f) f->flags |= FmtVLong; f->flags |= FmtLong; break; + case 'z': + f->flags |= FmtLong; + if(sizeof(uintptr) == sizeof(uvlong)) + f->flags |= FmtVLong; + break; } return 1; } diff --git a/sys/src/libc/fmt/fmt.c b/sys/src/libc/fmt/fmt.c index a1dee68d5..84f4004b5 100644 --- a/sys/src/libc/fmt/fmt.c +++ b/sys/src/libc/fmt/fmt.c @@ -48,6 +48,7 @@ static Convfmt knownfmt[] = { 's', _strfmt, 'u', _flagfmt, 'x', _ifmt, + 'z', _flagfmt, 0, nil, }; |