diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-19 09:49:20 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-19 09:49:20 +0300 |
commit | 304935a296997c9781688f08693ef70180dd24e4 (patch) | |
tree | 7b7801f3a97a780af1719826b2b9ef471151a352 /doc/grecs_format_locus.3 | |
parent | 6ef143bd53c35635b6d7edc6410d45fa58f54da2 (diff) | |
download | grecs-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.3 | 50 |
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" |