@@@ man wip
[mLib] / utils / gprintf.3
index c7f8652..13d2a1a 100644 (file)
 \h'-\w'\\$1\ 'u'\\$1\ \c
 .ft P
 ..
-.ie t .ds o \(bu
-.el .ds o o
+.ie t \{\
+.  ds o \(bu
+.  de VP
+.    sp .4v
+..
+\}
+.el \{\
+.  ds o o
+.  de VP
+.    sp
+..
+\}
 .
 .TH gprintf 3 "9 March 2024" "Straylight/Edgeware" "mLib utilities library"
 .
@@ -28,25 +38,25 @@ gprintf \- generalized output formatting
 .SH SYNOPSIS
 .nf
 .B "#include <mLib/gprintf.h>"
-
+.PP
 .ta 2n
 .B "struct gprintf_ops {"
 .BI "  int (*putch)(void *" out ", int " ch ");"
 .BI "  int (*putm)(void *" out ", const char *" p ", size_t " sz ");"
 .BI "  int (*nputf)(void *" out ", size_t " maxsz ", const char *" p ", ...);"
 .B "};"
-
+.PP
 .BI "int gprintf(const struct gprintf_ops *" ops ", void *" out ","
 .ta \w'\fBint gprintf('u
 .BI "  const char *" p ", ...);"
 .BI "int vgprintf(const struct gprintf_ops *" ops ", void *" out ","
 .ta \w'\fBint vgprintf('u
 .BI "  const char *" p ", va_list *" ap ");"
-
+.PP
 .BI "int gprintf_memputf(char **" buf_inout ", size_t *" sz_inout ","
 .ta \w'\fBint gprintf_memputf('u
 .BI "  size_t " maxsz ", const char *" p ", va_list " ap ");"
-
+.PP
 .B "const struct gprintf_ops file_printops;"
 .fi
 .
@@ -189,28 +199,28 @@ struct my_output {
        size_t sz;
        /* ...\& other members ...\& */
 };
-
+.VP
 /* ...\& define putch and putm ...\& */
-
+.VP
 static int nputf(void *out, size_t maxsz, const char *p, ...)
 {
        struct my_output *myout = out;
        va_list ap;
        int n;
-
+.VP
        va_start(ap, p);
        n = gprintf_memputf(&myout->buf, &myout->sz, maxsz, p, ap);
        va_end(ap);
        if (n > 0) n = putm(myout, myout->buf, n);
        return (n);
 }
-
+.VP
 const struct gprintf_ops my_output_ops = { putch, putm, nputf };
-
+.VP
 /* ...\& */
-
+.VP
 struct my_output myout;
-
+.VP
 myout.buf = 0; myout.sz = 0;
 /* ...\& other initialization ...\& */
 gprintf(&my_output_ops, &myout, "Hello, %s!", "world");