sbase/printf.1
FRIGN bafd41e1cf Add printf(1)
This is a particularly interesting program.
I managed to implement everything according to POSIX except how
octal escapes are specified in the standard, which is yet another
format compared to the one demanded for tr(1).
This not only confuses people, it also adds unnecessary cruft
for no real gain.
So in order to be able to use unescape() easily and for consistency,
I used our initial format \o[oo] instead of \0[ooo].

Marked as optional is UTF-8 support for %c in the POSIX specification.
Given how well-developed libutf has become, doing this here was more
or less trivial, putting us yet again ahead of the competition.
2015-02-15 14:46:58 +01:00

34 lines
843 B
Groff

.Dd February 15, 2015
.Dt PRINTF 1
.Os sbase
.Sh NAME
.Nm printf
.Nd print formatted data
.Sh SYNOPSIS
.Nm
.Ar format
.Op Ar arg ...
.Sh DESCRIPTION
.Nm
writes formatted data according to
.Ar format
using each
.Ar arg
until drained.
.Pp
.Nm
interprets the standard escape sequences \e\e, \e', \e", \ea, \eb, \ee,
\ef, \en, \er, \et, \ev, \exH[H], \eO[OO], the sequence \ec, which
terminates further output if it's found inside
.Ar format
or a %b format string, the format specification %b for an unescaped string and all C
.Xr printf 3
format specifications ending with csdiouxXaAeEfFgG, including variable width and precision.
.Sh STANDARDS
The
.Nm
utility is compliant with the
.St -p1003.1-2008
specification except from the octal-escape format in %b format strings, which has been changed
from \e0[ooo] to \eo[oo] for consistency reasons.