.\" -*-nroff-*-
-.\" Copyright (c) 2012 Petr Machata, Red Hat Inc.
+.\" Copyright (c) 2012, 2013 Petr Machata, Red Hat Inc.
.\" Copyright (c) 1997-2005 Juan Cespedes <cespedes@debian.org>
.\"
.\" This program is free software; you can redistribute it and/or
Each line of a configuration file describes at most a single item.
Lines composed entirely of white space are ignored, as are lines
-starting with semicolon character (comment lines). Described items
-can be either function prototypes, or definitions of type aliases.
+starting with semicolon or hash characters (comment lines). Described
+items can be either function prototypes, or definitions of type
+aliases.
.SH PROTOTYPES
.RS
The first form of the argument is canonical, the latter two are
syntactic sugar. In the canonical form, the function argument is
-formatted as string. The \fITYPE\fR shall be either a \fBchar*\fR, or
-\fBarray(char,\fIEXPR\fB)\fR, or \fBarray(char,\fIEXPR\fB)*\fR. If an
-array is given, the length will typically be a \fBzero\fR expression
-(but doesn't have to be). Using argument that is plain array
-(i.e. not a pointer to array) makes sense e.g. in C structs, in cases
-like \fBstruct(string(array(char, \fR6\fB)))\fR, which describes the C
-type \fBstruct {char \fRs\fB[\fR6\fB];}\fR.
+formatted as string. The \fITYPE\fR can have either of the following
+forms: \fIX\fB*\fR, or \fBarray(\fIX\fB,\fIEXPR\fB)\fR, or
+\fBarray(\fIX\fB,\fIEXPR\fB)*\fR. \fIX\fR is either \fBchar\fR for
+normal strings, or an integer type for wide-character strings.
+
+If an array is given, the length will typically be a \fBzero\fR
+expression (but doesn't have to be). Using argument that is plain
+array (i.e. not a pointer to array) makes sense e.g. in C structs, in
+cases like \fBstruct(string(array(char, \fR6\fB)))\fR, which describes
+the C type \fBstruct {char \fRs\fB[\fR6\fB];}\fR.
Because simple C-like strings are pretty common, there are two
shorthand forms. The first shorthand form (with brackets) means the
.SH RECURSIVE STRUCTURES
Ltrace allows you to express recursive structures. Such structures
-are expanded to the depth described by the parameter -A. To declare a
+are expanded to the depth described by the parameter \-A. To declare a
recursive type, you first have to introduce the type to ltrace by
using forward declaration. Then you can use the type in other type
definitions in the usual way:
.br
.B struct\fR S1 func_struct\fB(int \fRa\fB, struct \fRS2\fB, double \fRd\fB);
.RS
-.B struct(float,char,char)\fR func_struct_2\fB(int, struct(string(array(char, \fR6\fB)),float), double);
+.B struct(float,char,char)\fR func_struct\fB(int, struct(string(array(char, \fR6\fB)),float), double);
.RE
.SH AUTHOR