aboutsummaryrefslogtreecommitdiff
path: root/doc/grecs_format_locus.3
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-05-19 09:49:20 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-05-19 09:49:20 +0300
commit304935a296997c9781688f08693ef70180dd24e4 (patch)
tree7b7801f3a97a780af1719826b2b9ef471151a352 /doc/grecs_format_locus.3
parent6ef143bd53c35635b6d7edc6410d45fa58f54da2 (diff)
downloadgrecs-304935a296997c9781688f08693ef70180dd24e4.tar.gz
grecs-304935a296997c9781688f08693ef70180dd24e4.tar.bz2
Reimplement grecs_format_ familiy as output-independent functions.
* src/format.c (grecs_format_docstring): Rename to grecs_print_docstring. (grecs_format_simple_statement): Rename to grecs_print_simple_statement. (grecs_format_block_statement): Rename to grecs_print_block_statement. (grecs_format_statement_array): Rename to grecs_print_statement_array. (grecs_format_locus): Rename to grecs_print_locus. (grecs_format_node_path): Rename to grecs_print_node_path. (grecs_format_value): Rename to grecs_print_value. (grecs_format_node): Rename to grecs_print_node. (grecs_format_locus,grecs_format_node_path) (grecs_format_value,grecs_format_node): Reimplement as output-independent functions. All uses changed. * src/grecs.h: Update prototypes. * doc/grecs_format_locus.3: Update. * doc/grecs_format_node.3: Update. * doc/grecs_format_node_path.3: Update. * doc/grecs_format_value.3: Update.
Diffstat (limited to 'doc/grecs_format_locus.3')
-rw-r--r--doc/grecs_format_locus.350
1 files changed, 39 insertions, 11 deletions
diff --git a/doc/grecs_format_locus.3 b/doc/grecs_format_locus.3
index a7743f1..83c9c0b 100644
--- a/doc/grecs_format_locus.3
+++ b/doc/grecs_format_locus.3
@@ -14,31 +14,59 @@
.\" You should have received a copy of the GNU General Public License
.\" along with Grecs. If not, see <http://www.gnu.org/licenses/>.
.\"
-.TH GRECS_FORMAT_LOCUS 3 "May 4, 2011" "GRECS" "Grecs User Reference"
+.TH GRECS_FORMAT_LOCUS 3 "May 19, 2011" "GRECS" "Grecs User Reference"
.SH NAME
grecs_format_locus \- format and output source file location
.SH SYNOPSIS
.nf
.B #include <grecs.h>
.sp
-.BI "void grecs_format_locus(grecs_locus_t " "*locus" ", FILE " "*fp" );
+.BI "void grecs_format_locus(grecs_locus_t " "*locus" ","
+.ti +17
+.BI "struct grecs_format_closure " "*clos" );
+.sp
+.BI "void grecs_print_locus(grecs_locus_t " "*locus" ", FILE " "*fp" );
+
.SH DESCRIPTION
-\fBgrecs_format_locus\fR formats the location from \fIlocus\fR in the
-human-readable form and outputs it to file \fBfp\fR.
+\fBgrecs_print_locus\fR formats the location from \fIlocus\fR in the
+human-readable form and outputs it using the format closure
+\fIclos\fR. The closure is defined as:
+.sp
+.nf
+.in +5
+struct grecs_format_closure
+{
+ int (*fmtfun)(const char *str, void *data);
+ void *data;
+};
+.in
+.fi
.PP
-The location is output as follows: the file name, followed by a
-semicolon, followed by the line number.
+While formatting the location, the formatter function \fBfmtfun\fR can
+be called one or more times. On each invocation, it is supplied with
+the string to be output as its first argument, and pointer to
+\fBdata\fR as the second one.
.PP
-If \fIlocus\fR is \fBNULL\fR, \fBgrecs_format_locus\fR returns without
+\fBgrecs_print_locus\fR is an alternative interface, which formats the
+location from \fIlocus\fR in the human-readable form and outputs it to
+file \fBfp\fR.
+.PP
+In both cases, the location is formatted as follows: the file name,
+followed by a semicolon, followed by the line number.
+.PP
+If \fIlocus\fR is \fBNULL\fR, both functions return without
doing anything.
.SH "RETURN VALUE"
None.
.SH NOTES
-This is an auxiliary function used by
-.BR grecs_format_node (3).
-It is seldom needed in user programs.
-.SH "SEE ALSO"
+This are auxiliary functions used by
.BR grecs_format_node (3)
+and
+.BR grecs_print_node (3),
+correspondingly. They are is seldom needed in user programs.
+.SH "SEE ALSO"
+.BR grecs_format_node (3),
+.BR grecs_print_node (3).
.SH AUTHORS
Sergey Poznyakoff
.SH "BUG REPORTS"

Return to:

Send suggestions and report system problems to the System administrator.