.\" @GROWBUF_SIZE
.\" @GROWBUF_EXTEND
.\" @GROWBUF_REPLACE
+.\" @GROWBUF_RENEWV
+.\" @GROWBUF_REPLACEV
.
.\"--------------------------------------------------------------------------
.SH NAME
.nf
.B "#include <mLib/growbuf.h>"
.PP
-.BI "GROWBUF_SIZE(size_t " sz ", size_t " want ", " \c
-.BI "size_t " init ", size_t " granule ");"
+.ta \w'\fBvoid GROWBUF_SIZE('u
+.BI "void GROWBUF_SIZE(" type ", " type " &" sz ", " type " " want ,
+.BI " " type " " init ", " type " " granule ");"
.PP
-.ds mT \fBGROWBUF_EXTEND(
-.BI "\*(mTarena *" a ", " type " *" buf ", size_t " sz ", size_t " want ","
-.BI "\h'\w'\*(mT'u'size_t " init ", size_t " granule ");"
-.ds mT \fBGROWBUF_REPLACE(
-.BI "\*(mTarena *" a ", " type " *" buf ", size_t " sz ", size_t " want ","
-.BI "\h'\w'\*(mT'u'size_t " init ", size_t " granule ");"
+.ta \w'\fBvoid GROWBUF_EXTEND('u
+.BI "\fBvoid GROWBUF_EXTEND(" type ", arena *" a ", " type " *&" buf ,
+.BI " " type " &" sz ", " type " " want ,
+.BI " " type " " init ", " type " " granule ");"
+.ta \w'\fBvoid GROWBUF_REPLACE('u
+.BI "\fBvoid GROWBUF_REPLACE(" type ", arena *" a ", " type " *&" buf ,
+.BI " " type " &" sz ", " type " " want ,
+.BI " " type " " init ", " type " " granule ");"
+.PP
+.ta \w'\fBvoid GROWBUF_RENEWV('u
+.BI "\fBvoid GROWBUF_RENEWV(" type ", arena *" a ", " type " *&" buf ,
+.BI " " type " &" sz ", " type " " want ", " type " " init ");"
+.ta \w'\fBvoid GROWBUF_REPLACEV('u
+.BI "\fBvoid GROWBUF_REPLACEV(" type ", arena *" a ", " type " *&" buf ,
+.BI " " type " &" sz ", " type " " want ", " type " " init ");"
.fi
.
.\"--------------------------------------------------------------------------
macro is similar, except that it
.I discards
the existing buffer contents if the buffer needs to be adjusted.
+.PP
+The
+.B GROWBUF_RENEWV
+macro is the same as
+.B GROWBUF_EXTEND
+except that it implicitly uses
+.BI "sizeof(*" buf )
+as its
+.IR granule ;
+the
+.B GROWBUF_REPLACEV
+macro is similarly like
+.BR GROWBUF_REPLACE .
.
.\"--------------------------------------------------------------------------
.SH "SEE ALSO"