Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/lib/libutil Document the '*' field and give a more complex e...
details: https://anonhg.NetBSD.org/src/rev/fc66faeec0e3
branches: trunk
changeset: 456224:fc66faeec0e3
user: christos <christos%NetBSD.org@localhost>
date: Sat Apr 27 17:46:08 2019 +0000
description:
Document the '*' field and give a more complex example with F and *.
diffstat:
lib/libutil/snprintb.3 | 74 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 72 insertions(+), 2 deletions(-)
diffs (102 lines):
diff -r fe7fac9ac799 -r fc66faeec0e3 lib/libutil/snprintb.3
--- a/lib/libutil/snprintb.3 Sat Apr 27 17:45:28 2019 +0000
+++ b/lib/libutil/snprintb.3 Sat Apr 27 17:46:08 2019 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: snprintb.3,v 1.17 2017/10/22 16:59:18 abhinav Exp $
+.\" $NetBSD: snprintb.3,v 1.18 2019/04/27 17:46:08 christos Exp $
.\"
.\" Copyright (c) 1998 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd May 7, 2009
+.Dd April 27, 2019
.Dt SNPRINTB 3
.Os
.Sh NAME
@@ -177,6 +177,21 @@
.Sq \&=
operator, but omits the leading
.Sq \&= .
+.It Cm *FMT
+This provides a
+.Dq default
+case that prints
+.Ar FMT
+using
+.Xr printf 3
+when other
+.Sq \&:
+or
+.Sq \&=
+have not matched.
+.Ar FMT
+may contain an integer format specification that prints the value that
+did not match.
.El
.Pp
Finally, each field is delimited by a NUL
@@ -246,6 +261,61 @@
\(rA "0x800f0701<LSB,NIBBLE2=0x0,BURST=0xf=SIXTEEN,MSB>"
.Ed
.Pp
+A more complex example from
+.In sys/mman.h
+that uses the both bit position
+.Sq b
+formatting as well as the
+.Sq F
+multi-field formatting with a default case:
+.Bd -literal -offset indent
+#define MAP_FMT "\e177\e020\e
+b\e0SHARED\e0\e
+b\e0SHARED\e0\e
+b\e1PRIVATE\e0\e
+b\e2COPY\e0\e
+b\e4FIXED\e0\e
+b\e5RENAME\e0\e
+b\e6NORESERVE\e0\e
+b\e7INHERIT\e0\e
+b\e11HASSEMAPHORE\e0\e
+b\e12TRYFIXED\e0\e
+b\e13WIRED\e0\e
+F\e14\e1\e
+:\e0FILE\e0\e
+:\e1ANONYMOUS\e0\e
+b\e15STACK\e0\e
+F\e30\e010\e
+:\e000ALIGN=NONE\e0\e
+:\e012ALIGN=1KB\e0\e
+:\e013ALIGN=2KB\e0\e
+:\e014ALIGN=4KB\e0\e
+:\e015ALIGN=8KB\e0\e
+:\e016ALIGN=16KB\e0\e
+:\e017ALIGN=32KB\e0\e
+:\e020ALIGN=64KB\e0\e
+:\e021ALIGN=128KB\e0\e
+:\e022ALIGN=256KB\e0\e
+:\e023ALIGN=512KB\e0\e
+:\e024ALIGN=1MB\e0\e
+:\e030ALIGN=16MB\e0\e
+:\e034ALIGN=256MB\e0\e
+:\e040ALIGN=4GB\e0\e
+:\e044ALIGN=64GB\e0\e
+:\e050ALIGN=1TB\e0\e
+:\e054ALIGN=16TB\e0\e
+:\e060ALIGN=256TB\e0\e
+:\e064ALIGN=4PB\e0\e
+:\e070ALIGN=64PB\e0\e
+:\e074ALIGN=256PB\e0\e
+*ALIGN=2^%d\e0\e
+"
+snprintb(buf, buflen, MAP_FMT, 0x0d001234)
+\(rA "0xd001234<COPY,FIXED,RENAME,HASSEMAPHORE,ANONYMOUS,ALIGN=8KB>"
+snprintb(buf, buflen, MAP_FMT, 0x2e000000)
+\(rA "0xd001234<0x2e000000<FILE,ALIGN=2^46>
+.Ed
+.Pp
An example using snprintb_m:
.Bd -literal -offset indent
snprintb_m(buf, buflen,
Home |
Main Index |
Thread Index |
Old Index