xref: /original-bsd/old/adb/common_source/INFO (revision 9c5e301d)
1	INFORMATION ABOUT ADB INTERNALS
2
3	23 August 1988, Chris Torek
4
5	(This file is incomplete.)
6
7TYPES
8	write something here.
9
10FORMATTED OUTPUT
11	Adb has a simplified, and slightly extended, version of printf,
12called adbprintf().  adbprintf() conversion specifiers are introduced by
13the usual `%' escape.  (Beware of SCCS eating 5 and  escapes.)  The
14format of a conversion-specifier is:
15
16	[flags] [width] [`.' precision] conversion-character
17
18The default width is 0; the default precision is -1.  The available
19flags are `-', for right adjustment within the field, and `+', which
20forces a sign on numeric conversions.  If the result of a conversion
21is narrower than the specified width, it is passed on the right (or
22left if `-') with blanks.  If a precision is given, and is not negative,
23the result of a conversion will be truncated after precision characters.
24Width and precision may be given as `*', in which case they are taken
25from an integer argument a la printf().
26
27The conversion-characters, and the types they expect, are:
28
29	[numeric]
30	d	prints an hword_t value as a signed decimal integer.
31	D	prints an expr_t value as a signed decimal integer.
32	u	prints an hword_t value as an unsigned decimal integer.
33	U	prints an expr_t value as an unsigned decimal integer.
34	q	prints an hword_t value as a signed octal integer.
35	Q	prints an expr_t value as a signed octal integer.
36	o	prints an hword_t value as an unsigned octal integer.
37	O	prints an expr_t value as an unsigned octal integer.
38	z	prints an hword_t value as a signed hexadecimal integer.
39	Z	prints an expr_t value as a signed hexadecimal integer.
40	x	prints an hword_t value as an unsigned hexadecimal integer.
41	X	prints an expr_t value as an unsigned hexadecimal integer.
42	r	prints an hword_t value in the current radix.
43	R	prints an expr_t value in the current radix.
44	v	prints an hword_t value in signed variant of current radix.
45	V	prints an expr_t value in signed variant of current radix.
46
47	[non-numeric]
48	c	prints a character.
49
50	s	prints a string.
51
52	m	prints nothing; hence %<width>m prints <width> spaces.
53
54	t	prints nothing, but adjusts the width such that it
55		becomes a tabstop.  Thus %24t moves to the next column
56		that is a multiple of 24, and %8t acts like \t would
57		if \t were implemented in adb.
58
59	[special]
60	?	converts an integer value, then applies a second
61		conversion-specifier.  If integer was zero, the
62		output from the second conversion-specifier is
63		suppressed.  For instance, %?s converts one integer
64		and one string, and prints the string only if the
65		integer is nonzero (and the pointer is not evaluated).
66		Thus `adbprintf("%?s", s!=NULL, s)' prints the string
67		s if and only if the pointer s is not NULL.  `?'
68		conversions may be nested: ("%??x", a, b, c) prints
69		c only if both a and b are nonzero.
70