-.\" $Id: roff.3,v 1.4 2010/07/03 16:02:12 schwarze Exp $
+.\" $Id: roff.3,v 1.8 2010/08/20 01:02:07 schwarze Exp $
.\"
.\" Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: July 3 2010 $
+.Dd $Mdocdate: August 20 2010 $
.Dt ROFF 3
.Os
.Sh NAME
.Nd roff macro compiler library
.Sh SYNOPSIS
.In mandoc.h
-.In regs.h
.In roff.h
.Ft "struct roff *"
.Fo roff_alloc
.Fa "struct regset *regs"
-.Fa "mandocmsg msgs"
.Fa "void *data"
+.Fa "mandocmsg msgs"
.Fc
.Ft int
.Fn roff_endparse "struct roff *roff"
.Fc
.Ft void
.Fn roff_reset "struct roff *roff"
-.In regs.h
-.Ft "char *"
-.Fn roff_setstr "const char *name" "const char *string"
-.Ft "char *"
-.Fn roff_getstr "const char *name"
-.Ft "char *"
-.Fn roff_getstrn "const char *name" "size_t len"
-.Ft void
-.Fn roff_freestr void
.Sh DESCRIPTION
The
.Nm
.Fa data
pointer is passed to
.Fa msgs .
-The
-.Fa pflags
-arguments are defined in
-.Pa roff.h .
Returns NULL on failure.
If non-NULL, the pointer must be freed with
.Fn roff_free .
Signals that the parse is complete.
Returns 0 on failure, 1 on success.
.El
-.Sh USER-DEFINED STRINGS
-Strings defined by the
-.Xr roff 7
-.Sx \&ds
-instruction are saved using the
-.Fn roff_setstr
-function and retrieved using the
-.Fn roff_getstr
-and
-.Fn roff_getstrn
-functions.
-.Pp
-These functions take the name of the string to be accessed
-as their first argument.
-While
-.Fn roff_getstr
-requires the name to be null-terminated,
-.Fn roff_getstrn
-accepts non-terminated strings, but requires the length of the name
-to be specified.
-.Pp
-The second argument to
-.Fn roff_setstr
-is the new value of the string.
-It will be copied to internal storage, so both pointers to constant
-strings and pointers to volatile storage are acceptable.
-.Pp
-All of these functions return a pointer to the new value of the string
-in internal storage, which should be considered read-only, so use
-.Xr strdup 3
-on it as appropriate.
-The read functions return NULL when a string of the specified name
-is not available or empty, and
-.Fn roff_setstr
-returns NULL when memory allocation fails.
-In the latter case, the string will remain unset.
-.Pp
-The function
-.Fn roff_freestr
-clears all user-defined strings.
-It always succeeds.
-Both
-.Fn roff_reset
-and
-.Fn roff_free
-call it.
.Sh EXAMPLES
See
.Pa main.c