diff options
author | hunt <hunt> | 2006-05-25 18:49:17 +0000 |
---|---|---|
committer | hunt <hunt> | 2006-05-25 18:49:17 +0000 |
commit | 53b5476c54e5157fc3c5e48784038b317cf497d9 (patch) | |
tree | 4da836610e6ede7ed6fa9ac053a1c2ffc2929aee | |
parent | 037c3a7751a1687ff11da746b895d951e2a062c6 (diff) | |
download | systemtap-steved-53b5476c54e5157fc3c5e48784038b317cf497d9.tar.gz systemtap-steved-53b5476c54e5157fc3c5e48784038b317cf497d9.tar.xz systemtap-steved-53b5476c54e5157fc3c5e48784038b317cf497d9.zip |
2006-05-25 Martin Hunt <hunt@redhat.com>
* vsprintf.c (_stp_vsnprintf): Change %p to work like
libc and automatically insert "0x" before the pointer.
-rw-r--r-- | runtime/ChangeLog | 5 | ||||
-rw-r--r-- | runtime/vsprintf.c | 18 |
2 files changed, 22 insertions, 1 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog index e093850b..e81373f8 100644 --- a/runtime/ChangeLog +++ b/runtime/ChangeLog @@ -1,3 +1,8 @@ +2006-05-25 Martin Hunt <hunt@redhat.com> + + * vsprintf.c (_stp_vsnprintf): Change %p to work like + libc and automatically insert "0x" before the pointer. + 2006-05-24 Josh Stone <joshua.i.stone@intel.com> PR 2677 diff --git a/runtime/vsprintf.c b/runtime/vsprintf.c index ba0bc85a..7abb5dc5 100644 --- a/runtime/vsprintf.c +++ b/runtime/vsprintf.c @@ -295,10 +295,26 @@ int _stp_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) break; case 'p': + len = 2*sizeof(void *) + 2; if (field_width == -1) { - field_width = 2*sizeof(void *); + field_width = len; flags |= STP_ZEROPAD; } + if (!(flags & STP_LEFT)) { + while (len < field_width--) { + if (str <= end) + *str = ' '; + ++str; + } + } + if (str <= end) { + *str++ = '0'; + field_width--; + } + if (str <= end) { + *str++ = 'x'; + field_width--; + } str = number(str, end, (unsigned long) va_arg(args, int64_t), 16, field_width, precision, flags); |