(m4.info.gz) Format
Info Catalog
(m4.info.gz) Patsubst
(m4.info.gz) Text handling
10.7 Formatted output
=====================
Formatted output can be made with `format':
-- Builtin: format (FORMAT-STRING, ...)
Works much like the C function `printf'. The first argument
FORMAT-STRING can contain `%' specifications which are satisfied
by additional arguments, and the expansion of `format' is the
formatted string.
The macro `format' is recognized only with parameters.
Its use is best described by a few examples:
define(`foo', `The brown fox jumped over the lazy dog')
=>
format(`The string "%s" uses %d characters', foo, len(foo))
=>The string "The brown fox jumped over the lazy dog" uses 38 characters
format(`%.0f', `56789.9876')
=>56790
len(format(`%-*X', `300', `1'))
=>300
Using the `forloop' macro defined in Loops, this example
shows how `format' can be used to produce tabular output.
include(`forloop.m4')
=>
forloop(`i', `1', `10', `format(`%6d squared is %10d
', i, eval(i**2))')
=> 1 squared is 1
=> 2 squared is 4
=> 3 squared is 9
=> 4 squared is 16
=> 5 squared is 25
=> 6 squared is 36
=> 7 squared is 49
=> 8 squared is 64
=> 9 squared is 81
=> 10 squared is 100
=>
The builtin `format' is modeled after the ANSI C `printf' function,
and supports these `%' specifiers: `c', `s', `d', `o', `x', `X', `u',
`e', `E', `f', `F', `g', `G', and `%'; it supports field widths and
precisions, and the modifiers `+', `-', ` ', `0', `#', `h' and `l'.
For more details on the functioning of `printf', see the C Library
Manual.
For now, unrecognized specifiers are silently ignored, but it is
anticipated that a future release of GNU `m4' will support more
specifiers, and give warnings when problems are encountered. Likewise,
escape sequences are not yet recognized.
Info Catalog
(m4.info.gz) Patsubst
(m4.info.gz) Text handling
automatically generated byinfo2html