bafd41e1cf
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.
34 lines
843 B
Groff
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.
|