.\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2009
.\"   National Institute of Advanced Industrial Science and Technology (AIST)
.\" This file is part of the m17n library documentation.
.\" Permission is granted to copy, distribute and/or modify this document
.\" under the terms of the GNU Free Documentation License, Version 1.2 or
.\" any later version published by the Free Software Foundation; with no
.\" Invariant Section, no Front-Cover Texts,
.\" and no Back-Cover Texts.  A copy of the license is included in the
.\" appendix entitled "GNU Free Documentation License".
.TH "mchartable_map" 3m17n "15 Oct 2009" "" "Version 1.5.5" "" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchartable_map \- Call a function for characters in a chartable. 


.SH SYNOPSIS
int
\fBmchartable_map\fP (\fBMCharTable\fP *
\fItable\fP, void *
\fIignore\fP, void(*)(int,
\fIint\fP, void *, void *)
\fIfunc\fP, void *
\fIfunc_arg\fP)


.SH DESCRIPTION
Call a function for characters in a chartable. 
.PP
The
.ft B
mchartable_map()
.ft R
function calls function
.ft B
func
.ft R
for characters in chartable
.ft B
table\fP.
.ft R
No function call occurs for characters that have value
.ft B
ignore
.ft R
in
.ft B
table\fP.
.ft R
Comparison of
.ft B
ignore
.ft R
and character value is done with the operator
.ft C
==\fP.
.ft R
Be careful when you use string literals or pointers.
.PP
Instead of calling
.ft B
func
.ft R
for each character,
.ft B
mchartable_map()
.ft R
tries to optimize the number of function calls, i.e. it makes a single function call for a chunk of characters when those consecutive characters have the same value.
.PP
No matter how long the character chunk is,
.ft B
func
.ft R
is called with four arguments;
.ft B
from\fP,
.ft R
.ft B
to\fP,
.ft R
.ft B
val\fP,
.ft R
and
.ft B
arg\fP.
.ft R
.ft B
from
.ft R
and
.ft B
to
.ft R
(both inclusive) defines the range of characters that have value
.ft B
val\fP.
.ft R
.ft B
arg
.ft R
is the same as
.ft B
func_arg\fP.
.ft R
.PP
.SH RETURN VALUE
.PP
.RS 4
This function always returns 0. 
.RE
.PP

.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2009 National Institute of Advanced Industrial Science and Technology (AIST)
.br
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License 
<http://www.gnu.org/licenses/fdl.html>.
