m17n-docs-1.8.4/ 0000775 0001750 0001750 00000000000 14504322051 010233 5 0000000 0000000 m17n-docs-1.8.4/depcomp 0000755 0001750 0001750 00000056020 14215102164 011531 0000000 0000000 #! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva .
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by 'PROGRAMS ARGS'.
object Object file output by 'PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputting dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to .
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
# Get the directory component of the given path, and save it in the
# global variables '$dir'. Note that this directory component will
# be either empty or ending with a '/' character. This is deliberate.
set_dir_from ()
{
case $1 in
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
*) dir=;;
esac
}
# Get the suffix-stripped basename of the given path, and save it the
# global variable '$base'.
set_base_from ()
{
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
}
# If no dependency file was actually created by the compiler invocation,
# we still have to create a dummy depfile, to avoid errors with the
# Makefile "include basename.Plo" scheme.
make_dummy_depfile ()
{
echo "#dummy" > "$depfile"
}
# Factor out some common post-processing of the generated depfile.
# Requires the auxiliary global variable '$tmpdepfile' to be set.
aix_post_process_depfile ()
{
# If the compiler actually managed to produce a dependency file,
# post-process it.
if test -f "$tmpdepfile"; then
# Each line is of the form 'foo.o: dependency.h'.
# Do two passes, one to just change these to
# $object: dependency.h
# and one to simply output
# dependency.h:
# which is needed to avoid the deleted-header problem.
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
} > "$depfile"
rm -f "$tmpdepfile"
else
make_dummy_depfile
fi
}
# A tabulation character.
tab=' '
# A newline character.
nl='
'
# Character ranges might be problematic outside the C locale.
# These definitions help.
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
lower=abcdefghijklmnopqrstuvwxyz
digits=0123456789
alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Avoid interferences from the environment.
gccflag= dashmflag=
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
# This is just like msvc7 but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvc7
fi
if test "$depmode" = xlc; then
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
gccflag=-qmakedep=gcc,-MF
depmode=gcc
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
## (see the conditional assignment to $gccflag above).
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say). Also, it might not be
## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The second -e expression handles DOS-style file names with drive
# letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like '#:fec' to the end of the
# dependency line.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
| tr "$nl" ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile"
;;
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
aix_post_process_depfile
;;
tcc)
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
# FIXME: That version still under development at the moment of writing.
# Make that this statement remains true also for stable, released
# versions.
# It will wrap lines (doesn't matter whether long or short) with a
# trailing '\', as in:
#
# foo.o : \
# foo.c \
# foo.h \
#
# It will put a trailing '\' even on the last line, and will use leading
# spaces rather than leading tabs (at least since its commit 0394caf7
# "Emit spaces for -MD").
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
# We have to change lines of the first kind to '$object: \'.
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
# And for each line of the second kind, we have to emit a 'dep.h:'
# dummy dependency, to avoid the deleted-header problem.
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
## The order of this option in the case statement is important, since the
## shell code in configure will try each of these formats in the order
## listed in this file. A plain '-MD' option would be understood by many
## compilers, so we must ensure this comes after the gcc and icc options.
pgcc)
# Portland's C compiler understands '-MD'.
# Will always output deps to 'file.d' where file is the root name of the
# source file under compilation, even if file resides in a subdirectory.
# The object file name does not affect the name of the '.d' file.
# pgcc 10.2 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using '\' :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
set_dir_from "$object"
# Use the source, not the object, to determine the base name, since
# that's sadly what pgcc will do too.
set_base_from "$source"
tmpdepfile=$base.d
# For projects that build the same source file twice into different object
# files, the pgcc approach of using the *source* file root name can cause
# problems in parallel builds. Use a locking strategy to avoid stomping on
# the same $tmpdepfile.
lockdir=$base.d-lock
trap "
echo '$0: caught signal, cleaning up...' >&2
rmdir '$lockdir'
exit 1
" 1 2 13 15
numtries=100
i=$numtries
while test $i -gt 0; do
# mkdir is a portable test-and-set.
if mkdir "$lockdir" 2>/dev/null; then
# This process acquired the lock.
"$@" -MD
stat=$?
# Release the lock.
rmdir "$lockdir"
break
else
# If the lock is being held by a different process, wait
# until the winning process is done or we timeout.
while test -d "$lockdir" && test $i -gt 0; do
sleep 1
i=`expr $i - 1`
done
fi
i=`expr $i - 1`
done
trap - 1 2 13 15
if test $i -le 0; then
echo "$0: failed to acquire lock after $numtries attempts" >&2
echo "$0: check lockdir '$lockdir'" >&2
exit 1
fi
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in 'foo.d' instead, so we check for that too.
# Subdirectories are respected.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
# Libtool generates 2 separate objects for the 2 libraries. These
# two compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir$base.o.d # libtool 1.5
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
# Same post-processing that is required for AIX mode.
aix_post_process_depfile
;;
msvc7)
if test "$libtool" = yes; then
showIncludes=-Wc,-showIncludes
else
showIncludes=-showIncludes
fi
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The first sed program below extracts the file names and escapes
# backslashes for cygpath. The second sed program outputs the file
# name when reading, but also accumulates all include files in the
# hold buffer in order to output them again at the end. This only
# works with sed implementations that can handle large buffers.
sed < "$tmpdepfile" -n '
/^Note: including file: *\(.*\)/ {
s//\1/
s/\\/\\\\/g
p
}' | $cygpath_u | sort -u | sed -n '
s/ /\\ /g
s/\(.*\)/'"$tab"'\1 \\/p
s/.\(.*\) \\/\1:/
H
$ {
s/.*/'"$tab"'/
G
p
}' >> "$depfile"
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
msvc7msys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for ':'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this sed invocation
# correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process the last invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed '1,2d' "$tmpdepfile" \
| tr ' ' "$nl" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E \
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
| sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
echo "$tab" >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
m17n-docs-1.8.4/configure 0000775 0001750 0001750 00000527065 14504321675 012114 0000000 0000000 #! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for m17n-docs 1.8.4.
#
# Report bugs to .
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
# Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
# Reset variables that may have inherited troublesome values from
# the environment.
# IFS needs to be set, to space, tab, and newline, in precisely that order.
# (If _AS_PATH_WALK were called with IFS unset, it would have the
# side effect of setting IFS to empty, thus disabling word splitting.)
# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
IFS=" "" $as_nl"
PS1='$ '
PS2='> '
PS4='+ '
# Ensure predictable behavior from utilities with locale-dependent output.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# We cannot yet rely on "unset" to work, but we need these variables
# to be unset--not just set to an empty or harmless value--now, to
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
# also avoids known problems related to "unset" and subshell syntax
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
do eval test \${$as_var+y} \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
# Ensure that fds 0, 1, and 2 are open.
if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
_as_can_reexec=no; export _as_can_reexec;
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="as_nop=:
if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else \$as_nop
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" )
then :
else \$as_nop
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
blah=\$(echo \$(echo blah))
test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
if (eval "$as_required") 2>/dev/null
then :
as_have_required=yes
else $as_nop
as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
then :
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$as_shell as_have_required=yes
if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
then :
break 2
fi
fi
done;;
esac
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else $as_nop
if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi
fi
if test "x$CONFIG_SHELL" != x
then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
if test x$as_have_required = xno
then :
printf "%s\n" "$0: This script requires a shell more modern than all"
printf "%s\n" "$0: the shells that I found on your system."
if test ${ZSH_VERSION+y} ; then
printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
$0: bugs-m17n-lib@m17n.org about your system, including any
$0: error possibly output before this message. Then install
$0: a modern shell, or manually run the script under such a
$0: shell if you do have one."
fi
exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_nop
# ---------
# Do nothing but, unlike ":", preserve the value of $?.
as_fn_nop ()
{
return $?
}
as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
# as_fn_nop
# ---------
# Do nothing but, unlike ":", preserve the value of $?.
as_fn_nop ()
{
return $?
}
as_nop=as_fn_nop
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
# in an infinite loop. This has already happened in practice.
_as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
# Determine whether it's possible to make 'echo' print without a newline.
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
# For backward compatibility with old third-party macros, we provide
# the shell variables $as_echo and $as_echo_n. New code should use
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
as_echo='printf %s\n'
as_echo_n='printf %s'
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
test -n "$DJDIR" || exec 7<&0 &1
# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='m17n-docs'
PACKAGE_TARNAME='m17n-docs'
PACKAGE_VERSION='1.8.4'
PACKAGE_STRING='m17n-docs 1.8.4'
PACKAGE_BUGREPORT='bugs-m17n-lib@m17n.org'
PACKAGE_URL=''
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
PLATEX
LATEX
RUBY
HAVEDOXYGEN
M17N_LIBS
M17N_CFLAGS
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
M17NDB
M17NLIB
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
am__include
DEPDIR
OBJEXT
EXEEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
MAINT
MAINTAINER_MODE_FALSE
MAINTAINER_MODE_TRUE
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
AM_DEFAULT_V
AM_V
CSCOPE
ETAGS
CTAGS
am__untar
am__tar
AMTAR
am__leading_dot
SET_MAKE
AWK
mkdir_p
MKDIR_P
INSTALL_STRIP_PROGRAM
STRIP
install_sh
MAKEINFO
AUTOHEADER
AUTOMAKE
AUTOCONF
ACLOCAL
VERSION
PACKAGE
CYGPATH_W
am__isrc
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL
am__quote'
ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_silent_rules
enable_maintainer_mode
enable_dependency_tracking
with_m17nlib
with_m17ndb
'
ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
M17N_CFLAGS
M17N_LIBS'
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
ac_prev=
ac_dashdash=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval $ac_prev=\$ac_option
ac_prev=
continue
fi
case $ac_option in
*=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*=) ac_optarg= ;;
*) ac_optarg=yes ;;
esac
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir=$ac_optarg ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build_alias=$ac_optarg ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file=$ac_optarg ;;
--config-cache | -C)
cache_file=config.cache ;;
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
datadir=$ac_optarg ;;
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
-disable-* | --disable-*)
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
-enable-* | --enable-*)
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix=$ac_optarg ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
host_alias=$ac_optarg ;;
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir=$ac_optarg ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir=$ac_optarg ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir=$ac_optarg ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir=$ac_optarg ;;
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
localstatedir=$ac_optarg ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir=$ac_optarg ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir=$ac_optarg ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=$ac_optarg ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix=$ac_optarg ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix=$ac_optarg ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name=$ac_optarg ;;
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir=$ac_optarg ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir=$ac_optarg ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site=$ac_optarg ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir=$ac_optarg ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir=$ac_optarg ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target_alias=$ac_optarg ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
-with-* | --with-*)
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
-without-* | --without-*)
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes=$ac_optarg ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
-*) as_fn_error $? "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information"
;;
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
*)
# FIXME: should be removed in autoconf 3.0.
printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
# Check all directory arguments for consistency.
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
case $ac_val in
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures m17n-docs 1.8.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/m17n-docs]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
_ACEOF
cat <<\_ACEOF
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of m17n-docs 1.8.4:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
--enable-maintainer-mode
enable make rules and dependencies not useful (and
sometimes confusing) to the casual installer
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-m17nlib=DIR directory of m17n-lib source files
--with-m17ndb=DIR directory of m17n-db source files
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
M17N_CFLAGS C compiler flags for M17N, overriding pkg-config
M17N_LIBS linker flags for M17N, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to .
_ACEOF
ac_status=$?
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for configure.gnu first; this name is used for a wrapper for
# Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
m17n-docs configure 1.8.4
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
ac_configure_args_raw=
for ac_arg
do
case $ac_arg in
*\'*)
ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append ac_configure_args_raw " '$ac_arg'"
done
case $ac_configure_args_raw in
*$as_nl*)
ac_safe_unquote= ;;
*)
ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
ac_unsafe_a="$ac_unsafe_z#~"
ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
esac
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by m17n-docs $as_me 1.8.4, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
} >&5
cat >&5 <<_ACEOF
## ----------- ##
## Core tests. ##
## ----------- ##
_ACEOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
fi
as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
# Sanitize IFS.
IFS=" "" $as_nl"
# Save into config.log some information that might help in debugging.
{
echo
printf "%s\n" "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
sed -n \
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
*)
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
echo
printf "%s\n" "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
printf "%s\n" "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
printf "%s\n" "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
cat confdefs.h
echo
fi
test "$ac_signal" != 0 &&
printf "%s\n" "$as_me: caught signal $ac_signal"
printf "%s\n" "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
printf "%s\n" "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
if test -n "$CONFIG_SITE"; then
ac_site_files="$CONFIG_SITE"
elif test "x$prefix" != xNONE; then
ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
else
ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
for ac_site_file in $ac_site_files
do
case $ac_site_file in #(
*/*) :
;; #(
*) :
ac_site_file=./$ac_site_file ;;
esac
if test -f "$ac_site_file" && test -r "$ac_site_file"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
|| { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
# Test code for whether the C compiler supports C89 (global declarations)
ac_c_conftest_c89_globals='
/* Does the compiler advertise C89 conformance?
Do not test the value of __STDC__, because some compilers set it to 0
while being otherwise adequately conformant. */
#if !defined __STDC__
# error "Compiler does not advertise C89 conformance"
#endif
#include
#include
struct stat;
/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
struct buf { int x; };
struct buf * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
char **p;
int i;
{
return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
char *s;
va_list v;
va_start (v,p);
s = g (p, va_arg (v,int));
va_end (v);
return s;
}
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not \xHH hex character constants.
These do not provoke an error unfortunately, instead are silently treated
as an "x". The following induces an error, until -std is added to get
proper ANSI mode. Curiously \x00 != x always comes out true, for an
array size at least. It is necessary to write \x00 == 0 to get something
that is true only with -std. */
int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
inside strings and character constants. */
#define FOO(x) '\''x'\''
int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
int, int);'
# Test code for whether the C compiler supports C89 (body of main).
ac_c_conftest_c89_main='
ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
'
# Test code for whether the C compiler supports C99 (global declarations)
ac_c_conftest_c99_globals='
// Does the compiler advertise C99 conformance?
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
# error "Compiler does not advertise C99 conformance"
#endif
#include
extern int puts (const char *);
extern int printf (const char *, ...);
extern int dprintf (int, const char *, ...);
extern void *malloc (size_t);
// Check varargs macros. These examples are taken from C99 6.10.3.5.
// dprintf is used instead of fprintf to avoid needing to declare
// FILE and stderr.
#define debug(...) dprintf (2, __VA_ARGS__)
#define showlist(...) puts (#__VA_ARGS__)
#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
static void
test_varargs_macros (void)
{
int x = 1234;
int y = 5678;
debug ("Flag");
debug ("X = %d\n", x);
showlist (The first, second, and third items.);
report (x>y, "x is %d but y is %d", x, y);
}
// Check long long types.
#define BIG64 18446744073709551615ull
#define BIG32 4294967295ul
#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
#if !BIG_OK
#error "your preprocessor is broken"
#endif
#if BIG_OK
#else
#error "your preprocessor is broken"
#endif
static long long int bignum = -9223372036854775807LL;
static unsigned long long int ubignum = BIG64;
struct incomplete_array
{
int datasize;
double data[];
};
struct named_init {
int number;
const wchar_t *name;
double average;
};
typedef const char *ccp;
static inline int
test_restrict (ccp restrict text)
{
// See if C++-style comments work.
// Iterate through items via the restricted pointer.
// Also check for declarations in for loops.
for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
continue;
return 0;
}
// Check varargs and va_copy.
static bool
test_varargs (const char *format, ...)
{
va_list args;
va_start (args, format);
va_list args_copy;
va_copy (args_copy, args);
const char *str = "";
int number = 0;
float fnumber = 0;
while (*format)
{
switch (*format++)
{
case '\''s'\'': // string
str = va_arg (args_copy, const char *);
break;
case '\''d'\'': // int
number = va_arg (args_copy, int);
break;
case '\''f'\'': // float
fnumber = va_arg (args_copy, double);
break;
default:
break;
}
}
va_end (args_copy);
va_end (args);
return *str && number && fnumber;
}
'
# Test code for whether the C compiler supports C99 (body of main).
ac_c_conftest_c99_main='
// Check bool.
_Bool success = false;
success |= (argc != 0);
// Check restrict.
if (test_restrict ("String literal") == 0)
success = true;
char *restrict newvar = "Another string";
// Check varargs.
success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
test_varargs_macros ();
// Check flexible array members.
struct incomplete_array *ia =
malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
ia->datasize = 10;
for (int i = 0; i < ia->datasize; ++i)
ia->data[i] = i * 1.234;
// Check named initializers.
struct named_init ni = {
.number = 34,
.name = L"Test wide string",
.average = 543.34343,
};
ni.number = 58;
int dynamic_array[ni.number];
dynamic_array[0] = argv[0][0];
dynamic_array[ni.number - 1] = 543;
// work around unused variable warnings
ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
|| dynamic_array[ni.number - 1] != 543);
'
# Test code for whether the C compiler supports C11 (global declarations)
ac_c_conftest_c11_globals='
// Does the compiler advertise C11 conformance?
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
# error "Compiler does not advertise C11 conformance"
#endif
// Check _Alignas.
char _Alignas (double) aligned_as_double;
char _Alignas (0) no_special_alignment;
extern char aligned_as_int;
char _Alignas (0) _Alignas (int) aligned_as_int;
// Check _Alignof.
enum
{
int_alignment = _Alignof (int),
int_array_alignment = _Alignof (int[100]),
char_alignment = _Alignof (char)
};
_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
// Check _Noreturn.
int _Noreturn does_not_return (void) { for (;;) continue; }
// Check _Static_assert.
struct test_static_assert
{
int x;
_Static_assert (sizeof (int) <= sizeof (long int),
"_Static_assert does not work in struct");
long int y;
};
// Check UTF-8 literals.
#define u8 syntax error!
char const utf8_literal[] = u8"happens to be ASCII" "another string";
// Check duplicate typedefs.
typedef long *long_ptr;
typedef long int *long_ptr;
typedef long_ptr long_ptr;
// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
struct anonymous
{
union {
struct { int i; int j; };
struct { int k; long int l; } w;
};
int m;
} v1;
'
# Test code for whether the C compiler supports C11 (body of main).
ac_c_conftest_c11_main='
_Static_assert ((offsetof (struct anonymous, i)
== offsetof (struct anonymous, w.k)),
"Anonymous union alignment botch");
v1.i = 2;
v1.w.k = 5;
ok |= v1.i != 5;
'
# Test code for whether the C compiler supports C11 (complete).
ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
${ac_c_conftest_c99_globals}
${ac_c_conftest_c11_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
${ac_c_conftest_c99_main}
${ac_c_conftest_c11_main}
return ok;
}
"
# Test code for whether the C compiler supports C99 (complete).
ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
${ac_c_conftest_c99_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
${ac_c_conftest_c99_main}
return ok;
}
"
# Test code for whether the C compiler supports C89 (complete).
ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
return ok;
}
"
# Auxiliary files required by this configure script.
ac_aux_files="compile missing install-sh"
# Locations in which to look for auxiliary files.
ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
# Search for a directory containing all of the required auxiliary files,
# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
# If we don't find one directory that contains all the files we need,
# we report the set of missing files from the *first* directory in
# $ac_aux_dir_candidates and give up.
ac_missing_aux_files=""
ac_first_candidate=:
printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in $ac_aux_dir_candidates
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
ac_aux_dir_found=yes
ac_install_sh=
for ac_aux in $ac_aux_files
do
# As a special case, if "install-sh" is required, that requirement
# can be satisfied by any of "install-sh", "install.sh", or "shtool",
# and $ac_install_sh is set appropriately for whichever one is found.
if test x"$ac_aux" = x"install-sh"
then
if test -f "${as_dir}install-sh"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
ac_install_sh="${as_dir}install-sh -c"
elif test -f "${as_dir}install.sh"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
ac_install_sh="${as_dir}install.sh -c"
elif test -f "${as_dir}shtool"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
ac_install_sh="${as_dir}shtool install -c"
else
ac_aux_dir_found=no
if $ac_first_candidate; then
ac_missing_aux_files="${ac_missing_aux_files} install-sh"
else
break
fi
fi
else
if test -f "${as_dir}${ac_aux}"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
else
ac_aux_dir_found=no
if $ac_first_candidate; then
ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
else
break
fi
fi
fi
done
if test "$ac_aux_dir_found" = yes; then
ac_aux_dir="$as_dir"
break
fi
ac_first_candidate=false
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else $as_nop
as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
if test -f "${ac_aux_dir}config.guess"; then
ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
fi
if test -f "${ac_aux_dir}config.sub"; then
ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
fi
if test -f "$ac_aux_dir/configure"; then
ac_configure="$SHELL ${ac_aux_dir}configure"
fi
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
*) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
am__api_version='1.16'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
printf %s "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test ${ac_cv_path_install+y}
then :
printf %s "(cached) " >&6
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
# Account for fact that we put trailing slashes in our PATH walk.
case $as_dir in #((
./ | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
break 3
fi
fi
fi
done
done
;;
esac
done
IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
fi
if test ${ac_cv_path_install+y}; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
printf "%s\n" "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
printf %s "checking whether build environment is sane... " >&6; }
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[\\\"\#\$\&\'\`$am_lf]*)
as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
esac
case $srcdir in
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
esac
# Do 'set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
am_has_slept=no
for am_try in 1 2; do
echo "timestamp, slept: $am_has_slept" > conftest.file
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$*" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
if test "$*" != "X $srcdir/configure conftest.file" \
&& test "$*" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
alias in your environment" "$LINENO" 5
fi
if test "$2" = conftest.file || test $am_try -eq 2; then
break
fi
# Just in case.
sleep 1
am_has_slept=yes
done
test "$2" = conftest.file
)
then
# Ok.
:
else
as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
# If we didn't sleep, we still need to ensure time stamps of config.status and
# generated files are strictly newer.
am_sleep_pid=
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
( sleep 1 ) &
am_sleep_pid=$!
fi
rm -f conftest.file
test "$program_prefix" != NONE &&
program_transform_name="s&^&$program_prefix&;$program_transform_name"
# Use a double $ so make ignores it.
test "$program_suffix" != NONE &&
program_transform_name="s&\$&$program_suffix&;$program_transform_name"
# Double any \ or $.
# By default was `s,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
# Expand $ac_aux_dir to an absolute path.
am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
am_missing_run="$MISSING "
else
am_missing_run=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi
if test x"${install_sh+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
# Installed binaries are usually stripped using 'strip' when the user
# run "make install-strip". However 'strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the 'STRIP' environment variable to overrule this program.
if test "$cross_compiling" != no; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
printf "%s\n" "$STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
printf "%s\n" "$ac_ct_STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
STRIP=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
fi
else
STRIP="$ac_cv_prog_STRIP"
fi
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
printf %s "checking for a race-free mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
if test ${ac_cv_path_mkdir+y}
then :
printf %s "(cached) " >&6
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir ('*'coreutils) '* | \
'BusyBox '* | \
'mkdir (fileutils) '4.1*)
ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
break 3;;
esac
done
done
done
IFS=$as_save_IFS
fi
test -d ./--version && rmdir ./--version
if test ${ac_cv_path_mkdir+y}; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
# As a last resort, use the slow shell script. Don't cache a
# value for MKDIR_P within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
MKDIR_P="$ac_install_sh -d"
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
printf "%s\n" "$MKDIR_P" >&6; }
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AWK+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
printf "%s\n" "$AWK" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AWK" && break
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval test \${ac_cv_prog_make_${ac_make}_set+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
*)
eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
SET_MAKE=
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
# Check whether --enable-silent-rules was given.
if test ${enable_silent_rules+y}
then :
enableval=$enable_silent_rules;
fi
case $enable_silent_rules in # (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=1;;
esac
am_make=${MAKE-make}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
printf %s "checking whether $am_make supports nested variables... " >&6; }
if test ${am_cv_make_support_nested_variables+y}
then :
printf %s "(cached) " >&6
else $as_nop
if printf "%s\n" 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
@$(TRUE)
.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
am_cv_make_support_nested_variables=yes
else
am_cv_make_support_nested_variables=no
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
# Define the identity of the package.
PACKAGE='m17n-docs'
VERSION='1.8.4'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h
# Some tools Automake needs.
ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
#
#
mkdir_p='$(MKDIR_P)'
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
# We'll loop over all known methods to create a tar archive until one works.
_am_tools='gnutar pax cpio none'
am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
# Variables for tags utilities; see am/tags.am
if test -z "$CTAGS"; then
CTAGS=ctags
fi
if test -z "$ETAGS"; then
ETAGS=etags
fi
if test -z "$CSCOPE"; then
CSCOPE=cscope
fi
# POSIX will say in a future version that running "rm -f" with no argument
# is OK; and we want to be able to make that assumption in our Makefile
# recipes. So use an aggressive probe to check that the usage we want is
# actually supported "in the wild" to an acceptable degree.
# See automake bug#10828.
# To make any issue more visible, cause the running configure to be aborted
# by default if the 'rm' program in use doesn't match our expectations; the
# user can still override this though.
if rm -f && rm -fr && rm -rf; then : OK; else
cat >&2 <<'END'
Oops!
Your 'rm' program seems unable to run without file operands specified
on the command line, even when the '-f' option is present. This is contrary
to the behaviour of most rm programs out there, and not conforming with
the upcoming POSIX standard:
Please tell bug-automake@gnu.org about your system, including the value
of your $PATH and any error possibly output before this message. This
can help us improve future automake versions.
END
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
echo 'Configuration will proceed anyway, since you have set the' >&2
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
echo >&2
else
cat >&2 <<'END'
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
that behaves properly: .
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
to "yes", and re-run configure.
END
as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
# Check whether --enable-maintainer-mode was given.
if test ${enable_maintainer_mode+y}
then :
enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
else $as_nop
USE_MAINTAINER_MODE=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
printf "%s\n" "$USE_MAINTAINER_MODE" >&6; }
if test $USE_MAINTAINER_MODE = yes; then
MAINTAINER_MODE_TRUE=
MAINTAINER_MODE_FALSE='#'
else
MAINTAINER_MODE_TRUE='#'
MAINTAINER_MODE_FALSE=
fi
MAINT=$MAINTAINER_MODE_TRUE
# Checks for programs.
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
for ac_prog in cl.exe
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in cl.exe
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
set dummy ${ac_tool_prefix}clang; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}clang"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "clang", so it can be a program name with args.
set dummy clang; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="clang"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
fi
test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
printf %s "checking whether the C compiler works... " >&6; }
ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
ac_rmfiles=
for ac_file in $ac_files
do
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
* ) ac_rmfiles="$ac_rmfiles $ac_file";;
esac
done
rm -f $ac_rmfiles
if { { ac_try="$ac_link_default"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
for ac_file in $ac_files ''
do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
;;
[ab].out )
# We found the default executable, but exeext='' is most
# certainly right.
break;;
*.* )
if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
# We set ac_cv_exeext here because the later test for it is not
# safe: cross compilers may not add the suffix if given an `-o'
# argument, so we may need to know it at that point already.
# Even if this section looks crufty: it has the advantage of
# actually working.
break;;
* )
break;;
esac
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
else $as_nop
ac_file=''
fi
if test -z "$ac_file"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
printf %s "checking for C compiler default output file name... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
printf "%s\n" "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
# `rm'.
for ac_file in conftest.exe conftest conftest.*; do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
break;;
* ) break;;
esac
done
else $as_nop
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
printf "%s\n" "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
int
main (void)
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
printf "%s\n" "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
printf %s "checking for suffix of object files... " >&6; }
if test ${ac_cv_objext+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
*) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
break;;
esac
done
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
printf "%s\n" "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
printf %s "checking whether the compiler supports GNU C... " >&6; }
if test ${ac_cv_c_compiler_gnu+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_compiler_gnu=yes
else $as_nop
ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
printf %s "checking whether $CC accepts -g... " >&6; }
if test ${ac_cv_prog_cc_g+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
ac_prog_cc_stdc=no
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c11_program
_ACEOF
for ac_arg in '' -std=gnu11
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c11=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c11" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c11" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
CC="$CC $ac_cv_prog_cc_c11"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
ac_prog_cc_stdc=c11
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c99=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c99_program
_ACEOF
for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c99=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c99" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c99" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c99" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
CC="$CC $ac_cv_prog_cc_c99"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
ac_prog_cc_stdc=c99
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c89_program
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c89" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c89" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
CC="$CC $ac_cv_prog_cc_c89"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
ac_prog_cc_stdc=c89
fi
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
printf %s "checking whether $CC understands -c and -o together... " >&6; }
if test ${am_cv_prog_cc_c_o+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
# Make sure it works both with $CC and with simple cc.
# Following AC_PROG_CC_C_O, we do the test twice because some
# compilers refuse to overwrite an existing .o file with -o,
# though they will create one.
am_cv_prog_cc_c_o=yes
for am_i in 1 2; do
if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } \
&& test -f conftest2.$ac_objext; then
: OK
else
am_cv_prog_cc_c_o=no
break
fi
done
rm -f core conftest*
unset am_i
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
if test "$am_cv_prog_cc_c_o" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
# But if we don't then we get into trouble of one sort or another.
# A longer-term fix would be to have automake use am__CC in this case,
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
CC="$am_aux_dir/compile $CC"
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
cat > confinc.mk << 'END'
am__doit:
@echo this is the am__doit target >confinc.out
.PHONY: am__doit
END
am__include="#"
am__quote=
# BSD make does it like this.
echo '.include "confinc.mk" # ignored' > confmf.BSD
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
echo 'include confinc.mk # ignored' > confmf.GNU
_am_result=no
for s in GNU BSD; do
{ echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
(${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
case $?:`cat confinc.out 2>/dev/null` in #(
'0:this is the am__doit target') :
case $s in #(
BSD) :
am__include='.include' am__quote='"' ;; #(
*) :
am__include='include' am__quote='' ;;
esac ;; #(
*) :
;;
esac
if test "$am__include" != "#"; then
_am_result="yes ($s style)"
break
fi
done
rm -f confinc.* confmf.*
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
printf "%s\n" "${_am_result}" >&6; }
# Check whether --enable-dependency-tracking was given.
if test ${enable_dependency_tracking+y}
then :
enableval=$enable_dependency_tracking;
fi
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
am__nodep='_no'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
AMDEP_FALSE='#'
else
AMDEP_TRUE='#'
AMDEP_FALSE=
fi
depcc="$CC" am_compiler_list=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
printf %s "checking dependency style of $depcc... " >&6; }
if test ${am_cv_CC_dependencies_compiler_type+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named 'D' -- because '-MD' means "put the output
# in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
am__universal=false
case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
# Solaris 10 /bin/sh.
echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle '-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# After this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_CC_dependencies_compiler_type=none
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE=
am__fastdepCC_FALSE='#'
else
am__fastdepCC_TRUE='#'
am__fastdepCC_FALSE=
fi
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AWK+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
printf "%s\n" "$AWK" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AWK" && break
done
if test $USE_MAINTAINER_MODE = yes; then
# Checks for source program files.
# Check whether --with-m17nlib was given.
if test ${with_m17nlib+y}
then :
withval=$with_m17nlib; M17NLIB="$withval"
fi
if test "x$M17NLIB" = "x"; then
if test -d ../m17n-lib; then
M17NLIB=../m17n-lib
elif test -d /usr/local/src/m17n-lib; then
M17NLIB=/usr/local/src/m17n-lib
else
M17NLIB=.
fi
else :
fi
# Checks for the m17n database files.
# Check whether --with-m17ndb was given.
if test ${with_m17ndb+y}
then :
withval=$with_m17ndb; M17NDB="$withval"
fi
if test "x$M17NDB" = "x"; then
if test -d ../m17n-db; then
M17NDB=../m17n-db
elif test -d /usr/local/src/m17n-db; then
M17NDB=/usr/local/src/m17n-db
else
M17NDB=.
fi
else :
fi
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
printf "%s\n" "$PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
PKG_CONFIG=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
else
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=0.9.0
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
PKG_CONFIG=""
fi
fi
pkg_failed=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for m17n-shell" >&5
printf %s "checking for m17n-shell... " >&6; }
if test -n "$M17N_CFLAGS"; then
pkg_cv_M17N_CFLAGS="$M17N_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"m17n-shell\""; } >&5
($PKG_CONFIG --exists --print-errors "m17n-shell") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_M17N_CFLAGS=`$PKG_CONFIG --cflags "m17n-shell" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
else
pkg_failed=untried
fi
if test -n "$M17N_LIBS"; then
pkg_cv_M17N_LIBS="$M17N_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"m17n-shell\""; } >&5
($PKG_CONFIG --exists --print-errors "m17n-shell") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_M17N_LIBS=`$PKG_CONFIG --libs "m17n-shell" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
else
pkg_failed=untried
fi
if test $pkg_failed = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
M17N_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "m17n-shell" 2>&1`
else
M17N_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "m17n-shell" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$M17N_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (m17n-shell) were not met:
$M17N_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables M17N_CFLAGS
and M17N_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables M17N_CFLAGS
and M17N_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see .
See \`config.log' for more details" "$LINENO" 5; }
else
M17N_CFLAGS=$pkg_cv_M17N_CFLAGS
M17N_LIBS=$pkg_cv_M17N_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
fi
# Extract the first word of "doxygen", so it can be a program name with args.
set dummy doxygen; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_HAVEDOXYGEN+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$HAVEDOXYGEN"; then
ac_cv_prog_HAVEDOXYGEN="$HAVEDOXYGEN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_HAVEDOXYGEN="yes"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
test -z "$ac_cv_prog_HAVEDOXYGEN" && ac_cv_prog_HAVEDOXYGEN="no"
fi
fi
HAVEDOXYGEN=$ac_cv_prog_HAVEDOXYGEN
if test -n "$HAVEDOXYGEN"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HAVEDOXYGEN" >&5
printf "%s\n" "$HAVEDOXYGEN" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
# Extract the first word of "ruby", so it can be a program name with args.
set dummy ruby; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_RUBY+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$RUBY"; then
ac_cv_prog_RUBY="$RUBY" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_RUBY="yes"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
test -z "$ac_cv_prog_RUBY" && ac_cv_prog_RUBY="no"
fi
fi
RUBY=$ac_cv_prog_RUBY
if test -n "$RUBY"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RUBY" >&5
printf "%s\n" "$RUBY" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
# Extract the first word of "latex", so it can be a program name with args.
set dummy latex; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_LATEX+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$LATEX"; then
ac_cv_prog_LATEX="$LATEX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LATEX="yes"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
test -z "$ac_cv_prog_LATEX" && ac_cv_prog_LATEX="no"
fi
fi
LATEX=$ac_cv_prog_LATEX
if test -n "$LATEX"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5
printf "%s\n" "$LATEX" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
# Extract the first word of "platex", so it can be a program name with args.
set dummy platex; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_PLATEX+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$PLATEX"; then
ac_cv_prog_PLATEX="$PLATEX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_PLATEX="yes"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
test -z "$ac_cv_prog_PLATEX" && ac_cv_prog_PLATEX="no"
fi
fi
PLATEX=$ac_cv_prog_PLATEX
if test -n "$PLATEX"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PLATEX" >&5
printf "%s\n" "$PLATEX" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
OK=yes
if test "$HAVEDOXYGEN" = "no"; then
echo "Can't find a program \"doxygen\"!"
OK=no
fi
if test "$RUBY" = "no"; then
echo "Can't find a program \"ruby\"!"
OK=no
fi
if test "$LATEX" = "no"; then
echo "Can't find a program \"latex\"!"
OK=no
fi
if test "$PLATEX" = "no"; then
echo "Can't find a program \"platex\"!"
OK=no
fi
if test "$OK" = "no"; then
exit 1
fi
fi
ac_config_files="$ac_config_files Makefile utils/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
# `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
) |
sed '
/^ac_cv_env_/b end
t clear
:clear
s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
#
# If the first sed substitution is executed (which looks for macros that
# take arguments), then branch to the quote section. Otherwise,
# look for a macro that doesn't take arguments.
ac_script='
:mline
/\\$/{
N
s,\\\n,,
b mline
}
t clear
:clear
s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
t quote
s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
t quote
b any
:quote
s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
s/\[/\\&/g
s/\]/\\&/g
s/\$/$$/g
H
:any
${
g
s/^\n//
s/\n/ /g
p
}
'
DEFS=`sed -n "$ac_script" confdefs.h`
ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
printf %s "checking that generated files are newer than configure... " >&6; }
if test -n "$am_sleep_pid"; then
# Hide warnings about reused PIDs.
wait $am_sleep_pid 2>/dev/null
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
printf "%s\n" "done" >&6; }
if test -n "$EXEEXT"; then
am__EXEEXT_TRUE=
am__EXEEXT_FALSE='#'
else
am__EXEEXT_TRUE='#'
am__EXEEXT_FALSE=
fi
if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
debug=false
ac_cs_recheck=false
ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
# Reset variables that may have inherited troublesome values from
# the environment.
# IFS needs to be set, to space, tab, and newline, in precisely that order.
# (If _AS_PATH_WALK were called with IFS unset, it would have the
# side effect of setting IFS to empty, thus disabling word splitting.)
# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
IFS=" "" $as_nl"
PS1='$ '
PS2='> '
PS4='+ '
# Ensure predictable behavior from utilities with locale-dependent output.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# We cannot yet rely on "unset" to work, but we need these variables
# to be unset--not just set to an empty or harmless value--now, to
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
# also avoids known problems related to "unset" and subshell syntax
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
do eval test \${$as_var+y} \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
# Ensure that fds 0, 1, and 2 are open.
if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
# Determine whether it's possible to make 'echo' print without a newline.
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
# For backward compatibility with old third-party macros, we provide
# the shell variables $as_echo and $as_echo_n. New code should use
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
as_echo='printf %s\n'
as_echo_n='printf %s'
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by m17n-docs $as_me 1.8.4, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
_ACEOF
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_commands="$ac_config_commands"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
Configuration files:
$config_files
Configuration commands:
$config_commands
Report bugs to ."
_ACEOF
ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
m17n-docs config.status 1.8.4
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
MKDIR_P='$MKDIR_P'
AWK='$AWK'
test -n "\$AWK" || AWK=awk
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
case $1 in
--*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
--*=)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=
ac_shift=:
;;
*)
ac_option=$1
ac_optarg=$2
ac_shift=shift
;;
esac
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
printf "%s\n" "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
printf "%s\n" "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h | --help | --hel | -h )
printf "%s\n" "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
# This is an error.
-*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
shift
done
ac_configure_extra_args=
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
printf "%s\n" "$ac_log"
} >&5
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Handling of arguments.
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp= ac_tmp=
trap 'exit_status=$?
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
{
echo "cat >conf$$subs.awk <<_ACEOF" &&
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' >$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
}
{
line = $ 0
nfields = split(line, field, "@")
substed = 0
len = length(field[1])
for (i = 2; i < nfields; i++) {
key = field[i]
keylen = length(key)
if (S_is_set[key]) {
value = S[key]
line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
len += length(value) + length(field[++i])
substed = 1
} else
len += 1 + keylen
}
print line
}
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
h
s///
s/^/:/
s/[ ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[ ]*\).*/\1/
G
s/\n//
s/^[^=]*=[ ]*$//
}'
fi
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
shift
for ac_tag
do
case $ac_tag in
:[FHLC]) ac_mode=$ac_tag; continue;;
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
ac_save_IFS=$IFS
IFS=:
set x $ac_tag
IFS=$ac_save_IFS
shift
ac_file=$1
shift
case $ac_mode in
:L) ac_source=$1;;
:[FH])
ac_file_inputs=
for ac_f
do
case $ac_f in
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
printf "%s\n" "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
ac_sed_conf_input=`printf "%s\n" "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
case $ac_tag in
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
case $ac_mode in
:F)
#
# CONFIG_FILE
#
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
esac
ac_MKDIR_P=$MKDIR_P
case $MKDIR_P in
[\\/$]* | ?:[\\/]* ) ;;
*/*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
esac
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
case $ac_file in
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
;;
esac
case $ac_file$ac_mode in
"depfiles":C) test x"$AMDEP_TRUE" != x"" || {
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
# TODO: see whether this extra hack can be removed once we start
# requiring Autoconf 2.70 or later.
case $CONFIG_FILES in #(
*\'*) :
eval set x "$CONFIG_FILES" ;; #(
*) :
set x $CONFIG_FILES ;; #(
*) :
;;
esac
shift
# Used to flag and report bootstrapping failures.
am_rc=0
for am_mf
do
# Strip MF so we end up with the name of the file.
am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile which includes
# dependency-tracking related rules and includes.
# Grep'ing the whole file directly is not great: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|| continue
am_dirpart=`$as_dirname -- "$am_mf" ||
$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$am_mf" : 'X\(//\)[^/]' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$am_mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
am_filepart=`$as_basename -- "$am_mf" ||
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$am_mf" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
{ echo "$as_me:$LINENO: cd "$am_dirpart" \
&& sed -e '/# am--include-marker/d' "$am_filepart" \
| $MAKE -f - am--depfiles" >&5
(cd "$am_dirpart" \
&& sed -e '/# am--include-marker/d' "$am_filepart" \
| $MAKE -f - am--depfiles) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } || am_rc=$?
done
if test $am_rc -ne 0; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. If GNU make was not used, consider
re-running the configure script with MAKE=\"gmake\" (or whatever is
necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See \`config.log' for more details" "$LINENO" 5; }
fi
{ am_dirpart=; unset am_dirpart;}
{ am_filepart=; unset am_filepart;}
{ am_mf=; unset am_mf;}
{ am_rc=; unset am_rc;}
rm -f conftest-deps.mk
}
;;
esac
done # for ac_tag
as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
# Print configuration message.
if test $USE_MAINTAINER_MODE = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Find documentation source in \"$M17NLIB\"" >&5
printf "%s\n" "$as_me: Find documentation source in \"$M17NLIB\"" >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Find m17n database source in \"$M17NDB\"" >&5
printf "%s\n" "$as_me: Find m17n database source in \"$M17NDB\"" >&6;}
fi
eval dir=${datadir}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: -------------------------------------------" >&5
printf "%s\n" "$as_me: -------------------------------------------" >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Install documentations in these directories" >&5
printf "%s\n" "$as_me: Install documentations in these directories" >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: -------------------------------------------" >&5
printf "%s\n" "$as_me: -------------------------------------------" >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: m17n-lib.pdf: ${dir}/m17n/docs" >&5
printf "%s\n" "$as_me: m17n-lib.pdf: ${dir}/m17n/docs" >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: html files: ${dir}/m17n/docs/html" >&5
printf "%s\n" "$as_me: html files: ${dir}/m17n/docs/html" >&6;}
eval dir=${mandir}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: man files: ${dir}" >&5
printf "%s\n" "$as_me: man files: ${dir}" >&6;}
m17n-docs-1.8.4/NEWS 0000755 0001750 0001750 00000003075 14504321631 010663 0000000 0000000 NEWS -- What's new in the m17n library documentation. -*- outline -*-
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H15PRO112
See the end for copying conditions.
* Changes in the m17n library documentation 0.9
Adjusted for m17n-lib/m17n-db 1.8.4.
* Changes in the m17n library documentation 0.9
Adjusted for m17n-lib/m17n-db 1.8.3.
* Changes in the m17n library documentation 0.9
Adjusted for m17n-lib/m17n-db 1.6.2.
* Changes in the m17n library documentation 0.9
** Released.
* Copyright information
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H15PRO112
This file is part of the m17n library documentation, a sub-part of the
m17n library..
The m17n library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2, or (at
your option) any later version.
The m17n library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with the m17n library; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
m17n-docs-1.8.4/INSTALL 0000644 0001750 0001750 00000036626 14215102164 011217 0000000 0000000 Installation Instructions
*************************
Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
Basic Installation
==================
Briefly, the shell command './configure && make && make install'
should configure, build, and install this package. The following
more-detailed instructions are generic; see the 'README' file for
instructions specific to this package. Some packages provide this
'INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a 'Makefile' in each directory of the package.
It may also create one or more '.h' files containing system-dependent
definitions. Finally, it creates a shell script 'config.status' that
you can run in the future to recreate the current configuration, and a
file 'config.log' containing compiler output (useful mainly for
debugging 'configure').
It can also use an optional file (typically called 'config.cache' and
enabled with '--cache-file=config.cache' or simply '-C') that saves the
results of its tests to speed up reconfiguring. Caching is disabled by
default to prevent problems with accidental use of stale cache files.
If you need to do unusual things to compile the package, please try
to figure out how 'configure' could check whether to do them, and mail
diffs or instructions to the address given in the 'README' so they can
be considered for the next release. If you are using the cache, and at
some point 'config.cache' contains results you don't want to keep, you
may remove or edit it.
The file 'configure.ac' (or 'configure.in') is used to create
'configure' by a program called 'autoconf'. You need 'configure.ac' if
you want to change it or regenerate 'configure' using a newer version of
'autoconf'.
The simplest way to compile this package is:
1. 'cd' to the directory containing the package's source code and type
'./configure' to configure the package for your system.
Running 'configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type 'make' to compile the package.
3. Optionally, type 'make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. Type 'make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the 'make install' phase executed with root
privileges.
5. Optionally, type 'make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior 'make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
source code directory by typing 'make clean'. To also remove the
files that 'configure' created (so you can compile the package for
a different kind of computer), type 'make distclean'. There is
also a 'make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type 'make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide 'make
distcheck', which can by used by developers to test that all other
targets like 'make install' and 'make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the 'configure' script does not know about. Run './configure --help'
for details on some of the pertinent environment variables.
You can give 'configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here is
an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU 'make'. 'cd' to the
directory where you want the object files and executables to go and run
the 'configure' script. 'configure' automatically checks for the source
code in the directory that 'configure' is in and in '..'. This is known
as a "VPATH" build.
With a non-GNU 'make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use 'make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple '-arch' options to the
compiler but only a single '-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the 'lipo' tool if you have problems.
Installation Names
==================
By default, 'make install' installs the package's commands under
'/usr/local/bin', include files under '/usr/local/include', etc. You
can specify an installation prefix other than '/usr/local' by giving
'configure' the option '--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like '--bindir=DIR' to specify different values for particular
kinds of files. Run 'configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the default
for these options is expressed in terms of '${prefix}', so that
specifying just '--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to 'configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
'make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, 'make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
'${prefix}'. Any directories that were specified during 'configure',
but not in terms of '${prefix}', must each be overridden at install time
for the entire installation to be relocated. The approach of makefile
variable overrides for each directory variable is required by the GNU
Coding Standards, and ideally causes no recompilation. However, some
platforms have known limitations with the semantics of shared libraries
that end up requiring recompilation when using this method, particularly
noticeable in packages that use GNU Libtool.
The second method involves providing the 'DESTDIR' variable. For
example, 'make install DESTDIR=/alternate/directory' will prepend
'/alternate/directory' before all installation names. The approach of
'DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of '${prefix}'
at 'configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving 'configure' the
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
Some packages pay attention to '--enable-FEATURE' options to
'configure', where FEATURE indicates an optional part of the package.
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
is something like 'gnu-as' or 'x' (for the X Window System). The
'README' should mention any '--enable-' and '--with-' options that the
package recognizes.
For packages that use the X Window System, 'configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the 'configure' options '--x-includes=DIR' and
'--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of 'make' will be. For these packages, running './configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with 'make V=1'; while running './configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with 'make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX 'make' updates targets which have the same timestamps as their
prerequisites, which makes it generally unusable when shipped generated
files such as 'configure' are involved. Use GNU 'make' instead.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its '' header file. The option '-nodtk' can be used as a
workaround. If GNU CC is not installed, it is therefore recommended to
try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
in your 'PATH', put it _after_ '/usr/bin'.
On Haiku, software installed for all users goes in '/boot/common',
not '/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features 'configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, 'configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
'--build=TYPE' option. TYPE can either be a short name for the system
type, such as 'sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file 'config.sub' for the possible values of each field. If
'config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option '--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with '--host=TYPE'.
Sharing Defaults
================
If you want to set default values for 'configure' scripts to share,
you can create a site shell script called 'config.site' that gives
default values for variables like 'CC', 'cache_file', and 'prefix'.
'configure' looks for 'PREFIX/share/config.site' if it exists, then
'PREFIX/etc/config.site' if it exists. Or, you can set the
'CONFIG_SITE' environment variable to the location of the site script.
A warning: not all 'configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to 'configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the 'configure' command line, using 'VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified 'gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
Autoconf limitation. Until the limitation is lifted, you can use this
workaround:
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
'configure' Invocation
======================
'configure' recognizes the following options to control how it
operates.
'--help'
'-h'
Print a summary of all of the options to 'configure', and exit.
'--help=short'
'--help=recursive'
Print a summary of the options unique to this package's
'configure', and exit. The 'short' variant lists options used only
in the top level, while the 'recursive' variant lists options also
present in any nested packages.
'--version'
'-V'
Print the version of Autoconf used to generate the 'configure'
script, and exit.
'--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally 'config.cache'. FILE defaults to '/dev/null' to
disable caching.
'--config-cache'
'-C'
Alias for '--cache-file=config.cache'.
'--quiet'
'--silent'
'-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to '/dev/null' (any error
messages will still be shown).
'--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
'configure' can determine that directory automatically.
'--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names:: for
more details, including other options available for fine-tuning the
installation locations.
'--no-create'
'-n'
Run the configure checks, but stop before creating any output
files.
'configure' also accepts some other, not widely useful, options. Run
'configure --help' for more details.
m17n-docs-1.8.4/missing 0000755 0001750 0001750 00000015336 14215102164 011560 0000000 0000000 #! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard , 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
case $1 in
--is-lightweight)
# Used by our autoconf macros to check whether the available missing
# script is modern enough.
exit 0
;;
--run)
# Back-compat with the calling convention used by older automake.
shift
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal autoconf autoheader autom4te automake makeinfo
bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
Send bug reports to ."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
# Run the given program, remember its exit status.
"$@"; st=$?
# If it succeeded, we are done.
test $st -eq 0 && exit 0
# Also exit now if we it failed (or wasn't found), and '--version' was
# passed; such an option is passed most likely to detect whether the
# program is present and works.
case $2 in --version|--help) exit $st;; esac
# Exit code 63 means version mismatch. This often happens when the user
# tries to use an ancient version of a tool on a file that requires a
# minimum version.
if test $st -eq 63; then
msg="probably too old"
elif test $st -eq 127; then
# Program was missing.
msg="missing on your system"
else
# Program was found and executed, but failed. Give up.
exit $st
fi
perl_URL=https://www.perl.org/
flex_URL=https://github.com/westes/flex
gnu_software_URL=https://www.gnu.org/software
program_details ()
{
case $1 in
aclocal|automake)
echo "The '$1' program is part of the GNU Automake package:"
echo "<$gnu_software_URL/automake>"
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/autoconf>"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
autoconf|autom4te|autoheader)
echo "The '$1' program is part of the GNU Autoconf package:"
echo "<$gnu_software_URL/autoconf/>"
echo "It also requires GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
esac
}
give_advice ()
{
# Normalize program name to check for.
normalized_program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
printf '%s\n' "'$1' is $msg."
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
case $normalized_program in
autoconf*)
echo "You should only need it if you modified 'configure.ac',"
echo "or m4 files included by it."
program_details 'autoconf'
;;
autoheader*)
echo "You should only need it if you modified 'acconfig.h' or"
echo "$configure_deps."
program_details 'autoheader'
;;
automake*)
echo "You should only need it if you modified 'Makefile.am' or"
echo "$configure_deps."
program_details 'automake'
;;
aclocal*)
echo "You should only need it if you modified 'acinclude.m4' or"
echo "$configure_deps."
program_details 'aclocal'
;;
autom4te*)
echo "You might have modified some maintainer files that require"
echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
echo "You should only need it if you modified a '.y' file."
echo "You may want to install the GNU Bison package:"
echo "<$gnu_software_URL/bison/>"
;;
lex*|flex*)
echo "You should only need it if you modified a '.l' file."
echo "You may want to install the Fast Lexical Analyzer package:"
echo "<$flex_URL>"
;;
help2man*)
echo "You should only need it if you modified a dependency" \
"of a man page."
echo "You may want to install the GNU Help2man package:"
echo "<$gnu_software_URL/help2man/>"
;;
makeinfo*)
echo "You should only need it if you modified a '.texi' file, or"
echo "any other file indirectly affecting the aspect of the manual."
echo "You might want to install the Texinfo package:"
echo "<$gnu_software_URL/texinfo/>"
echo "The spurious makeinfo call might also be the consequence of"
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
echo "want to install GNU make:"
echo "<$gnu_software_URL/make/>"
;;
*)
echo "You might have modified some files without having the proper"
echo "tools for further handling them. Check the 'README' file, it"
echo "often tells you about the needed prerequisites for installing"
echo "this package. You may also peek at any GNU archive site, in"
echo "case some other package contains this missing '$1' program."
;;
esac
}
give_advice "$1" | sed -e '1s/^/WARNING: /' \
-e '2,$s/^/ /' >&2
# Propagate the correct exit status (expected to be 127 for a program
# not found, 63 for a program that failed due to version mismatch).
exit $st
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
m17n-docs-1.8.4/man/ 0000775 0001750 0001750 00000000000 14504322051 011006 5 0000000 0000000 m17n-docs-1.8.4/man/man5/ 0000755 0001750 0001750 00000000000 14504322001 011637 5 0000000 0000000 m17n-docs-1.8.4/man/man5/mdbFontEncoding.5 0000664 0001750 0001750 00000005272 14504322001 014715 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbFontEncoding" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbFontEncoding \- Font Encoding
.SH "DESCRIPTION"
.PP
The m17n library loads information about the encoding of each font form the m17n database by the tags \&. The data is loaded as a plist of this format\&.
.PP
.PP
.nf
FONT\-ENCODING ::= PER\-FONT *
PER\-FONT ::= '(' FONT\-SPEC ENCODING [ REPERTORY ] ')'
FONT\-SPEC ::=
'(' [ FOUNDRY FAMILY
[ WEIGHT [ STYLE [ STRETCH [ ADSTYLE ]]]]]
REGISTRY ')'
ENCODING ::= SYMBOL
.fi
.PP
.PP
\fCFONT\-SPEC\fP is to specify properties of a font\&. \fCFOUNDRY\fP to \fCREGISTRY\fP are symbols corresponding to #Mfoundry to #Mregistry property of a font\&. See \fBm17nFont\fP for the meaning of each property\&.
.PP
For instance, this \fCFONT\-SPEC\fP:
.PP
.PP
.nf
(nil alice0\ lao iso8859\-1)
.fi
.PP
.PP
should be applied to all fonts whose family name is 'alice0 lao', and registry is 'iso8859\-1'\&.
.PP
\fCENCODING\fP is a symbol representing a charset\&. A font matching \fCFONT\-SPEC\fP supports all characters of the charset, and a character code is mapped to the corresponding glyph code of the font by this charset\&.
.PP
\fCREPERTORY\fP is a symbol representing a charset or 'nil'\&. Omitting it is the same as specifying \fCENCODING\fP as \fCREPERTORY\fP\&. If it is not 'nil', the charset specifies the repertory of the font, i\&.e, which character it supports\&. Otherwise, whether a specific character is supported by the font or not is asked to each font driver\&.
.PP
For so called Unicode fonts (registry is 'iso10646\-1'), it is recommended to specify 'nil' as \fCREPERTORY\fP because such fonts usually supports only a subset of Unicode characters\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbTutorialIM.5 0000664 0001750 0001750 00000043022 14504322001 014364 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbTutorialIM" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbTutorialIM \- Tutorial of input method
.SH "Structure of an input method file"
.PP
An input method is defined in a *\&.mim file with this format\&.
.PP
.PP
.nf
(input\-method LANG NAME)
(description (_ "DESCRIPTION"))
(title "TITLE\-STRING")
(map
(MAP\-NAME
(KEYSEQ MAP\-ACTION MAP\-ACTION ...) <\- rule
(KEYSEQ MAP\-ACTION MAP\-ACTION ...) <\- rule
...)
(MAP\-NAME
(KEYSEQ MAP\-ACTION MAP\-ACTION ...) <\- rule
(KEYSEQ MAP\-ACTION MAP\-ACTION ...) <\- rule
...)
...)
(state
(STATE\-NAME
(MAP\-NAME BRANCH\-ACTION BRANCH\-ACTION ...) <\- branch
...)
(STATE\-NAME
(MAP\-NAME BRANCH\-ACTION BRANCH\-ACTION ...) <\- branch
...)
...)
.fi
.PP
Lowercase letters and parentheses are literals, so they must be written as they are\&. Uppercase letters represent arbitrary strings\&.
.PP
KEYSEQ specifies a sequence of keys in this format:
.PP
.nf
(SYMBOLIC\-KEY SYMBOLIC\-KEY ...)
.fi
.PP
where SYMBOLIC\-KEY is the keysym value returned by the xev command\&. For instance
.PP
.nf
(n i)
.fi
.PP
represents a key sequence of and \&. If all SYMBOLIC\-KEYs are ASCII characters, you can use the short form
.PP
.nf
"ni"
.fi
.PP
instead\&. Consult \fBInput Method\fP for Non\-ASCII characters\&.
.PP
Both MAP\-ACTION and BRANCH\-ACTION are a sequence of actions of this format:
.PP
.nf
(ACTION ARG ARG ...)
.fi
.PP
The most common action is \fCinsert\fP, which is written as this:
.PP
.nf
(insert "TEXT")
.fi
.PP
But as it is very frequently used, you can use the short form
.PP
.nf
"TEXT"
.fi
.PP
If \fC'TEXT'\fP contains only one character 'C', you can write it as
.PP
.nf
(insert ?C)
.fi
.PP
or even shorter as
.PP
.nf
?C
.fi
.PP
So the shortest notation for an action of inserting 'a' is
.PP
.nf
?a
.fi
.PP
.SH "Simple example of capslock"
.PP
Here is a simple example of an input method that works as CapsLock\&.
.PP
.PP
.nf
(input\-method en capslock)
(description (_ "Upcase all lowercase letters"))
(title "a\->A")
(map
(toupper ("a" "A") ("b" "B") ("c" "C") ("d" "D") ("e" "E")
("f" "F") ("g" "G") ("h" "H") ("i" "I") ("j" "J")
("k" "K") ("l" "L") ("m" "M") ("n" "N") ("o" "O")
("p" "P") ("q" "Q") ("r" "R") ("s" "S") ("t" "T")
("u" "U") ("v" "V") ("w" "W") ("x" "X") ("y" "Y")
("z" "Z")))
(state
(init (toupper)))
.fi
.PP
.PP
When this input method is activated, it is in the initial condition of the first state (in this case, the only state \fCinit\fP)\&. In the initial condition, no key is being processed and no action is suspended\&. When the input method receives a key event , it searches branches in the current state for a rule that matches and finds one in the map \fCtoupper\fP\&. Then it executes MAP\-ACTIONs (in this case, just inserting 'A' in the preedit buffer)\&. After all MAP\-ACTIONs have been executed, the input method shifts to the initial condition of the current state\&.
.PP
The shift to \fIthe initial condition of the first state\fP has a special meaning; it commits all characters in the preedit buffer then clears the preedit buffer\&.
.PP
As a result, 'A' is given to the application program\&.
.PP
When a key event does not match with any rule in the current state, that event is unhandled and given back to the application program\&.
.PP
Turkish users may want to extend the above example for 'İ' (U+0130: LATIN CAPITAL LETTER I WITH DOT ABOVE)\&. It seems that assigning the key sequence for that character is convenient\&. So, he will add this rule in \fCtoupper\fP\&.
.PP
.PP
.nf
("ii" "İ")
.fi
.PP
.PP
However, we already have the following rule:
.PP
.PP
.nf
("i" "I")
.fi
.PP
.PP
What will happen when a key event is sent to the input method?
.PP
No problem\&. When the input method receives , it inserts 'I' in the preedit buffer\&. It knows that there is another rule that may match the additional key event \&. So, after inserting 'I', it suspends the normal behavior of shifting to the initial condition, and waits for another key\&. Thus, the user sees 'I' with underline, which indicates it is not yet committed\&.
.PP
When the input method receives the next , it cancels the effects done by the rule for the previous 'i' (in this case, the preedit buffer is cleared), and executes MAP\-ACTIONs of the rule for 'ii'\&. So, 'İ' is inserted in the preedit buffer\&. This time, as there are no other rules that match with an additional key, it shifts to the initial condition of the current state, which leads to commit 'İ'\&.
.PP
Then, what will happen when the next key event is instead of ?
.PP
No problem, either\&.
.PP
The input method knows that there are no rules that match the key sequence\&. So, when it receives the next , it executes the suspended behavior (i\&.e\&. shifting to the initial condition), which leads to commit 'I'\&. Then the input method tries to handle in the current state, which leads to commit 'A'\&.
.PP
So far, we have explained MAP\-ACTION, but not BRANCH\-ACTION\&. The format of BRANCH\-ACTION is the same as that of MAP\-ACTION\&. It is executed only after a matching rule has been determined and the corresponding MAP\-ACTIONs have been executed\&. A typical use of BRANCH\-ACTION is to shift to a different state\&.
.PP
To see this effect, let us modify the current input method to upcase only word\-initial letters (i\&.e\&. to capitalize)\&. For that purpose, we modify the 'init' state as this:
.PP
.PP
.nf
(init
(toupper (shift non\-upcase)))
.fi
.PP
.PP
Here \fC(shift non\-upcase)\fP is an action to shift to the new state \fCnon\-upcase\fP, which has two branches as below:
.PP
.PP
.nf
(non\-upcase
(lower)
(nil (shift init)))
.fi
.PP
.PP
The first branch is simple\&. We can define the new map \fClower\fP as the following to insert lowercase letters as they are\&.
.PP
.PP
.nf
(map
...
(lower ("a" "a") ("b" "b") ("c" "c") ("d" "d") ("e" "e")
("f" "f") ("g" "g") ("h" "h") ("i" "i") ("j" "j")
("k" "k") ("l" "l") ("m" "m") ("n" "n") ("o" "o")
("p" "p") ("q" "q") ("r" "r") ("s" "s") ("t" "t")
("u" "u") ("v" "v") ("w" "w") ("x" "x") ("y" "y")
("z" "z")))
.fi
.PP
.PP
The second branch has a special meaning\&. The map name \fCnil\fP means that it matches with any key event that does not match any rules in the other maps in the current state\&. In addition, it does not consume any key event\&. We will show the full code of the new input method before explaining how it works\&.
.PP
.PP
.nf
(input\-method en titlecase)
(description (_ "Titlecase letters"))
(title "abc\->Abc")
(map
(toupper ("a" "A") ("b" "B") ("c" "C") ("d" "D") ("e" "E")
("f" "F") ("g" "G") ("h" "H") ("i" "I") ("j" "J")
("k" "K") ("l" "L") ("m" "M") ("n" "N") ("o" "O")
("p" "P") ("q" "Q") ("r" "R") ("s" "S") ("t" "T")
("u" "U") ("v" "V") ("w" "W") ("x" "X") ("y" "Y")
("z" "Z") ("ii" "İ"))
(lower ("a" "a") ("b" "b") ("c" "c") ("d" "d") ("e" "e")
("f" "f") ("g" "g") ("h" "h") ("i" "i") ("j" "j")
("k" "k") ("l" "l") ("m" "m") ("n" "n") ("o" "o")
("p" "p") ("q" "q") ("r" "r") ("s" "s") ("t" "t")
("u" "u") ("v" "v") ("w" "w") ("x" "x") ("y" "y")
("z" "z")))
(state
(init
(toupper (shift non\-upcase)))
(non\-upcase
(lower (commit))
(nil (shift init))))
.fi
.PP
.PP
Let's see what happens when the user types the key sequence < >\&. Upon , 'A' is inserted into the buffer and the state shifts to \fCnon\-upcase\fP\&. So, the next is handled in the \fCnon\-upcase\fP state\&. As it matches a rule in the map \fClower\fP, 'b' is inserted in the preedit buffer and characters in the buffer ('Ab') are committed explicitly by the 'commit' command in BRANCH\-ACTION\&. After that, the input method is still in the \fCnon\-upcase\fP state\&. So the next < > is also handled in \fCnon\-upcase\fP\&. For this time, no rule in this state matches it\&. Thus the branch \fC(nil (shift init))\fP is selected and the state is shifted to \fCinit\fP\&. Please note that < > is not yet handled because the map \fCnil\fP does not consume any key event\&. So, the input method tries to handle it in the \fCinit\fP state\&. Again no rule matches it\&. Therefore, that event is given back to the application program, which usually inserts a space for that\&.
.PP
When you type 'a quick blown fox' with this input method, you get 'A
Quick Blown Fox'\&. OK, you find a typo in 'blown', which should be 'brown'\&. To correct it, you probably move the cursor after 'l' and type and \&. However, if the current input method is still active, a capital 'R' is inserted\&. It is not a sophisticated behavior\&.
.SH "Example of utilizing surrounding text support"
.PP
To make the input method work well also in such a case, we must use 'surrounding text support'\&. It is a way to check characters around the inputting spot and delete them if necessary\&. Note that this facility is available only with Gtk+ applications and Qt applications\&. You cannot use it with applications that use XIM to communicate with an input method\&.
.PP
Before explaining how to utilize 'surrounding text support', you must understand how to use variables, arithmetic comparisons, and conditional actions\&.
.PP
At first, any symbol (except for several preserved ones) used as ARG of an action is treated as a variable\&. For instance, the commands
.PP
.PP
.nf
(set X 32) (insert X)
.fi
.PP
.PP
set the variable \fCX\fP to integer value 32, then insert a character whose Unicode character code is 32 (i\&.e\&. SPACE)\&.
.PP
The second argument of the \fCset\fP action can be an expression of this form:
.PP
.PP
.nf
(OPERATOR ARG1 [ARG2])
.fi
.PP
.PP
Both ARG1 and ARG2 can be an expression\&. So,
.PP
.PP
.nf
(set X (+ (* Y 32) Z))
.fi
.PP
.PP
sets \fCX\fP to the value of \fCY * 32 + Z\fP\&.
.PP
We have the following arithmetic/bitwise OPERATORs (require two arguments):
.PP
.PP
.nf
+ \- * / & |
.fi
.PP
.PP
these relational OPERATORs (require two arguments):
.PP
.PP
.nf
== <= >= < >
.fi
.PP
.PP
and this logical OPERATOR (requires one argument):
.PP
.PP
.nf
!
.fi
.PP
.PP
For surrounding text support, we have these preserved variables:
.PP
.PP
.nf
@\-0, @\-N, @+N (N is a positive integer)
.fi
.PP
.PP
The values of them are predefined as below and can not be altered\&.
.PP
.PD 0
.IP "\(bu" 2
\fC\-0\fP
.PP
\-1 if surrounding text is supported, \-2 if not\&.
.PP
.IP "\(bu" 2
\fC\-N\fP
.PP
The Nth previous character in the preedit buffer\&. If there are only M (MAbc")
(map
(toupper ("a" "A") ("b" "B") ("c" "C") ("d" "D") ("e" "E")
("f" "F") ("g" "G") ("h" "H") ("i" "I") ("j" "J")
("k" "K") ("l" "L") ("m" "M") ("n" "N") ("o" "O")
("p" "P") ("q" "Q") ("r" "R") ("s" "S") ("t" "T")
("u" "U") ("v" "V") ("w" "W") ("x" "X") ("y" "Y")
("z" "Z") ("ii" "İ")))
(state
(init
(toupper
;; Now we have exactly one uppercase character in the preedit
;; buffer. So, "@\-2" is the character just before the inputting
;; spot.
(cond ((| (& (>= @\-2 ?A) (<= @\-2 ?Z))
(& (>= @\-2 ?a) (<= @\-2 ?z))
(= @\-2 ?İ))
;; If the character before the inputting spot is A..Z,
;; a..z, or İ, remember the only character in the preedit
;; buffer in the variable X and delete it.
(set X @\-1) (delete @\-)
;; Then insert the lowercase version of X.
(cond ((= X ?İ) "i")
(1 (set X (+ X 32)) (insert X))))))))
.fi
.PP
.PP
The above example contains the new action \fCdelete\fP\&. So, it is time to explain more about the preedit buffer\&. The preedit buffer is a temporary place to store a sequence of characters\&. In this buffer, the input method keeps a position called the 'current position'\&. The current position exists between two characters, at the beginning of the buffer, or at the end of the buffer\&. The \fCinsert\fP action inserts characters before the current position\&. For instance, when your preedit buffer contains 'ab\&.c' ('\&.' indicates the current position),
.PP
.PP
.nf
(insert "xyz")
.fi
.PP
.PP
changes the buffer to 'abxyz\&.c'\&.
.PP
There are several predefined variables that represent a specific position in the preedit buffer\&. They are:
.PP
.PD 0
.IP "\(bu" 2
\fC@<, @=, @>\fP
.PP
The first, current, and last positions\&.
.PP
.IP "\(bu" 2
\fC@\-, @+\fP
.PP
The previous and the next positions\&.
.PP
.PP
The format of the \fCdelete\fP action is this:
.PP
.PP
.nf
(delete POS)
.fi
.PP
.PP
where POS is a predefined positional variable\&. The above action deletes the characters between POS and the current position\&. So, \fC(delete \-)\fP deletes one character before the current position\&. The other examples of \fCdelete\fP include the followings:
.PP
.PP
.nf
(delete @+) ; delete the next character
(delete @<) ; delete all the preceding characters in the buffer
(delete @>) ; delete all the following characters in the buffer
.fi
.PP
.PP
You can change the current position using the \fCmove\fP action as below:
.PP
.PP
.nf
(move @\-) ; move the current position to the position before the
previous character
(move @<) ; move to the first position
.fi
.PP
.PP
Other positional variables work similarly\&.
.PP
Let's see how our new example works\&. Whatever a key event is, the input method is in its only state, \fCinit\fP\&. Since an event of a lower letter key is firstly handled by MAP\-ACTIONs, every key is changed into the corresponding uppercase and put into the preedit buffer\&. Now this character can be accessed with \fC\-1\fP\&.
.PP
How can we tell whether the new character should be a lowercase or an uppercase? We can do so by checking the character before it, i\&.e\&. \fC\-2\fP\&. BRANCH\-ACTIONs in the \fCinit\fP state do the job\&.
.PP
It first checks if the character \fC\-2\fP is between A to Z, between a to z, or İ by the conditional below\&.
.PP
.PP
.nf
(cond ((| (& (>= @\-2 ?A) (<= @\-2 ?Z))
(& (>= @\-2 ?a) (<= @\-2 ?z))
(= @\-2 ?İ))
.fi
.PP
.PP
If not, there is nothing to do specially\&. If so, our new key should be changed back into lowercase\&. Since the uppercase character is already in the preedit buffer, we retrieve and remember it in the variable \fCX\fP by
.PP
.PP
.nf
(set X @\-1)
.fi
.PP
.PP
and then delete that character by
.PP
.PP
.nf
(delete @\-)
.fi
.PP
.PP
Lastly we re\-insert the character in its lowercase form\&. The problem here is that 'İ' must be changed into 'i', so we need another conditional\&. The first branch
.PP
.PP
.nf
((= X ?İ) "i")
.fi
.PP
.PP
means that 'if the character remembered in X is 'İ', 'i' is inserted'\&.
.PP
The second branch
.PP
.PP
.nf
(1 (set X (+ X 32)) (insert X))
.fi
.PP
.PP
starts with '1', which is always resolved into nonzero, so this branch is a catchall\&. Actions in this branch increase \fCX\fP by 32, then insert \fCX\fP\&. In other words, they change A\&.\&.\&.Z into a\&.\&.\&.z respectively and insert the resulting lowercase character into the preedit buffer\&. As the input method reaches the end of the BRANCH\-ACTIONs, the character is committed\&.
.PP
This new input method always checks the character before the current position, so 'A Quick Blown Fox' will be successfully fixed to 'A
Quick Brown Fox' by the key sequence \&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbCodingList.5 0000664 0001750 0001750 00000003332 14504322001 014372 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbCodingList" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbCodingList \- List of coding system definitions
.SH "DESCRIPTION"
.PP
The m17n library loads a list of coding system definitions from the m17n database by the tags at initialization time\&. The data is loaded as a plist of this format\&.
.PP
.PP
.nf
CODING\-LIST ::= DEFINITION *
DEFINITION ::= '(' NAME ( KEY VALUE ) * ')'
NAME ::= SYMBOL
KEY ::= SYMBOL
VALUE ::= SYMBOL | INTEGER | MTEXT | PLIST
.fi
.PP
.PP
\fCNAME\fP is a name of a coding system to define\&.
.PP
\fCKEY\fP and \fCVALUE\fP pair is a property given to the function mconv_define_coding() as the second argument\&.
.SH "SEE ALSO"
.PP
\fBmdbGeneral(5)\fP, mconv_define_coding()
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbIM.5 0000664 0001750 0001750 00000052723 14504322001 012650 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbIM" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbIM \- Input Method
.SH "DESCRIPTION"
.PP
The m17n library provides a driver for input methods that are dynamically loadable from the m17n database (see \fBm17nInputMethod\fP )\&.
.PP
This section describes the data format that defines those input methods\&.
.SH "SYNTAX and SEMANTICS"
.PP
The following data format defines an input method\&. The driver loads a definition from a file, a stream, etc\&. The definition is converted into the form of plist in the driver\&.
.PP
.PP
.nf
INPUT\-METHOD ::=
IM\-DECLARATION ? IM\-DESCRIPTION ? TITLE ?
VARIABLE\-LIST ? COMMAND\-LIST ? MODULE\-LIST ?
MACRO\-LIST ? MAP\-LIST ? STATE\-LIST ?
IM\-DECLARATION ::= '(' 'input\-method' LANGUAGE NAME EXTRA\-ID ? VERSION ? ')'
LANGUAGE ::= SYMBOL
NAME ::= SYMBOL
EXTRA\-ID ::= SYMBOL
VERSION ::= '(' 'version' VERSION\-NUMBER ')'
IM\-DESCRIPTION ::= '(' 'description' DESCRIPTION ')'
DESCRIPTION ::= MTEXT\-OR\-GETTEXT | 'nil'
MTEXT\-OR\-GETTEXT ::= [ MTEXT | '(' '_' MTEXT ')']
TITLE ::= '(' 'title' TITLE\-TEXT ')'
TITLE\-TEXT ::= MTEXT
VARIABLE\-LIST ::= '(' 'variable' VARIABLE\-DECLARATION * ')'
VARIABLE\-DECLARATION ::= '(' VAR\-NAME [ DESCRIPTION VALUE VALUE\-CANDIDATE * ]')'
VAR\-NAME ::= SYMBOL
VALUE ::= MTEXT | SYMBOL | INTEGER
VALUE\-CANDIDATE ::= VALUE | '(' RANGE\-FROM RANGE\-TO ')'
RANGE\-FROM ::= INTEGER
RANGE\-TO ::= INTEGER
COMMAND\-LIST ::= '(' 'command' COMMAND\-DECLARATION * ')'
COMMAND\-DECLARATION ::= '(' CMD\-NAME [ DESCRIPTION KEYSEQ * ] ')'
CMD\-NAME ::= SYMBOL.fi
.PP
.PP
\fCIM\-DECLARATION\fP specifies the language and name of this input method\&.
.br
.PP
When \fCLANGUAGE\fP is \fCt\fP, the use of the input method is not limited to one language\&.
.PP
When \fCNAME\fP is \fCnil\fP, the input method is not standalone, but is expected to be used in other input methods\&. In such cases, \fCEXTRA\-ID\fP is required to identify the input method\&.
.PP
\fCVERSION\fP specifies the required minimum version number of the m17n library\&. The format is 'XX\&.YY\&.ZZ' where XX is a major version number, YY is a minor version number, and ZZ is a patch level\&.
.PP
\fCDESCRIPTION\fP, if not nil, specifies the description text of an input method, a variable or a command\&. If \fCMTEXT\-OR\-GETTEXT\fP takes the second form, the text is translated according to the current locale by 'gettext' (if the translation is provided)\&.
.PP
\fCTITLE\-TEXT\fP is a text displayed on the screen when this input method is active\&.
.PP
There is one special input method file 'global\&.mim' that declares common variables and commands\&. The input method driver always loads this file and other input methods can inherit the variables and the commands\&.
.PP
\fCVARIABLE\-DECLARATION\fP declares a variable used in this input method\&. If a variable must be initialized to the default value, or is to be customized by a user, it must be declared here\&. The declaration can be used in two ways\&. One is to introduce a new variable\&. In that case, \fCVALUE\fP must not be omitted\&. Another is to inherit the variable from what declared in 'global\&.mim', and to give the different default value and/or to make the variable customizable specially for the current input method\&. In the latter case, \fCVALUE\fP can be omitted\&.
.PP
\fCCOMMAND\-DECLARATION\fP declares a command used in this input method\&. If a command must be bound to the default key sequence, or is to be customized by a user, it must be declared here\&. Like \fCVARIABLE\-DECLARATION\fP, the declaration can be used in two ways\&. One is to introduce a new command\&. In that case, \fCKEYSEQ\fP must not be omitted\&. Another is to inherit the command from what declared in 'global\&.mim', and to give the different key binding and/or to make the command customizable specially for the current input method\&. In the latter case, \fCKEYSEQ\fP can be omitted\&.
.PP
.PP
.nf
MODULE\-LIST ::= '(' 'module' MODULE * ')'
MODULE ::= '(' MODULE\-NAME FUNCTION * ')'
MODULE\-NAME ::= SYMBOL
FUNCTION ::= SYMBOL
.fi
.PP
.PP
Each \fCMODULE\fP declares the name of an external module (i\&.e\&. dynamic library) and function names exported by the module\&. If a \fCFUNCTION\fP has name 'init', it is called with only the default arguments (see the section about \fCCALL\fP) when an input context is created for the input method\&. If a \fCFUNCTION\fP has name 'fini', it is called with only the default arguments when an input context is destroyed\&.
.PP
.PP
.nf
MACRO\-LIST ::= MACRO\-INCLUSION ? '(' 'macro' MACRO * ')' MACRO\-INCLUSION ?
MACRO ::= '(' MACRO\-NAME MACRO\-ACTION * ')'
MACRO\-NAME ::= SYMBOL
MACRO\-ACTION ::= ACTION
TAGS ::= `(` LANGUAGE NAME EXTRA\-ID ? `)`
MACRO\-INCLUSION ::= '(' 'include' TAGS 'macro' MACRO\-NAME ? ')'.fi
.PP
.PP
\fCMACRO\-INCLUSION\fP includes macros from another input method specified by \fCTAGS\fP\&. When \fCMACRO\-NAME\fP is not given, all macros from the input method are included\&.
.PP
.PP
.nf
MAP\-LIST ::= MAP\-INCLUSION ? '(' 'map' MAP * ')'
MAP\-INCLUSION ?
MAP ::= '(' MAP\-NAME RULE * ')'
MAP\-NAME ::= SYMBOL
RULE ::= '(' KEYSEQ MAP\-ACTION * ')'
KEYSEQ ::= MTEXT | '(' [ SYMBOL | INTEGER ] * ')'
MAP\-INCLUSION ::= '(' 'include' TAGS 'map' MAP\-NAME ? ')'.fi
.PP
.PP
When an input method is never standalone and always included in another method, \fCMAP\-LIST\fP can be omitted\&.
.PP
\fCSYMBOL\fP in the definitions of \fCMAP\-NAME\fP must not be \fCt\fP nor \fCnil\fP\&.
.PP
\fCMTEXT\fP in the definition of \fCKEYSEQ\fP consists of characters that can be generated by a keyboard\&. Therefore \fCMTEXT\fP usually contains only ASCII characters\&. However, if the input method is intended to be used, for instance, with a West European keyboard, \fCMTEXT\fP may contain Latin\-1 characters\&.
.PP
\fCSYMBOL\fP in the definition of \fCKEYSEQ\fP must be the return value of the minput_event_to_key() function\&. Under the X window system, you can quickly check the value using the \fCxev\fP command\&. For example, the return key, the backspace key, and the 0 key on the keypad are represented as \fC\fP(Return) , \fC\fP(BackSpace) , and \fC\fP(KP_0) respectively\&. If the shift, control, meta, alt, super, and hyper modifiers are used, they are represented by the S\- , C\- , M\- , A\- , s\- , and H\- prefixes respectively in this order\&. Thus, 'return with
shift with meta with hyper' is \fC\fP(S\-M\-H\-Return) \&. Note that 'a with
shift' \&.\&. 'z with shift' are represented simply as A \&.\&. Z \&. Thus 'a
with shift with meta with hyper' is \fC\fP(M\-H\-A) \&.
.PP
\fCINTEGER\fP in the definition of \fCKEYSEQ\fP must be a valid character code\&.
.PP
\fCMAP\-INCLUSION\fP includes maps from another input method specified by \fCTAGS\fP\&. When \fCMAP\-NAME\fP is not given, all maps from the input method are included\&.
.PP
.PP
.nf
MAP\-ACTION ::= ACTION
ACTION ::= INSERT | DELETE | SELECT | MOVE | MARK
| SHOW | HIDE | PUSHBACK | POP | UNDO
| COMMIT | UNHANDLE | SHIFT | CALL
| SET | IF | COND | '(' MACRO\-NAME ')'
PREDEFINED\-SYMBOL ::=
'@0' | '@1' | '@2' | '@3' | '@4'
| '@5' | '@6' | '@7' | '@8' | '@9'
| '@<' | '@=' | '@>' | '@\-' | '@+' | '@[' | '@]'
| '@@'
| '@\-0' | '@\-N' | '@+N'
.fi
.PP
.PP
.PP
.nf
STATE\-LIST ::= STATE\-INCUSION ? '(' 'state' STATE * ')' STATE\-INCUSION ?
STATE ::= '(' STATE\-NAME [ STATE\-TITLE\-TEXT ] BRANCH * ')'
STATE\-NAME ::= SYMBOL
STATE\-TITLE\-TEXT ::= MTEXT
BRANCH ::= '(' MAP\-NAME BRANCH\-ACTION * ')'
| '(' 'nil' BRANCH\-ACTION * ')'
| '(' 't' BRANCH\-ACTION * ')'
STATE\-INCLUSION ::= '(' 'include' TAGS 'state' STATE\-NAME ? ')'.fi
.PP
.PP
When an input system is never standalone and always included in another system, \fCSTATE\-LIST\fP can be omitted\&.
.PP
\fCSTATE\-INCLUSION\fP includes states from another input method specified by \fCTAGS\fP\&. When \fCSTATE\-NAME\fP is not given, all states from the input method are included\&.
.PP
The optional \fCSTATE\-TITLE\-TEXT\fP specifies a title text displayed on the screen when the input method is in this state\&. If \fCSTATE\-TITLE\-TEXT\fP is omitted, \fCTITLE\-TEXT\fP is used\&.
.PP
In the first form of \fCBRANCH\fP, \fCMAP\-NAME\fP must be an item that appears in \fCMAP\fP\&. In this case, if a key sequence matching one of \fCKEYSEQs\fP of \fCMAP\-NAME\fP is typed, \fCBRANCH\-ACTIONs\fP are executed\&.
.PP
In the second form of \fCBRANCH\fP, \fCBRANCH\-ACTIONs\fP are executed if a key sequence that doesn't match any of \fCBranch's\fP of the current state is typed\&.
.PP
If there is no \fCBRANCH\fP beginning with \fCnil\fP and the typed key sequence does not match any of the current \fCBRANCHs\fP, the input method transits to the initial state\&.
.PP
In the third form of \fCBRANCH\fP, \fCBRANCH\-ACTIONs\fP are executed when shifted to the current state\&. If the current state is the initial state, \fCBRANCH\-ACTIONs\fP are executed also when an input context of the input method is created\&.
.PP
.PP
.nf
BRANCH\-ACTION ::= ACTION
.fi
.PP
.PP
An input method has the following two lists of symbols\&.
.PP
.PD 0
.IP "\(bu" 2
marker list
.PP
A marker is a symbol indicating a character position in the preediting text\&. The \fCMARK\fP action assigns a position to a marker\&. The position of a marker is referred by the \fCMOVE\fP and the \fCDELETE\fP actions\&.
.PP
.IP "\(bu" 2
variable list
.PP
A variable is a symbol associated with an integer, a symbol, or an M\-text value\&. The integer value of a variable can be set and referred by the \fCSET\fP action\&. It can be referred by the \fCSET\fP, the \fCINSERT\fP, the \fCSELECT\fP, the \fCUNDO\fP, the \fCIF\fP, the \fCCOND\fP actions\&. The M\-text value of a variable can be referred by the \fCINSERT\fP action\&. The symbol value of a variable can not be referred directly, is used the library implicitly (e\&.g\&. candidates\-charset)\&. All variables are implicitly initialized to the integer value zero\&.
.PP
.PP
.PP
Each \fCPREDEFINED\-SYMBOL\fP has a special meaning when used as a marker\&.
.PP
.PD 0
.IP "\(bu" 2
\fC@0\fP, \fC@1\fP, \fC@2\fP, \fC@3\fP, \fC@4\fP, \fC@5\fP, \fC@6\fP, \fC@7\fP, \fC@8\fP, \fC@9\fP
.PP
The 0th, 1st, 2nd, \&.\&.\&. 9th position respectively\&.
.PP
.IP "\(bu" 2
\fC@<\fP, \fC@=\fP, \fC@>\fP
.PP
The first, the current, and the last position\&.
.PP
.IP "\(bu" 2
\fC@\-\fP, \fC@+\fP
.PP
The previous and the next position\&.
.PP
.IP "\(bu" 2
\fC@\fP[, \fC@\fP]
.PP
The previous and the next position where a candidate list changes\&.
.PP
.PP
Some of the \fCPREDEFINED\-SYMBOL\fP has a special meaning when used as a candidate index in the \fCSELECT\fP action\&.
.PP
.PD 0
.IP "\(bu" 2
\fC@<\fP, \fC@=\fP, \fC@>\fP
.PP
The first, the current, and the last candidate of the current candidate group\&.
.PP
.IP "\(bu" 2
\fC@\-\fP
.PP
The previous candidate\&. If the current candidate is the first one in the current candidate group, then it means the last candidate in the previous candidate group\&.
.PP
.IP "\(bu" 2
\fC@+\fP
.PP
The next candidate\&. If the current candidate is the last one in the current candidate group, then it means the first candidate in the next candidate group\&.
.PP
.IP "\(bu" 2
\fC@\fP[, \fC@\fP]
.PP
The candidate in the previous and the next candidate group having the same candidate index as the current one\&.
.PP
.PP
And, this also has a special meaning\&.
.PP
.PD 0
.IP "\(bu" 2
\fC@@\fP
.PP
Number of handled keys at that moment\&.
.PP
.PP
.PP
These are for supporting surround text handling\&.
.PP
.PD 0
.IP "\(bu" 2
\fC@\-0\fP
.PP
\-1 if surrounding text is supported, \-2 if not\&.
.PP
.IP "\(bu" 2
\fC@\-N\fP
.PP
Here, \fCN\fP is a positive integer\&. The value is the Nth previous character in the preedit buffer\&. If there are only M (M' | '<=' | '>='.fi
.PP
.PP
This action treats \fCSYMBOL1\fP and \fCSYMBOL2\fP as variables and sets the value of \fCSYMBOL1\fP as below\&.
.PP
If \fCCMD\fP is 'set', it sets the value of \fCSYMBOL1\fP to the value of \fCEXPRESSION\fP\&.
.PP
If \fCCMD\fP is 'add', it increments the value of \fCSYMBOL1\fP by the value of \fCEXPRESSION\fP\&.
.PP
If \fCCMD\fP is 'sub', it decrements the value of \fCSYMBOL1\fP by the value of \fCEXPRESSION\fP\&.
.PP
If \fCCMD\fP is 'mul', it multiplies the value of \fCSYMBOL1\fP by the value of \fCEXPRESSION\fP\&.
.PP
If \fCCMD\fP is 'div', it divides the value of \fCSYMBOL1\fP by the value of \fCEXPRESSION\fP\&.
.PP
.PP
.nf
IF ::= '(' CONDITION ACTION\-LIST1 ACTION\-LIST2 ? ')'
CONDITION ::= [ '=' | '<' | '>' | '<=' | '>=' ] EXPRESSION1 EXPRESSION2
ACTION\-LIST1 ::= '(' ACTION * ')'
ACTION\-LIST2 ::= '(' ACTION * ')'
.fi
.PP
.PP
This action performs actions in \fCACTION\-LIST1\fP if \fCCONDITION\fP is true, and performs \fCACTION\-LIST2\fP (if any) otherwise\&.
.PP
.PP
.nf
COND ::= '(' 'cond' [ '(' EXPRESSION ACTION * ') ] * ')'
.fi
.PP
.PP
This action performs the first action \fCACTION\fP whose corresponding \fCEXPRESSION\fP has nonzero value\&.
.SH "EXAMPLE 1"
.PP
This is a very simple example for inputting Latin characters with diacritical marks (acute and cedilla)\&. For instance, when you type:
.PP
.nf
Comme'die\-Franc,aise, chic,,
.fi
.PP
you will get this:
.PP
The definition of the input method is very simple as below, and it is quite straight forward to extend it to cover all Latin characters\&.
.SH "EXAMPLE 2"
.PP
This example is for inputting Unicode characters by typing C\-u (Control\-u) followed by four hexadecimal digits\&. For instance, when you type ('^u' means Control\-u):
.PP
.nf
^u2190^u2191^u2192^u2193
.fi
.PP
you will get this (Unicode arrow symbols):
.PP
The definition utilizes \fCSET\fP and \fCIF\fP commands as below:
.PP
.nf
(title "UNICODE")
(map
(starter
((C\-U) "U+"))
(hex
("0" ?0) ("1" ?1) ... ("9" ?9) ("a" ?A) ("b" ?B) ... ("f" ?F)))
(state
(init
(starter (set code 0) (set count 0) (shift unicode)))
(unicode
(hex (set this @\-)
(< this ?A
((sub this 48))
((sub this 55)))
(mul code 16) (add code this)
(add count 1)
(= count 4
((delete @<) (insert code) (shift init))))))
.fi
.PP
.SH "EXAMPLE 3"
.PP
This example is for inputting Chinese characters by typing PinYin key sequence\&.
.SH "SEE ALSO"
.PP
\fBInput Methods provided by the m17n database\fP, \fBmdbGeneral(5)\fP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbGeneral.5 0000664 0001750 0001750 00000014057 14504322001 013716 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbGeneral" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbGeneral \- General Format
.SH "DESCRIPTION"
.PP
The mdatabase_load() function returns the data specified by tags in the form of plist if the first tag is not \fCMchartable\fP nor \fCMcharset\fP\&. The keys of the returned plist are limited to \fCMinteger\fP, \fCMsymbol\fP, \fCMtext\fP, and \fCMplist\fP\&. The type of the value is unambiguously determined by the corresponding key\&. If the key is \fCMinteger\fP, the value is an integer\&. If the key is \fCMsymbol\fP, the value is a symbol\&. And so on\&.
.PP
A number of expressions are possible to represent a plist\&. For instance, we can use the form \fC(K1:V1, K2:V2, \&.\&.\&., Kn:Vn)\fP to represent a plist whose first property key and value are K1 and V1, second key and value are K2 and V2, and so on\&. However, we can use a simpler expression here because the types of plists used in the m17n database are fairly restricted\&.
.PP
Hereafter, we use an expression, which is similar to S\-expression, to represent a plist\&. (Actually, the default database loader of the m17n library is designed to read data files written in this expression\&.)
.PP
The expression consists of one or more \fIelements\fP\&. Each element represents a property, i\&.e\&. a single element of a plist\&.
.PP
Elements are separated by one or more \fIwhitespaces\fP, i\&.e\&. a space (code 32), a tab (code 9), or a newline (code 10)\&. Comments begin with a semicolon (\fC;\fP) and extend to the end of the line\&.
.PP
The key and the value of each property are determined based on the type of the element as explained below\&.
.PP
.PD 0
.IP "\(bu" 2
INTEGER
.PP
An element that matches the regular expression \fC\-?[0\-9]+\fP or \fC0[xX][0\-9A\-Fa\-f]+\fP represents a property whose key is \fCMinteger\fP\&. An element matching the former expression is interpreted as an integer in decimal notation, and one matching the latter is interpreted as an integer in hexadecimal notation\&. The value of the property is the result of interpretation\&.
.PP
For instance, the element \fC0xA0\fP represents a property whose value is 160 in decimal\&.
.PP
.IP "\(bu" 2
SYMBOL
.PP
An element that matches the regular expression \fC[^\-(0\-9]\fP\fC([^\\()]|\\\&.)+\fP represents a property whose key is \fC Msymbol\fP\&. In the element, \fC\\t\fP, \fC\\n\fP, \fC\\r\fP, and \fC\\e\fP are replaced with tab (code 9), newline (code 10), carriage return (code 13), and escape (code 27) respectively\&. Other characters following a backslash is interpreted as it is\&. The value of the property is the symbol having the resulting string as its name\&.
.PP
For instance, the element \fCabc\\ def\fP represents a property whose value is the symbol having the name 'abc def'\&.
.PP
.IP "\(bu" 2
MTEXT
.PP
An element that matches the regular expression \fC'([^']|\\')*'\fP represents a property whose key is \fCMtext\fP\&. The backslash escape explained above also applies here\&. r, each part in the element matching the regular expression \fC \\[xX][0\-9A\-Fa\-f][0\-9A\-Fa\-f]\fP is replaced with its hexadecimal interpretation\&.
.PP
After having resolved the backslash escapes, the byte sequence between the double quotes is interpreted as a UTF\-8 sequence and decoded into an M\-text\&. This M\-text is the value of the property\&.
.PP
.IP "\(bu" 2
PLIST
.PP
Zero or more elements surrounded by a pair of parentheses represent a property whose key is \fCMplist\fP\&. Whitespaces before and after a parenthesis can be omitted\&. The value of the property is a plist, which is the result of recursive interpretation of the elements between the parentheses\&.
.PP
.PP
.SH "SYNTAX NOTATION"
.PP
In an explanation of a plist format of data, a BNF\-like notation is used\&. In the notation, non\-terminals are represented by a string of uppercase letters (including '\-' in the middle), terminals are represented by a string surrounded by '''\&. Special non\-terminals INTEGER, SYMBOL, MTEXT and PLIST represents property integer, symbol, M\-text, or plist respectively\&.
.SH "EXAMPLE"
.PP
Here is an example of database data that is read into a plist of this simple format:
.PP
.PP
.nf
DATA\-FORMAT ::=
[ INTEGER | SYMBOL | MTEXT | FUNC ] *
FUNC ::=
'(' FUNC\-NAME FUNC\-ARG * ')'
FUNC\-NAME ::=
SYMBOL
FUNC\-ARG ::=
INTEGER | SYMBOL | MTEXT | '(' FUNC\-ARG ')'
.fi
.PP
.PP
For instance, a data file that contains this text matches the above syntax:
.PP
.PP
.nf
abc 123 (pqr 0xff) "m\"text" (_\\_ ("string" xyz) \-456)
.fi
.PP
.PP
and is read into this plist:
.PP
.PP
.nf
1st element: key: Msymbol, value: abc
2nd element: key: Minteger, value: 123
3rd element: key: Mplist, value: a plist of these elements:
1st element: key Msymbol, value: pgr
2nd element: key Minteger, value: 255
4th element: key: Mtext, value: m"text
5th element: key: Mplist, value: a plist of these elements:
1st element: key: Msymbol, value: _\_
2nd element: key: Mplist, value: a plist of these elements:
1st element: key: Mtext, value: string
2nd element: key: Msymbol, value: xyz
3rd element: key: Minteger, value: \-456
.fi
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbCharsetList.5 0000664 0001750 0001750 00000003312 14504322001 014556 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbCharsetList" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbCharsetList \- List of character set definitions
.SH "DESCRIPTION"
.PP
The m17n library loads a list of charset definitions from the data of tag \&. The data is loaded as a plist of this format\&.
.PP
.PP
.nf
CHARSET\-LIST ::= DEFINITION *
DEFINITION ::= '(' NAME ( KEY VALUE ) * ')'
NAME ::= SYMBOL
KEY ::= SYMBOL
VALUE ::= SYMBOL | INTEGER | MTEXT | PLIST
.fi
.PP
.PP
\fCNAME\fP is a name of a charset to define\&.
.PP
\fCKEY\fP and \fCVALUE\fP pair is a property given to the function mchar_define_charset() as an element of the second argument \fBplist\fP\&.
.SH "SEE ALSO"
.PP
\fBmdbGeneral(5)\fP, mchar_define_charset()
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/_home_mfabian_m17n_m17n-db_.5 0000664 0001750 0001750 00000002313 14504322001 016640 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n-db Directory Reference" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n\-db Directory Reference
.SH SYNOPSIS
.br
.PP
.SS "Directories"
.in +1c
.ti -1c
.RI "directory \fBFORMATS\fP"
.br
.in -1c
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbFontset.5 0000664 0001750 0001750 00000007120 14504322001 013754 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbFontset" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbFontset \- Fontset
.SH "DESCRIPTION"
.PP
The m17n library loads a fontset definition from the m17n database by the tags \&. The plist format of the data is as follows:
.PP
.PP
.nf
FONTSET ::= PER\-SCRIPT * PER\-CHARSET * FALLBACK *
PER\-SCRIPT ::= '(' SCRIPT PER\-LANGUAGE + ')'
PER\-LANGUAGE ::= '(' LANGUAGE FONT\-SPEC\-ELEMENT + ')'
PER\-CHARSET ::= '(' CHARSET FONT\-SPEC\-ELEMENT + ')'
FALLBACK ::= FONT\-SPEC\-ELEMENT
FONT\-SPEC\-ELEMENT ::= '(' FONT\-SPEC [ FLT\-NAME ] ')'
FONT\-SPEC ::=
'(' [ FOUNDRY FAMILY
[ WEIGHT [ STYLE [ STRETCH [ ADSTYLE ]]]]]
REGISTRY
[ OTF\-SPEC ] [ LANG\-SPEC ] ')'
.fi
.PP
.PP
\fCSCRIPT\fP is a symbol of script name (e\&.g\&. latin, han) or \fCnil\fP\&. \fCLANGUAGE\fP is a two\-letter symbol of language name code defined by ISO 639 (e\&.g\&. ja, zh) or \fCnil\fP\&.
.PP
\fCFONT\-SPEC\fP is to specify properties of a font\&. \fCFOUNDRY\fP to \fCREGISTRY\fP are symbols corresponding to #Mfoundry to #Mregistry property of a font\&. See \fBm17nFont\fP for the meaning of each property\&.
.PP
\fCOTF\-SPEC\fP is a symbol specifyng the required OTF features\&. The symbol name has the following syntax\&.
.PP
.PP
.nf
OTF\-SPEC\-NAME ::= ':otf=' SCRIPT LANGSYS ? GSUB\-FEATURES ? GPOS\-FEATURES ?
SCRIPT ::= SYMBOL
LANGSYS ::= '/' SYMBOL
GSUB\-FEATURES ::= '=' FEATURE\-LIST ?
GPOS\-FEATURES ::= '+' FEATURE\-LIST ?
FEATURE\-LIST ::= '~' ? FEATURE ( ',' '~' ? FEATURE ',' ).fi
.PP
.PP
Here, \fCFEATURE\fP is a four\-letter Open Type feature\&.
.PP
\fCLANG\-SPEC\fP is a symbol specifying the required language support\&. The symbol name has the following syntax\&.
.PP
.PP
.nf
LANG\-SPEC\-NAME ::= ':lang=' LANG
.fi
.PP
.PP
Here, \fCLANG\fP is a two or three\-letter ISO\-639 language code\&.
.PP
\fCFLT\-NAME\fP is a name of Font Layout Table (\fBFont Layout Table\fP)\&.
.SH "EXAMPLE"
.PP
This is an example of \fCPER_SCRIPT\fP\&.
.PP
.PP
.nf
(han
(ja
((jisx0208.1983\-0)))
(zh
((gb2312.1980\-0)))
(nil
((big5\-0))))
.fi
.PP
.PP
It instructs the font selector to use a font of registry 'jisx0208\&.1983\-0' for a 'han' character (i\&.e\&. a character whose #Mscript property is 'han') if the character has #Mlanguage text property 'ja' in an M\-text and the character is in the repertories of such fonts\&. Otherwise, try a font of registry 'gb2312\&.1980\-0' or 'big5\-0'\&. If that 'han' character does not have #Mlanguage text property, try all three fonts\&.
.PP
See the function mdraw_text() for the detail of how a font is selected\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/_home_mfabian_m17n_m17n-db_FORMATS_.5 0000664 0001750 0001750 00000002176 14504322001 020042 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "FORMATS Directory Reference" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
FORMATS Directory Reference
.SH SYNOPSIS
.br
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbDir.5 0000664 0001750 0001750 00000004726 14504322001 013061 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbDir" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbDir \- List of data in a database directory\&.
.SH "DESCRIPTION"
.PP
The m17n library loads a list of definitions of data of the m17n database from files of name 'mdb\&.dir' in each database directory at initialization time\&. The plist format of this file is as follows:
.PP
.PP
.nf
MDB\-DIR ::= DEFINITION *
DEFINITION ::= '(' TAG0 [ TAG1 [ TAG2 [ TAG3 ] ] ] FILE [ VERSION ]')'
TAGn ::= SYMBOL
FILE ::= MTEXT
VERSION ::= MTEXT
.fi
.PP
.PP
If TAG0 is neither `charset' nor `char\-table', and TAGn (n > 0) is a symbol `*', FILE can contain a wildcard charater, and all files matching FILE accoding to the rules used by the shell are the target of database files\&. In that case, each file must contain SELF\-DEFINITION which is a plist element providing the actual TAGn values by the form:
.PP
.PP
.nf
SELF\-DEFINITION ::= '(' TAG0 TAG1 TAG2 TAG3 [ VERSION ] ')'
.fi
.PP
.PP
For instance, if a database directory contains these files:
.PP
.PP
.nf
zh\-py.mim:
(input\-method zh py)
ko\-han2.mim:
(input\-method ko han2)
.fi
.PP
.PP
these lines in 'mdb\&.dir':
.PP
.PP
.nf
(input\-method zh py "zh\-py.mim")
(input\-method ko han2 "ko\-han2.mim")
.fi
.PP
.PP
can be shortened to this single line:
.PP
.PP
.nf
(input\-method * "*.mim")
.fi
.PP
.PP
VERSION is a required version number of the m17n library\&. The format is 'XX\&.YY\&.ZZ' where XX is a major version number, YY is a minor version number, and ZZ is a patch level\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbFontSize.5 0000664 0001750 0001750 00000004506 14504322001 014100 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbFontSize" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbFontSize \- Font Size
.SH "DESCRIPTION"
.PP
In some case, a font contains incorrect information about its size (typically in the case of a hacked TrueType font), which results in a bad text layout when such a font is used in combination with the other fonts\&. To overcome this problem, the m17n library loads information about font\-size adjustment from the m17n database by the tags \&. The data is loaded as a plist of this format\&.
.PP
.PP
.nf
FONT\-SIZE\-ADJUSTMENT ::= PER\-FONT *
PER\-FONT ::= '(' FONT\-SPEC ADJUST\-RATIO ')'
FONT\-SPEC ::=
'(' [ FOUNDRY FAMILY
[ WEIGHT [ STYLE [ STRETCH [ ADSTYLE ]]]]]
REGISTRY ')'
ADJUST\-RATIO ::= INTEGER
.fi
.PP
.PP
\fCFONT\-SPEC\fP is to specify properties of a font\&. \fCFOUNDRY\fP to \fCREGISTRY\fP are symbols corresponding to #Mfoundry to #Mregistry property of a font\&. See \fBm17nFont\fP for the meaning of each property\&.
.PP
\fCADJUST\-RATIO\fP is an integer number specifying by percentage how much the font\-size must be adjusted\&. For instance, this \fCPER\-FONT\fP:
.PP
.PP
.nf
((devanagari\-cdac) 150)
.fi
.PP
.PP
instructs the font handler of the m17n library to open a font of 1\&.5 times bigger than a requested size on opening a font whose registry is 'devanagari\-cdac'\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man5/mdbFLT.5 0000664 0001750 0001750 00000041023 14504322001 012757 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdbFLT" 5 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdbFLT \- Font Layout Table
.SH "DESCRIPTION"
.PP
For simple scripts, the rendering engine converts character codes into glyph codes one by one by consulting the encoding of each selected font\&. But, to render text that requires complicated layout (e\&.g\&. Thai and Indic scripts), one to one conversion is not sufficient\&. A sequence of characters may have to be drawn as a single ligature\&. Some glyphs may have to be drawn at 2\-dimensionally shifted positions\&.
.PP
To handle those complicated scripts, the m17n library uses Font Layout Tables (FLTs for short)\&. The FLT driver interprets an FLT and converts a character sequence into a glyph sequence that is ready to be passed to the rendering engine\&.
.PP
An FLT can contain information to extract a grapheme cluster from a character sequence and to reorder the characters in the cluster, in addition to information found in OpenType Layout Tables (CMAP, GSUB, and GPOS)\&.
.PP
An FLT is a cascade of one or more conversion stages\&. In each stage, a sequence is converted into another sequence to be read in the next stage\&. The length of sequences may differ from stage to stage\&. Each element in a sequence has the following integer attributes\&.
.PP
.PD 0
.IP "\(bu" 2
code
.PP
In the first conversion stage, this is the character code in the original character sequence\&. In the last stage, it is the glyph code passed to the rendering engine\&. In other cases, it is an intermediate glyph code\&.
.PP
.IP "\(bu" 2
category
.PP
The category code defined in the \fCCATEGORY\-TABLE\fP of the current stage, or defined in the one of the former stages and not overwritten by later stages\&.
.PP
.IP "\(bu" 2
combining\-spec
.PP
If nonzero, it specifies how to combine this (intermediate) glyph with the previous one\&.
.PP
.IP "\(bu" 2
left\-padding\-flag
.PP
If nonzero, it instructs the rendering function to insert a padding space before this (intermediate) glyph so that the glyph does not overlap with the previous one\&.
.PP
.IP "\(bu" 2
right\-padding\-flag
.PP
If nonzero, it instructs the rendering function to insert a padding space after this (intermediate) glyph so that the glyph does not overlap with the next one\&.
.PP
.PP
.PP
When the layout engine draws text, it at first determines a font and an FLT for each character in the text\&. For each subsequence of characters that use the same font and FLT, the layout engine generates a corresponding intermediate glyph sequence\&. The code attribute of each element in the intermediate glyph sequence is its character code, and all other attributes are zeros\&. This sequence is processed in the first stage of FLT as the current \fIrun\fP (substring)\&.
.PP
Each stage works as follows\&.
.PP
At first, if the stage has a \fCCATEGORY\-TABLE\fP, the category of each glyph in the current run is updated\&. If there is a glyph that has no category, the current run ends before that glyph\&.
.PP
Then, the default values of code\-offset, combining\-spec, and left\-padding\-flag of this stage are initialized to zero\&.
.PP
Next, the initial conversion rule of the stage is applied to the current run\&.
.PP
Lastly, the current run is replaced with the newly produced (intermediate) glyph sequence\&.
.SH "SYNTAX and SEMANTICS"
.PP
The m17n library loads an FLT from the m17n database using the tag \&. The date format of an FLT is as follows:
.PP
.PP
.nf
FONT\-LAYOUT\-TABLE ::= FLT\-DECLARATION ? STAGE0 STAGE *
FLT\-DECLARATION ::= '(' 'font' 'layouter' FLT\-NAME nil PROP * ')'
FLT\-NAME ::= SYMBOL
PROP :: = VERSION | FONT
VERSION ::= '(' 'version' MTEXT ')'
FONT ::= '(' 'font' FONT\-SPEC ')'
FONT\-SPEC ::=
'(' [[ FOUNDRY FAMILY
[ WEIGHT [ STYLE [ STRETCH [ ADSTYLE ]]]]]
REGISTRY ]
[ OTF\-SPEC ] [ LANG\-SPEC ] ')'
STAGE0 ::= CATEGORY\-TABLE GENERATOR
STAGE ::= CATEGORY\-TABLE ? GENERATOR
CATEGORY\-TABLE ::= '(' 'category' CATEGORY\-SPEC + ')'
CATEGORY\-SPEC ::= '(' CODE CATEGORY ')'
| '(' CODE CODE CATEGORY ')'
CODE ::= INTEGER
CATEGORY ::= INTEGER
.fi
.PP
.PP
In the definition of \fCCATEGORY\-SPEC\fP, \fCCODE\fP is a glyph code, and \fCCATEGORY\fP is ASCII code of an upper or lower letter, i\&.e\&. one of 'A', \&.\&.\&. 'Z', 'a', \&.\&. 'z'\&.
.PP
The first form of \fCCATEGORY\-SPEC\fP assigns \fCCATEGORY\fP to a glyph whose code is \fCCODE\fP\&. The second form assigns \fCCATEGORY\fP to glyphs whose code falls between the two \fCCODEs\fP\&.
.PP
.PP
.nf
GENERATOR ::= '(' 'generator' RULE MACRO\-DEF * ')'
RULE ::= REGEXP\-BLOCK | MATCH\-BLOCK | SUBST\-BLOCK | COND\-BLOCK
FONT\-FACILITY\-BLOCK | DIRECT\-CODE | COMBINING\-SPEC | OTF\-SPEC
| PREDEFINED\-RULE | MACRO\-NAME
MACOR\-DEF ::= '(' MACRO\-NAME RULE + ')'
.fi
.PP
.PP
Each \fCRULE\fP specifies glyphs to be consumed and glyphs to be produced\&. When some glyphs are consumed, they are taken away from the current run\&. A rule may fail in some condition\&. If not described explicitly to fail, it should be regarded that the rule succeeds\&.
.PP
.PP
.nf
DIRECT\-CODE ::= INTEGER
.fi
.PP
.PP
This rule consumes no glyph and produces a glyph which has the following attributes:
.PP
.PD 0
.IP "\(bu" 2
code : \fCINTEGER\fP plus the default code\-offset
.IP "\(bu" 2
combining\-spec : default value
.IP "\(bu" 2
left\-padding\-flag : default value
.IP "\(bu" 2
right\-padding\-flag : zero
.PP
.PP
After having produced the glyph, the default code\-offset, combining\-spec, and left\-padding\-flag are all reset to zero\&.
.PP
.PP
.nf
PREDEFINED\-RULE ::= '=' | '*' | '<' | '>' | '|' | '[' | ']'
.fi
.PP
.PP
They perform actions as follows\&.
.PP
.PD 0
.IP "\(bu" 2
\fC=\fP
.PP
This rule consumes the first glyph in the current run and produces the same glyph\&. It fails if the current run is empty\&.
.PP
.IP "\(bu" 2
\fC*\fP
.PP
This rule repeatedly executes the previous rule\&. If the previous rule fails, this rule does nothing and fails\&.
.PP
.IP "\(bu" 2
\fC<\fP
.PP
This rule specifies the start of a grapheme cluster\&.
.PP
.IP "\(bu" 2
\fC>\fP
.PP
This rule specifies the end of a grapheme cluster\&.
.PP
.IP "\(bu" 2
\fC@\fP[
.PP
This rule sets the default left\-padding\-flag to 1\&. No glyph is consumed\&. No glyph is produced\&.
.PP
.IP "\(bu" 2
\fC@\fP]
.PP
This rule changes the right\-padding\-flag of the lastly generated glyph to 1\&. No glyph is consumed\&. No glyph is produced\&.
.PP
.IP "\(bu" 2
\fC\fP|
.PP
This rule consumes no glyph and produces a special glyph whose category is ' ' and other attributes are zero\&. This is the only rule that produces that special glyph\&.
.PP
.PP
.PP
.PP
.nf
REGEXP\-BLOCK ::= '(' REGEXP RULE * ')'
REGEXP ::= MTEXT
.fi
.PP
.PP
\fCMTEXT\fP is a regular expression that should match the sequence of categories of the current run\&. If a match is found, this rule executes \fCRULEs\fP temporarily limiting the current run to the matched part\&. The matched part is consumed by this rule\&.
.PP
Parenthesized subexpressions, if any, are recorded to be used in \fCMATCH\-BLOCK\fP that may appear in one of \fCRULEs\fP\&.
.PP
If no match is found, this rule fails\&.
.PP
.PP
.nf
MATCH\-BLOCK ::= '(' MATCH\-INDEX RULE * ')'
MATCH\-INDEX ::= INTEGER
.fi
.PP
.PP
\fCMATCH\-INDEX\fP is an integer specifying a parenthesized subexpression recorded by the previous \fCREGEXP\-BLOCK\fP\&. If such a subexpression was found by the previous regular expression matching, this rule executes \fCRULEs\fP temporarily limiting the current run to the matched part of the subexpression\&. The matched part is consumed by this rule\&.
.PP
If no match was found, this rule fails\&.
.PP
If this is the first rule of the stage, \fCMATCH\-INDEX\fP must be 0, and it matches the whole current run\&.
.PP
.PP
.nf
SUBST\-BLOCK ::= '(' SOURCE\-PATTERN RULE * ')'
SOURCE\-PATTERN ::= '(' CODE + ')'
| (' 'range' CODE CODE ')'
.fi
.PP
.PP
If the sequence of codes of the current run matches \fCSOURCE\-PATTERN\fP, this rule executes \fCRULEs\fP temporarily limiting the current run to the matched part\&. The matched part is consumed\&.
.PP
The first form of \fCSOURCE\-PATTERN\fP specifies a sequence of glyph codes to be matched\&. In this case, this rule resets the default code\-offset to zero\&.
.PP
The second form specifies a range of codes that should match the first glyph code of the code sequence\&. In this case, this rule sets the default code\-offset to the first glyph code minus the first \fCCODE\fP specifying the range\&.
.PP
If no match is found, this rule fails\&.
.PP
.PP
.nf
FONT\-FACILITY\-BLOCK ::= '(' FONT\-FACILITY RULE * ')'
FONT\-FACILITY = '(' 'font\-facility' CODE * ')'
| '(' 'font\-facility' FONT\-SPEC ')'
.fi
.PP
.PP
If the current font has glyphs for \fCCODEs\fP or matches with \fCFONT\-SPEC\fP, this rule succeeds and \fCRULEs\fP are executed\&. Otherwise, this rule fails\&.
.PP
.PP
.nf
COND\-BLOCK ::= '(' 'cond' RULE + ')'
.fi
.PP
.PP
This rule sequentially executes \fCRULEs\fP until one succeeds\&. If no rule succeeds, this rule fails\&. Otherwise, it succeeds\&.
.PP
.PP
.nf
OTF\-SPEC ::= SYMBOL
.fi
.PP
.PP
\fCOTF\-SPEC\fP is a symbol whose name specifies an instruction to the OTF driver\&. The name has the following syntax\&.
.PP
.PP
.nf
OTF\-SPEC\-NAME ::= ':otf=' SCRIPT LANGSYS ? GSUB\-FEATURES ? GPOS\-FEATURES ?
SCRIPT ::= SYMBOL
LANGSYS ::= '/' SYMBOL
GSUB\-FEATURES ::= '=' FEATURE\-LIST ?
GPOS\-FEATURES ::= '+' FEATURE\-LIST ?
FEATURE\-LIST ::= ( SYMBOL ',' ) * [ SYMBOL | '*' ].fi
.PP
.PP
Each \fCSYMBOL\fP specifies a tag name defined in the OpenType specification\&.
.PP
For \fCSCRIPT\fP, \fCSYMBOL\fP specifies a Script tag name (e\&.g\&. deva for Devanagari)\&.
.PP
For \fCLANGSYS\fP, \fCSYMBOL\fP specifies a Language System tag name\&. If \fCLANGSYS\fP is omitted, the Default Language System table is used\&.
.PP
For \fCGSUB\-FEATURES\fP, each \fCSYMBOL\fP in \fCFEATURE\-LIST\fP specifies a GSUB Feature tag name to apply\&. '*' is allowed as the last item to specify all remaining features\&. If \fCSYMBOL\fP is preceded by '~' and the last item is '*', \fCSYMBOL\fP is excluded from the features to apply\&. If no \fCSYMBOL\fP is specified, no GSUB feature is applied\&. If \fCGSUB\-FEATURES\fP itself is omitted, all GSUB features are applied\&.
.PP
When \fCOTF\-SPEC\fP appears in a \fCFONT\-SPEC\fP, \fCFEATURE\-LIST\fP specifies features that the font must have (or must not have if preceded by '~'), and the last'*', even if exists, has no meaning\&.
.PP
The specification of \fCGPOS\-FEATURES\fP is analogous to that of \fCGSUB\-FEATURES\fP\&.
.PP
Please note that all the tags above must be 4 ASCII printable characters\&.
.PP
See the following page for the OpenType specification\&.
.br
http://www.microsoft.com/typography/otspec/default.htm
.PP
.PP
.nf
COMBINING ::= SYMBOL
.fi
.PP
.PP
\fCCOMBINING\fP is a symbol whose name specifies how to combine the next glyph with the previous one\&. This rule sets the default combining\-spec to an integer code that is unique to the symbol name\&. The name has the following syntax\&.
.PP
.PP
.nf
COMBINING\-NAME ::= VPOS HPOS OFFSET VPOS HPOS
VPOS ::= 't' | 'c' | 'b' | 'B'
HPOS ::= 'l' | 'c' | 'r'
OFFSET :: = '.' | XOFF | YOFF XOFF ?
XOFF ::= ('<' | '>') INTEGER ?
YOFF ::= ('+' | '\-') INTEGER ?
.fi
.PP
.PP
\fCVPOS\fP and \fCHPOS\fP specify the vertical and horizontal positions as described below\&.
.PP
.PP
.nf
POINT VPOS HPOS
\-\-\-\-\- \-\-\-\- \-\-\-\-
0\-\-\-\-1\-\-\-\-2 <\-\-\-\- top 0 t l
| | 1 t c
| | 2 t r
| | 3 B l
9 10 11 <\-\-\-\- center 4 B c
| | 5 B r
\-\-3\-\-\-\-4\-\-\-\-5\-\- <\-\- baseline 6 b l
| | 7 b c
6\-\-\-\-7\-\-\-\-8 <\-\-\-\- bottom 8 b r
9 c l
| | | 10 c c
left center right 11 c r
.fi
.PP
.PP
The left figure shows 12 reference points of a glyph by numbers 0 to
.IP "11." 4
The rectangle 0\-6\-8\-2 is the bounding box of the glyph, the positions 3, 4, and 5 are on the baseline, 9\-11 are on the vertical center of the box, 0\-2 and 6\-8 are on the top and on the bottom respectively\&. 1, 10, 4, and 7 are on the horizontal center of the box\&.
.PP
.PP
The right table shows how those reference points are specified by a pair of \fCVPOS\fP and \fCHPOS\fP\&.
.PP
The first \fCVPOS\fP and \fCHPOS\fP in the definition of \fCCOMBINING\-NAME\fP specify the reference point of the previous glyph, and the second \fCVPOS\fP and \fCHPOS\fP specify that of the next glyph\&. The next glyph is drawn so that these two reference points align\&.
.PP
\fCOFFSET\fP specifies the way of alignment in detail\&. If it is '\&.', the reference points are on the same position\&.
.PP
\fCXOFF\fP specifies how much the X position of the reference point of the next glyph should be shifted to the left ('<') or right ('>') from the previous reference point\&.
.PP
\fCYOFF\fP specifies how much the Y position of the reference point the next glyph should be shifted upward ('+') or downward ('\-') from the previous reference point\&.
.PP
In both cases, \fCINTEGER\fP is the amount of shift expressed as a percentage of the font size, i\&.e\&., if \fCINTEGER\fP is 10, it means 10% (1/10) of the font size\&. If \fCINTEGER\fP is omitted, it is assumed that 5 is specified\&.
.PP
Once the next glyph is combined with the previous one, they are treated as a single combined glyph\&.
.PP
.PP
.nf
MACRO\-NAME ::= SYMBOL
.fi
.PP
.PP
\fCMACRO\-NAME\fP is a symbol that appears in one of \fCMACRO\-DEF\fP\&. It is exapanded to the sequence of the corresponding \fCRULEs\fP\&.
.SH "CONTEXT DEPENDENT BEHAVIOR"
.PP
So far, it has been assumed that each sequence, which is drawn with a specific font, is context free, i\&.e\&. not affected by the glyphs preceding or following that sequence\&. This is true when sequence S1 is drawn with font F1 while the preceding sequence S0 unconditionally requires font F0\&.
.PP
.PP
.nf
sequence S0 S1
currently used font F0 F1
usable font(s) F0 F1
.fi
.PP
.PP
Sometimes, however, a clear separation of sequences is not possible\&. Suppose that the preceding sequence S0 can be drawn not only with F0 but also with F1\&.
.PP
.PP
.nf
sequence S0 S1
currently used font F0 F1
usable font(s) F0,F1 F1
.fi
.PP
.PP
In this case, glyphs used to draw the preceding S0 may affect glyph generation of S1\&. Therefore it is necessary to access information about S0, which has already been processed, when processing S1\&. Generation rules in the first stage (only in the first stage) accept a special regular expression to access already processed parts\&.
.PP
.PP
.nf
"RE0 RE1"
.fi
.PP
.PP
\fCRE0\fP and \fCRE1\fP are regular expressions that match the preceding sequence S0 and the following sequence S1, respectively\&.
.PP
Pay attention to the space between the two regular expressions\&. It represents the special category ' ' (see above)\&. Note that the regular expression above belongs to glyph generation rules using font F1, therefore not only RE1 but also RE0 must be expressed with the categories for F1\&. This means when the preceding sequence S0 cannot be expressed with the categories for F1 (as in the first example above) generation rules having these patterns never match\&.
.SH "SEE ALSO"
.PP
\fBmdbGeneral(5)\fP, \fBFLTs provided by the m17n database\fP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man1/ 0000755 0001750 0001750 00000000000 14504321775 011654 5 0000000 0000000 m17n-docs-1.8.4/man/man1/m17n-config.1 0000664 0001750 0001750 00000003730 14504321775 013710 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n-config" 1 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n\-config \- Print compile/link options of the m17n library
\-*\- coding: utf\-8; \-*\-
.SH "SYNOPSIS"
.PP
m17n\-config [API\-LEVEL \&.\&.\&.] [\-\-cflags | \-\-libs | \-\-libtool] [\-\-version]
.SH "DESCRIPTION"
.PP
The shell script m17n\-config prints compile and link options for a program that uses the m17n library\&.
.PP
By default, the printed options are for such a program that uses SHELL API of the libray\&. But, if the first argument is 'CORE', 'GUI', or 'FLT', the options are for a program that uses the corresponding API\&.
.PP
The other arguments are as follows\&.
.PP
.IP "\(bu" 2
\-\-cflags
.br
Print compile option (e\&.g\&. \-I/usr/local/include)
.IP "\(bu" 2
\-\-libs
.br
Print link option (e\&.g\&. \-L/usr/local/lib \-lm17n)
.IP "\(bu" 2
\-\-libtool
.br
Print libtool option (e\&.g\&. /usr/local/lib/libm17n\&.la)
.IP "\(bu" 2
\-\-version
.br
Print version number of the m17n library\&.
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man1/m17n-edit.1 0000664 0001750 0001750 00000002723 14504321775 013371 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n-edit" 1 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n\-edit \- edit multilingual text
.SH SYNOPSIS
m17n\-edit [ XT\-OPTION \&.\&.\&.] [ OPTION \&.\&.\&. ] FILE
.SH "DESCRIPTION"
Display FILE on a window and allow users to edit it\&.
.PP
XT\-OPTIONs are standard Xt arguments (e\&.g\&. \-fn, \-fg)\&.
.PP
The following OPTIONs are available\&.
.PP
.IP "\(bu" 2
\-\-version
.PP
Print version number\&.
.PP
.IP "\(bu" 2
\-h, \-\-help
.PP
Print this message\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man1/m17n-date.1 0000664 0001750 0001750 00000002574 14504321775 013365 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n-date" 1 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n\-date \- display date and time
.SH SYNOPSIS
m17n\-date [ OPTION \&.\&.\&. ]
.SH "DESCRIPTION"
Display the system date and time in many locales on a window\&.
.PP
The following OPTIONs are available\&.
.PP
.IP "\(bu" 2
\-\-version
.PP
Print version number\&.
.PP
.IP "\(bu" 2
\-h, \-\-help
.PP
Print this message\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man1/m17n-conv.1 0000664 0001750 0001750 00000003634 14504321775 013413 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n-conv" 1 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n\-conv \- convert file code
.SH SYNOPSIS
m17n\-conv [ OPTION \&.\&.\&. ] [ INFILE [ OUTFILE ] ]
.SH "DESCRIPTION"
Convert encoding of given files from one to another\&.
.PP
If INFILE is omitted, the input is taken from standard input\&. If OUTFILE is omitted, the output written to standard output\&.
.PP
The following OPTIONs are available\&.
.PP
.IP "\(bu" 2
\-f FROMCODE
.PP
FROMCODE is the encoding of INFILE (defaults to UTF\-8)\&.
.PP
.IP "\(bu" 2
\-t TOCODE
.PP
TOCODE is the encoding of OUTFILE (defaults to UTF\-8)\&.
.PP
.IP "\(bu" 2
\-k
.PP
Do not stop conversion on error\&.
.PP
.IP "\(bu" 2
\-s
.PP
Suppress warnings\&.
.PP
.IP "\(bu" 2
\-v
.PP
Print progress information\&.
.PP
.IP "\(bu" 2
\-l
.PP
List available encodings\&.
.PP
.IP "\(bu" 2
\-\-version
.PP
Print version number\&.
.PP
.IP "\(bu" 2
\-h, \-\-help
.PP
Print this message\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man1/m17n-view.1 0000664 0001750 0001750 00000003346 14504321775 013420 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n-view" 1 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n\-view \- view file
.SH SYNOPSIS
m17n\-view [ XT\-OPTION \&.\&.\&.] [ OPTION \&.\&.\&. ] [ FILE ]
.SH "DESCRIPTION"
Display FILE on a window\&.
.PP
If FILE is omitted, the input is taken from standard input\&.
.PP
XT\-OPTIONs are standard Xt arguments (e\&.g\&. \-fn, \-fg)\&.
.PP
The following OPTIONs are available\&.
.PP
.IP "\(bu" 2
\-e ENCODING
.PP
ENCODING is the encoding of FILE (defaults to UTF\-8)\&.
.PP
.IP "\(bu" 2
\-s FONTSIZE
.PP
FONTSIZE is the fontsize in point\&. If omitted, it defaults to the size of the default font defined in X resource\&.
.PP
.IP "\(bu" 2
\-\-version
.PP
Print version number\&.
.PP
.IP "\(bu" 2
\-h, \-\-help
.PP
Print this message\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man1/m17n-db.1 0000664 0001750 0001750 00000003254 14504321775 013031 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n-db" 1 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n\-db \- Print information about the m17n database
.SH "SYNOPSIS"
.PP
m17n\-db [ OPTIONS ] [ TAG0 [ TAG1 [ TAG2 [ TAG3 ] ] ] ]
.SH "DESCRIPTION"
.PP
The shell script m17n\-db prints information about the m17n database\&.
.PP
The arguments OPTIONS has the following meanings\&.
.PP
.IP "\(bu" 2
\-h, \-\-help
.br
Print this information\&.
.IP "\(bu" 2
\-v, \-\-version
.br
Print the version number\&.
.IP "\(bu" 2
\-l, \-\-locate
.br
Print absolute pathnames of database files\&.
.br
TAG0 through TAG3 specifies the tags of the database\&.
.PP
.PP
With no arguments, print where the m17n database is installed\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man1/m17n-dump.1 0000664 0001750 0001750 00000007642 14504321775 013416 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n-dump" 1 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n\-dump \- dump text image
.SH SYNOPSIS
m17n\-dump [ OPTION \&.\&.\&. ] [ FILE ]
.SH "DESCRIPTION"
Dump a text as PNG image file\&.
.PP
The PNG file is written to a file created in the current directory with the name 'BASE\&.png' where BASE is the basename of FILE\&. If FILE is omitted, text is read from standard input, and the image is dumped into the file 'output\&.png'\&.
.PP
The following OPTIONs are available\&.
.PP
.IP "\(bu" 2
\-s SIZE
.PP
SIZE is the font size in point\&. The default font size is 12 point\&.
.PP
.IP "\(bu" 2
\-d DPI
.PP
DPI is the resolution in dots per inch\&. The default resolution is 300 dpi\&.
.PP
.IP "\(bu" 2
\-p PAPER
.PP
PAPER is the paper size: a4, a4r, a5, a5r, b5, b5r, letter, WxH, or W\&. In the case of WxH, W and H are the width and height in millimeter\&. In the case of W, W is the width in millimeter\&. If this option is specified, PAPER limits the image size\&. If FILE is too large for a single page, multiple files with the names 'BASE\&.01\&.png', 'BASE\&.02\&.png', etc\&. are created\&.
.PP
.IP "\(bu" 2
\-m MARGIN
.PP
MARGIN is the horizontal and vertical margin in millimeter\&. The default margin is 20 mm\&. It is ignored when PAPER is not specified\&.
.PP
.IP "\(bu" 2
\-c POS
.PP
POS is the character position of cursor to draw\&. By default, cursor is not drawn\&.
.PP
.IP "\(bu" 2
\-x
.PP
FILE is assumed to be an XML file generated by the serialize facility of the m17n library, and FILE is deserialized before an image is created\&.
.PP
.IP "\(bu" 2
\-w
.PP
Each line is broken at word boundary\&.
.PP
.IP "\(bu" 2
\-f FILTER
.PP
FILTER is a string containing a shell command line\&. If this option is specified, the PNG image is not written info a file but is given to FILTER as standard input\&. If FILTER contains '%s', that part is replaced by a basename of FILE\&. So, the default behaviour is the same as specifying 'cat >
%s\&.png' as FILTER\&.
.PP
If FILTER is just '\-', the PNG image is written to stdout\&.
.PP
.IP "\(bu" 2
\-a
.PP
Enable anti\-alias drawing\&.
.PP
.IP "\(bu" 2
\-\-family FAMILY
.PP
Prefer a font whose family name is FAMILY\&.
.PP
.IP "\(bu" 2
\-\-language LANG
.PP
Prefer a font specified for the language LANG\&. LANG must be a 2\-letter code of ISO 630 (e\&.g\&. 'en' for English)\&.
.PP
.IP "\(bu" 2
\-fg FOREGROUND
.PP
Specify the text color\&. The supported color names are those of HTML 4\&.0 and '#RRGGBB' notation\&.
.PP
.IP "\(bu" 2
\-bg BACKGROUND
.PP
Specify the background color\&. The supported color names are the same as FOREGROUND, except that if 'transparent' is specified, make the background transparent\&.
.PP
.IP "\(bu" 2
\-r
.PP
Specify that the orientation of the text is right\-to\-left\&.
.PP
.IP "\(bu" 2
\-q
.PP
Quiet mode\&. Don't print any messages\&.
.PP
.IP "\(bu" 2
\-\-version
.PP
Print the version number\&.
.PP
.IP "\(bu" 2
\-h, \-\-help
.PP
Print this message\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/ 0000755 0001750 0001750 00000000000 14504322000 011634 5 0000000 0000000 m17n-docs-1.8.4/man/man3/m17nObject.3m17n 0000664 0001750 0001750 00000005643 14504322000 014266 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nObject" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nObject_\-_Managed_Ob \- \- Objects managed by the reference count
.br
.SH SYNOPSIS
.br
.PP
.SS "Data Structures"
.in +1c
.ti -1c
.RI "struct \fBM17NObjectHead\fP"
.br
.RI "The first member of a managed object\&. "
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "void * \fBm17n_object\fP (int size, void(*freer)(void *))"
.br
.ti -1c
.RI "int \fBm17n_object_ref\fP (void *object)"
.br
.RI "Increment the reference count of a managed object\&. "
.ti -1c
.RI "int \fBm17n_object_unref\fP (void *object)"
.br
.RI "Decrement the reference count of a managed object\&. "
.in -1c
.SH "Detailed Description"
.PP
Objects managed by the reference count
.br
Managed objects are objects managed by the reference count\&.
.PP
There are some types of m17n objects that are managed by their reference count\&. Those objects are called \fImanaged\fP \fIobjects\fP\&. When created, the reference count of a managed object is initialized to one\&. The \fBm17n_object_ref()\fP function increments the reference count of a managed object by one, and the \fBm17n_object_unref()\fP function decrements by one\&. A managed object is automatically freed when its reference count becomes zero\&.
.PP
A property whose key is a managing key can have only a managed object as its value\&. Some functions, for instance \fBmsymbol_put()\fP and \fBmplist_put()\fP, pay special attention to such a property\&.
.PP
In addition to the predefined managed object types, users can define their own managed object types\&. See the documentation of the \fBm17n_object()\fP for more details\&.
.br
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH "Data Structure Documentation"
.SS M17NObjectHead
.PP
The first member of a managed object\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBvoid* M17NObjectHead::filler[2]\fP
Hidden from applications\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nCharset.3m17n 0000664 0001750 0001750 00000025012 14504322000 014441 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nCharset" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nCharset_\-_Cha \- \- Charset objects and API for them\&.
.SH SYNOPSIS
.br
.PP
.SS "Macros"
.in +1c
.ti -1c
.RI "#define \fBMCHAR_INVALID_CODE\fP"
.br
.RI "Invalid code-point\&. "
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "MSymbol \fBmchar_define_charset\fP (const char *name, \fBMPlist\fP *plist)"
.br
.ti -1c
.RI "MSymbol \fBmchar_resolve_charset\fP (MSymbol symbol)"
.br
.RI "Resolve charset name\&. "
.ti -1c
.RI "int \fBmchar_list_charset\fP (MSymbol **symbols)"
.br
.RI "List symbols representing charsets\&. "
.ti -1c
.RI "int \fBmchar_decode\fP (MSymbol charset_name, unsigned code)"
.br
.RI "Decode a code-point\&. "
.ti -1c
.RI "unsigned \fBmchar_encode\fP (MSymbol charset_name, int c)"
.br
.RI "Encode a character code\&. "
.ti -1c
.RI "int \fBmchar_map_charset\fP (MSymbol charset_name, void(*func)(int from, int to, void *arg), void *func_arg)"
.br
.RI "Call a function for all the characters in a specified charset\&. "
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "MSymbol \fBMcharset\fP"
.br
.in -1c
.SS "Variables: Symbols representing a charset\&."
Each of the following symbols represents a predefined charset\&.
.br
.in +1c
.ti -1c
.RI "MSymbol \fBMcharset_ascii\fP"
.br
.RI "Symbol representing the charset ASCII\&. "
.ti -1c
.RI "MSymbol \fBMcharset_iso_8859_1\fP"
.br
.RI "Symbol representing the charset ISO/IEC 8859/1\&. "
.ti -1c
.RI "MSymbol \fBMcharset_unicode\fP"
.br
.RI "Symbol representing the charset Unicode\&. "
.ti -1c
.RI "MSymbol \fBMcharset_m17n\fP"
.br
.RI "Symbol representing the largest charset\&. "
.ti -1c
.RI "MSymbol \fBMcharset_binary\fP"
.br
.RI "Symbol representing the charset for ill-decoded characters\&. "
.in -1c
.SS "Variables: Parameter keys for mchar_define_charset()\&."
These are the predefined symbols to use as parameter keys for the function \fBmchar_define_charset()\fP (which see)\&.
.br
.in +1c
.ti -1c
.RI "MSymbol \fBMmethod\fP"
.br
.ti -1c
.RI "MSymbol \fBMdimension\fP"
.br
.ti -1c
.RI "MSymbol \fBMmin_range\fP"
.br
.ti -1c
.RI "MSymbol \fBMmax_range\fP"
.br
.ti -1c
.RI "MSymbol \fBMmin_code\fP"
.br
.ti -1c
.RI "MSymbol \fBMmax_code\fP"
.br
.ti -1c
.RI "MSymbol \fBMascii_compatible\fP"
.br
.ti -1c
.RI "MSymbol \fBMfinal_byte\fP"
.br
.ti -1c
.RI "MSymbol \fBMrevision\fP"
.br
.ti -1c
.RI "MSymbol \fBMmin_char\fP"
.br
.ti -1c
.RI "MSymbol \fBMmapfile\fP"
.br
.ti -1c
.RI "MSymbol \fBMparents\fP"
.br
.ti -1c
.RI "MSymbol \fBMsubset_offset\fP"
.br
.ti -1c
.RI "MSymbol \fBMdefine_coding\fP"
.br
.ti -1c
.RI "MSymbol \fBMaliases\fP"
.br
.in -1c
.SS "Variables: Symbols representing charset methods\&."
These are the predefined symbols that can be a value of the \fBMmethod\fP parameter of a charset used in an argument to the \fBmchar_define_charset()\fP function\&.
.PP
A method specifies how code\-points and character codes are converted\&. See the documentation of the \fBmchar_define_charset()\fP function for the details\&.
.br
.in +1c
.ti -1c
.RI "MSymbol \fBMoffset\fP"
.br
.ti -1c
.RI "MSymbol \fBMmap\fP"
.br
.RI "Symbol for the map type method of charset\&. "
.ti -1c
.RI "MSymbol \fBMunify\fP"
.br
.RI "Symbol for the unify type method of charset\&. "
.ti -1c
.RI "MSymbol \fBMsubset\fP"
.br
.ti -1c
.RI "MSymbol \fBMsuperset\fP"
.br
.RI "Symbol for the superset type method of charset\&. "
.in -1c
.SH "Detailed Description"
.PP
Charset objects and API for them\&.
The symbol \fCMcharset\fP\&.
.PP
The m17n library uses \fIcharset\fP objects to represent a coded character sets (CCS)\&. The m17n library supports many predefined coded character sets\&. r, application programs can add other charsets\&. A character can belong to multiple charsets\&.
.PP
The m17n library distinguishes the following three concepts:
.PP
.PD 0
.IP "\(bu" 2
A \fIcode\-point\fP is a number assigned by the CCS to each character\&. Code\-points may or may not be continuous\&. The type \fCunsigned\fP is used to represent a code\-point\&. An invalid code\-point is represented by the macro \fCMCHAR_INVALID_CODE\fP\&.
.PP
.PD 0
.IP "\(bu" 2
A \fIcharacter\fP \fIindex\fP is the canonical index of a character in a CCS\&. The character that has the character index N occupies the Nth position when all the characters in the current CCS are sorted by their code\-points\&. Character indices in a CCS are continuous and start with 0\&.
.PP
.PD 0
.IP "\(bu" 2
A \fIcharacter\fP \fIcode\fP is the internal representation in the m17n library of a character\&. A character code is a signed integer of 21 bits or longer\&.
.PP
Each charset object defines how characters are converted between code\-points and character codes\&. To \fIencode\fP means converting code\-points to character codes and to \fIdecode\fP means converting character codes to code\-points\&.
.br
.PP
.br
.PP
.br
.PP
Any decoded M\-text has a text property whose key is the predefined symbol \fCMcharset\fP\&. The name of \fCMcharset\fP is \fC'charset'\fP\&.
.br
.SH "Macro Definition Documentation"
.PP
.SS "#define MCHAR_INVALID_CODE"
.PP
Invalid code\-point\&. The macro \fBMCHAR_INVALID_CODE\fP gives the invalid code\-point\&.
.br
.SH "Variable Documentation"
.PP
.SS "MSymbol Mcharset_ascii"
.PP
Symbol representing the charset ASCII\&. The symbol \fBMcharset_ascii\fP has name \fC'ascii'\fP and represents the charset ISO 646, USA Version X3\&.4\-1968 (ISO\-IR\-6)\&.
.br
.SS "MSymbol Mcharset_iso_8859_1"
.PP
Symbol representing the charset ISO/IEC 8859/1\&. The symbol \fBMcharset_iso_8859_1\fP has name \fC'iso\-8859\-1'\fP and represents the charset ISO/IEC 8859\-1:1998\&.
.br
.SS "MSymbol Mcharset_unicode"
.PP
Symbol representing the charset Unicode\&. The symbol \fBMcharset_unicode\fP has name \fC'unicode'\fP and represents the charset Unicode\&.
.br
.SS "MSymbol Mcharset_m17n"
.PP
Symbol representing the largest charset\&. The symbol \fBMcharset_m17n\fP has name \fC'm17n'\fP and represents the charset that contains all characters supported by the m17n library\&.
.br
.SS "MSymbol Mcharset_binary"
.PP
Symbol representing the charset for ill\-decoded characters\&. The symbol \fBMcharset_binary\fP has name \fC'binary'\fP and represents the fake charset which the decoding functions put to an M\-text as a text property when they encounter an invalid byte (sequence)\&.
.br
.PP
See \fBCode Conversion\fP for more details\&.
.br
.SS "MSymbol Mmethod"
.SS "MSymbol Mdimension"
.SS "MSymbol Mmin_range"
.SS "MSymbol Mmax_range"
.SS "MSymbol Mmin_code"
.SS "MSymbol Mmax_code"
.SS "MSymbol Mascii_compatible"
.SS "MSymbol Mfinal_byte"
.SS "MSymbol Mrevision"
.SS "MSymbol Mmin_char"
.SS "MSymbol Mmapfile"
.SS "MSymbol Mparents"
.SS "MSymbol Msubset_offset"
.SS "MSymbol Mdefine_coding"
.SS "MSymbol Maliases"
.SS "MSymbol Moffset"
.PP
.nf
@brief Symbol for the offset type method of charset.
The symbol #Moffset has the name "offset" and, when used
as a value of @b Mmethod parameter of a charset, it means that the
conversion of code\-points and character codes of the charset is
done by this calculation:
.fi
.PP
.PP
.nf
CHARACTER\-CODE = CODE\-POINT \- MIN\-CODE + MIN\-CHAR
.fi
.PP
.PP
.nf
where, MIN\-CODE is a value of @b Mmin_code parameter of the charset,
and MIN\-CHAR is a value of @b Mmin_char parameter.
.fi
.PP
.SS "MSymbol Mmap"
.PP
Symbol for the map type method of charset\&. The symbol \fBMmap\fP has the name \fC'map'\fP and, when used as a value of \fBMmethod\fP parameter of a charset, it means that the conversion of code\-points and character codes of the charset is done by map looking up\&. The map must be given by \fBMmapfile\fP parameter\&.
.br
.SS "MSymbol Munify"
.PP
Symbol for the unify type method of charset\&. The symbol \fBMunify\fP has the name \fC'unify'\fP and, when used as a value of \fBMmethod\fP parameter of a charset, it means that the conversion of code\-points and character codes of the charset is done by map looking up and offsetting\&. The map must be given by \fBMmapfile\fP parameter\&. For this kind of charset, a unique continuous character code space for all characters is assigned\&.
.PP
If the map has an entry for a code\-point, the conversion is done by looking up the map\&. Otherwise, the conversion is done by this calculation:
.PP
.PP
.nf
CHARACTER\-CODE = CODE\-POINT \- MIN\-CODE + LOWEST\-CHAR\-CODE
.fi
.PP
.PP
.nf
where, MIN\-CODE is a value of @b Mmin_code parameter of the charset,
and LOWEST\-CHAR\-CODE is the lowest character code of the assigned
code space.
.fi
.PP
.SS "MSymbol Msubset"
.PP
.nf
@brief Symbol for the subset type method of charset.
The symbol #Msubset has the name "subset" and, when used
as a value of @b Mmethod parameter of a charset, it means that the
charset is a subset of a parent charset. The parent charset must
be given by @b Mparents parameter. The conversion of code\-points
and character codes of the charset is done conceptually by this
calculation:
.fi
.PP
.PP
.nf
CHARACTER\-CODE = PARENT\-CODE (CODE\-POINT) + SUBSET\-OFFSET
.fi
.PP
.PP
.nf
where, PARENT\-CODE is a pseudo function that returns a character
code of CODE\-POINT in the parent charset, and SUBSET\-OFFSET is a
value given by @b Msubset_offset parameter.
.fi
.PP
.SS "MSymbol Msuperset"
.PP
Symbol for the superset type method of charset\&. The symbol \fBMsuperset\fP has the name \fC'superset'\fP and, when used as a value of \fBMmethod\fP parameter of a charset, it means that the charset is a superset of parent charsets\&. The parent charsets must be given by \fBMparents\fP parameter\&.
.br
.SS "MSymbol Mcharset"
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/msymbol_exist.3m17n 0000664 0001750 0001750 00000003117 14504322000 015245 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "msymbol_exist" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
msymbol_exist \-
.SH SYNOPSIS
MSymbol
\fBmsymbol_exist\fP (const char *
\fIname\fP)
.SH DESCRIPTION
.PP
.nf
@brief Search for a symbol that has a specified name.
The msymbol_exist() function searches for the symbol whose name
is @b name.
@par Return value:
If such a symbol exists, msymbol_exist() returns that symbol.
Otherwise it returns the predefined symbol #Mnil.
@par Errors:
This function never fails.
.fi
.fi
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmsymbol_name()\fP,
.ft R
.ft B
msymbol()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_cat.3m17n 0000664 0001750 0001750 00000003166 14504322000 014343 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_cat" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_cat \-
.SH SYNOPSIS
\fBMText\fP*
\fBmtext_cat\fP (\fBMText\fP *
\fImt1\fP, \fBMText\fP *
\fImt2\fP)
.SH DESCRIPTION
.PP
Append an M\-text to another\&. The
.ft B
mtext_cat()
.ft R
function appends M\-text
.ft B
mt2
.ft R
to the end of M\-text
.ft B
mt1
.ft R
while inheriting all the text properties\&.
.ft B
mt2
.ft R
itself is not modified\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a pointer to the resulting M\-text
.ft B
mt1\fP\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_ncat()\fP,
.ft R
.ft B
mtext_cat_char()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mface_put_hook.3m17n 0000664 0001750 0001750 00000002531 14504322000 015331 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mface_put_hook" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mface_put_hook \-
.SH SYNOPSIS
int
\fBmface_put_hook\fP (\fBMFace\fP *
\fIface\fP, \fBMFaceHookFunc\fP
\fIfunc\fP)
.SH DESCRIPTION
.PP
Set a hook function to a face\&. The mface_set_hook() function sets the hook function of face
.ft B
face
.ft R
to
.ft B
func\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_push_prop.3m17n 0000664 0001750 0001750 00000004721 14504322000 015611 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_push_prop" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_push_prop \-
.SH SYNOPSIS
int
\fBmtext_push_prop\fP (\fBMText\fP *
\fImt\fP, int
\fIfrom\fP, int
\fIto\fP, MSymbol
\fIkey\fP, void *
\fIval\fP)
.SH DESCRIPTION
.PP
.nf
@brief Push a text property.
The mtext_push_prop() function pushes a text property whose key
is @b key and value is @b val to the characters between @b from
(inclusive) and @b to (exclusive) in M\-text @b mt. With this
function,
.fi
.fi
.PP
.nf
FROM TO
M\-text: |<\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\- MT \-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\->|
PROP : <\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- OLD_VAL \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->
.fi
.fi
.PP
.nf
becomes
.fi
.fi
.PP
.nf
FROM TO
M\-text: |<\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\- MT \-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\->|
PROP : <\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- OLD_VAL \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->
PROP : <\-\-\-\-\-\-\-\- VAL \-\-\-\-\-\-\->
.fi
.fi
.PP
.nf
@par Return value:
If the operation was successful, mtext_push_prop() returns 0.
Otherwise it returns \-1 and assigns an error code to the external
variable #merror_code.
@par Errors:
@c MERROR_RANGE, @c MERROR_SYMBOL
@par See Also:
mtext_put_prop(), mtext_put_prop_values(),
mtext_get_prop(), mtext_get_prop_values(),
mtext_pop_prop(), mtext_prop_range()
.fi
.fi
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_ncpy.3m17n 0000664 0001750 0001750 00000004152 14504322000 014541 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_ncpy" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_ncpy \-
.SH SYNOPSIS
\fBMText\fP*
\fBmtext_ncpy\fP (\fBMText\fP *
\fImt1\fP, \fBMText\fP *
\fImt2\fP, int
\fIn\fP)
.SH DESCRIPTION
.PP
Copy the first some characters in an M\-text to another\&. The
.ft B
mtext_ncpy()
.ft R
function copies the first
.ft B
n
.ft R
characters of M\-text
.ft B
mt2
.ft R
to M\-text
.ft B
mt1
.ft R
while inheriting all the text properties\&. If the length of
.ft B
mt2
.ft R
is less than
.ft B
n\fP,
.ft R
all characters of
.ft B
mt2
.ft R
are copied\&. The old text in
.ft B
mt1
.ft R
is overwritten and the length of
.ft B
mt1
.ft R
is extended if necessary\&.
.ft B
mt2
.ft R
is not modified\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mtext_ncpy()
.ft R
returns a pointer to the resulting M\-text
.ft B
mt1\fP\&. If an error is detected, it returns
.ft C
NULL
.ft R
and assigns an error code to the global variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_cpy()\fP,
.ft R
.ft B
mtext_copy()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/msymbol.3m17n 0000664 0001750 0001750 00000003373 14504322000 014035 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "msymbol" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
msymbol \-
.SH SYNOPSIS
MSymbol
\fBmsymbol\fP (const char *
\fIname\fP)
.SH DESCRIPTION
.PP
Get a symbol\&. The
.ft B
msymbol()
.ft R
function returns the canonical symbol whose name is
.ft B
name\fP\&. If there is none, one is created\&. The created one is not a managing key\&.
.PP
Symbols whose name starts by two spaces are reserved by the m17n library, and are used by the library only internally\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns the found or created symbol\&.
.RE
.PP
.SH ERRORS
.PP
.RS 4
This function never fails\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmsymbol_as_managing_key()\fP,
.ft R
.ft B
msymbol_name()\fP,
.ft R
.ft B
msymbol_exist()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_stream_converter.3m17n 0000664 0001750 0001750 00000004046 14504322000 017135 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_stream_converter" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_stream_converter \-
.SH SYNOPSIS
\fBMConverter\fP*
\fBmconv_stream_converter\fP (MSymbol
\fIname\fP, FILE *
\fIfp\fP)
.SH DESCRIPTION
.PP
Create a code converter bound to a stream\&. The
.ft B
mconv_stream_converter()
.ft R
function creates a pointer to a code converter for coding system
.ft B
name\fP\&. The code converter is bound to stream
.ft B
fp\fP\&. Subsequent decodings and encodings are done to/from this stream\&.
.PP
\fBname
.ft R
can be
.ft B
Mnil\fP\&. In this case, a coding system associated with the current locale (LC_CTYPE) is used\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mconv_stream_converter()
.ft R
returns the created code converter\&. Otherwise it returns
.ft C
NULL
.ft R
and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_SYMBOL\fP,
.ft R
.ft C
MERROR_CODING
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmconv_buffer_converter()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdraw_image_text.3m17n 0000664 0001750 0001750 00000004360 14504322000 015670 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdraw_image_text" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdraw_image_text \-
.SH SYNOPSIS
int
\fBmdraw_image_text\fP (\fBMFrame\fP *
\fIframe\fP, \fBMDrawWindow\fP
\fIwin\fP, int
\fIx\fP, int
\fIy\fP, \fBMText\fP *
\fImt\fP, int
\fIfrom\fP, int
\fIto\fP)
.SH DESCRIPTION
.PP
Draw an M\-text on a window as an image\&. The
.ft B
mdraw_image_text()
.ft R
function draws the text between
.ft B
from
.ft R
and
.ft B
to
.ft R
of M\-text
.ft B
mt
.ft R
as image on window
.ft B
win
.ft R
of frame
.ft B
frame
.ft R
at coordinate (\fBx\fP,
.ft R
.ft B
y\fP)\&.
.PP
The way to draw a text is the same as in
.ft B
mdraw_text()
.ft R
except that this function also draws the background with the color specified by faces\&.
.PP
This function is the counterpart of
.ft C
XDrawImageString()\fP,
.ft R
.ft C
XmbDrawImageString()\fP,
.ft R
and
.ft C
XwcDrawImageString()
.ft R
functions in the X Window System\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mdraw_image_text()
.ft R
returns 0\&. If an error is detected, it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmdraw_text()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_open.3m17n 0000664 0001750 0001750 00000003025 14504322000 014511 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_open" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_open \-
.SH SYNOPSIS
\fBMFont\fP*
\fBmfont_open\fP (\fBMFrame\fP *
\fIframe\fP, \fBMFont\fP *
\fIfont\fP)
.SH DESCRIPTION
.PP
Open a font\&. The
.ft B
mfont_open()
.ft R
function opens
.ft B
font
.ft R
on
.ft B
frame\fP,
.ft R
and returns a realized font\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the font was successfully opened, a realized font is returned\&. Otherwize NULL is returned\&.
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmfont_close()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_data.3m17n 0000664 0001750 0001750 00000004756 14504322000 014513 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_data" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_data \-
.SH SYNOPSIS
void*
\fBmtext_data\fP (\fBMText\fP *
\fImt\fP, enum \fBMTextFormat\fP *
\fIfmt\fP, int *
\fInunits\fP, int *
\fIpos_idx\fP, int *
\fIunit_idx\fP)
.SH DESCRIPTION
.PP
Get information about the text data in M\-text\&. The
.ft B
mtext_data()
.ft R
function returns a pointer to the text data of M\-text
.ft B
mt\fP\&. If
.ft B
fmt
.ft R
is not NULL, the format of the text data is stored in it\&. If
.ft B
nunits
.ft R
is not NULL, the number of units of the text data is stored in it\&.
.PP
If
.ft B
pos_idx
.ft R
is not NULL and it points to a non\-negative number, what it points to is a character position\&. In this case, the return value is a pointer to the text data of a character at that position\&.
.PP
Otherwise, if
.ft B
unit_idx
.ft R
is not NULL, it points to a unit position\&. In this case, the return value is a pointer to the text data of a character containing that unit\&.
.PP
The character position and unit position of the return value are stored in
.ft B
pos_idx
.ft R
and
.ft B
unit_idx
.ft R
respectively if they are not NULL\&.
.PP
.PD 0
.IP "\(bu" 2
If the format of the text data is MTEXT_FORMAT_US_ASCII or MTEXT_FORMAT_UTF_8, one unit is unsigned char\&.
.PP
.IP "\(bu" 2
If the format is MTEXT_FORMAT_UTF_16LE or MTEXT_FORMAT_UTF_16BE, one unit is unsigned short\&.
.PP
.IP "\(bu" 2
If the format is MTEXT_FORMAT_UTF_32LE or MTEXT_FORMAT_UTF_32BE, one unit is unsigned int\&.
.PP
.PP
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mchar_get_prop_table.3m17n 0000664 0001750 0001750 00000003402 14504322000 016504 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mchar_get_prop_table" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchar_get_prop_table \-
.SH SYNOPSIS
\fBMCharTable\fP*
\fBmchar_get_prop_table\fP (MSymbol
\fIkey\fP, MSymbol *
\fItype\fP)
.SH DESCRIPTION
.PP
Get the char\-table for a character property\&. The
.ft B
mchar_get_prop_table()
.ft R
function returns a char\-table that contains the character property whose key is
.ft B
key\fP\&. If
.ft B
type
.ft R
is not NULL, this function stores the type of the property in the place pointed by
.ft B
type\fP\&. See
.ft B
mchar_define_property()
.ft R
for types of character property\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If
.ft B
key
.ft R
is a valid character property key, this function returns a char\-table\&. Otherwise NULL is retuned\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_len.3m17n 0000664 0001750 0001750 00000002450 14504322000 014345 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_len" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_len \-
.SH SYNOPSIS
int
\fBmtext_len\fP (\fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
Number of characters in M\-text\&. The
.ft B
mtext_len()
.ft R
function returns the number of characters in M\-text
.ft B
mt\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/minput_event_to_key.3m17n 0000664 0001750 0001750 00000004615 14504322000 016442 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "minput_event_to_key" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
minput_event_to_key \-
.SH SYNOPSIS
MSymbol
\fBminput_event_to_key\fP (\fBMFrame\fP *
\fIframe\fP, void *
\fIevent\fP)
.SH DESCRIPTION
.PP
Convert an event to an input key\&. The
.ft B
minput_event_to_key()
.ft R
function returns the input key corresponding to event
.ft B
event
.ft R
on
.ft B
frame
.ft R
by a window system dependent manner\&.
.PP
In the m17n\-X library,
.ft B
event
.ft R
must be a pointer to the structure
.ft C
XKeyEvent\fP,
.ft R
and it is handled as below\&.
.PP
At first, the keysym name of
.ft B
event
.ft R
is acquired by the function
.ft C
XKeysymToString\fP\&. Then, the name is modified as below\&.
.PP
If the name is one of 'a' \&.\&. 'z' and
.ft B
event
.ft R
has a Shift modifier, the name is converted to 'A' \&.\&. 'Z' respectively, and the Shift modifier is cleared\&.
.PP
If the name is one byte length and
.ft B
event
.ft R
has a Control modifier, the byte is bitwise anded by 0x1F and the Control modifier is cleared\&.
.PP
If
.ft B
event
.ft R
still has modifiers, the name is preceded by 'S\-' (Shift), 'C\-' (Control), 'M\-' (Meta), 'A\-' (Alt), 'G\-' (AltGr), 's\-' (Super), and 'H\-' (Hyper) in this order\&.
.PP
For instance, if the keysym name is 'a' and the event has Shift, Meta, and Hyper modifiers, the resulting name is 'M\-H\-A'\&.
.PP
At last, a symbol who has the name is returned\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdebug_dump_symbol.3m17n 0000664 0001750 0001750 00000003163 14504322000 016225 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdebug_dump_symbol" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdebug_dump_symbol \-
.SH SYNOPSIS
MSymbol
\fBmdebug_dump_symbol\fP (MSymbol
\fIsymbol\fP, int
\fIindent\fP)
.SH DESCRIPTION
.PP
Dump a symbol\&. The
.ft B
mdebug_dump_symbol()
.ft R
function prints symbol
.ft B
symbol
.ft R
in a human readable way to the stderr or to what specified by the environment variable MDEBUG_OUTPUT_FILE\&.
.ft B
indent
.ft R
specifies how many columns to indent the lines but the first one\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns
.ft B
symbol\fP\&.
.RE
.PP
.SH ERRORS
.PP
.RS 4
MERROR_DEBUG
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mchar_map_charset.3m17n 0000664 0001750 0001750 00000004064 14504322000 016011 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mchar_map_charset" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchar_map_charset \-
.SH SYNOPSIS
int
\fBmchar_map_charset\fP (MSymbol
\fIcharset_name\fP, void(*)(int
\fIfrom\fP, int
\fIto\fP, void *arg)
\fIfunc\fP, void *
\fIfunc_arg\fP)
.SH DESCRIPTION
.PP
Call a function for all the characters in a specified charset\&. The mcharset_map_chars() function calls
.ft B
func
.ft R
for all the characters in the charset named
.ft B
charset_name\fP\&. A call is done for a chunk of consecutive characters rather than character by character\&.
.PP
\fBfunc
.ft R
receives three arguments:
.ft B
from\fP,
.ft R
.ft B
to\fP,
.ft R
and
.ft B
arg\fP\&.
.ft B
from
.ft R
and
.ft B
to
.ft R
specify the range of character codes in
.ft B
charset\fP\&.
.ft B
arg
.ft R
is the same as
.ft B
func_arg\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful, mcharset_map_chars() returns 0\&. Otherwise, it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_CHARSET
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_attach_property.3m17n 0000664 0001750 0001750 00000003443 14504322000 017002 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_attach_property" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_attach_property \-
.SH SYNOPSIS
int
\fBmtext_attach_property\fP (\fBMText\fP *
\fImt\fP, int
\fIfrom\fP, int
\fIto\fP, \fBMTextProperty\fP *
\fIprop\fP)
.SH DESCRIPTION
.PP
Attach a text property to an M\-text\&. The
.ft B
mtext_attach_property()
.ft R
function attaches text property
.ft B
prop
.ft R
to the range between
.ft B
from
.ft R
and
.ft B
to
.ft R
in M\-text
.ft B
mt\fP\&. If
.ft B
prop
.ft R
is already attached to an M\-text, it is detached before attached to
.ft B
mt\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mtext_attach_property()
.ft R
returns 0\&. Otherwise it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mlocale_set.3m17n 0000664 0001750 0001750 00000004015 14504322000 014634 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mlocale_set" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mlocale_set \-
.SH SYNOPSIS
\fBMLocale\fP*
\fBmlocale_set\fP (int
\fIcategory\fP, const char *
\fIname\fP)
.SH DESCRIPTION
.PP
Set the current locale\&. The
.ft B
mlocale_set()
.ft R
function sets or query a part of the current locale\&. The part is specified by
.ft B
category
.ft R
which must be a valid first argument to
.ft C
setlocale()\fP\&.
.PP
If
.ft B
locale
.ft R
is not NULL, the locale of the specified part is set to
.ft B
locale\fP\&. If
.ft B
locale
.ft R
is not supported by the system, the current locale is not changed\&.
.PP
If
.ft B
locale
.ft R
is NULL, the current locale of the specified part is queried\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the call is successful,
.ft B
mlocale_set()
.ft R
returns an opaque locale object that corresponds to the locale\&. The name of the locale can be acquired by the function
.ft B
mlocale_get_prop()\fP\&. Otherwise, it returns NULL\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_LOCALE
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/msymbol_get.3m17n 0000664 0001750 0001750 00000003441 14504322000 014670 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "msymbol_get" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
msymbol_get \-
.SH SYNOPSIS
void*
\fBmsymbol_get\fP (MSymbol
\fIsymbol\fP, MSymbol
\fIkey\fP)
.SH DESCRIPTION
.PP
Get the value of a symbol property\&. The
.ft B
msymbol_get()
.ft R
function searches for the value of the symbol property that belongs to
.ft B
symbol
.ft R
and whose key is
.ft B
key\fP\&. If
.ft B
symbol
.ft R
has such a symbol property, its value is returned\&. Otherwise
.ft C
NULL
.ft R
is returned\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If an error is detected,
.ft B
msymbol_get()
.ft R
returns
.ft C
NULL
.ft R
and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_SYMBOL
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmsymbol_put()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mlanguage_name_list.3m17n 0000664 0001750 0001750 00000004776 14504322000 016356 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mlanguage_name_list" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mlanguage_name_list \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmlanguage_name_list\fP (MSymbol
\fIlanguage\fP, MSymbol
\fItarget\fP, MSymbol
\fIscript\fP, MSymbol
\fIterritory\fP)
.SH DESCRIPTION
.PP
Return the language names written in the specified language\&. The
.ft B
mlanguage_name_list()
.ft R
function returns a plist of LANGUAGE's names written in TARGET language\&. SCRIPT and TERRITORY, if not
.ft B
Mnil\fP,
.ft R
specifies which script and territory to concern at first\&.
.PP
LANGUAGE and TARGET must be a symbol whose name is an ISO639\-2 3\-letter language code or an ISO639\-1 2\-letter language codes\&. TARGET may be
.ft B
Mnil\fP,
.ft R
in which case, the language of the current locale is used\&. If locale is not set or is C, English is used\&.
.PP
SCRIPT and TERRITORY must be a symbol whose name is a script and territory name of a locale (e\&.g\&. 'TW', 'SG') respectively\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the translation is available, this function returns a non\-empty plist\&. The first element has key
.ft B
MText
.ft R
and the value is an M\-text of a translated language name\&. If the succeeding elements also have key
.ft B
MText\fP,
.ft R
their values are M\-texts of alternate translations\&.
.RE
.PP
If no translation is available,
.ft C
NULL
.ft R
is returned\&.
.PP
The returned plist should not be modified nor freed\&.
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmlanguage_code()\fP,
.ft R
.ft B
mlanguage_text()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_encode_stream.3m17n 0000664 0001750 0001750 00000003726 14504322000 016367 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_encode_stream" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_encode_stream \-
.SH SYNOPSIS
int
\fBmconv_encode_stream\fP (MSymbol
\fIname\fP, \fBMText\fP *
\fImt\fP, FILE *
\fIfp\fP)
.SH DESCRIPTION
.PP
Encode an M\-text to write to a stream\&. The
.ft B
mconv_encode_stream()
.ft R
function encodes M\-text
.ft B
mt
.ft R
based on coding system
.ft B
name
.ft R
and writes the resulting byte sequence to stream
.ft B
fp\fP\&. A temporary code converter for encoding is automatically created and freed\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mconv_encode_stream()
.ft R
returns the number of written bytes\&. Otherwise it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_IO\fP,
.ft R
.ft C
MERROR_CODING
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmconv_encode()\fP,
.ft R
.ft B
mconv_encode_buffer()\fP,
.ft R
mconv_encode_file()
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_put.3m17n 0000664 0001750 0001750 00000004254 14504322000 014552 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_put" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_put \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmplist_put\fP (\fBMPlist\fP *
\fIplist\fP, MSymbol
\fIkey\fP, void *
\fIval\fP)
.SH DESCRIPTION
.PP
Set the value of a property in a property list\&. The
.ft B
mplist_put()
.ft R
function searches property list
.ft B
plist
.ft R
from the beginning for a property whose key is
.ft B
key\fP\&. If such a property is found, its value is changed to
.ft B
value\fP\&. Otherwise, a new property whose key is
.ft B
key
.ft R
and value is
.ft B
value
.ft R
is appended at the end of
.ft B
plist\fP\&. See the documentation of
.ft B
mplist_add()
.ft R
for the restriction on
.ft B
key
.ft R
and
.ft B
val\fP\&.
.PP
If
.ft B
key
.ft R
is a managing key,
.ft B
val
.ft R
must be a managed object\&. In this case, the reference count of the old value, if not
.ft C
NULL\fP,
.ft R
is decremented by one, and that of
.ft B
val
.ft R
is incremented by one\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mplist_put()
.ft R
returns a sublist of
.ft B
plist
.ft R
whose first element is the just modified or added one\&. Otherwise, it returns
.ft C
NULL\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_insert.3m17n 0000664 0001750 0001750 00000004013 14504322000 015070 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_insert" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_insert \-
.SH SYNOPSIS
int
\fBmtext_insert\fP (\fBMText\fP *
\fImt1\fP, int
\fIpos\fP, \fBMText\fP *
\fImt2\fP, int
\fIfrom\fP, int
\fIto\fP)
.SH DESCRIPTION
.PP
Insert sub\-text of an M\-text into another M\-text\&. The
.ft B
mtext_insert()
.ft R
function inserts sub\-text of M\-text
.ft B
mt2
.ft R
between
.ft B
from
.ft R
(inclusive) and
.ft B
to
.ft R
(exclusive) into M\-text
.ft B
mt1\fP,
.ft R
at position
.ft B
pos\fP\&. As a result,
.ft B
mt1
.ft R
is lengthen by (\fBto
.ft R
\-
.ft B
from\fP)\&. On insertion, all the text properties of the sub\-text of
.ft B
mt2
.ft R
are inherited\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mtext_insert()
.ft R
returns 0\&. Otherwise, it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_MTEXT\fP,
.ft R
.ft C
MERROR_RANGE
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_ins()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_uppercase.3m17n 0000664 0001750 0001750 00000003520 14504322000 015555 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_uppercase" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_uppercase \-
.SH SYNOPSIS
int
\fBmtext_uppercase\fP (\fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
Uppercase an M\-text\&. The
.ft B
mtext_uppercase()
.ft R
function destructively converts each character in M\-text
.ft B
mt
.ft R
to uppercase\&. Adjacent characters in
.ft B
mt
.ft R
may affect the case conversion\&. If the Mlanguage text property is attached to
.ft B
mt\fP,
.ft R
it may also affect the conversion\&. The length of
.ft B
mt
.ft R
may change\&. Characters that cannot be converted to uppercase is left unchanged\&. All the text properties are inherited\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns the length of the updated
.ft B
mt\fP\&.
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_lowercase()\fP,
.ft R
.ft B
mtext_titlecase()
.ft R
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nPlist.3m17n 0000664 0001750 0001750 00000012771 14504322000 014153 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nPlist" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nPlist \- Property List
.SH SYNOPSIS
.br
.PP
.SS "Functions"
.in +1c
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_deserialize\fP (\fBMText\fP *mt)"
.br
.RI "Generate a property list by deserializing an M-text\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist\fP (void)"
.br
.RI "Create a property list object\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_copy\fP (\fBMPlist\fP *plist)"
.br
.RI "Copy a property list\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_put\fP (\fBMPlist\fP *plist, MSymbol key, void *val)"
.br
.RI "Set the value of a property in a property list\&. "
.ti -1c
.RI "void * \fBmplist_get\fP (\fBMPlist\fP *plist, MSymbol key)"
.br
.RI "Get the value of a property in a property list\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_put_func\fP (\fBMPlist\fP *plist, MSymbol key, \fBM17NFunc\fP func)"
.br
.RI "Set the value (function pointer) of a property in a property list\&. "
.ti -1c
.RI "\fBM17NFunc\fP \fBmplist_get_func\fP (\fBMPlist\fP *plist, MSymbol key)"
.br
.RI "Get the value (function pointer) of a property in a property list\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_add\fP (\fBMPlist\fP *plist, MSymbol key, void *val)"
.br
.RI "Add a property at the end of a property list\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_push\fP (\fBMPlist\fP *plist, MSymbol key, void *val)"
.br
.RI "Add a property at the beginning of a property list\&. "
.ti -1c
.RI "void * \fBmplist_pop\fP (\fBMPlist\fP *plist)"
.br
.RI "Remove a property at the beginning of a property list\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_find_by_key\fP (\fBMPlist\fP *plist, MSymbol key)"
.br
.RI "Find a property of a specific key in a property list\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_find_by_value\fP (\fBMPlist\fP *plist, void *val)"
.br
.RI "Find a property of a specific value in a property list\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_next\fP (\fBMPlist\fP *plist)"
.br
.RI "Return the next sublist of a property list\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmplist_set\fP (\fBMPlist\fP *plist, MSymbol key, void *val)"
.br
.RI "Set the first property in a property list\&. "
.ti -1c
.RI "int \fBmplist_length\fP (\fBMPlist\fP *plist)"
.br
.RI "Return the length of a property list\&. "
.ti -1c
.RI "MSymbol \fBmplist_key\fP (\fBMPlist\fP *plist)"
.br
.RI "Return the key of the first property in a property list\&. "
.ti -1c
.RI "void * \fBmplist_value\fP (\fBMPlist\fP *plist)"
.br
.RI "Return the value of the first property in a property list\&. "
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "MSymbol \fBMinteger\fP"
.br
.RI "Symbol whose name is 'integer'\&. "
.ti -1c
.RI "MSymbol \fBMplist\fP"
.br
.RI "Symbol whose name is 'plist'\&. "
.ti -1c
.RI "MSymbol \fBMtext\fP"
.br
.RI "Symbol whose name is 'mtext'\&. "
.in -1c
.SH "Detailed Description"
.PP
.PP
.nf
@addtogroup m17nPlist
@brief Property List objects and API for them.
A @e property @e list (or @e plist for short) is a list of zero or
more properties. A property consists of a @e key and a @e value,
where key is a symbol and value is anything that can be cast to
(void *).
If the key of a property is a @e managing @e key, its @e value is
a @e managed @e object. A property list itself is a managed
objects.
If each key of a plist is one of #Msymbol, #Mtext, #Minteger, and
#Mplist, the plist is called as @e well\-formed and represented by
the following notation in the documentation.
.fi
.PP
.PP
.nf
PLIST ::= '(' ELEMENT * ')'
ELEMENT ::= INTEGER | SYMBOL | M\-TEXT | PLIST
M\-TEXT ::= '"' text data ... '"'
.fi
.PP
.PP
.nf
For instance, if a plist has four elements; integer \-20, symbol of
name "sym", M\-text of contents "abc", and plist of integer 10 and
symbol of name "another\-symbol", it is represented as this:
(\-20 sym "abc" (10 another\-symbol))
.fi
.PP
.SH "Variable Documentation"
.PP
.SS "MSymbol Minteger"
.PP
Symbol whose name is 'integer'\&. The symbol \fCMinteger\fP has the name \fC'integer'\fP\&. The value of a property whose key is \fCMinteger\fP must be an integer\&.
.br
.SS "MSymbol Mplist"
.PP
Symbol whose name is 'plist'\&. The symbol \fCMplist\fP has the name \fC'plist'\fP\&. It is a managing key\&. A value of a property whose key is \fCMplist\fP must be a plist\&.
.br
.SS "MSymbol Mtext"
.PP
Symbol whose name is 'mtext'\&. The symbol \fCMtext\fP has the name \fC'mtext'\fP\&. It is a managing key\&. A value of a property whose key is \fCMtext\fP must be an M\-text\&.
.br
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mchar_resolve_charset.3m17n 0000664 0001750 0001750 00000002762 14504322000 016716 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mchar_resolve_charset" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchar_resolve_charset \-
.SH SYNOPSIS
MSymbol
\fBmchar_resolve_charset\fP (MSymbol
\fIsymbol\fP)
.SH DESCRIPTION
.PP
Resolve charset name\&. The
.ft B
mchar_resolve_charset()
.ft R
function returns
.ft B
symbol
.ft R
if it represents a charset\&. Otherwise, canonicalize
.ft B
symbol
.ft R
as to a charset name, and if the canonicalized name represents a charset, return it\&. Otherwise, return
.ft B
Mnil\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_search.3m17n 0000664 0001750 0001750 00000003620 14504322000 015034 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_search" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_search \-
.SH SYNOPSIS
int
\fBmtext_search\fP (\fBMText\fP *
\fImt1\fP, int
\fIfrom\fP, int
\fIto\fP, \fBMText\fP *
\fImt2\fP)
.SH DESCRIPTION
.PP
Locate an M\-text in a specific range of another\&. The
.ft B
mtext_search()
.ft R
function searches for the first occurrence of M\-text
.ft B
mt2
.ft R
in M\-text
.ft B
mt1
.ft R
in the region
.ft B
from
.ft R
and
.ft B
to
.ft R
while ignoring difference of the text properties\&. If
.ft B
from
.ft R
is less than
.ft B
to\fP,
.ft R
the forward search starts from
.ft B
from\fP,
.ft R
otherwise the backward search starts from
.ft B
to\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If
.ft B
mt2
.ft R
is found in
.ft B
mt1\fP,
.ft R
.ft B
mtext_search()
.ft R
returns the position of the first occurrence\&. Otherwise it returns \-1\&. If
.ft B
mt2
.ft R
is empty, it returns 0\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdraw_text_extents.3m17n 0000664 0001750 0001750 00000006452 14504322000 016304 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdraw_text_extents" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdraw_text_extents \-
.SH SYNOPSIS
int
\fBmdraw_text_extents\fP (\fBMFrame\fP *
\fIframe\fP, \fBMText\fP *
\fImt\fP, int
\fIfrom\fP, int
\fIto\fP, \fBMDrawControl\fP *
\fIcontrol\fP, \fBMDrawMetric\fP *
\fIoverall_ink_return\fP, \fBMDrawMetric\fP *
\fIoverall_logical_return\fP, \fBMDrawMetric\fP *
\fIoverall_line_return\fP)
.SH DESCRIPTION
.PP
Compute text pixel width\&. The
.ft B
mdraw_text_extents()
.ft R
function computes the width of text between
.ft B
from
.ft R
and
.ft B
to
.ft R
of M\-text
.ft B
mt
.ft R
when it is drawn on a window of frame
.ft B
frame
.ft R
using the
.ft B
mdraw_text_with_control()
.ft R
function with the drawing control object
.ft B
control\fP\&.
.PP
If
.ft B
overall_ink_return
.ft R
is not
.ft C
NULL\fP,
.ft R
this function also computes the bounding box of character ink of the M\-text, and stores the results in the members of the structure pointed to by
.ft B
overall_ink_return\fP\&. If the M\-text has a face specifying a surrounding box, the box is included in the bounding box\&.
.PP
If
.ft B
overall_logical_return
.ft R
is not
.ft C
NULL\fP,
.ft R
this function also computes the bounding box that provides minimum spacing to other graphical features (such as surrounding box) for the M\-text, and stores the results in the members of the structure pointed to by
.ft B
overall_logical_return\fP\&.
.PP
If
.ft B
overall_line_return
.ft R
is not
.ft C
NULL\fP,
.ft R
this function also computes the bounding box that provides minimum spacing to the other M\-text drawn, and stores the results in the members of the structure pointed to by
.ft B
overall_line_return\fP\&. This is a union of
.ft B
overall_ink_return
.ft R
and
.ft B
overall_logical_return
.ft R
if the members min_line_ascent, min_line_descent, max_line_ascent, and max_line_descent of
.ft B
control
.ft R
are all zero\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns the width of the text to be drawn in the unit of pixels\&. If
.ft B
control\->two_dimensional
.ft R
is nonzero and the text is drawn in multiple physical lines, it returns the width of the widest line\&. If an error occurs, it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_find_by_key.3m17n 0000664 0001750 0001750 00000003334 14504322000 016222 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_find_by_key" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_find_by_key \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmplist_find_by_key\fP (\fBMPlist\fP *
\fIplist\fP, MSymbol
\fIkey\fP)
.SH DESCRIPTION
.PP
Find a property of a specific key in a property list\&. The
.ft B
mplist_find_by_key()
.ft R
function searches property list
.ft B
plist
.ft R
from the beginning for a property whose key is
.ft B
key\fP\&. If such a property is found, a sublist of
.ft B
plist
.ft R
whose first element is the found one is returned\&. Otherwise,
.ft C
NULL
.ft R
is returned\&.
.PP
If
.ft B
key
.ft R
is
.ft C
Mnil\fP,
.ft R
it returns a sublist of
.ft B
plist
.ft R
whose first element is the last one of
.ft B
plist\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_getc.3m17n 0000664 0001750 0001750 00000004041 14504322000 014470 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_getc" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_getc \-
.SH SYNOPSIS
int
\fBmconv_getc\fP (\fBMConverter\fP *
\fIconverter\fP)
.SH DESCRIPTION
.PP
Read a character via a code converter\&. The
.ft B
mconv_getc()
.ft R
function reads one character from the buffer area or the stream that is currently bound to code converter
.ft B
converter\fP\&. The decoder of
.ft B
converter
.ft R
is used to decode the byte sequence\&. The internal status of
.ft B
converter
.ft R
is updated appropriately\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mconv_getc()
.ft R
returns the character read in\&. If the input source reaches EOF, it returns
.ft C
EOF
.ft R
without changing the external variable
.ft B
merror_code\fP\&. If an error is detected, it returns
.ft C
EOF
.ft R
and assigns an error code to
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_CODING
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmconv_ungetc()\fP,
.ft R
.ft B
mconv_putc()\fP,
.ft R
.ft B
mconv_gets()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_match_p.3m17n 0000664 0001750 0001750 00000002723 14504322000 015167 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_match_p" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_match_p \-
.SH SYNOPSIS
int
\fBmfont_match_p\fP (\fBMFont\fP *
\fIfont\fP, \fBMFont\fP *
\fIspec\fP)
.SH DESCRIPTION
.PP
Check is a font matches with a font spec\&. The
.ft B
mfont_match_p()
.ft R
function checks if
.ft B
font
.ft R
matches with the font\-spec
.ft B
spec\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the font matches, 1 is returned\&. Otherwise 0 is returned\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdatabase_find.3m17n 0000664 0001750 0001750 00000003005 14504322000 015264 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdatabase_find" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdatabase_find \-
.SH SYNOPSIS
\fBMDatabase\fP*
\fBmdatabase_find\fP (MSymbol
\fItag0\fP, MSymbol
\fItag1\fP, MSymbol
\fItag2\fP, MSymbol
\fItag3\fP)
.SH DESCRIPTION
.PP
Look for a data in the database\&. The
.ft B
mdatabase_find()
.ft R
function searches the m17n database for a data who has tags
.ft B
tag0
.ft R
through
.ft B
tag3\fP,
.ft R
and returns a pointer to the data\&. If such a data is not found, it returns
.ft C
NULL\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_length.3m17n 0000664 0001750 0001750 00000002512 14504322000 015216 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_length" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_length \-
.SH SYNOPSIS
int
\fBmplist_length\fP (\fBMPlist\fP *
\fIplist\fP)
.SH DESCRIPTION
.PP
Return the length of a property list\&. The
.ft B
mplist_length()
.ft R
function returns the number of properties in property list
.ft B
plist\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nGUI.3m17n 0000664 0001750 0001750 00000004524 14504322000 013501 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nGUI" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nGUI_\-_GUI \- \- API provided by libm17n\-gui\&.so
.br
.SH SYNOPSIS
.br
.PP
.SS "Modules"
.in +1c
.ti -1c
.RI "\fBFrame\fP"
.br
.RI "A \fIframe\fP is an object corresponding to the graphic device\&. "
.ti -1c
.RI "\fBFont\fP"
.br
.ti -1c
.RI "\fBFontset\fP"
.br
.RI "A fontset is an object that maps a character to fonts\&. "
.ti -1c
.RI "\fBFace\fP"
.br
.RI "A face is an object to control appearance of M-text\&. "
.ti -1c
.RI "\fBDrawing\fP"
.br
.RI "Drawing M-texts on a window\&. "
.ti -1c
.RI "\fBInput Method (GUI)\fP"
.br
.RI "Input method support on window systems\&. "
.in -1c
.SH "Detailed Description"
.PP
API provided by libm17n\-gui\&.so
.br
GUI support for a window system\&.
.PP
This section defines the m17n GUI API concerning M\-text drawing and inputting under a window system\&.
.PP
All the definitions here are independent of window systems\&. An actual library file, however, can depend on a specific window system\&. For instance, the library file m17n\-X\&.so is an example of implementation of the m17n GUI API for the X Window System\&.
.PP
Actually the GUI API is mainly for toolkit libraries or to implement XOM, not for direct use from application programs\&.
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mchar_put_prop.3m17n 0000664 0001750 0001750 00000003401 14504322000 015365 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mchar_put_prop" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchar_put_prop \-
.SH SYNOPSIS
int
\fBmchar_put_prop\fP (int
\fIc\fP, MSymbol
\fIkey\fP, void *
\fIval\fP)
.SH DESCRIPTION
.PP
Set the value of a character property\&. The
.ft B
mchar_put_prop()
.ft R
function searches character
.ft B
c
.ft R
for the character property whose key is
.ft B
key
.ft R
and assigns
.ft B
val
.ft R
to the value of the found property\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mchar_put_prop()
.ft R
returns 0\&. Otherwise, it returns \-1\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_SYMBOL\fP,
.ft R
.ft C
MERROR_DB
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmchar_define_property()\fP,
.ft R
.ft B
mchar_get_prop()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nFLT.3m17n 0000664 0001750 0001750 00000026502 14504322000 013502 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nFLT" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nFLT_\-_FLT \- \- API provided by libm17n\-flt\&.so
.br
.SH SYNOPSIS
.br
.PP
.SS "Data Structures"
.in +1c
.ti -1c
.RI "struct \fBMFLTGlyph\fP"
.br
.RI "Type of information about a glyph\&. "
.ti -1c
.RI "struct \fBMFLTGlyphAdjustment\fP"
.br
.RI "Type of information about a glyph position adjustment\&. "
.ti -1c
.RI "struct \fBMFLTGlyphString\fP"
.br
.RI "Type of information about a glyph sequence\&. "
.ti -1c
.RI "struct \fBMFLTOtfSpec\fP"
.br
.RI "Type of specification of GSUB and GPOS OpenType tables\&. "
.ti -1c
.RI "struct \fBMFLTFont\fP"
.br
.RI "Type of font to be used by the FLT driver\&. "
.in -1c
.SS "Typedefs"
.in +1c
.ti -1c
.RI "typedef struct _MFLT \fBMFLT\fP"
.br
.RI "Type of FLT (Font Layout Table)\&. "
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "\fBMFLT\fP * \fBmflt_get\fP (MSymbol name)"
.br
.RI "Return an FLT object that has a specified name\&. "
.ti -1c
.RI "\fBMFLT\fP * \fBmflt_find\fP (int c, \fBMFLTFont\fP *font)"
.br
.RI "Find an FLT suitable for the specified character and font\&. "
.ti -1c
.RI "const char * \fBmflt_name\fP (\fBMFLT\fP *flt)"
.br
.RI "Return the name of an FLT\&. "
.ti -1c
.RI "\fBMCharTable\fP * \fBmflt_coverage\fP (\fBMFLT\fP *flt)"
.br
.RI "Return a coverage of a FLT\&. "
.ti -1c
.RI "int \fBmflt_run\fP (\fBMFLTGlyphString\fP *gstring, int from, int to, \fBMFLTFont\fP *font, \fBMFLT\fP *flt)"
.br
.RI "Layout characters with an FLT\&. "
.ti -1c
.RI "\fBMFLT\fP * \fBmdebug_dump_flt\fP (\fBMFLT\fP *flt, int indent)"
.br
.RI "Dump a Font Layout Table\&. "
.ti -1c
.RI "void \fBmflt_dump_gstring\fP (\fBMFLTGlyphString\fP *gstring)"
.br
.RI "Dump an \fBMFLTGlyphString\fP\&. "
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "int \fBmflt_enable_new_feature\fP"
.br
.RI "Flag to control several new OTF handling commands\&. "
.ti -1c
.RI "int(* \fBmflt_iterate_otf_feature\fP )(struct _MFLTFont *font, \fBMFLTOtfSpec\fP *spec, int from, int to, unsigned char *table)"
.br
.ti -1c
.RI "MSymbol(* \fBmflt_font_id\fP )(struct _MFLTFont *font)"
.br
.ti -1c
.RI "int(* \fBmflt_try_otf\fP )(struct _MFLTFont *font, \fBMFLTOtfSpec\fP *spec, \fBMFLTGlyphString\fP *gstring, int from, int to)"
.br
.in -1c
.SH "Detailed Description"
.PP
API provided by libm17n\-flt\&.so
.br
FLT support for a window system\&.
.PP
.br
.PP
This section defines the m17n FLT API concerning character layouting facility using FLT (Font Layout Table)\&. The format of FLT is described in \fBmdbFLT\fP\&.
.br
.SH "Data Structure Documentation"
.SS MFLTGlyph
.PP
Type of information about a glyph\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBint MFLTGlyph::c\fP
Character code (Unicode) of the glyph\&.
.PP
\fBunsigned int MFLTGlyph::code\fP
Glyph ID of the glyph in the font\&.
.PP
\fBint MFLTGlyph::from\fP
Starting index of the run in \fBMFLTGlyphString\fP that is replaced by this glyph\&.
.br
.PP
\fBint MFLTGlyph::to\fP
Ending index of the run in \fBMFLTGlyphString\fP that is replaced by this glyph\&.
.br
.PP
\fBint MFLTGlyph::xadv\fP
Advance width for horizontal layout expressed in 26\&.6 fractional pixel format\&.
.br
.PP
\fBint MFLTGlyph::yadv\fP
Advance height for vertical layout expressed in 26\&.6 fractional pixel format\&.
.br
.PP
\fBint MFLTGlyph::ascent\fP
Ink metrics of the glyph expressed in 26\&.6 fractional pixel format\&.
.br
.PP
\fBint MFLTGlyph::descent\fP
.PP
\fBint MFLTGlyph::lbearing\fP
.PP
\fBint MFLTGlyph::rbearing\fP
.PP
\fBint MFLTGlyph::xoff\fP
Horizontal and vertical adjustments for the glyph positioning expressed in 26\&.6 fractional pixel format\&.
.br
.PP
\fBint MFLTGlyph::yoff\fP
.PP
\fBunsigned MFLTGlyph::encoded\fP
Flag to tell whether the member has already been set to a glyph ID in the font\&.
.br
.PP
\fBunsigned MFLTGlyph::measured\fP
Flag to tell if the metrics of the glyph (members thru ) are already calculated\&.
.br
.PP
\fBunsigned MFLTGlyph::adjusted\fP
Flag to tell if the metrics of the glyph is adjusted, i\&.e\&. or is different from the normal size, or or is nonzero\&.
.br
.PP
\fBunsigned MFLTGlyph::internal\fP
For m17n\-lib's internal use only\&.
.SS MFLTGlyphAdjustment
.PP
Type of information about a glyph position adjustment\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBint MFLTGlyphAdjustment::xadv\fP
Adjustments for advance width for horizontal layout and advance height for vertical layout expressed in 26\&.6 fractional pixel format\&.
.br
.PP
\fBint MFLTGlyphAdjustment::yadv\fP
.PP
\fBint MFLTGlyphAdjustment::xoff\fP
Horizontal and vertical adjustments for glyph positioning expressed in 26\&.6 fractional pixel format\&.
.br
.PP
\fBint MFLTGlyphAdjustment::yoff\fP
.PP
\fBshort MFLTGlyphAdjustment::back\fP
Number of glyphs to go back for drawing a glyph\&.
.PP
\fBunsigned MFLTGlyphAdjustment::advance_is_absolute\fP
If nonzero, the member and are absolute, i\&.e\&., they should not be added to a glyph's origianl advance width and height\&.
.br
.PP
\fBunsigned MFLTGlyphAdjustment::set\fP
Should be set to 1 if at least one of the other members has a nonzero value\&.
.br
.SS MFLTGlyphString
.PP
Type of information about a glyph sequence\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBint MFLTGlyphString::glyph_size\fP
The actual byte size of elements of the array pointed by the member \fBglyphs\fP\&. It must be equal to or greater than 'sizeof
(MFLTGlyph)'\&.
.br
.PP
\fB\fBMFLTGlyph\fP* MFLTGlyphString::glyphs\fP
Array of glyphs\&.
.PP
\fBint MFLTGlyphString::allocated\fP
Number of elements allocated in \fBglyphs\fP\&.
.PP
\fBint MFLTGlyphString::used\fP
Number of elements in \fBglyphs\fP in use\&.
.PP
\fBunsigned int MFLTGlyphString::r2l\fP
Flag to tell if the glyphs should be drawn from right\-to\-left or not\&.
.br
.SS MFLTOtfSpec
.PP
Type of specification of GSUB and GPOS OpenType tables\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBMSymbol MFLTOtfSpec::sym\fP
Unique symbol representing the spec\&. This is the same as the \fBOTF\-SPEC\fP of the FLT\&.
.br
.PP
\fBunsigned int MFLTOtfSpec::script\fP
Tags for script and language system\&.
.PP
\fBunsigned int MFLTOtfSpec::langsys\fP
.PP
\fBunsigned int* MFLTOtfSpec::features[2]\fP
Array of GSUB (1st element) and GPOS (2nd element) feature tag arrays\&. Each array is terminated by 0\&. It may be NULL if there is no feature to specify\&.
.PP
(1) The case of using this information for selecting which features to apply to a glyph string\&. If the array is NULL, apply no feature\&. If the first element is 0xFFFFFFFF, apply all available features except for what appear in the second and following elements (if any)\&. Otherwise, apply all listed features\&.
.PP
(2) The case of using this information for checking if a a font can be drived by a specific FLT\&. If the array is NULL, the font should not have any features\&. Otherwize, the font should have all features before 0xFFFFFFFF element (if any) and should not have any features after that element\&.
.br
.SS MFLTFont
.PP
Type of font to be used by the FLT driver\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBMSymbol MFLTFont::family\fP
Family name of the font\&. It may be \fBMnil\fP if the family name is not important in finding a Font Layout Table suitable for the font (for instance, in the case that the font is an OpenType font)\&.
.br
.PP
\fBint MFLTFont::x_ppem\fP
Horizontal font sizes in pixels per EM\&.
.PP
\fBint MFLTFont::y_ppem\fP
Vertical font sizes in pixels per EM\&.
.PP
\fBint(* MFLTFont::get_glyph_id) (struct _MFLTFont *font, \fBMFLTGlyphString\fP *gstring, int from, int to)\fP
Callback function to get glyph IDs for glyphs between FROM (inclusive) and TO (exclusive) of GSTRING\&. If the member of a glyph is zero, the member of that glyph is a character code\&. The function must convert it to the glyph ID of FONT\&.
.br
.PP
\fBint(* MFLTFont::get_metrics) (struct _MFLTFont *font, \fBMFLTGlyphString\fP *gstring, int from, int to)\fP
Callback function to get metrics of glyphs between FROM (inclusive) and TO (exclusive) of GSTRING\&. If the member of a glyph is zero, the function must set the members , , , , , and of the glyph\&.
.br
.PP
\fBint(* MFLTFont::check_otf) (struct _MFLTFont *font, \fBMFLTOtfSpec\fP *spec)\fP
Callback function to check if the font has OpenType GSUB/GPOS features for a specific script/language\&. The function must return 1, if the font satisfies SPEC, or 0\&. It must be NULL if the font does not have OpenType tables\&.
.br
.PP
\fBint(* MFLTFont::drive_otf) (struct _MFLTFont *font, \fBMFLTOtfSpec\fP *spec, \fBMFLTGlyphString\fP *in, int from, int to, \fBMFLTGlyphString\fP *out, \fBMFLTGlyphAdjustment\fP *adjustment)\fP
Callback function to apply OpenType features in SPEC to glyphs between FROM (inclusive) and TO (exclusive) of IN\&. The resulting glyphs are appended to the tail of OUT\&. If OUT does not have a room to store all the resulting glyphs, it must return \-2\&. It must be NULL if the font does not have OpenType tables\&.
.br
.PP
\fBvoid* MFLTFont::internal\fP
For m17n\-lib's internal use only\&. It should be initialized to NULL\&.
.br
.SH "Typedef Documentation"
.PP
.SS "typedef struct _MFLT \fBMFLT\fP"
.PP
Type of FLT (Font Layout Table)\&. The type \fBMFLT\fP is for an FLT object\&. Its internal structure is concealed from application programs\&.
.br
.SH "Variable Documentation"
.PP
.SS "int mflt_enable_new_feature"
.PP
Flag to control several new OTF handling commands\&. If the variable mflt_enable_new_feature is nonzero, the function \fBmflt_run()\fP can drive a Font Layout Table that contains the new OTF\-related commands ':otf?' and/or OTF feature specification in a category table\&.
.br
.SS "int(* mflt_iterate_otf_feature) (struct _MFLTFont *font, \fBMFLTOtfSpec\fP *spec, int from, int to, unsigned char *table) (struct _MFLTFont * font, \fBMFLTOtfSpec\fP * spec, int from, int to, unsigned char * table)"
.SS "MSymbol(* mflt_font_id) (struct _MFLTFont *font) (struct _MFLTFont * font)"
.SS "int(* mflt_try_otf) (struct _MFLTFont *font, \fBMFLTOtfSpec\fP *spec, \fBMFLTGlyphString\fP *gstring, int from, int to) (struct _MFLTFont * font, \fBMFLTOtfSpec\fP * spec, \fBMFLTGlyphString\fP * gstring, int from, int to)"
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_dup.3m17n 0000664 0001750 0001750 00000002765 14504322000 014370 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_dup" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_dup \-
.SH SYNOPSIS
\fBMText\fP*
\fBmtext_dup\fP (\fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
Create a copy of an M\-text\&. The
.ft B
mtext_dup()
.ft R
function creates a copy of M\-text
.ft B
mt
.ft R
while inheriting all the text properties of
.ft B
mt\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a pointer to the created copy\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_duplicate()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mface_equal.3m17n 0000664 0001750 0001750 00000002656 14504322000 014620 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mface_equal" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mface_equal \-
.SH SYNOPSIS
int
\fBmface_equal\fP (\fBMFace\fP *
\fIface1\fP, \fBMFace\fP *
\fIface2\fP)
.SH DESCRIPTION
.PP
Compare faces\&. The
.ft B
mface_equal()
.ft R
function compares faces
.ft B
face1
.ft R
and
.ft B
face2\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If two faces have the same property values, return 1\&. Otherwise return 0\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_prop_range.3m17n 0000664 0001750 0001750 00000005632 14504322000 015730 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_prop_range" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_prop_range \-
.SH SYNOPSIS
int
\fBmtext_prop_range\fP (\fBMText\fP *
\fImt\fP, MSymbol
\fIkey\fP, int
\fIpos\fP, int *
\fIfrom\fP, int *
\fIto\fP, int
\fIdeeper\fP)
.SH DESCRIPTION
.PP
Find the range where the value of a text property is the same\&. The
.ft B
mtext_prop_range()
.ft R
function investigates the extent where all characters have the same value for a text property\&. It first finds the value of the property specified by
.ft B
key
.ft R
of the character at
.ft B
pos
.ft R
in M\-text
.ft B
mt\fP\&. Then it checks if adjacent characters have the same value for the property
.ft B
key\fP\&. The beginning and the end of the found range are stored to the variable pointed to by
.ft B
from
.ft R
and
.ft B
to\fP\&. The character position stored in
.ft B
from
.ft R
is inclusive but that in
.ft B
to
.ft R
is exclusive; this fashion is compatible with the range specification in the
.ft B
mtext_put_prop()
.ft R
function, etc\&.
.PP
If
.ft B
deeper
.ft R
is not 0, not only the topmost but also all the stacked properties whose key is
.ft B
key
.ft R
are compared\&.
.PP
If
.ft B
from
.ft R
is
.ft C
NULL\fP,
.ft R
the beginning of range is not searched for\&. If
.ft B
to
.ft R
is
.ft C
NULL\fP,
.ft R
the end of range is not searched for\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
.RE
.PP
If the operation was successful,
.ft B
mtext_prop_range()
.ft R
returns the number of values the property
.ft B
key
.ft R
has at pos\&. Otherwise it returns \-1 and assigns an error code to the external variable
.ft C
merror_code\fP\&.
.br
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE\fP,
.ft R
.ft C
MERROR_SYMBOL
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_put_prop()\fP,
.ft R
.ft B
mtext_put_prop_values()\fP,
.ft R
.ft B
mtext_get_prop()\fP,
.ft R
.ft B
mtext_get_prop_values()\fP,
.ft R
.ft B
mtext_pop_prop()\fP,
.ft R
.ft B
mtext_push_prop()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_resolve_coding.3m17n 0000664 0001750 0001750 00000003006 14504322000 016550 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_resolve_coding" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_resolve_coding \-
.SH SYNOPSIS
MSymbol
\fBmconv_resolve_coding\fP (MSymbol
\fIsymbol\fP)
.SH DESCRIPTION
.PP
Resolve coding system name\&. The
.ft B
mconv_resolve_coding()
.ft R
function returns
.ft B
symbol
.ft R
if it represents a coding system\&. Otherwise, canonicalize
.ft B
symbol
.ft R
as to a coding system name, and if the canonicalized name represents a coding system, return it\&. Otherwise, return
.ft B
Mnil\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17n_object.3m17n 0000664 0001750 0001750 00000004502 14504322000 014456 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n_object" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n_object \-
.SH SYNOPSIS
void*
\fBm17n_object\fP (int
\fIsize\fP, void(*)(void *)
\fIfreer\fP)
.SH DESCRIPTION
.PP
.nf
@brief Allocate a managed object.
The m17n_object() function allocates a new managed object of
@b size bytes and sets its reference count to 1. @b freer is the
function that is used to free the object when the reference count
becomes 0. If @b freer is NULL, the object is freed by the free()
function.
The heading bytes of the allocated object is occupied by
#M17NObjectHead. That area is reserved for the m17n library and
application programs should never touch it.
@par Return value:
This function returns a newly allocated object.
@par Errors:
This function never fails.
.fi
.fi
.PP
.SH Example:
.PP
.RS 4
.PP
.nf
typedef struct
{
M17NObjectHead head;
int mem1;
char *mem2;
} MYStruct;
void
my_freer (void *obj)
{
free (((MYStruct *) obj)\->mem2);
free (obj);
}
void
my_func (MText *mt, MSymbol key, int num, char *str)
{
MYStruct *st = m17n_object (sizeof (MYStruct), my_freer);
st\->mem1 = num;
st\->mem2 = strdup (str);
/* KEY must be a managing key\&. */
mtext_put_prop (mt, 0, mtext_len (mt), key, st);
/* This sets the reference count of ST back to 1\&. */
m17n_object_unref (st);
}
.fi
.fi
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_pop.3m17n 0000664 0001750 0001750 00000003132 14504322000 014532 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_pop" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_pop \-
.SH SYNOPSIS
void*
\fBmplist_pop\fP (\fBMPlist\fP *
\fIplist\fP)
.SH DESCRIPTION
.PP
Remove a property at the beginning of a property list\&. The
.ft B
mplist_pop()
.ft R
function removes a property at the beginning of property list
.ft B
plist\fP\&. As a result, the second key and value of the
.ft B
plist
.ft R
become the first ones\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful, this function return the value of the just popped property\&. Otherwise, it returns
.ft C
NULL\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_rebind_stream.3m17n 0000664 0001750 0001750 00000003163 14504322000 016370 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_rebind_stream" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_rebind_stream \-
.SH SYNOPSIS
\fBMConverter\fP*
\fBmconv_rebind_stream\fP (\fBMConverter\fP *
\fIconverter\fP, FILE *
\fIfp\fP)
.SH DESCRIPTION
.PP
Bind a stream to a code converter\&. The
.ft B
mconv_rebind_stream()
.ft R
function binds stream
.ft B
fp
.ft R
to code converter
.ft B
converter\fP\&. Following decodings and encodings are done to/from this newly bound stream\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function always returns
.ft B
converter\fP\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmconv_rebind_buffer()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/minput_get_title_icon.3m17n 0000664 0001750 0001750 00000003716 14504322000 016740 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "minput_get_title_icon" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
minput_get_title_icon \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBminput_get_title_icon\fP (MSymbol
\fIlanguage\fP, MSymbol
\fIname\fP)
.SH DESCRIPTION
.PP
Get title and icon filename of an input method\&. The
.ft B
minput_get_title_icon()
.ft R
function returns a plist containing a title and icon filename (if any) of an input method specified by
.ft B
language
.ft R
and
.ft B
name\fP\&.
.PP
The first element of the plist has key
.ft B
Mtext
.ft R
and the value is an M\-text of the title for identifying the input method\&. The second element (if any) has key
.ft B
Mtext
.ft R
and the value is an M\-text of the icon image (absolute) filename for the same purpose\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If there exists a specified input method and it defines an title, a plist is returned\&. Otherwise, NULL is returned\&. The caller must free the plist by
.ft B
m17n_object_unref()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/minput_config_variable.3m17n 0000664 0001750 0001750 00000006343 14504322000 017061 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "minput_config_variable" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
minput_config_variable \-
.SH SYNOPSIS
int
\fBminput_config_variable\fP (MSymbol
\fIlanguage\fP, MSymbol
\fIname\fP, MSymbol
\fIvariable\fP, \fBMPlist\fP *
\fIvalue\fP)
.SH DESCRIPTION
.PP
Configure the value of an input method variable\&. The
.ft B
minput_config_variable()
.ft R
function assigns
.ft B
value
.ft R
to the variable
.ft B
variable
.ft R
of the input method specified by
.ft B
language
.ft R
and
.ft B
name\fP\&.
.PP
If
.ft B
value
.ft R
is a non\-empty plist, it must be a plist of one element whose key is
.ft B
Minteger\fP,
.ft R
.ft B
Msymbol\fP,
.ft R
or
.ft B
Mtext\fP,
.ft R
and the value is of the corresponding type\&. That value is assigned to the variable\&.
.PP
If
.ft B
value
.ft R
is an empty plist, any configuration and customization of the variable are canceled, and the default value is assigned to the variable\&.
.PP
If
.ft B
value
.ft R
is NULL, the configuration of the variable is canceled, and the original value (what saved in per\-user customization file, or the default value) is assigned to the variable\&.
.PP
In the latter two cases,
.ft B
variable
.ft R
can be
.ft B
Mnil
.ft R
to make all the variables of the input method the target of the operation\&.
.PP
If
.ft B
name
.ft R
is
.ft B
Mnil\fP,
.ft R
this function configures the value of global variable, not that of a specific input method\&.
.PP
The configuration takes effect for input methods opened or re\-opened later in the current session\&. To make the configuration take effect for the future session, it must be saved in a per\-user customization file by the function
.ft B
minput_save_config()\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
.RE
.PP
If the operation was successful, this function returns 0, otherwise returns \-1\&. The operation fails in these cases:
.PD 0
.IP "\(bu" 2
\fBvalue
.ft R
is not in a valid form, the type does not match the definition, or the value is our of range\&.
.IP "\(bu" 2
\fBvariable
.ft R
is not available for the input method\&.
.IP "\(bu" 2
\fBlanguage
.ft R
and
.ft B
name
.ft R
do not specify an existing input method\&.
.br
.PP
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBminput_get_variable()\fP,
.ft R
.ft B
minput_save_config()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist.3m17n 0000664 0001750 0001750 00000002657 14504322000 013667 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmplist\fP (void)
.SH DESCRIPTION
.PP
Create a property list object\&. The
.ft B
mplist()
.ft R
function returns a newly created property list object of length zero\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a newly created property list\&.
.RE
.PP
.SH ERRORS
.PP
.RS 4
This function never fails\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdebug_dump_flt.3m17n 0000664 0001750 0001750 00000003127 14504322000 015505 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdebug_dump_flt" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdebug_dump_flt \-
.SH SYNOPSIS
\fBMFLT\fP*
\fBmdebug_dump_flt\fP (\fBMFLT\fP *
\fIflt\fP, int
\fIindent\fP)
.SH DESCRIPTION
.PP
Dump a Font Layout Table\&. The
.ft B
mdebug_dump_flt()
.ft R
function prints the Font Layout Table
.ft B
flt
.ft R
in a human readable way to the stderr or to what specified by the environment variable MDEBUG_OUTPUT_FILE\&.
.ft B
indent
.ft R
specifies how many columns to indent the lines but the first one\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns
.ft B
flt\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_reset_converter.3m17n 0000664 0001750 0001750 00000003117 14504322000 016762 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_reset_converter" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_reset_converter \-
.SH SYNOPSIS
int
\fBmconv_reset_converter\fP (\fBMConverter\fP *
\fIconverter\fP)
.SH DESCRIPTION
.PP
Reset a code converter\&. The
.ft B
mconv_reset_converter()
.ft R
function resets code converter
.ft B
converter
.ft R
to the initial state\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If
.ft B
converter\->coding
.ft R
has its own reseter function,
.ft B
mconv_reset_converter()
.ft R
returns the result of that function applied to
.ft B
converter\fP\&. Otherwise it returns 0\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_name.3m17n 0000664 0001750 0001750 00000002414 14504322000 014471 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_name" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_name \-
.SH SYNOPSIS
char*
\fBmfont_name\fP (\fBMFont\fP *
\fIfont\fP)
.SH DESCRIPTION
.PP
Create a fontname from a font\&. This function is obsolete\&. Use mfont_unparse_name instead\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/msymbol_as_managing_key.3m17n 0000664 0001750 0001750 00000003532 14504322000 017226 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "msymbol_as_managing_key" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
msymbol_as_managing_key \-
.SH SYNOPSIS
MSymbol
\fBmsymbol_as_managing_key\fP (const char *
\fIname\fP)
.SH DESCRIPTION
.PP
Create a managing key\&. The
.ft B
msymbol_as_managing_key()
.ft R
function returns a newly created managing key whose name is
.ft B
name\fP\&. It there already exists a symbol of name
.ft B
name\fP,
.ft R
it returns
.ft B
Mnil\fP\&.
.PP
Symbols whose name starts by two spaces are reserved by the m17n library, and are used by the library only internally\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful, this function returns the created symbol\&. Otherwise, it returns
.ft B
Mnil\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
MERROR_SYMBOL
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmsymbol()\fP,
.ft R
.ft B
msymbol_exist()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mchartable_set_range.3m17n 0000664 0001750 0001750 00000003701 14504322000 016477 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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_set_range" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchartable_set_range \-
.SH SYNOPSIS
int
\fBmchartable_set_range\fP (\fBMCharTable\fP *
\fItable\fP, int
\fIfrom\fP, int
\fIto\fP, void *
\fIval\fP)
.SH DESCRIPTION
.PP
Assign a value to the characters in the specified range\&. The
.ft B
mchartable_set_range()
.ft R
function assigns value
.ft B
val
.ft R
to the characters from
.ft B
from
.ft R
to
.ft B
to
.ft R
(both inclusive) in chartable
.ft B
table\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mchartable_set_range()
.ft R
returns 0\&. Otherwise it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&. If
.ft B
from
.ft R
is greater than
.ft B
to\fP,
.ft R
.ft B
mchartable_set_range()
.ft R
returns immediately without an error\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_CHAR
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmchartable_set()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_ncmp.3m17n 0000664 0001750 0001750 00000003421 14504322000 014523 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_ncmp" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_ncmp \-
.SH SYNOPSIS
int
\fBmtext_ncmp\fP (\fBMText\fP *
\fImt1\fP, \fBMText\fP *
\fImt2\fP, int
\fIn\fP)
.SH DESCRIPTION
.PP
Compare initial parts of two M\-texts character\-by\-character\&. The
.ft B
mtext_ncmp()
.ft R
function is similar to
.ft B
mtext_cmp()\fP,
.ft R
but compares at most
.ft B
n
.ft R
characters from the beginning\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns 1, 0, or \-1 if
.ft B
mt1
.ft R
is found greater than, equal to, or less than
.ft B
mt2\fP,
.ft R
respectively\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_cmp()\fP,
.ft R
.ft B
mtext_casecmp()\fP,
.ft R
.ft B
mtext_ncasecmp()
.ft R
.ft B
mtext_compare()\fP,
.ft R
.ft B
mtext_case_compare()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mflt_find.3m17n 0000664 0001750 0001750 00000003071 14504322000 014310 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mflt_find" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mflt_find \-
.SH SYNOPSIS
\fBMFLT\fP *
\fBmflt_find\fP (int
\fIc\fP, \fBMFLTFont\fP *
\fIfont\fP)
.SH DESCRIPTION
.PP
Find an FLT suitable for the specified character and font\&. The
.ft B
mflt_find()
.ft R
function returns the most appropriate FLT for layouting character
.ft B
c
.ft R
with font
.ft B
font\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mflt_find()
.ft R
returns a pointer to the found FLT object\&. Otherwise, it returns
.ft C
NULL\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/minput_filter.3m17n 0000664 0001750 0001750 00000004767 14504322000 015244 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "minput_filter" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
minput_filter \-
.SH SYNOPSIS
int
\fBminput_filter\fP (\fBMInputContext\fP *
\fIic\fP, MSymbol
\fIkey\fP, void *
\fIarg\fP)
.SH DESCRIPTION
.PP
Filter an input key\&. The
.ft B
minput_filter()
.ft R
function filters input key
.ft B
key
.ft R
according to input context
.ft B
ic\fP,
.ft R
and calls callback functions corresponding to
.ft B
Minput_preedit_draw\fP,
.ft R
.ft B
Minput_status_draw\fP,
.ft R
and
.ft B
Minput_candidates_draw
.ft R
if the preedit text, the status, and the current candidate are changed respectively\&.
.PP
To make the input method commit the current preedit text (if any) and shift to the initial state, call this function with
.ft B
Mnil
.ft R
as
.ft B
key\fP\&.
.PP
To inform the input method about the focus\-out event, call this function with
.ft B
Minput_focus_out
.ft R
as
.ft B
key\fP\&.
.PP
To inform the input method about the focus\-in event, call this function with
.ft B
Minput_focus_in
.ft R
as
.ft B
key\fP\&.
.PP
To inform the input method about the focus\-move event (i\&.e\&. input spot change within the same input context), call this function with
.ft B
Minput_focus_move
.ft R
as
.ft B
key\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If
.ft B
key
.ft R
is filtered out, this function returns 1\&. In that case, the caller should discard the key\&. Otherwise, it returns 0, and the caller should handle the key, for instance, by calling the function
.ft B
minput_lookup()
.ft R
with the same key\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nInputMethod.3m17n 0000664 0001750 0001750 00000073741 14504322000 015324 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nInputMethod" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nInputMethod_\-_Input_Method_(ba \- \- API for Input method\&.
.SH SYNOPSIS
.br
.PP
.SS "Data Structures"
.in +1c
.ti -1c
.RI "struct \fBMInputDriver\fP"
.br
.RI "Structure of input method driver\&. "
.ti -1c
.RI "struct \fBMInputMethod\fP"
.br
.RI "Structure of input method\&. "
.ti -1c
.RI "struct \fBMInputContext\fP"
.br
.RI "Structure of input context\&. "
.in -1c
.SS "Typedefs"
.in +1c
.ti -1c
.RI "typedef void(* \fBMInputCallbackFunc\fP) (\fBMInputContext\fP *ic, MSymbol command)"
.br
.RI "Type of input method callback functions\&. "
.in -1c
.SS "Enumerations"
.in +1c
.ti -1c
.RI "enum \fBMInputCandidatesChanged\fP { \fBMINPUT_CANDIDATES_LIST_CHANGED\fP = 1, \fBMINPUT_CANDIDATES_INDEX_CHANGED\fP = 2, \fBMINPUT_CANDIDATES_SHOW_CHANGED\fP = 4, \fBMINPUT_CANDIDATES_CHANGED_MAX\fP }"
.br
.RI "Bit-masks to specify how candidates of input method is changed\&.
.br
"
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "MSymbol \fBMinput_method\fP"
.br
.RI "Symbol whose name is 'input-method'\&. "
.ti -1c
.RI "\fBMInputDriver\fP \fBminput_default_driver\fP"
.br
.RI "The default driver for internal input methods\&. "
.ti -1c
.RI "\fBMInputDriver\fP * \fBminput_driver\fP"
.br
.RI "The driver for internal input methods\&. "
.ti -1c
.RI "MSymbol \fBMinput_driver\fP"
.br
.in -1c
.SS "Variables: Predefined symbols for callback commands\&.
"
These are the predefined symbols that are used as the \fCCOMMAND\fP argument of callback functions of an input method driver (see \fBMInputDriver::callback_list\fP)\&.
.br
.PP
Most of them do not require extra argument nor return any value; exceptions are these:
.PP
\fBMinput_get_surrounding_text:\fP When a callback function assigned for this command is called, the first element of \fBMInputContext::plist\fP has key \fBMinteger\fP and the value specifies which portion of the surrounding text should be retrieved\&. If the value is positive, it specifies the number of characters following the current cursor position\&. If the value is negative, the absolute value specifies the number of characters preceding the current cursor position\&. If the value is zero, it means that the caller just wants to know if the surrounding text is currently supported or not\&.
.PP
If the surrounding text is currently supported, the callback function must set the key of this element to \fBMtext\fP and the value to the retrieved M\-text\&. The length of the M\-text may be shorter than the requested number of characters, if the available text is not that long\&. The length can be zero in the worst case\&. Or, the length may be longer if an application thinks it is more efficient to return that length\&.
.PP
If the surrounding text is not currently supported, the callback function should return without changing the first element of \fBMInputContext::plist\fP\&.
.PP
\fBMinput_delete_surrounding_text:\fP When a callback function assigned for this command is called, the first element of \fBMInputContext::plist\fP has key \fBMinteger\fP and the value specifies which portion of the surrounding text should be deleted in the same way as the case of Minput_get_surrounding_text\&. The callback function must delete the specified text\&. It should not alter \fBMInputContext::plist\fP\&.
.br
.in +1c
.ti -1c
.RI "MSymbol \fBMinput_preedit_start\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_preedit_done\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_preedit_draw\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_status_start\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_status_done\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_status_draw\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_candidates_start\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_candidates_done\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_candidates_draw\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_set_spot\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_toggle\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_reset\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_get_surrounding_text\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_delete_surrounding_text\fP"
.br
.in -1c
.SS "Variables: Predefined symbols for special input events\&."
These are the predefined symbols that are used as the \fCKEY\fP argument of \fBminput_filter()\fP\&.
.br
.in +1c
.ti -1c
.RI "MSymbol \fBMinput_focus_out\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_focus_in\fP"
.br
.ti -1c
.RI "MSymbol \fBMinput_focus_move\fP"
.br
.in -1c
.SS "Variables: Predefined symbols used in input method information\&.
"
.in +1c
.ti -1c
.RI "MSymbol \fBMinherited\fP"
.br
.ti -1c
.RI "MSymbol \fBMcustomized\fP"
.br
.ti -1c
.RI "MSymbol \fBMconfigured\fP"
.br
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "\fBMInputMethod\fP * \fBminput_open_im\fP (MSymbol language, MSymbol name, void *arg)"
.br
.RI "Open an input method\&. "
.ti -1c
.RI "void \fBminput_close_im\fP (\fBMInputMethod\fP *im)"
.br
.RI "Close an input method\&. "
.ti -1c
.RI "\fBMInputContext\fP * \fBminput_create_ic\fP (\fBMInputMethod\fP *im, void *arg)"
.br
.RI "Create an input context\&. "
.ti -1c
.RI "void \fBminput_destroy_ic\fP (\fBMInputContext\fP *ic)"
.br
.RI "Destroy an input context\&. "
.ti -1c
.RI "int \fBminput_filter\fP (\fBMInputContext\fP *ic, MSymbol key, void *arg)"
.br
.RI "Filter an input key\&. "
.ti -1c
.RI "int \fBminput_lookup\fP (\fBMInputContext\fP *ic, MSymbol key, void *arg, \fBMText\fP *mt)"
.br
.RI "Look up a text produced in the input context\&. "
.ti -1c
.RI "void \fBminput_set_spot\fP (\fBMInputContext\fP *ic, int x, int y, int ascent, int descent, int fontsize, \fBMText\fP *mt, int pos)"
.br
.RI "Set the spot of the input context\&. "
.ti -1c
.RI "void \fBminput_toggle\fP (\fBMInputContext\fP *ic)"
.br
.RI "Toggle input method\&. "
.ti -1c
.RI "void \fBminput_reset_ic\fP (\fBMInputContext\fP *ic)"
.br
.RI "Reset an input context\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBminput_get_title_icon\fP (MSymbol language, MSymbol name)"
.br
.RI "Get title and icon filename of an input method\&. "
.ti -1c
.RI "\fBMText\fP * \fBminput_get_description\fP (MSymbol language, MSymbol name)"
.br
.RI "Get description text of an input method\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBminput_get_command\fP (MSymbol language, MSymbol name, MSymbol command)"
.br
.ti -1c
.RI "int \fBminput_config_command\fP (MSymbol language, MSymbol name, MSymbol command, \fBMPlist\fP *keyseqlist)"
.br
.ti -1c
.RI "\fBMPlist\fP * \fBminput_get_variable\fP (MSymbol language, MSymbol name, MSymbol variable)"
.br
.ti -1c
.RI "int \fBminput_config_variable\fP (MSymbol language, MSymbol name, MSymbol variable, \fBMPlist\fP *value)"
.br
.RI "Configure the value of an input method variable\&. "
.ti -1c
.RI "char * \fBminput_config_file\fP ()"
.br
.RI "Get the name of per-user customization file\&. "
.ti -1c
.RI "int \fBminput_save_config\fP (void)"
.br
.RI "Save configurations in per-user customization file\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBminput_list\fP (MSymbol language)"
.br
.in -1c
.SS "Obsolete functions"
.in +1c
.ti -1c
.RI "\fBMPlist\fP * \fBminput_get_variables\fP (MSymbol language, MSymbol name)"
.br
.ti -1c
.RI "int \fBminput_set_variable\fP (MSymbol language, MSymbol name, MSymbol variable, void *value)"
.br
.RI "Set the initial value of an input method variable\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBminput_get_commands\fP (MSymbol language, MSymbol name)"
.br
.RI "Get information about input method commands\&. "
.ti -1c
.RI "int \fBminput_assign_command_keys\fP (MSymbol language, MSymbol name, MSymbol command, \fBMPlist\fP *keyseq)"
.br
.RI "Assign a key sequence to an input method command (obsolete)\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBminput_parse_im_names\fP (\fBMText\fP *mt)"
.br
.RI "Parse input method names\&. "
.ti -1c
.RI "int \fBminput_callback\fP (\fBMInputContext\fP *ic, MSymbol command)"
.br
.RI "Call a callback function\&. "
.in -1c
.SH "Detailed Description"
.PP
API for Input method\&.
.br
.PP
An input method is an object to enable inputting various characters\&. An input method is identified by a pair of symbols, LANGUAGE and NAME\&. This pair decides an input method driver of the input method\&. An input method driver is a set of functions for handling the input method\&. There are two kinds of input methods; internal one and foreign one\&.
.PP
.PD 0
.IP "\(bu" 2
Internal Input Method
.PP
An internal input method has non \fCMnil\fP LANGUAGE, and its body is defined in the m17n database by the tag \&. For this kind of input methods, the m17n library uses two predefined input method drivers, one for CUI use and the other for GUI use\&. Those drivers utilize the input processing engine provided by the m17n library itself\&. The m17n database may provide input methods that are not limited to a specific language\&. The database uses \fCMt\fP as LANGUAGE of those input methods\&.
.PP
An internal input method accepts an input key which is a symbol associated with an input event\&. As there is no way for the \fCm17n\fP \fClibrary\fP to know how input events are represented in an application program, an application programmer has to convert an input event to an input key by himself\&. See the documentation of the function \fBminput_event_to_key()\fP for the detail\&.
.PP
.IP "\(bu" 2
Foreign Input Method A foreign input method has \fCMnil\fP LANGUAGE, and its body is defined in an external resource (e\&.g\&. XIM of X Window System)\&. For this kind of input methods, the symbol NAME must have a property of key \fBMinput_driver\fP, and the value must be a pointer to an input method driver\&. Therefore, by preparing a proper driver, any kind of input method can be treated in the framework of the \fCm17n\fP \fClibrary\fP\&.
.PP
For convenience, the m17n\-X library provides an input method driver that enables the input style of OverTheSpot for XIM, and stores \fBMinput_driver\fP property of the symbol \fCMxim\fP with a pointer to the driver\&. See the documentation of m17n GUI API for the detail\&.
.PP
.PP
.PP
PROCESSING FLOW
.PP
The typical processing flow of handling an input method is:
.PP
.PD 0
.IP "\(bu" 2
open an input method
.IP "\(bu" 2
create an input context for the input method
.IP "\(bu" 2
filter an input key
.IP "\(bu" 2
look up a produced text in the input context
.br
.PP
.SH "Data Structure Documentation"
.SS MInputDriver
.PP
Structure of input method driver\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBint(* MInputDriver::open_im) (\fBMInputMethod\fP *im)\fP
.PP
Open an input method\&. This function opens the input method \fBim\fP\&. It is called from the function \fBminput_open_im()\fP after all member of \fBim\fP but set\&. If opening \fBim\fP succeeds, it returns 0\&. Otherwise, it returns \-1\&. The function can setup \fBim\->info\fP to keep various information that is referred by the other driver functions\&.
.br
.PP
\fBvoid(* MInputDriver::close_im) (\fBMInputMethod\fP *im)\fP
.PP
Close an input method\&. This function closes the input method \fBim\fP\&. It is called from the function \fBminput_close_im()\fP\&. It frees all memory allocated for \fBim\->info\fP (if any) after finishing all the tasks of closing the input method\&. But, the other members of \fBim\fP should not be touched\&.
.br
.PP
\fBint(* MInputDriver::create_ic) (\fBMInputContext\fP *ic)\fP
.PP
Create an input context\&. This function creates the input context \fBic\fP\&. It is called from the function \fBminput_create_ic()\fP after all members of \fBic\fP but are set\&. If creating \fBic\fP succeeds, it returns 0\&. Otherwise, it returns \-1\&. The function can setup \fBic\->info\fP to keep various information that is referred by the other driver functions\&.
.br
.PP
\fBvoid(* MInputDriver::destroy_ic) (\fBMInputContext\fP *ic)\fP
.PP
Destroy an input context\&. This function is called from the function \fBminput_destroy_ic()\fP and destroys the input context \fBic\fP\&. It frees all memory allocated for \fBic\->info\fP (if any) after finishing all the tasks of destroying the input method\&. But, the other members of \fBic\fP should not be touched\&.
.br
.PP
\fBint(* MInputDriver::filter) (\fBMInputContext\fP *ic, MSymbol key, void *arg)\fP
.PP
Filter an input key\&. This function is called from the function \fBminput_filter()\fP and filters an input key\&. \fBkey\fP and \fBarg\fP are the same as what given to \fBminput_filter()\fP\&.
.PP
The task of the function is to handle \fBkey\fP, update the internal state of \fBic\fP\&. If \fBkey\fP is absorbed by the input method and no text is produced, it returns 1\&. Otherwise, it returns 0\&.
.PP
It may update \fBic\->status\fP, \fBic\->preedit\fP, \fBic\->cursor_pos\fP, \fBic\->ncandidates\fP, \fBic\->candidates\fP, and \fBic\->produced\fP if that is necessary for the member \&.
.PP
The meaning of \fBarg\fP depends on the input method river\&. See the documentation of \fCminput_default_driver\fP and \fCminput_gui_driver\fP for instance\&.
.br
.PP
\fBint(* MInputDriver::lookup) (\fBMInputContext\fP *ic, MSymbol key, void *arg, \fBMText\fP *mt)\fP
.PP
Lookup a produced text in an input context\&. It is called from the function \fBminput_lookup()\fP and looks up a produced text in the input context \fBic\fP\&. This function concatenate a text produced by the input key \fBkey\fP (if any) to M\-text \fBmt\fP\&. If \fBkey\fP was correctly handled by the input method of \fBic\fP, it returns 0\&. Otherwise, it returns 1\&.
.PP
The meaning of \fBarg\fP depends on the input method driver\&. See the documentation of \fCminput_default_driver\fP and \fCminput_gui_driver\fP for instance\&.
.br
.PP
\fB\fBMPlist\fP* MInputDriver::callback_list\fP
.PP
List of callback functions\&. List of callback functions\&. Keys are one of \fBMinput_preedit_start\fP, \fBMinput_preedit_draw\fP, \fBMinput_preedit_done\fP, \fBMinput_status_start\fP, \fBMinput_status_draw\fP, \fBMinput_status_done\fP, \fBMinput_candidates_start\fP, \fBMinput_candidates_draw\fP, \fBMinput_candidates_done\fP, \fBMinput_set_spot\fP, \fBMinput_toggle\fP, \fBMinput_reset\fP, \fBMinput_get_surrounding_text\fP, \fBMinput_delete_surrounding_text\fP\&. Values are functions of type \fBMInputCallbackFunc\fP\&.
.br
.SS MInputMethod
.PP
Structure of input method\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBMSymbol MInputMethod::language\fP
Which language this input method is for\&. The value is \fCMnil\fP if the input method is foreign\&.
.br
.PP
\fBMSymbol MInputMethod::name\fP
Name of the input method\&. If the input method is foreign, it must has a property of key \fCMinput_driver\fP and the value must be a pointer to a proper input method driver\&.
.br
.PP
\fB\fBMInputDriver\fP MInputMethod::driver\fP
Input method driver of the input method\&.
.PP
\fBvoid* MInputMethod::arg\fP
The argument given to \fBminput_open_im()\fP\&.
.PP
\fBvoid* MInputMethod::info\fP
Pointer to extra information that \&.open_im() setups\&.
.br
.SS MInputContext
.PP
Structure of input context\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fB\fBMInputMethod\fP* MInputContext::im\fP
Backward pointer to the input method\&. It is set up by the function \fBminput_create_ic()\fP\&.
.br
.PP
\fB\fBMText\fP* MInputContext::produced\fP
M\-text produced by the input method\&. It is set up by the function \fBminput_filter()\fP \&.
.br
.PP
\fBvoid* MInputContext::arg\fP
Argument given to the function \fBminput_create_ic()\fP\&.
.PP
\fBint MInputContext::active\fP
Flag telling whether the input context is currently active or inactive\&. The value is set to 1 (active) when the input context is created\&. It is toggled by the function \fBminput_toggle()\fP\&.
.br
.PP
\fBint MInputContext::x\fP
X and Y coordinate of the spot\&.
.PP
\fBint MInputContext::y\fP
.PP
\fBint MInputContext::ascent\fP
Ascent and descent pixels of the line of the spot\&.
.PP
\fBint MInputContext::descent\fP
.PP
\fBint MInputContext::fontsize\fP
Font size for preedit text in 1/10 point\&.
.PP
\fB\fBMText\fP* MInputContext::mt\fP
M\-text at the spot, or NULL\&.
.PP
\fBint MInputContext::pos\fP
Character position in at the spot\&.
.PP
\fBstruct { \&.\&.\&. } MInputContext::spot\fP
Spot location and size of the input context\&.
.PP
\fBvoid* MInputContext::info\fP
The usage of the following members depends on the input method driver\&. The descriptions below are for the driver of an internal input method\&. They are set by the function \->driver\&.filter()\&.
.br
Pointer to extra information that \->driver\&.create_ic() setups\&. It is used to record the internal state of the input context\&.
.br
.PP
\fB\fBMText\fP* MInputContext::status\fP
M\-text describing the current status of the input context\&.
.br
.PP
\fBint MInputContext::status_changed\fP
The function \->driver\&.filter() sets the value to 1 when it changes \&.
.br
.PP
\fB\fBMText\fP* MInputContext::preedit\fP
M\-text containing the current preedit text\&. The function \->driver\&.filter() sets the value\&.
.br
.PP
\fBint MInputContext::preedit_changed\fP
The function \->driver\&.filter() sets the value to 1 when it changes \&.
.br
.PP
\fBint MInputContext::cursor_pos\fP
Cursor position of \&.
.PP
\fBint MInputContext::cursor_pos_changed\fP
The function \->driver\&.filter() sets the value to 1 when it changes \&.
.br
.PP
\fB\fBMPlist\fP* MInputContext::candidate_list\fP
Plist of the current candidate groups\&. Each element is an M\-text or a plist\&. If an element is an M\-text (i\&.e\&. the key is Mtext), candidates in that group are characters in the M\-text\&. If it is a plist (i\&.e\&. the key is Mplist), each element is an M\-text, and candidates in that group are those M\-texts\&.
.br
.PP
\fBint MInputContext::candidate_index\fP
Index number of the currently selected candidate in all the candidates\&. The index of the first candidate is 0\&. If the number is 8, and the first candidate group contains 7 candidates, the currently selected candidate is the second element of the second candidate group\&.
.br
.PP
\fBint MInputContext::candidate_from\fP
Start and the end positions of the preedit text where corresponds to\&.
.br
.PP
\fBint MInputContext::candidate_to\fP
.PP
\fBint MInputContext::candidate_show\fP
Flag telling whether the current candidate group must be shown or not\&. The function \->driver\&.filter() sets the value to 1 when an input method required to show candidates, and sets the value to 0 otherwise\&.
.br
.PP
\fBint MInputContext::candidates_changed\fP
The function \->driver\&.filter() sets the value to bitwise OR of \fCenum\fP \fCMInputCandidatesChanged\fP when it changed any of the above members (), and sets the value to 0 otherwise\&.
.br
.PP
\fB\fBMPlist\fP* MInputContext::plist\fP
Plist that can be freely used by \->driver functions\&. The driver of internal input method uses it to exchange extra arguments and result for callback functions\&. The function \->driver\&.create_ic() sets this to an empty plist, and the function \->driver\&.destroy_ic() frees it by using \fBm17n_object_unref()\fP\&.
.br
.SH "Typedef Documentation"
.PP
.SS "typedef void(* MInputCallbackFunc) (\fBMInputContext\fP *ic, MSymbol command)"
.PP
Type of input method callback functions\&. This is the type of callback functions called from input method drivers\&. \fBic\fP is a pointer to an input context, \fBcommand\fP is a name of callback for which the function is called\&.
.br
.SH "Enumeration Type Documentation"
.PP
.SS "enum \fBMInputCandidatesChanged\fP"
.PP
Bit\-masks to specify how candidates of input method is changed\&.
.br
.PP
\fBEnumerator\fP
.in +1c
.TP
\fB\fIMINPUT_CANDIDATES_LIST_CHANGED \fP\fP
.TP
\fB\fIMINPUT_CANDIDATES_INDEX_CHANGED \fP\fP
.TP
\fB\fIMINPUT_CANDIDATES_SHOW_CHANGED \fP\fP
.TP
\fB\fIMINPUT_CANDIDATES_CHANGED_MAX \fP\fP
.SH "Variable Documentation"
.PP
.SS "MSymbol Minput_method"
.PP
Symbol whose name is 'input\-method'\&.
.SS "MSymbol Minput_preedit_start"
.SS "MSymbol Minput_preedit_done"
.SS "MSymbol Minput_preedit_draw"
.SS "MSymbol Minput_status_start"
.SS "MSymbol Minput_status_done"
.SS "MSymbol Minput_status_draw"
.SS "MSymbol Minput_candidates_start"
.SS "MSymbol Minput_candidates_done"
.SS "MSymbol Minput_candidates_draw"
.SS "MSymbol Minput_set_spot"
.SS "MSymbol Minput_toggle"
.SS "MSymbol Minput_reset"
.SS "MSymbol Minput_get_surrounding_text"
.SS "MSymbol Minput_delete_surrounding_text"
.SS "MSymbol Minput_focus_out"
.SS "MSymbol Minput_focus_in"
.SS "MSymbol Minput_focus_move"
.SS "MSymbol Minherited"
These are the predefined symbols describing status of input method command and variable, and are used in a return value of \fBminput_get_command()\fP and \fBminput_get_variable()\fP\&.
.br
.SS "MSymbol Mcustomized"
.SS "MSymbol Mconfigured"
.SS "\fBMInputDriver\fP minput_default_driver"
.PP
The default driver for internal input methods\&. The variable \fBminput_default_driver\fP is the default driver for internal input methods\&.
.PP
The member \fBMInputDriver::open_im()\fP searches the m17n database for an input method that matches the tag < \fBMinput_method\fP, \fBlanguage\fP, \fBname>\fP and loads it\&.
.PP
The member \fBMInputDriver::callback_list()\fP is \fCNULL\fP\&. Thus, it is programmers responsibility to set it to a plist of proper callback functions\&. Otherwise, no feedback information (e\&.g\&. preedit text) can be shown to users\&.
.PP
The macro \fBM17N_INIT()\fP sets the variable \fBminput_driver\fP to the pointer to this driver so that all internal input methods use it\&.
.PP
Therefore, unless \fCminput_driver\fP is set differently, the driver dependent arguments \fBarg\fP of the functions whose name begins with 'minput_' are all ignored\&.
.br
.SS "\fBMInputDriver\fP* minput_driver"
.PP
The driver for internal input methods\&. The variable \fBminput_driver\fP is a pointer to the input method driver that is used by internal input methods\&. The macro \fBM17N_INIT()\fP initializes it to a pointer to \fBminput_default_driver\fP if is included\&.
.br
.SS "MSymbol Minput_driver"
The variable \fBMinput_driver\fP is a symbol for a foreign input method\&. See \fBforeign input method\fP for the detail\&.
.br
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH "Function Documentation"
.PP
.SS "\fBMPlist\fP* minput_get_variables (MSymbol language, MSymbol name)"
.PP
.nf
@brief Get a list of variables of an input method (obsolete).
This function is obsolete. Use minput_get_variable() instead.
The minput_get_variables() function returns a plist (#MPlist) of
variables used to control the behavior of the input method
specified by @b language and @b name. The plist is @e well\-formed
(@ref m17nPlist) of the following format:
.fi
.PP
.PP
.nf
(VARNAME (DOC\-MTEXT DEFAULT\-VALUE [ VALUE ... ] )
VARNAME (DOC\-MTEXT DEFAULT\-VALUE [ VALUE ... ] )
...)
.fi
.PP
.PP
.nf
@c VARNAME is a symbol representing the variable name.
@c DOC\-MTEXT is an M\-text describing the variable.
@c DEFAULT\-VALUE is the default value of the variable. It is a
symbol, integer, or M\-text.
@c VALUEs (if any) specifies the possible values of the variable.
If @c DEFAULT\-VALUE is an integer, @c VALUE may be a plist (@c FROM
@c TO), where @c FROM and @c TO specifies a range of possible
values.
For instance, suppose an input method has the variables:
@li name:intvar, description:"value is an integer",
initial value:0, value\-range:0..3,10,20
@li name:symvar, description:"value is a symbol",
initial value:nil, value\-range:a, b, c, nil
@li name:txtvar, description:"value is an M\-text",
initial value:empty text, no value\-range (i.e. any text)
Then, the returned plist is as follows.
.fi
.PP
.PP
.nf
(intvar ("value is an integer" 0 (0 3) 10 20)
symvar ("value is a symbol" nil a b c nil)
txtvar ("value is an M\-text" ""))
.fi
.PP
.PP
.nf
@par Return value:
If the input method uses any variables, a pointer to #MPlist is
returned. As the plist is kept in the library, the caller must not
modify nor free it. If the input method does not use any
variable, @c NULL is returned.
.fi
.PP
.SS "int minput_set_variable (MSymbol language, MSymbol name, MSymbol variable, void * value)"
.PP
Set the initial value of an input method variable\&. The \fBminput_set_variable()\fP function sets the initial value of input method variable \fBvariable\fP to \fBvalue\fP for the input method specified by \fBlanguage\fP and \fBname\fP\&.
.PP
By default, the initial value is 0\&.
.PP
This setting gets effective in a newly opened input method\&.
.PP
\fBRETURN VALUE\fp
.RS 4
If the operation was successful, 0 is returned\&. Otherwise \-1 is returned, and \fBmerror_code\fP is set to \fCMERROR_IM\fP\&.
.br
.RE
.PP
.SS "\fBMPlist\fP* minput_get_commands (MSymbol language, MSymbol name)"
.PP
Get information about input method commands\&. The \fBminput_get_commands()\fP function returns information about input method commands of the input method specified by \fBlanguage\fP and \fBname\fP\&. An input method command is a pseudo key event to which one or more actual input key sequences are assigned\&.
.PP
There are two kinds of commands, global and local\&. Global commands are used by multiple input methods for the same purpose, and have global key assignments\&. Local commands are used only by a specific input method, and have only local key assignments\&.
.PP
Each input method may locally change key assignments for global commands\&. The global key assignment for a global command is effective only when the current input method does not have local key assignments for that command\&.
.PP
If \fBname\fP is \fBMnil\fP, information about global commands is returned\&. In this case \fBlanguage\fP is ignored\&.
.PP
If \fBname\fP is not \fBMnil\fP, information about those commands that have local key assignments in the input method specified by \fBlanguage\fP and \fBname\fP is returned\&.
.PP
\fBRETURN VALUE\fp
.RS 4
If no input method commands are found, this function returns \fCNULL\fP\&.
.RE
.PP
Otherwise, a pointer to a plist is returned\&. The key of each element in the plist is a symbol representing a command, and the value is a plist of the form COMMAND\-INFO described below\&.
.PP
The first element of COMMAND\-INFO has the key \fBMtext\fP, and the value is an M\-text describing the command\&.
.PP
If there are no more elements, that means no key sequences are assigned to the command\&. Otherwise, each of the remaining elements has the key \fBMplist\fP, and the value is a plist whose keys are \fBMsymbol\fP and values are symbols representing input keys, which are currently assigned to the command\&.
.PP
As the returned plist is kept in the library, the caller must not modify nor free it\&.
.br
.SS "int minput_assign_command_keys (MSymbol language, MSymbol name, MSymbol command, \fBMPlist\fP * keyseq)"
.PP
Assign a key sequence to an input method command (obsolete)\&. This function is obsolete\&. Use \fBminput_config_command()\fP instead\&.
.PP
The \fBminput_assign_command_keys()\fP function assigns input key sequence \fBkeyseq\fP to input method command \fBcommand\fP for the input method specified by \fBlanguage\fP and \fBname\fP\&. If \fBname\fP is \fBMnil\fP, the key sequence is assigned globally no matter what \fBlanguage\fP is\&. Otherwise the key sequence is assigned locally\&.
.PP
Each element of \fBkeyseq\fP must have the key \fBmsymbol\fP and the value must be a symbol representing an input key\&.
.PP
\fBkeyseq\fP may be \fCNULL\fP, in which case, all assignments are deleted globally or locally\&.
.PP
This assignment gets effective in a newly opened input method\&.
.PP
\fBRETURN VALUE\fp
.RS 4
If the operation was successful, 0 is returned\&. Otherwise \-1 is returned, and \fBmerror_code\fP is set to \fCMERROR_IM\fP\&.
.br
.RE
.PP
.SS "\fBMPlist\fP* minput_parse_im_names (\fBMText\fP * mt)"
.PP
Parse input method names\&. The \fBminput_parse_im_names()\fP function parses M\-text \fBmt\fP and returns a list of input method names\&. Input method names in \fBmt\fP must be separated by comma (',')\&. Input methods whose language is \fBMt\fP can be specified by its name only (i\&.e\&. just 'latn\-post' instead of 't\-latn\-post')\&.
.PP
\fBRETURN VALUE\fp
.RS 4
The \fBminput_parse_im_names()\fP returns a plist of which elements are plist of LANGUAGE and NAME of input methods as below: ((LANGUAGE1 NAME1) (LANGUAGE2 NAME2) \&.\&.\&.) Both LANGUAGEn and NAMEn are symbols\&. LANGUAGEn is \fBMt\fP if the corresponding input method is not limited to a specific language\&. If a specified input method doesn't exist, the corresponding element in the above plist is a sub\-part of \fBmt\fP for that non\-existing input method name\&. For instance, if 'symbol,unknown,unicode' is specified as \fBmt\fP and 'unknown' doesn't exist, the return value is: ((t symbol) 'unknown' (t unicode))
.br
.RE
.PP
.SS "int minput_callback (\fBMInputContext\fP * ic, MSymbol command)"
.PP
Call a callback function\&. The \fBminput_callback()\fP functions calls a callback function \fBcommand\fP assigned for the input context \fBic\fP\&. The caller must set specific elements in \fBic\->plist\fP if the callback function requires\&.
.PP
\fBRETURN VALUE\fp
.RS 4
If there exists a specified callback function, 0 is returned\&. Otherwise \-1 is returned\&. By side effects, \fBic\->plist\fP may be modified\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_put_prop.3m17n 0000664 0001750 0001750 00000003640 14504322000 015423 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_put_prop" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_put_prop \-
.SH SYNOPSIS
int
\fBmfont_put_prop\fP (\fBMFont\fP *
\fIfont\fP, MSymbol
\fIkey\fP, void *
\fIval\fP)
.SH DESCRIPTION
.PP
Put a property value to a font\&. The
.ft B
mfont_put_prop()
.ft R
function puts a font property whose key is
.ft B
key
.ft R
and value is
.ft B
val
.ft R
to font
.ft B
font\fP\&.
.ft B
key
.ft R
must be one of the following symbols:
.PP
\fCMfoundry\fP,
.ft R
.ft C
Mfamily\fP,
.ft R
.ft C
Mweight\fP,
.ft R
.ft C
Mstyle\fP,
.ft R
.ft C
Mstretch\fP,
.ft R
.ft C
Madstyle\fP,
.ft R
.ft C
Mregistry\fP,
.ft R
.ft C
Msize\fP,
.ft R
.ft C
Mresolution\fP\&.
.PP
If
.ft B
key
.ft R
is
.ft C
Msize
.ft R
or
.ft C
Mresolution\fP,
.ft R
.ft B
val
.ft R
must be an integer\&. Otherwise,
.ft B
val
.ft R
must be a symbol of a property value name\&. But, if the name is 'nil', a symbol of name 'Nil' must be specified\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mlanguage_code.3m17n 0000664 0001750 0001750 00000004113 14504322000 015276 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mlanguage_code" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mlanguage_code \-
.SH SYNOPSIS
MSymbol
\fBmlanguage_code\fP (MSymbol
\fIlanguage\fP, int
\fIlen\fP)
.SH DESCRIPTION
.PP
Get a language code\&. The
.ft B
mlanguage_code()
.ft R
function returns a symbol whose name is the ISO639 language code of
.ft B
language\fP\&.
.ft B
language
.ft R
is a symbol whose name is an ISO639\-2 3\-letter language code, an ISO639\-1 2\-letter language codes, or an English word\&.
.PP
\fBlen
.ft R
specifies the type of the returned language code\&. If it is 3, an ISO639\-2 3\-letter language code is returned\&. If it is 2, an ISO639\-1 2\-letter language code is returned when defined; otherwise
.ft B
Mnil
.ft R
is returned\&. If it is 0, a 2\-letter code is returned when defined; otherwise a 3\-letter code is returned\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the information is available, this function returns a non\-\fBMnil
.ft R
symbol\&. Otherwise, it returns
.ft B
Mnil\fP\&.
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmlanguage_name_list()\fP,
.ft R
.ft B
mlanguage_text()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_property.3m17n 0000664 0001750 0001750 00000003114 14504322000 015451 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_property" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_property \-
.SH SYNOPSIS
\fBMTextProperty\fP*
\fBmtext_property\fP (MSymbol
\fIkey\fP, void *
\fIval\fP, int
\fIcontrol_bits\fP)
.SH DESCRIPTION
.PP
Create a text property\&. The
.ft B
mtext_property()
.ft R
function returns a newly allocated text property whose key is
.ft B
key
.ft R
and value is
.ft B
val\fP\&. The created text property is not attached to any M\-text, i\&.e\&. it is detached\&.
.PP
\fBcontrol_bits
.ft R
must be 0 or logical OR of
.ft C
enum
.ft R
.ft C
MTextPropertyControl\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_compare.3m17n 0000664 0001750 0001750 00000004537 14504322000 015225 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_compare" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_compare \-
.SH SYNOPSIS
int
\fBmtext_compare\fP (\fBMText\fP *
\fImt1\fP, int
\fIfrom1\fP, int
\fIto1\fP, \fBMText\fP *
\fImt2\fP, int
\fIfrom2\fP, int
\fIto2\fP)
.SH DESCRIPTION
.PP
Compare specified regions of two M\-texts\&. The
.ft B
mtext_compare()
.ft R
function compares two M\-texts
.ft B
mt1
.ft R
and
.ft B
mt2\fP,
.ft R
character\-by\-character\&. The compared regions are between
.ft B
from1
.ft R
and
.ft B
to1
.ft R
in
.ft B
mt1
.ft R
and
.ft B
from2
.ft R
to
.ft B
to2
.ft R
in MT2\&.
.ft B
from1
.ft R
and
.ft B
from2
.ft R
are inclusive,
.ft B
to1
.ft R
and
.ft B
to2
.ft R
are exclusive\&.
.ft B
from1
.ft R
being equal to
.ft B
to1
.ft R
(or
.ft B
from2
.ft R
being equal to
.ft B
to2\fP) means an M\-text of length zero\&. An invalid region specification is regarded as both
.ft B
from1
.ft R
and
.ft B
to1
.ft R
(or
.ft B
from2
.ft R
and
.ft B
to2\fP) being 0\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns 1, 0, or \-1 if
.ft B
mt1
.ft R
is found greater than, equal to, or less than
.ft B
mt2\fP,
.ft R
respectively\&. Comparison is based on character codes\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_cmp()\fP,
.ft R
.ft B
mtext_ncmp()\fP,
.ft R
.ft B
mtext_casecmp()\fP,
.ft R
.ft B
mtext_ncasecmp()\fP,
.ft R
.ft B
mtext_case_compare()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_get_prop_values.3m17n 0000664 0001750 0001750 00000004551 14504322000 016771 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_get_prop_values" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_get_prop_values \-
.SH SYNOPSIS
int
\fBmtext_get_prop_values\fP (\fBMText\fP *
\fImt\fP, int
\fIpos\fP, MSymbol
\fIkey\fP, void **
\fIvalues\fP, int
\fInum\fP)
.SH DESCRIPTION
.PP
Get multiple values of a text property\&. The
.ft B
mtext_get_prop_values()
.ft R
function searches the character at
.ft B
pos
.ft R
in M\-text
.ft B
mt
.ft R
for the property whose key is
.ft B
key\fP\&. If such a property is found, its values are stored in the memory area pointed to by
.ft B
values\fP\&.
.ft B
num
.ft R
limits the maximum number of stored values\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mtext_get_prop_values()
.ft R
returns the number of actually stored values\&. If the character at
.ft B
pos
.ft R
does not have a property whose key is
.ft B
key\fP,
.ft R
the return value is 0\&. If an error is detected,
.ft B
mtext_get_prop_values()
.ft R
returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE\fP,
.ft R
.ft C
MERROR_SYMBOL
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_get_prop()\fP,
.ft R
.ft B
mtext_put_prop()\fP,
.ft R
.ft B
mtext_put_prop_values()\fP,
.ft R
.ft B
mtext_push_prop()\fP,
.ft R
.ft B
mtext_pop_prop()\fP,
.ft R
.ft B
mtext_prop_range()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdatabase_list.3m17n 0000664 0001750 0001750 00000003214 14504322000 015321 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdatabase_list" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdatabase_list \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmdatabase_list\fP (MSymbol
\fItag0\fP, MSymbol
\fItag1\fP, MSymbol
\fItag2\fP, MSymbol
\fItag3\fP)
.SH DESCRIPTION
.PP
Return a data list of the m17n database\&. The
.ft B
mdatabase_list()
.ft R
function searches the m17n database for data who have tags
.ft B
tag0
.ft R
through
.ft B
tag3\fP,
.ft R
and returns their list by a plist\&. The value
.ft B
Mnil
.ft R
in
.ft B
tagn
.ft R
means a wild card that matches any tag\&. Each element of the plist has key
.ft B
Mt
.ft R
and value a pointer to type
.ft B
MDatabase\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_close.3m17n 0000664 0001750 0001750 00000003100 14504322000 014647 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_close" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_close \-
.SH SYNOPSIS
int
\fBmfont_close\fP (\fBMFont\fP *
\fIfont\fP)
.SH DESCRIPTION
.PP
Close a font\&. The
.ft B
mfont_close()
.ft R
function close a realized font
.ft B
font\fP\&.
.ft B
font
.ft R
must be opened previously by
.ft B
mfont_open()
.ft R
or mfont_encapsulate ()\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful, 0 is returned\&. Otherwise, \-1 is returned\&.
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmfont_open()\fP,
.ft R
.ft B
mfont_encapsulate()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mflt_name.3m17n 0000664 0001750 0001750 00000002424 14504322000 014311 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mflt_name" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mflt_name \-
.SH SYNOPSIS
const char *
\fBmflt_name\fP (\fBMFLT\fP *
\fIflt\fP)
.SH DESCRIPTION
.PP
Return the name of an FLT\&. The
.ft B
mflt_name()
.ft R
function returns the name of
.ft B
flt\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_case_compare.3m17n 0000664 0001750 0001750 00000004615 14504322000 016215 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_case_compare" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_case_compare \-
.SH SYNOPSIS
int
\fBmtext_case_compare\fP (\fBMText\fP *
\fImt1\fP, int
\fIfrom1\fP, int
\fIto1\fP, \fBMText\fP *
\fImt2\fP, int
\fIfrom2\fP, int
\fIto2\fP)
.SH DESCRIPTION
.PP
Compare specified regions of two M\-texts ignoring cases\&. The
.ft B
mtext_case_compare()
.ft R
function compares two M\-texts
.ft B
mt1
.ft R
and
.ft B
mt2\fP,
.ft R
character\-by\-character, ignoring cases\&. The compared regions are between
.ft B
from1
.ft R
and
.ft B
to1
.ft R
in
.ft B
mt1
.ft R
and
.ft B
from2
.ft R
to
.ft B
to2
.ft R
in MT2\&.
.ft B
from1
.ft R
and
.ft B
from2
.ft R
are inclusive,
.ft B
to1
.ft R
and
.ft B
to2
.ft R
are exclusive\&.
.ft B
from1
.ft R
being equal to
.ft B
to1
.ft R
(or
.ft B
from2
.ft R
being equal to
.ft B
to2\fP) means an M\-text of length zero\&. An invalid region specification is regarded as both
.ft B
from1
.ft R
and
.ft B
to1
.ft R
(or
.ft B
from2
.ft R
and
.ft B
to2\fP) being 0\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns 1, 0, or \-1 if
.ft B
mt1
.ft R
is found greater than, equal to, or less than
.ft B
mt2\fP,
.ft R
respectively\&. Comparison is based on character codes\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_cmp()\fP,
.ft R
.ft B
mtext_ncmp()\fP,
.ft R
.ft B
mtext_casecmp()\fP,
.ft R
.ft B
mtext_ncasecmp()\fP,
.ft R
.ft B
mtext_compare()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_deserialize.3m17n 0000664 0001750 0001750 00000004142 14504322000 016067 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_deserialize" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_deserialize \-
.SH SYNOPSIS
\fBMText\fP*
\fBmtext_deserialize\fP (\fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
.nf
@brief Deserialize text properties in an M\-text.
The mtext_deserialize() function deserializes M\-text @b mt. @b mt
must be an XML having the following DTD.
.fi
.fi
.PP
.nf
]>
.fi
.fi
.PP
.nf
This function depends on the libxml2 library. If the m17n library
is configured without libxml2, this function always fail.
@par Return value:
If the operation was successful, mtext_deserialize() returns the
resulting M\-text. Otherwise it returns @c NULL and assigns an error
code to the external variable #merror_code.
@par See Also:
mtext_serialize(), #Mtext_prop_deserializer
.fi
.fi
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17n_status.3m17n 0000664 0001750 0001750 00000002765 14504322000 014544 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n_status" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n_status \-
.SH SYNOPSIS
enum \fBM17NStatus\fP
\fBm17n_status\fP (void)
.SH DESCRIPTION
.PP
Report which part of the m17n library is initialized\&. The
.ft B
m17n_status()
.ft R
function returns one of these values depending on which part of the m17n library is initialized:
.PP
\fBM17N_NOT_INITIALIZED\fP,
.ft R
.ft B
M17N_CORE_INITIALIZED\fP,
.ft R
.ft B
M17N_SHELL_INITIALIZED\fP,
.ft R
.ft B
M17N_GUI_INITIALIZED
.ft R
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nFont.3m17n 0000664 0001750 0001750 00000041300 14504322000 013754 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nFont" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nFont \- Font
.SH SYNOPSIS
.br
.PP
.SS "Functions"
.in +1c
.ti -1c
.RI "\fBMFont\fP * \fBmfont\fP ()"
.br
.RI "Create a new font\&. "
.ti -1c
.RI "\fBMFont\fP * \fBmfont_parse_name\fP (const char *name, MSymbol format)"
.br
.RI "Create a font by parsing a fontname\&. "
.ti -1c
.RI "char * \fBmfont_unparse_name\fP (\fBMFont\fP *font, MSymbol format)"
.br
.RI "Create a fontname from a font\&. "
.ti -1c
.RI "\fBMFont\fP * \fBmfont_copy\fP (\fBMFont\fP *font)"
.br
.RI "Make a copy of a font\&. "
.ti -1c
.RI "void * \fBmfont_get_prop\fP (\fBMFont\fP *font, MSymbol key)"
.br
.RI "Get a property value of a font\&. "
.ti -1c
.RI "int \fBmfont_put_prop\fP (\fBMFont\fP *font, MSymbol key, void *val)"
.br
.RI "Put a property value to a font\&. "
.ti -1c
.RI "MSymbol * \fBmfont_selection_priority\fP ()"
.br
.RI "Return the font selection priority\&. "
.ti -1c
.RI "int \fBmfont_set_selection_priority\fP (MSymbol *keys)"
.br
.RI "Set the font selection priority\&. "
.ti -1c
.RI "\fBMFont\fP * \fBmfont_find\fP (\fBMFrame\fP *frame, \fBMFont\fP *spec, int *score, int max_size)"
.br
.RI "Find a font\&. "
.ti -1c
.RI "int \fBmfont_set_encoding\fP (\fBMFont\fP *font, MSymbol encoding_name, MSymbol repertory_name)"
.br
.RI "Set encoding of a font\&. "
.ti -1c
.RI "char * \fBmfont_name\fP (\fBMFont\fP *font)"
.br
.RI "Create a fontname from a font\&. "
.ti -1c
.RI "\fBMFont\fP * \fBmfont_from_name\fP (const char *name)"
.br
.RI "Create a new font from fontname\&. "
.ti -1c
.RI "int \fBmfont_resize_ratio\fP (\fBMFont\fP *font)"
.br
.RI "Get resize information of a font\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmfont_list\fP (\fBMFrame\fP *frame, \fBMFont\fP *font, MSymbol language, int maxnum)"
.br
.RI "Get a list of fonts\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmfont_list_family_names\fP (\fBMFrame\fP *frame)"
.br
.RI "Get a list of font famiy names\&. "
.ti -1c
.RI "int \fBmfont_check\fP (\fBMFrame\fP *frame, \fBMFontset\fP *fontset, MSymbol script, MSymbol language, \fBMFont\fP *font)"
.br
.RI "Check the usability of a font\&. "
.ti -1c
.RI "int \fBmfont_match_p\fP (\fBMFont\fP *font, \fBMFont\fP *spec)"
.br
.RI "Check is a font matches with a font spec\&. "
.ti -1c
.RI "\fBMFont\fP * \fBmfont_open\fP (\fBMFrame\fP *frame, \fBMFont\fP *font)"
.br
.RI "Open a font\&. "
.ti -1c
.RI "\fBMFont\fP * \fBmfont_encapsulate\fP (\fBMFrame\fP *frame, MSymbol data_type, void *data)"
.br
.RI "Encapusulate a font\&. "
.ti -1c
.RI "int \fBmfont_close\fP (\fBMFont\fP *font)"
.br
.RI "Close a font\&. "
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "\fBMPlist\fP * \fBmfont_freetype_path\fP"
.br
.RI "List of font files and directories that contain font files\&. "
.in -1c
.SS "Variables: Keys of font property\&."
.in +1c
.ti -1c
.RI "MSymbol \fBMfoundry\fP"
.br
.RI "Key of font property specifying foundry\&. "
.ti -1c
.RI "MSymbol \fBMfamily\fP"
.br
.RI "Key of font property specifying family\&. "
.ti -1c
.RI "MSymbol \fBMweight\fP"
.br
.RI "Key of font property specifying weight\&. "
.ti -1c
.RI "MSymbol \fBMstyle\fP"
.br
.RI "Key of font property specifying style\&. "
.ti -1c
.RI "MSymbol \fBMstretch\fP"
.br
.RI "Key of font property specifying stretch\&. "
.ti -1c
.RI "MSymbol \fBMadstyle\fP"
.br
.RI "Key of font property specifying additional style\&. "
.ti -1c
.RI "MSymbol \fBMspacing\fP"
.br
.RI "Key of font property specifying spacing\&. "
.ti -1c
.RI "MSymbol \fBMregistry\fP"
.br
.RI "Key of font property specifying registry\&. "
.ti -1c
.RI "MSymbol \fBMsize\fP"
.br
.RI "Key of font property specifying size\&. "
.ti -1c
.RI "MSymbol \fBMotf\fP"
.br
.RI "Key of font property specifying file name\&. "
.ti -1c
.RI "MSymbol \fBMfontfile\fP"
.br
.RI "Key of font property specifying file name\&. "
.ti -1c
.RI "MSymbol \fBMresolution\fP"
.br
.RI "Key of font property specifying resolution\&. "
.ti -1c
.RI "MSymbol \fBMmax_advance\fP"
.br
.RI "Key of font property specifying max advance width\&. "
.ti -1c
.RI "MSymbol \fBMfontconfig\fP"
.br
.RI "Symbol of name 'fontconfig'\&. "
.ti -1c
.RI "MSymbol \fBMx\fP"
.br
.RI "Symbol of name 'x'\&. "
.ti -1c
.RI "MSymbol \fBMfreetype\fP"
.br
.RI "Symbol of name 'freetype'\&. "
.ti -1c
.RI "MSymbol \fBMxft\fP"
.br
.RI "Symbol of name 'xft'\&. "
.in -1c
.SH "Detailed Description"
.PP
.PP
.nf
@addtogroup m17nFont
@brief Font object.
The m17n GUI API represents a font by an object of the type @c
MFont. A font can have @e font @e properties. Like other types
of properties, a font property consists of a key and a value. The
key of a font property must be one of the following symbols:
@c Mfoundry, @c Mfamily, @c Mweight, @c Mstyle, @c Mstretch,
@c Madstyle, @c Mregistry, @c Msize, @c Mresolution, @c Mspacing.
When the key of a font property is @c Msize or @c Mresolution, its
value is an integer. Otherwise the value is a symbol.
The notation "xxx property of F" means the font property that
belongs to font F and whose key is @c Mxxx.
The value of a foundry property is a symbol representing font
foundry information, e.g. adobe, misc, etc.
The value of a family property is a symbol representing font family
information, e.g. times, helvetica, etc.
The value of a weight property is a symbol representing weight
information, e.g. normal, bold, etc.
The value of a style property is a symbol representing slant
information, e.g. normal, italic, etc.
The value of a stretch property is a symbol representing width
information, e.g. normal, semicondensed, etc.
The value of an adstyle property is a symbol representing abstract
font family information, e.g. serif, sans\-serif, etc.
The value of a registry property is a symbol representing registry
information, e.g. iso10646\-1, iso8895\-1, etc.
The value of a size property is an integer representing design
size in the unit of 1/10 point.
The value of a resolution property is an integer representing
assumed device resolution in the unit of dots per inch (dpi).
The value of a type property is a symbol indicating a font driver;
currently Mx or Mfreetype.
The m17n library uses font objects for two purposes: to receive
font specification from an application program, and to present
available fonts to an application program. When the m17n library
presents an available font to an application program, all font
properties have a concrete value.
The m17n library supports three kinds of fonts: Window system fonts,
FreeType fonts, and OpenType fonts.
- Window system fonts
The m17n\-X library supports all fonts handled by an X server and
an X font server. The correspondence between XLFD fields and font
properties are shown below.
.fi
.PP
.PP
.nf
XLFD field property
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-
FOUNDRY foundry
FAMILY_NAME family
WEIGHT_NAME weight
SLANT style
SETWIDTH_NAME stretch
ADD_STYLE_NAME adstyle
PIXEL_SIZE size
RESOLUTION_Y resolution
CHARSET_REGISTRY\-CHARSET_ENCODING registry
.fi
.PP
.PP
.nf
XLFD fields not listed in the above table are ignored.
- FreeType fonts
The m17n library, if configured to use the FreeType library,
supports all fonts that can be handled by the FreeType library.
The variable #mfont_freetype_path is initialized properly according
to the configuration of the m17n library and the environment
variable @c M17NDIR. See the documentation of the variable for
details.
If the m17n library is configured to use the fontconfig library,
in addition to #mfont_freetype_path, all fonts available via
fontconfig are supported.
The family name of a FreeType font corresponds to the family
property. Style names of FreeType fonts correspond to the weight,
style, and stretch properties as below.
.fi
.PP
.PP
.nf
style name weight style stretch
\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\- \-\-\-\-\- \-\-\-\-\-\-\-
Regular medium r normal
Italic medium i normal
Bold bold r normal
Bold Italic bold i normal
Narrow medium r condensed
Narrow Italic medium i condensed
Narrow Bold bold r condensed
Narrow Bold Italic bold i condensed
Black black r normal
Black Italic black i normal
Oblique medium o normal
BoldOblique bold o normal
.fi
.PP
.PP
.nf
Style names not listed in the above table are treated as
"Regular".
Combination of a platform ID and an encoding ID corresponds to the
registry property. For example, if a font has the combination (1
1), the registry property is 1\-1. Some frequent combinations have
a predefined registry property as below.
.fi
.PP
.PP
.nf
platform ID encoding ID registry property
\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
0 3 unicode\-bmp
0 4 unicode\-full
1 0 apple\-roman
3 1 unicode\-bmp
3 1 unicode\-full
.fi
.PP
.PP
.nf
Thus, a font that has two combinations (1 0) and (3 1) corresponds
to four font objects whose registries are 1\-0, apple\-roman, 3\-1,
and unicode\-bmp.
- OpenType fonts
The m17n library, if configured to use both the FreeType library
and the OTF library, supports any OpenType fonts. The list of
actually available fonts is created in the same way as in the case
of FreeType fonts. If a fontset instructs to use an OpenType font
via an FLT (Font Layout Table), and the FLT has an OTF\-related
command (e.g. otf:deva), the OTF library converts a character
sequence to a glyph code sequence according to the OpenType layout
tables of the font, and the FreeType library gives a bitmap image
for each glyph.
.fi
.PP
.SH "Variable Documentation"
.PP
.SS "MSymbol Mfoundry"
.PP
Key of font property specifying foundry\&. The variable \fBMfoundry\fP is a symbol of name \fC'foundry'\fP and is used as a key of font property and face property\&. The property value must be a symbol whose name is a foundry name of a font\&.
.br
.SS "MSymbol Mfamily"
.PP
Key of font property specifying family\&. The variable \fBMfamily\fP is a symbol of name \fC'family'\fP and is used as a key of font property and face property\&. The property value must be a symbol whose name is a family name of a font\&.
.br
.SS "MSymbol Mweight"
.PP
Key of font property specifying weight\&. The variable \fBMweight\fP is a symbol of name \fC'weight'\fP and is used as a key of font property and face property\&. The property value must be a symbol whose name is a weight name of a font (e\&.g 'medium', 'bold')\&.
.br
.SS "MSymbol Mstyle"
.PP
Key of font property specifying style\&. The variable \fBMstyle\fP is a symbol of name \fC'style'\fP and is used as a key of font property and face property\&. The property value must be a symbol whose name is a style name of a font (e\&.g 'r', 'i', 'o')\&.
.br
.SS "MSymbol Mstretch"
.PP
Key of font property specifying stretch\&. The variable \fBMstretch\fP is a symbol of name \fC'stretch'\fP and is used as a key of font property and face property\&. The property value must be a symbol whose name is a stretch name of a font (e\&.g 'normal', 'condensed')\&.
.br
.SS "MSymbol Madstyle"
.PP
Key of font property specifying additional style\&. The variable \fBMadstyle\fP is a symbol of name \fC'adstyle'\fP and is used as a key of font property and face property\&. The property value must be a symbol whose name is an additional style name of a font (e\&.g 'serif', '', 'sans')\&.
.br
.SS "MSymbol Mspacing"
.PP
Key of font property specifying spacing\&. The variable \fBMadstyle\fP is a symbol of name \fC'spacing'\fP and is used as a key of font property\&. The property value must be a symbol whose name specifies the spacing of a font (e\&.g 'p' for proportional, 'm' for monospaced)\&.
.br
.SS "MSymbol Mregistry"
.PP
Key of font property specifying registry\&. The variable \fBMregistry\fP is a symbol of name \fC'registry'\fP and is used as a key of font property\&. The property value must be a symbol whose name is a registry name a font registry (e\&.g\&. 'iso8859\-1', 'jisx0208\&.1983\-0')\&.
.br
.SS "MSymbol Msize"
.PP
Key of font property specifying size\&. The variable \fBMsize\fP is a symbol of name \fC'size'\fP and is used as a key of font property and face property\&. The property value must be an integer specifying a font design size in the unit of 1/10 point (on 100 dpi display)\&.
.br
.SS "MSymbol Motf"
.PP
Key of font property specifying file name\&. The variable \fBMfontfile\fP is a symbol of name \fC'fontfile'\fP and is used as a key of font property\&. The property value must be a symbol whose name is a font file name\&.
.br
.SS "MSymbol Mfontfile"
.PP
Key of font property specifying file name\&. The variable \fBMfontfile\fP is a symbol of name \fC'fontfile'\fP and is used as a key of font property\&. The property value must be a symbol whose name is a font file name\&.
.br
.SS "MSymbol Mresolution"
.PP
Key of font property specifying resolution\&. The variable \fBMresolution\fP is a symbol of name \fC'resolution'\fP and is used as a key of font property and face property\&. The property value must be an integer to specifying a font resolution in the unit of dots per inch (dpi)\&.
.br
.SS "MSymbol Mmax_advance"
.PP
Key of font property specifying max advance width\&. The variable \fBMmax_advance\fP is a symbol of name \fC'max\-advance'\fP and is used as a key of font property\&. The property value must be an integer specifying a font's max advance value by pixels\&.
.br
.SS "MSymbol Mfontconfig"
.PP
Symbol of name 'fontconfig'\&. The variable \fBMfontconfig\fP is to be used as an argument of the functions \fBmfont_parse_name()\fP and \fBmfont_unparse_name()\fP\&.
.br
.SS "MSymbol Mx"
.PP
Symbol of name 'x'\&. The variable \fBMx\fP is to be used for a value of member of the structure \fBMDrawGlyph\fP to specify the type of member is actually (XFontStruct *)\&.
.br
.SS "MSymbol Mfreetype"
.PP
Symbol of name 'freetype'\&. The variable \fBMfreetype\fP is to be used for a value of member of the structure \fBMDrawGlyph\fP to specify the type of member is actually FT_Face\&.
.br
.SS "MSymbol Mxft"
.PP
Symbol of name 'xft'\&. The variable \fBMxft\fP is to be used for a value of member of the structure \fBMDrawGlyph\fP to specify the type of member is actually (XftFont *)\&.
.br
.SS "\fBMPlist\fP* mfont_freetype_path"
.PP
List of font files and directories that contain font files\&. The variable \fCmfont_freetype_path\fP is a plist of FreeType font files and directories that contain FreeType font files\&. Key of the element is \fCMstring\fP, and the value is a string that represents a font file or a directory\&.
.PP
The macro \fBM17N_INIT()\fP sets up this variable to contain the sub\-directory 'fonts' of the m17n database and the environment variable 'M17NDIR'\&. The first call of \fBmframe()\fP creates the internal list of the actually available fonts from this variable\&. Thus, an application program, if necessary, must modify the variable before calling \fBmframe()\fP\&. If it is going to add a new element, value must be a string that can be safely freed\&.
.PP
If the m17n library is not configured to use the FreeType library, this variable is not used\&.
.br
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nDebug.3m17n 0000664 0001750 0001750 00000007506 14504322000 014106 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nDebug" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nDebug_\-_Debug \- \- Support for m17n library users to debug their programs\&.
.SH SYNOPSIS
.br
.PP
.SS "Functions"
.in +1c
.ti -1c
.RI "\fBMFace\fP * \fBmdebug_dump_face\fP (\fBMFace\fP *face, int indent)"
.br
.RI "Dump a face\&. "
.ti -1c
.RI "\fBMInputMethod\fP * \fBmdebug_dump_im\fP (\fBMInputMethod\fP *im, int indent)"
.br
.RI "Dump an input method\&. "
.ti -1c
.RI "int \fBmdebug_hook\fP ()"
.br
.RI "Hook function called on an error\&. "
.ti -1c
.RI "\fBMText\fP * \fBmdebug_dump_mtext\fP (\fBMText\fP *mt, int indent, int fullp)"
.br
.RI "Dump an M-text\&. "
.ti -1c
.RI "MSymbol \fBmdebug_dump_symbol\fP (MSymbol symbol, int indent)"
.br
.RI "Dump a symbol\&. "
.ti -1c
.RI "MSymbol \fBmdebug_dump_all_symbols\fP (int indent)"
.br
.RI "Dump all symbol names\&. "
.in -1c
.SH "Detailed Description"
.PP
Support for m17n library users to debug their programs\&.
The m17n library provides the following facilities to support the library users to debug their programs\&.
.PP
.PD 0
.IP "\(bu" 2
Environment variables to control printing of various information to stderr\&.
.PP
.PD 0
.IP " \(bu" 4
MDEBUG_INIT \-\- If set to 1, print information about the library initialization on the call of \fBM17N_INIT()\fP\&.
.PP
.IP " \(bu" 4
MDEBUG_FINI \-\- If set to 1, print counts of objects that are not yet freed on the call of \fBM17N_FINI()\fP\&.
.PP
.IP " \(bu" 4
MDEBUG_CHARSET \-\- If set to 1, print information about charsets being loaded from the m17n database\&.
.PP
.IP " \(bu" 4
MDEBUG_CODING \-\- If set to 1, print information about coding systems being loaded from the m17n database\&.
.PP
.IP " \(bu" 4
MDEBUG_DATABASE \-\- If set to 1, print information about data being loaded from the m17n database\&.
.PP
.IP " \(bu" 4
MDEBUG_FONT \-\- If set to 1, print information about fonts being selected and opened\&.
.PP
.IP " \(bu" 4
MDEBUG_FLT \-\- If set to 1, 2, or 3, print information about which command of Font Layout Table are being executed\&. The bigger number prints the more detailed information\&.
.PP
.IP " \(bu" 4
MDEBUG_INPUT \-\- If set to 1, print information about how an input method is running\&.
.PP
.IP " \(bu" 4
MDEBUG_ALL \-\- Setting this variable to 1 is equivalent to setting all the above variables to 1\&.
.PP
.IP " \(bu" 4
MDEBUG_OUTPUT_FILE \-\- If set to a file name, the above debugging information is appended to the file\&. If set to 'stdout', the information is printed to stdout\&.
.PP
.PP
.PP
.IP "\(bu" 2
Functions to print various objects in a human readable way\&. See the documentation of mdebug_dump_XXXX() functions\&.
.PP
.IP "\(bu" 2
The hook function called on an error\&. See the documentation of \fBmdebug_hook()\fP\&.
.PP
.PP
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_value.3m17n 0000664 0001750 0001750 00000002654 14504322000 015060 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_value" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_value \-
.SH SYNOPSIS
void*
\fBmplist_value\fP (\fBMPlist\fP *
\fIplist\fP)
.SH DESCRIPTION
.PP
Return the value of the first property in a property list\&. The
.ft B
mplist_value()
.ft R
function returns the value of the first property in property list
.ft B
plist\fP\&. If the length of
.ft B
plist
.ft R
is zero, it returns
.ft C
NULL\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_coll.3m17n 0000664 0001750 0001750 00000003474 14504322000 014527 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_coll" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_coll \-
.SH SYNOPSIS
int
\fBmtext_coll\fP (\fBMText\fP *
\fImt1\fP, \fBMText\fP *
\fImt2\fP)
.SH DESCRIPTION
.PP
Compare two M\-texts using the current locale\&. The
.ft B
mtext_coll()
.ft R
function compares the two M\-texts
.ft B
mt1
.ft R
and
.ft B
mt2\fP\&. It returns an integer less than, equal to, or greater than zero if
.ft B
mt1
.ft R
is found, respectively, to be less than, to match, or to be greater than
.ft B
mt2\fP\&. The comparison is based on texts as appropriate for the current locale (LC_COLLATE)\&.
.PP
This function makes use of information that is automatically cached in the M\-texts as a text property\&. So, the second call of this function with
.ft B
mt1
.ft R
or
.ft B
mt2
.ft R
finishes faster than the first call\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_ftime.3m17n 0000664 0001750 0001750 00000003347 14504322000 014701 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_ftime" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_ftime \-
.SH SYNOPSIS
int
\fBmtext_ftime\fP (\fBMText\fP *
\fImt\fP, const char *
\fIformat\fP, const struct tm *
\fItm\fP, \fBMLocale\fP *
\fIlocale\fP)
.SH DESCRIPTION
.PP
Format date and time\&. The
.ft B
mtext_ftime()
.ft R
function formats the broken\-down time
.ft B
tm
.ft R
according to the format specification
.ft B
format
.ft R
and append the result to the M\-text
.ft B
mt\fP\&. The formating is done according to the locale
.ft B
locale
.ft R
(if not NULL) or the current locale (LC_TIME)\&.
.PP
The meaning of the arguments
.ft B
tm
.ft R
and
.ft B
format
.ft R
are the same as those of strftime()\&.
.PP
.SH "SEE ALSO"
.PP
.RS 4
strftime()\&.
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_deserialize.3m17n 0000664 0001750 0001750 00000004113 14504322000 016234 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_deserialize" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_deserialize \-
.SH SYNOPSIS
\fBMPlist\fP *
\fBmplist_deserialize\fP (\fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
Generate a property list by deserializing an M\-text\&. The
.ft B
mplist_deserialize()
.ft R
function parses M\-text
.ft B
mt
.ft R
and returns a property list\&.
.PP
The syntax of
.ft B
mt
.ft R
is as follows\&.
.PP
MT ::= '(' ELEMENT * ')'
.PP
ELEMENT ::= SYMBOL | INTEGER | M\-TEXT | PLIST
.PP
SYMBOL ::= ascii\-character\-sequence
.PP
INTEGER ::= '\-' ? [ '0' | \&.\&. | '9' ]+ | '0x' [ '0' | \&.\&. | '9' | 'A' | \&.\&. | 'F' | 'a' | \&.\&. | 'f' ]+
.PP
M\-TEXT ::= ''' character\-sequence '''
.PP
Each alternatives of
.ft C
ELEMENT
.ft R
is assigned one of these keys:
.ft C
Msymbol\fP,
.ft R
.ft C
Minteger\fP,
.ft R
.ft C
Mtext\fP,
.ft R
.ft C
Mplist
.ft R
.PP
In an ascii\-character\-sequence, a backslash () is used as the escape character, which means that, for instance,
.ft C
abc\\ def
.ft R
produces a symbol whose name is of length seven with the fourth character being a space\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_ins_char.3m17n 0000664 0001750 0001750 00000003444 14504322000 015361 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_ins_char" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_ins_char \-
.SH SYNOPSIS
int
\fBmtext_ins_char\fP (\fBMText\fP *
\fImt\fP, int
\fIpos\fP, int
\fIc\fP, int
\fIn\fP)
.SH DESCRIPTION
.PP
Insert a character into an M\-text\&. The
.ft B
mtext_ins_char()
.ft R
function inserts
.ft B
n
.ft R
copies of character
.ft B
c
.ft R
into M\-text
.ft B
mt
.ft R
at position
.ft B
pos\fP\&. As a result,
.ft B
mt
.ft R
is lengthen by
.ft B
n\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mtext_ins()
.ft R
returns 0\&. Otherwise, it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
mtext_ins,
.ft B
mtext_del()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mscript_list.3m17n 0000664 0001750 0001750 00000003103 14504322000 015056 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mscript_list" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mscript_list \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmscript_list\fP (void)
.SH DESCRIPTION
.PP
List script names\&. The
.ft B
mscript_list()
.ft R
funciton returns a well\-formed plist whose keys are
.ft B
Msymbol
.ft R
and values are symbols whose names are script names\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a plist\&. The caller should free it by
.ft B
m17n_object_unref()\fP\&.
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmscript_language_list()\fP,
.ft R
.ft B
mlanguage_list()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/msymbol_put_func.3m17n 0000664 0001750 0001750 00000003106 14504322000 015732 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "msymbol_put_func" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
msymbol_put_func \-
.SH SYNOPSIS
int
\fBmsymbol_put_func\fP (MSymbol
\fIsymbol\fP, MSymbol
\fIkey\fP, \fBM17NFunc\fP
\fIfunc\fP)
.SH DESCRIPTION
.PP
Set the value (function pointer) of a symbol property\&. The
.ft B
msymbol_put_func()
.ft R
function is similar to
.ft B
msymbol_put()
.ft R
but for setting function pointer
.ft B
func
.ft R
as the property value of
.ft B
symbol
.ft R
for key
.ft B
key\fP\&.
.br
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmsymbol_put()\fP,
.ft R
.ft B
M17N_FUNC()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_del.3m17n 0000664 0001750 0001750 00000003521 14504322000 014333 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_del" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_del \-
.SH SYNOPSIS
int
\fBmtext_del\fP (\fBMText\fP *
\fImt\fP, int
\fIfrom\fP, int
\fIto\fP)
.SH DESCRIPTION
.PP
Delete characters in the specified range destructively\&. The
.ft B
mtext_del()
.ft R
function deletes the characters in the range
.ft B
from
.ft R
(inclusive) and
.ft B
to
.ft R
(exclusive) from M\-text
.ft B
mt
.ft R
destructively\&. As a result, the length of
.ft B
mt
.ft R
shrinks by (\fBto
.ft R
\-
.ft B
from\fP) characters\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mtext_del()
.ft R
returns 0\&. Otherwise, it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_ins()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_line_break.3m17n 0000664 0001750 0001750 00000003476 14504322000 015673 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_line_break" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_line_break \-
.SH SYNOPSIS
int
\fBmtext_line_break\fP (\fBMText\fP *
\fImt\fP, int
\fIpos\fP, int
\fIoption\fP, int *
\fIafter\fP)
.SH DESCRIPTION
.PP
Find a linebreak postion of an M\-text\&. The
.ft B
mtext_line_break()
.ft R
function checks if position
.ft B
pos
.ft R
is a proper linebreak position of an M\-text
.ft B
mt
.ft R
according to the algorithm of The Unicode Standard 4\&.0 UAX#14\&. It so, it returns
.ft B
pos\fP\&. Otherwise, it returns a proper linebreak position before
.ft B
pos\fP\&.
.PP
If
.ft B
option
.ft R
is nonzero, it controls the algorithm by logical\-or of the members of
.ft B
MTextLineBreakOption\fP\&.
.PP
If
.ft B
after
.ft R
is not NULL, a proper linebreak position after
.ft B
pos
.ft R
is stored there\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mflt_coverage.3m17n 0000664 0001750 0001750 00000002546 14504322000 015171 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mflt_coverage" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mflt_coverage \-
.SH SYNOPSIS
\fBMCharTable\fP *
\fBmflt_coverage\fP (\fBMFLT\fP *
\fIflt\fP)
.SH DESCRIPTION
.PP
Return a coverage of a FLT\&. The
.ft B
mflt_coverage()
.ft R
function returns a char\-table that contains nonzero values for characters supported by
.ft B
flt\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/minput_set_spot.3m17n 0000664 0001750 0001750 00000004635 14504322000 015611 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "minput_set_spot" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
minput_set_spot \-
.SH SYNOPSIS
void
\fBminput_set_spot\fP (\fBMInputContext\fP *
\fIic\fP, int
\fIx\fP, int
\fIy\fP, int
\fIascent\fP, int
\fIdescent\fP, int
\fIfontsize\fP, \fBMText\fP *
\fImt\fP, int
\fIpos\fP)
.SH DESCRIPTION
.PP
Set the spot of the input context\&. The
.ft B
minput_set_spot()
.ft R
function sets the spot of input context
.ft B
ic
.ft R
to coordinate (\fBx\fP,
.ft R
.ft B
y
.ft R
) with the height specified by
.ft B
ascent
.ft R
and
.ft B
descent
.ft R
\&. The semantics of these values depends on the input method driver\&.
.PP
For instance, a driver designed to work in a CUI environment may use
.ft B
x
.ft R
and
.ft B
y
.ft R
as the column\- and row numbers, and may ignore
.ft B
ascent
.ft R
and
.ft B
descent
.ft R
\&. A driver designed to work in a window system may interpret
.ft B
x
.ft R
and
.ft B
y
.ft R
as the pixel offsets relative to the origin of the client window, and may interpret
.ft B
ascent
.ft R
and
.ft B
descent
.ft R
as the ascent\- and descent pixels of the line at (\fBx
.ft R
\&.
.ft B
y
.ft R
)\&.
.PP
\fBfontsize
.ft R
specifies the fontsize of preedit text in 1/10 point\&.
.PP
\fBmt
.ft R
and
.ft B
pos
.ft R
are the M\-text and the character position at the spot\&.
.ft B
mt
.ft R
may be
.ft C
NULL\fP,
.ft R
in which case, the input method cannot get information about the text around the spot\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdebug_dump_all_symbols.3m17n 0000664 0001750 0001750 00000003132 14504322000 017234 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdebug_dump_all_symbols" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdebug_dump_all_symbols \-
.SH SYNOPSIS
MSymbol
\fBmdebug_dump_all_symbols\fP (int
\fIindent\fP)
.SH DESCRIPTION
.PP
Dump all symbol names\&. The
.ft B
mdebug_dump_all_symbols()
.ft R
function prints names of all symbols to the stderr or to what specified by the environment variable MDEBUG_OUTPUT_FILE\&.
.ft B
indent
.ft R
specifies how many columns to indent the lines but the first one\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns
.ft B
Mnil\fP\&.
.RE
.PP
.SH ERRORS
.PP
.RS 4
MERROR_DEBUG
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdebug_dump_im.3m17n 0000664 0001750 0001750 00000003127 14504322000 015325 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdebug_dump_im" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdebug_dump_im \-
.SH SYNOPSIS
\fBMInputMethod\fP*
\fBmdebug_dump_im\fP (\fBMInputMethod\fP *
\fIim\fP, int
\fIindent\fP)
.SH DESCRIPTION
.PP
Dump an input method\&. The
.ft B
mdebug_dump_im()
.ft R
function prints the input method
.ft B
im
.ft R
in a human readable way to the stderr or to what specified by the environment variable MDEBUG_OUTPUT_FILE\&.
.ft B
indent
.ft R
specifies how many columns to indent the lines but the first one\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns
.ft B
im\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nShell.3m17n 0000664 0001750 0001750 00000003223 14504322000 014117 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nShell" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nShell_\-_SHELL \- \- API provided by libm17n\&.so
.br
.SH SYNOPSIS
.br
.PP
.SS "Modules"
.in +1c
.ti -1c
.RI "\fBCharset\fP"
.br
.RI "Charset objects and API for them\&. "
.ti -1c
.RI "\fBCode Conversion\fP"
.br
.RI "Coding system objects and API for them\&. "
.ti -1c
.RI "\fBLocale\fP"
.br
.RI "Locale objects and API for them\&. "
.ti -1c
.RI "\fBInput Method (basic)\fP"
.br
.RI "API for Input method\&. "
.in -1c
.SH "Detailed Description"
.PP
API provided by libm17n\&.so
.br
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdraw_text.3m17n 0000664 0001750 0001750 00000010333 14504322000 014523 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdraw_text" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdraw_text \-
.SH SYNOPSIS
int
\fBmdraw_text\fP (\fBMFrame\fP *
\fIframe\fP, \fBMDrawWindow\fP
\fIwin\fP, int
\fIx\fP, int
\fIy\fP, \fBMText\fP *
\fImt\fP, int
\fIfrom\fP, int
\fIto\fP)
.SH DESCRIPTION
.PP
Draw an M\-text on a window\&. The
.ft B
mdraw_text()
.ft R
function draws the text between
.ft B
from
.ft R
and
.ft B
to
.ft R
of M\-text
.ft B
mt
.ft R
on window
.ft B
win
.ft R
of frame
.ft B
frame
.ft R
at coordinate (\fBx\fP,
.ft R
.ft B
y\fP)\&.
.PP
The appearance of the text (size, style, color, etc) is specified by the value of the text property whose key is
.ft C
Mface\fP\&. If the M\-text or a part of the M\-text does not have such a text property, the default face of
.ft B
frame
.ft R
is used\&.
.PP
The font used to draw a character in the M\-text is selected from the value of the fontset property of a face by the following algorithm:
.PP
.PD 0
.IP "1." 4
Search the text properties given to the character for the one whose key is
.ft C
Mcharset\fP;
.ft R
its value should be either a symbol specifying a charset or
.ft B
Mnil\fP\&. If the value is
.ft B
Mnil\fP,
.ft R
proceed to the next step\&.
.PP
Otherwise, search the mapping table of the fontset for the charset\&. If no entry is found proceed to the next step\&.
.br
.PP
.nf
If an entry is found, use one of the fonts in the entry that
.fi
.fi
has a glyph for the character and that matches best with the face properties\&. If no such font exists, proceed to the next step\&.
.PP
.IP "2." 4
Get the character property 'script' of the character\&. If it is inherited, get the script property from the previous characters\&. If there is no previous character, or none of them has the script property other than inherited, proceed to the next step\&.
.PP
Search the text properties given to the character for the one whose key is
.ft C
Mlanguage\fP;
.ft R
its value should be either a symbol specifying a language or
.ft C
Mnil\fP\&.
.PP
Search the mapping table of the fontset for the combination of the script and language\&. If no entry is found, proceed to the next step\&.
.br
.PP
.nf
If an entry is found, use one of the fonts in the entry that
.fi
.fi
has a glyph for the character and that matches best with the face properties\&. If no such font exists, proceed to the next step\&.
.PP
.IP "3." 4
Search the fall\-back table of the fontset for a font that has a glyph of the character\&. If such a font is found, use that font\&.
.PP
.PP
.PP
If no font is found by the algorithm above, this function draws an empty box for the character\&.
.PP
This function draws only the glyph foreground\&. To specify the background color, use
.ft B
mdraw_image_text()
.ft R
or
.ft B
mdraw_text_with_control()\fP\&.
.PP
This function is the counterpart of
.ft C
XDrawString()\fP,
.ft R
.ft C
XmbDrawString()\fP,
.ft R
and
.ft C
XwcDrawString()
.ft R
functions in the X Window System\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mdraw_text()
.ft R
returns 0\&. If an error is detected, it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmdraw_image_text()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_resize_ratio.3m17n 0000664 0001750 0001750 00000002771 14504322000 016256 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_resize_ratio" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_resize_ratio \-
.SH SYNOPSIS
int
\fBmfont_resize_ratio\fP (\fBMFont\fP *
\fIfont\fP)
.SH DESCRIPTION
.PP
Get resize information of a font\&. The
.ft B
mfont_resize_ratio()
.ft R
function lookups the m17n database and returns a resizing ratio (in percentage) of FONT\&. For instance, if the return value is 150, that means that the m17n library uses an 1\&.5 time bigger font than a specified size\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_put_func.3m17n 0000664 0001750 0001750 00000003201 14504322000 015554 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_put_func" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_put_func \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmplist_put_func\fP (\fBMPlist\fP *
\fIplist\fP, MSymbol
\fIkey\fP, \fBM17NFunc\fP
\fIfunc\fP)
.SH DESCRIPTION
.PP
Set the value (function pointer) of a property in a property list\&. The
.ft B
mplist_put_func()
.ft R
function is similar to
.ft B
mplist_put()
.ft R
but for setting function pointer
.ft B
func
.ft R
in property list
.ft B
plist
.ft R
for key
.ft B
key\fP\&.
.ft B
key
.ft R
must not be a managing key\&.
.br
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmplist_put()\fP,
.ft R
.ft B
M17N_FUNC()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/msymbol_is_managing_key.3m17n 0000664 0001750 0001750 00000002726 14504322000 017242 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "msymbol_is_managing_key" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
msymbol_is_managing_key \-
.SH SYNOPSIS
int
\fBmsymbol_is_managing_key\fP (MSymbol
\fIsymbol\fP)
.SH DESCRIPTION
.PP
Check if a symbol is a managing key\&. The
.ft B
msymbol_is_managing_key()
.ft R
function checks if the symbol
.ft B
symbol
.ft R
is a managing key or not\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
Return 1 if the symbol is a managing key\&. Otherwise, return 0\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17n_object_ref.3m17n 0000664 0001750 0001750 00000003145 14504322000 015314 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17n_object_ref" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17n_object_ref \-
.SH SYNOPSIS
int
\fBm17n_object_ref\fP (void *
\fIobject\fP)
.SH DESCRIPTION
.PP
Increment the reference count of a managed object\&. The
.ft B
m17n_object_ref()
.ft R
function increments the reference count of the managed object pointed to by
.ft B
object\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns the resulting reference count if it fits in a 16\-bit unsigned integer (i\&.e\&. less than 0x10000)\&. Otherwise, it return \-1\&.
.RE
.PP
.SH ERRORS
.PP
.RS 4
This function never fails\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mchar_define_charset.3m17n 0000664 0001750 0001750 00000002313 14504322000 016461 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mchar_define_charset" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchar_define_charset \-
.SH SYNOPSIS
MSymbol
\fBmchar_define_charset\fP (const char *
\fIname\fP, \fBMPlist\fP *
\fIplist\fP)
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdebug_dump_face.3m17n 0000664 0001750 0001750 00000003102 14504322000 015607 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdebug_dump_face" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdebug_dump_face \-
.SH SYNOPSIS
\fBMFace\fP*
\fBmdebug_dump_face\fP (\fBMFace\fP *
\fIface\fP, int
\fIindent\fP)
.SH DESCRIPTION
.PP
Dump a face\&. The
.ft B
mdebug_dump_face()
.ft R
function prints face
.ft B
face
.ft R
in a human readable way to the stderr or to what specified by the environment variable MDEBUG_OUTPUT_FILE\&.
.ft B
indent
.ft R
specifies how many columns to indent the lines but the first one\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns
.ft B
face\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_gets.3m17n 0000664 0001750 0001750 00000004273 14504322000 014517 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_gets" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_gets \-
.SH SYNOPSIS
\fBMText\fP*
\fBmconv_gets\fP (\fBMConverter\fP *
\fIconverter\fP, \fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
Read a line using a code converter\&. The
.ft B
mconv_gets()
.ft R
function reads one line from the buffer area or the stream that is currently bound to code converter
.ft B
converter\fP\&. The decoder of
.ft B
converter
.ft R
is used for decoding\&. The decoded character sequence is appended at the end of M\-text
.ft B
mt\fP\&. The final newline character in the original byte sequence is not appended\&. The internal status of
.ft B
converter
.ft R
is updated appropriately\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mconv_gets()
.ft R
returns the modified
.ft B
mt\fP\&. If it encounters EOF without reading a single character, it returns
.ft B
mt
.ft R
without changing it\&. If an error is detected, it returns
.ft C
NULL
.ft R
and assigns an error code to
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_CODING
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmconv_getc()\fP,
.ft R
.ft B
mconv_ungetc()\fP,
.ft R
.ft B
mconv_putc()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_encode_buffer.3m17n 0000664 0001750 0001750 00000004027 14504322000 016340 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_encode_buffer" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_encode_buffer \-
.SH SYNOPSIS
int
\fBmconv_encode_buffer\fP (MSymbol
\fIname\fP, \fBMText\fP *
\fImt\fP, unsigned char *
\fIbuf\fP, int
\fIn\fP)
.SH DESCRIPTION
.PP
Encode an M\-text into a buffer area\&. The
.ft B
mconv_encode_buffer()
.ft R
function encodes M\-text
.ft B
mt
.ft R
based on coding system
.ft B
name
.ft R
and writes the resulting byte sequence into the buffer area pointed to by
.ft B
buf\fP\&. At most
.ft B
n
.ft R
bytes are written\&. A temporary code converter for encoding is automatically created and freed\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mconv_encode_buffer()
.ft R
returns the number of written bytes\&. Otherwise it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_IO\fP,
.ft R
.ft C
MERROR_CODING
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmconv_encode()\fP,
.ft R
.ft B
mconv_encode_stream()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mchartable_max_char.3m17n 0000664 0001750 0001750 00000002677 14504322000 016325 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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_max_char" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchartable_max_char \-
.SH SYNOPSIS
int
\fBmchartable_max_char\fP (\fBMCharTable\fP *
\fItable\fP)
.SH DESCRIPTION
.PP
Return the maximum character whose value is set in a chartabe\&. The
.ft B
mchartable_max_char()
.ft R
function return the maximum character whose value is set in chartable
.ft B
table\fP\&. No character is set its value, the function returns \-1\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/minput_list.3m17n 0000664 0001750 0001750 00000004643 14504322000 014723 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "minput_list" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
minput_list \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBminput_list\fP (MSymbol
\fIlanguage\fP)
.SH DESCRIPTION
.PP
.nf
@brief List available input methods.
The minput_list() function returns a list of currently available
input methods whose language is @b language. If @b language is #Mnil,
all input methods are listed.
@par Return value:
The returned value is a plist of this form:
((LANGUAGE\-NAME INPUT\-METHOD\-NAME SANE) ...)
The third element SANE of each input method is #Mt if it can be
successfully used, or #Mnil if it has some problem (e.g. syntax
error of MIM file, unavailable external module, unavailable
including input method).
.fi
.fi
.PP
.SH Example:
.PP
.RS 4
.PP
.nf
#include
#include
#include
int
main (int argc, char **argv)
{
MPlist *imlist, *pl;
M17N_INIT();
imlist = minput_list ((argc > 1) ? msymbol (argv[1]) : Mnil);
for (pl = imlist; mplist_key (pl) != Mnil; pl = mplist_next (pl))
{
MPlist *p = mplist_value (pl);
MSymbol lang, name, sane;
lang = mplist_value (p);
p = mplist_next (p);
name = mplist_value (p);
p = mplist_next (p);
sane = mplist_value (p);
printf ("%s %s %s\n", msymbol_name (lang), msymbol_name (name),
sane == Mt ? "ok" : "no");
}
m17n_object_unref (imlist);
M17N_FINI();
exit (0);
}
.fi
.fi
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_buffer_converter.3m17n 0000664 0001750 0001750 00000004164 14504322000 017114 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_buffer_converter" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_buffer_converter \-
.SH SYNOPSIS
\fBMConverter\fP*
\fBmconv_buffer_converter\fP (MSymbol
\fIname\fP, const unsigned char *
\fIbuf\fP, int
\fIn\fP)
.SH DESCRIPTION
.PP
Create a code converter bound to a buffer\&. The
.ft B
mconv_buffer_converter()
.ft R
function creates a pointer to a code converter for coding system
.ft B
name\fP\&. The code converter is bound to buffer area of
.ft B
n
.ft R
bytes pointed to by
.ft B
buf\fP\&. Subsequent decodings and encodings are done to/from this buffer area\&.
.PP
\fBname
.ft R
can be
.ft B
Mnil\fP\&. In this case, a coding system associated with the current locale (LC_CTYPE) is used\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mconv_buffer_converter()
.ft R
returns the created code converter\&. Otherwise it returns
.ft C
NULL
.ft R
and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_SYMBOL\fP,
.ft R
.ft C
MERROR_CODING
.ft R
.RE
.PP
\fBSee Also:
.ft R
.RS 4
\fBmconv_stream_converter()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_putenv.3m17n 0000664 0001750 0001750 00000003117 14504322000 015111 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_putenv" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_putenv \-
.SH SYNOPSIS
int
\fBmtext_putenv\fP (\fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
Change or add an environment variable\&. The
.ft B
mtext_putenv()
.ft R
function changes or adds the value of environment variables according to M\-text
.ft B
mt\fP\&. It calls the function
.ft C
putenv
.ft R
with an argument generated by encoding
.ft B
mt
.ft R
according to the current locale (LC_CTYPE)\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns zero on success, or \-1 if an error occurs\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_encode.3m17n 0000664 0001750 0001750 00000003670 14504322000 015012 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_encode" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_encode \-
.SH SYNOPSIS
int
\fBmconv_encode\fP (\fBMConverter\fP *
\fIconverter\fP, \fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
Encode an M\-text into a byte sequence\&. The
.ft B
mconv_encode()
.ft R
function encodes M\-text
.ft B
mt
.ft R
and writes the resulting byte sequence into the buffer area or the stream that is currently bound to code converter
.ft B
converter\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mconv_encode()
.ft R
returns the number of written bytes\&. Otherwise it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_IO\fP,
.ft R
.ft C
MERROR_CODING
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmconv_rebind_buffer()\fP,
.ft R
.ft B
mconv_rebind_stream()\fP,
.ft R
.ft B
mconv_decode()\fP,
.ft R
.ft B
mconv_encode_range()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/minput_close_im.3m17n 0000664 0001750 0001750 00000002553 14504322000 015540 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "minput_close_im" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
minput_close_im \-
.SH SYNOPSIS
void
\fBminput_close_im\fP (\fBMInputMethod\fP *
\fIim\fP)
.SH DESCRIPTION
.PP
Close an input method\&. The
.ft B
minput_close_im()
.ft R
function closes the input method
.ft B
im\fP,
.ft R
which must have been created by
.ft B
minput_open_im()\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nCharacter.3m17n 0000664 0001750 0001750 00000020336 14504322000 014750 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nCharacter" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nCharacter_\-_Chara \- \- Character objects and API for them\&.
.SH SYNOPSIS
.br
.PP
.SS "Macros"
.in +1c
.ti -1c
.RI "#define \fBMCHAR_MAX\fP"
.br
.RI "Maximum character code\&. "
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "MSymbol \fBmchar_define_property\fP (const char *name, MSymbol type)"
.br
.RI "Define a character property\&. "
.ti -1c
.RI "void * \fBmchar_get_prop\fP (int c, MSymbol key)"
.br
.RI "Get the value of a character property\&. "
.ti -1c
.RI "int \fBmchar_put_prop\fP (int c, MSymbol key, void *val)"
.br
.RI "Set the value of a character property\&. "
.ti -1c
.RI "\fBMCharTable\fP * \fBmchar_get_prop_table\fP (MSymbol key, MSymbol *type)"
.br
.RI "Get the char-table for a character property\&. "
.in -1c
.SS "Variables: Keys of character properties"
These symbols are used as keys of character properties\&.
.br
.in +1c
.ti -1c
.RI "MSymbol \fBMscript\fP"
.br
.RI "Key for script\&. "
.ti -1c
.RI "MSymbol \fBMname\fP"
.br
.RI "Key for character name\&. "
.ti -1c
.RI "MSymbol \fBMcategory\fP"
.br
.RI "Key for general category\&. "
.ti -1c
.RI "MSymbol \fBMcombining_class\fP"
.br
.RI "Key for canonical combining class\&. "
.ti -1c
.RI "MSymbol \fBMbidi_category\fP"
.br
.RI "Key for bidi category\&. "
.ti -1c
.RI "MSymbol \fBMsimple_case_folding\fP"
.br
.RI "Key for corresponding single lowercase character\&. "
.ti -1c
.RI "MSymbol \fBMcomplicated_case_folding\fP"
.br
.RI "Key for corresponding multiple lowercase characters\&. "
.ti -1c
.RI "MSymbol \fBMcased\fP"
.br
.RI "Key for values used in case operation\&. "
.ti -1c
.RI "MSymbol \fBMsoft_dotted\fP"
.br
.RI "Key for values used in case operation\&. "
.ti -1c
.RI "MSymbol \fBMcase_mapping\fP"
.br
.RI "Key for values used in case operation\&. "
.ti -1c
.RI "MSymbol \fBMblock\fP"
.br
.RI "Key for script block name\&. "
.in -1c
.SH "Detailed Description"
.PP
Character objects and API for them\&.
The m17n library represents a \fIcharacter\fP by a character code (an integer)\&. The minimum character code is \fC0\fP\&. The maximum character code is defined by the macro \fBMCHAR_MAX\fP\&. It is assured that \fBMCHAR_MAX\fP is not smaller than \fC0x3FFFFF\fP (22 bits)\&.
.PP
Characters \fC0\fP to \fC0x10FFFF\fP are equivalent to the Unicode characters of the same code values\&.
.PP
A character can have zero or more properties called \fIcharacter\fP \fIproperties\fP\&. A character property consists of a \fIkey\fP and a \fIvalue\fP, where key is a symbol and value is anything that can be cast to \fC(void *)\fP\&. 'The character property that belongs
to character C and whose key is K' may be shortened to 'the K
property of C'\&.
.br
.PP
.br
.SH "Macro Definition Documentation"
.PP
.SS "#define MCHAR_MAX"
.PP
Maximum character code\&. The macro \fBMCHAR_MAX\fP gives the maximum character code\&.
.br
.SH "Variable Documentation"
.PP
.SS "MSymbol Mscript"
.PP
Key for script\&. The symbol \fBMscript\fP has the name \fC'script'\fP and is used as the key of a character property\&. The value of such a property is a symbol representing the script to which the character belongs\&.
.PP
Each symbol that represents a script has one of the names listed in the \fIUnicode Technical Report #24\fP\&.
.br
.SS "MSymbol Mname"
.PP
Key for character name\&. The symbol \fBMname\fP has the name \fC'name'\fP and is used as the key of a character property\&. The value of such a property is a C\-string representing the name of the character\&.
.br
.SS "MSymbol Mcategory"
.PP
Key for general category\&. The symbol \fBMcategory\fP has the name \fC'category'\fP and is used as the key of a character property\&. The value of such a property is a symbol representing the \fIgeneral category\fP of the character\&.
.PP
Each symbol that represents a general category has one of the names listed as abbreviations for \fIGeneral Category\fP in Unicode\&.
.br
.SS "MSymbol Mcombining_class"
.PP
Key for canonical combining class\&. The symbol \fBMcombining_class\fP has the name \fC'combining\-class'\fP and is used as the key of a character property\&. The value of such a property is an integer that represents the \fIcanonical combining class\fP of the character\&.
.PP
The meaning of each integer that represents a canonical combining class is identical to the one defined in Unicode\&.
.br
.SS "MSymbol Mbidi_category"
.PP
Key for bidi category\&. The symbol \fBMbidi_category\fP has the name \fC'bidi\-category'\fP and is used as the key of a character property\&. The value of such a property is a symbol that represents the \fIbidirectional category\fP of the character\&.
.PP
Each symbol that represents a bidirectional category has one of the names listed as types of \fIBidirectional Category\fP in Unicode\&.
.br
.SS "MSymbol Msimple_case_folding"
.PP
Key for corresponding single lowercase character\&. The symbol \fBMsimple_case_folding\fP has the name \fC'simple\-case\-folding'\fP and is used as the key of a character property\&. The value of such a property is the corresponding single lowercase character that is used when comparing M\-texts ignoring cases\&.
.PP
If a character requires a complicated comparison (i\&.e\&. cannot be compared by simply mapping to another single character), the value of such a property is \fC0xFFFF\fP\&. In this case, the character has another property whose key is \fBMcomplicated_case_folding\fP\&.
.br
.SS "MSymbol Mcomplicated_case_folding"
.PP
Key for corresponding multiple lowercase characters\&. The symbol \fBMcomplicated_case_folding\fP has the name \fC'complicated\-case\-folding'\fP and is used as the key of a character property\&. The value of such a property is the corresponding M\-text that contains a sequence of lowercase characters to be used for comparing M\-texts ignoring case\&.
.br
.SS "MSymbol Mcased"
.PP
Key for values used in case operation\&. The symbol \fBMcased\fP has the name \fC'cased'\fP and is used as the key of charater property\&. The value of such a property is an integer value 1, 2, or 3 representing 'cased', 'case\-ignorable', and both of them respective\&. See the Unicode Standard 5\&.0 (Section 3\&.13 Default Case Algorithm) for the detail\&.
.SS "MSymbol Msoft_dotted"
.PP
Key for values used in case operation\&. The symbol \fBMsoft_dotted\fP has the name \fC'soft\-dotted'\fP and is used as the key of charater property\&. The value of such a property is \fBMt\fP if a character has 'Soft_Dotted' property, and \fBMnil\fP otherwise\&. See the Unicode Standard 5\&.0 (Section 3\&.13 Default Case Algorithm) for the detail\&.
.br
.SS "MSymbol Mcase_mapping"
.PP
Key for values used in case operation\&. The symbol \fBMcase_mapping\fP has the name \fC'case\-mapping'\fP and is used as the key of charater property\&. The value of such a property is a plist of three M\-Texts; lower, title, and upper of the corresponding character\&. See the Unicode Standard 5\&.0 (Section 5\&.18 Case Mappings) for the detail\&.
.br
.SS "MSymbol Mblock"
.PP
Key for script block name\&. The symbol \fBMblock\fP the name \fC'block'\fP and is used as the key of charater property\&. The value of such a property is a symbol representing a script block of the corresponding character\&.
.br
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_property_value.3m17n 0000664 0001750 0001750 00000002535 14504322000 016653 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_property_value" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_property_value \-
.SH SYNOPSIS
void*
\fBmtext_property_value\fP (\fBMTextProperty\fP *
\fIprop\fP)
.SH DESCRIPTION
.PP
Return the value of a text property\&. The
.ft B
mtext_property_value()
.ft R
function returns the value of text property
.ft B
prop\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_find_by_value.3m17n 0000664 0001750 0001750 00000003125 14504322000 016544 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_find_by_value" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_find_by_value \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmplist_find_by_value\fP (\fBMPlist\fP *
\fIplist\fP, void *
\fIval\fP)
.SH DESCRIPTION
.PP
Find a property of a specific value in a property list\&. The
.ft B
mplist_find_by_value()
.ft R
function searches property list
.ft B
plist
.ft R
from the beginning for a property whose value is
.ft B
val\fP\&. If such a property is found, a sublist of
.ft B
plist
.ft R
whose first element is the found one is returned\&. Otherwise,
.ft C
NULL
.ft R
is returned\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nConv.3m17n 0000664 0001750 0001750 00000054446 14504322000 013772 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nConv" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nConv_\-_Code_Conver \- \- Coding system objects and API for them\&.
.SH SYNOPSIS
.br
.PP
.SS "Data Structures"
.in +1c
.ti -1c
.RI "struct \fBMConverter\fP"
.br
.RI "Structure to be used in code conversion\&. "
.ti -1c
.RI "struct \fBMCodingInfoISO2022\fP"
.br
.RI "Structure for a coding system of type \fBMCODING_TYPE_ISO_2022\fP\&. "
.ti -1c
.RI "struct \fBMCodingInfoUTF\fP"
.br
.RI "Structure for extra information about a coding system of type \fBMCODING_TYPE_UTF\fP\&. "
.in -1c
.SS "Enumerations"
.in +1c
.ti -1c
.RI "enum \fBMConversionResult\fP { \fBMCONVERSION_RESULT_SUCCESS\fP, \fBMCONVERSION_RESULT_INVALID_BYTE\fP, \fBMCONVERSION_RESULT_INVALID_CHAR\fP, \fBMCONVERSION_RESULT_INSUFFICIENT_SRC\fP, \fBMCONVERSION_RESULT_INSUFFICIENT_DST\fP, \fBMCONVERSION_RESULT_IO_ERROR\fP }"
.br
.RI "Codes that represent the result of code conversion\&. "
.ti -1c
.RI "enum \fBMCodingType\fP { \fBMCODING_TYPE_CHARSET\fP, \fBMCODING_TYPE_UTF\fP, \fBMCODING_TYPE_ISO_2022\fP, \fBMCODING_TYPE_MISC\fP }"
.br
.RI "Types of coding system\&.
.br
"
.ti -1c
.RI "enum \fBMCodingFlagISO2022\fP { \fBMCODING_ISO_RESET_AT_EOL\fP = 0x1, \fBMCODING_ISO_RESET_AT_CNTL\fP = 0x2, \fBMCODING_ISO_EIGHT_BIT\fP = 0x4, \fBMCODING_ISO_LONG_FORM\fP = 0x8, \fBMCODING_ISO_DESIGNATION_G0\fP = 0x10, \fBMCODING_ISO_DESIGNATION_G1\fP = 0x20, \fBMCODING_ISO_DESIGNATION_CTEXT\fP = 0x40, \fBMCODING_ISO_DESIGNATION_CTEXT_EXT\fP = 0x80, \fBMCODING_ISO_LOCKING_SHIFT\fP = 0x100, \fBMCODING_ISO_SINGLE_SHIFT\fP = 0x200, \fBMCODING_ISO_SINGLE_SHIFT_7\fP = 0x400, \fBMCODING_ISO_EUC_TW_SHIFT\fP = 0x800, \fBMCODING_ISO_ISO6429\fP = 0x1000, \fBMCODING_ISO_REVISION_NUMBER\fP = 0x2000, \fBMCODING_ISO_FULL_SUPPORT\fP = 0x3000, \fBMCODING_ISO_FLAG_MAX\fP }"
.br
.RI "Bit-masks to specify the detail of coding system whose type is MCODING_TYPE_ISO_2022\&.
.br
"
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "MSymbol \fBmconv_define_coding\fP (const char *name, \fBMPlist\fP *plist, int(*resetter)(\fBMConverter\fP *), int(*decoder)(const unsigned char *, int, \fBMText\fP *, \fBMConverter\fP *), int(*encoder)(\fBMText\fP *, int, int, unsigned char *, int, \fBMConverter\fP *), void *extra_info)"
.br
.ti -1c
.RI "MSymbol \fBmconv_resolve_coding\fP (MSymbol symbol)"
.br
.RI "Resolve coding system name\&. "
.ti -1c
.RI "int \fBmconv_list_codings\fP (MSymbol **symbols)"
.br
.RI "List symbols representing coding systems\&. "
.ti -1c
.RI "\fBMConverter\fP * \fBmconv_buffer_converter\fP (MSymbol name, const unsigned char *buf, int n)"
.br
.RI "Create a code converter bound to a buffer\&. "
.ti -1c
.RI "\fBMConverter\fP * \fBmconv_stream_converter\fP (MSymbol name, FILE *fp)"
.br
.RI "Create a code converter bound to a stream\&. "
.ti -1c
.RI "int \fBmconv_reset_converter\fP (\fBMConverter\fP *converter)"
.br
.RI "Reset a code converter\&. "
.ti -1c
.RI "void \fBmconv_free_converter\fP (\fBMConverter\fP *converter)"
.br
.RI "Free a code converter\&. "
.ti -1c
.RI "\fBMConverter\fP * \fBmconv_rebind_buffer\fP (\fBMConverter\fP *converter, const unsigned char *buf, int n)"
.br
.RI "Bind a buffer to a code converter\&. "
.ti -1c
.RI "\fBMConverter\fP * \fBmconv_rebind_stream\fP (\fBMConverter\fP *converter, FILE *fp)"
.br
.RI "Bind a stream to a code converter\&. "
.ti -1c
.RI "\fBMText\fP * \fBmconv_decode\fP (\fBMConverter\fP *converter, \fBMText\fP *mt)"
.br
.RI "Decode a byte sequence into an M-text\&. "
.ti -1c
.RI "\fBMText\fP * \fBmconv_decode_buffer\fP (MSymbol name, const unsigned char *buf, int n)"
.br
.RI "Decode a buffer area based on a coding system\&. "
.ti -1c
.RI "\fBMText\fP * \fBmconv_decode_stream\fP (MSymbol name, FILE *fp)"
.br
.RI "Decode a stream input based on a coding system\&. "
.ti -1c
.RI "int \fBmconv_encode\fP (\fBMConverter\fP *converter, \fBMText\fP *mt)"
.br
.RI "Encode an M-text into a byte sequence\&. "
.ti -1c
.RI "int \fBmconv_encode_range\fP (\fBMConverter\fP *converter, \fBMText\fP *mt, int from, int to)"
.br
.RI "Encode a part of an M-text\&. "
.ti -1c
.RI "int \fBmconv_encode_buffer\fP (MSymbol name, \fBMText\fP *mt, unsigned char *buf, int n)"
.br
.RI "Encode an M-text into a buffer area\&. "
.ti -1c
.RI "int \fBmconv_encode_stream\fP (MSymbol name, \fBMText\fP *mt, FILE *fp)"
.br
.RI "Encode an M-text to write to a stream\&. "
.ti -1c
.RI "int \fBmconv_getc\fP (\fBMConverter\fP *converter)"
.br
.RI "Read a character via a code converter\&. "
.ti -1c
.RI "int \fBmconv_ungetc\fP (\fBMConverter\fP *converter, int c)"
.br
.RI "Push a character back to a code converter\&. "
.ti -1c
.RI "int \fBmconv_putc\fP (\fBMConverter\fP *converter, int c)"
.br
.RI "Write a character via a code converter\&. "
.ti -1c
.RI "\fBMText\fP * \fBmconv_gets\fP (\fBMConverter\fP *converter, \fBMText\fP *mt)"
.br
.RI "Read a line using a code converter\&. "
.in -1c
.SS "Variables: Symbols representing coding systems"
.in +1c
.ti -1c
.RI "MSymbol \fBMcoding_us_ascii\fP"
.br
.RI "Symbol for the coding system US-ASCII\&. "
.ti -1c
.RI "MSymbol \fBMcoding_iso_8859_1\fP"
.br
.RI "Symbol for the coding system ISO-8859-1\&. "
.ti -1c
.RI "MSymbol \fBMcoding_utf_8\fP"
.br
.RI "Symbol for the coding system UTF-8\&. "
.ti -1c
.RI "MSymbol \fBMcoding_utf_8_full\fP"
.br
.RI "Symbol for the coding system UTF-8-FULL\&. "
.ti -1c
.RI "MSymbol \fBMcoding_utf_16\fP"
.br
.RI "Symbol for the coding system UTF-16\&. "
.ti -1c
.RI "MSymbol \fBMcoding_utf_16be\fP"
.br
.RI "Symbol for the coding system UTF-16BE\&. "
.ti -1c
.RI "MSymbol \fBMcoding_utf_16le\fP"
.br
.RI "Symbol for the coding system UTF-16LE\&. "
.ti -1c
.RI "MSymbol \fBMcoding_utf_32\fP"
.br
.RI "Symbol for the coding system UTF-32\&. "
.ti -1c
.RI "MSymbol \fBMcoding_utf_32be\fP"
.br
.RI "Symbol for the coding system UTF-32BE\&. "
.ti -1c
.RI "MSymbol \fBMcoding_utf_32le\fP"
.br
.RI "Symbol for the coding system UTF-32LE\&. "
.ti -1c
.RI "MSymbol \fBMcoding_sjis\fP"
.br
.RI "Symbol for the coding system SJIS\&. "
.in -1c
.SS "Variables: Parameter keys for mconv_define_coding()\&.
"
.in +1c
.ti -1c
.RI "MSymbol \fBMtype\fP"
.br
.ti -1c
.RI "MSymbol \fBMcharsets\fP"
.br
.ti -1c
.RI "MSymbol \fBMflags\fP"
.br
.ti -1c
.RI "MSymbol \fBMdesignation\fP"
.br
.ti -1c
.RI "MSymbol \fBMinvocation\fP"
.br
.ti -1c
.RI "MSymbol \fBMcode_unit\fP"
.br
.ti -1c
.RI "MSymbol \fBMbom\fP"
.br
.ti -1c
.RI "MSymbol \fBMlittle_endian\fP"
.br
.in -1c
.SS "Variables: Symbols representing coding system types\&.
"
.in +1c
.ti -1c
.RI "MSymbol \fBMutf\fP"
.br
.ti -1c
.RI "MSymbol \fBMiso_2022\fP"
.br
.in -1c
.SS "Variables: Symbols appearing in the value of Mflags parameter\&.
"
Symbols that can be a value of the \fBMflags\fP parameter of a coding system used in an argument to the \fBmconv_define_coding()\fP function (which see)\&.
.br
.in +1c
.ti -1c
.RI "MSymbol \fBMreset_at_eol\fP"
.br
.ti -1c
.RI "MSymbol \fBMreset_at_cntl\fP"
.br
.ti -1c
.RI "MSymbol \fBMeight_bit\fP"
.br
.ti -1c
.RI "MSymbol \fBMlong_form\fP"
.br
.ti -1c
.RI "MSymbol \fBMdesignation_g0\fP"
.br
.ti -1c
.RI "MSymbol \fBMdesignation_g1\fP"
.br
.ti -1c
.RI "MSymbol \fBMdesignation_ctext\fP"
.br
.ti -1c
.RI "MSymbol \fBMdesignation_ctext_ext\fP"
.br
.ti -1c
.RI "MSymbol \fBMlocking_shift\fP"
.br
.ti -1c
.RI "MSymbol \fBMsingle_shift\fP"
.br
.ti -1c
.RI "MSymbol \fBMsingle_shift_7\fP"
.br
.ti -1c
.RI "MSymbol \fBMeuc_tw_shift\fP"
.br
.ti -1c
.RI "MSymbol \fBMiso_6429\fP"
.br
.ti -1c
.RI "MSymbol \fBMrevision_number\fP"
.br
.ti -1c
.RI "MSymbol \fBMfull_support\fP"
.br
.in -1c
.SS "Variables: Others"
Remaining variables\&.
.br
.in +1c
.ti -1c
.RI "MSymbol \fBMmaybe\fP"
.br
.RI "Symbol whose name is 'maybe'\&. "
.ti -1c
.RI "MSymbol \fBMcoding\fP"
.br
.RI "The symbol \fCMcoding\fP\&. "
.in -1c
.SH "Detailed Description"
.PP
Coding system objects and API for them\&.
The m17n library represents a character encoding scheme (CES) of coded character sets (CCS) as an object called \fIcoding\fP \fIsystem\fP\&. Application programs can add original coding systems\&.
.PP
To \fIencode\fP means converting code\-points to character codes and to \fIdecode\fP means converting character codes back to code\-points\&.
.PP
Application programs can decode a byte sequence with a specified coding system into an M\-text, and inversely, can encode an M\-text into a byte sequence\&.
.br
.PP
.br
.SH "Data Structure Documentation"
.SS MConverter
.PP
Structure to be used in code conversion\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBint MConverter::lenient\fP
Set the value to nonzero if the conversion should be lenient\&. By default, the conversion is strict (i\&.e\&. not lenient)\&.
.PP
If the conversion is strict, the converter stops at the first invalid byte (on decoding) or at the first character not supported by the coding system (on encoding)\&. If this happens, \fCMConverter\->result\fP is set to \fCMCONVERSION_RESULT_INVALID_BYTE\fP or \fCMCONVERSION_RESULT_INVALID_CHAR\fP accordingly\&.
.PP
If the conversion is lenient, on decoding, an invalid byte is kept per se, and on encoding, an invalid character is replaced with '' (if the character is a Unicode character) or with '' (otherwise)\&.
.br
.PP
\fBint MConverter::last_block\fP
Set the value to nonzero before decoding or encoding the last block of the byte sequence or the character sequence respectively\&. The value influences the conversion as below\&.
.PP
On decoding, in the case that the last few bytes are too short to form a valid byte sequence:
.PP
If the value is nonzero, the conversion terminates by error (MCONVERSION_RESULT_INVALID_BYTE) at the first byte of the sequence\&.
.PP
If the value is zero, the conversion terminates successfully\&. Those bytes are stored in the converter as carryover and are prepended to the byte sequence of the further conversion\&.
.PP
On encoding, in the case that the coding system is context dependent:
.PP
If the value is nonzero, the conversion may produce a byte sequence at the end to reset the context to the initial state even if the source characters are zero\&.
.PP
If the value is zero, the conversion never produce such a byte sequence at the end\&.
.br
.PP
\fBunsigned MConverter::at_most\fP
If the value is nonzero, it specifies at most how many characters to convert\&.
.br
.PP
\fBint MConverter::nchars\fP
The following three members are to report the result of the conversion\&.
.br
.PP
Number of characters most recently decoded or encoded\&.
.br
.PP
\fBint MConverter::nbytes\fP
Number of bytes recently decoded or encoded\&.
.br
.PP
\fBenum \fBMConversionResult\fP MConverter::result\fP
Result code of the conversion\&.
.br
.PP
\fBvoid* MConverter::ptr\fP
.PP
\fBdouble MConverter::dbl\fP
.PP
\fBchar MConverter::c[256]\fP
.PP
\fBunion { \&.\&.\&. } MConverter::status\fP
Various information about the status of code conversion\&. The contents depend on the type of coding system\&. It is assured that \fCstatus\fP is aligned so that any type of casting is safe and at least 256 bytes of memory space can be used\&.
.br
.PP
\fBvoid* MConverter::internal_info\fP
This member is for internally use only\&. An application program should never touch it\&.
.br
.SS MCodingInfoISO2022
.PP
Structure for a coding system of type \fBMCODING_TYPE_ISO_2022\fP\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBint MCodingInfoISO2022::initial_invocation[2]\fP
Table of numbers of an ISO2022 code extension element invoked to each graphic plane (Graphic Left and Graphic Right)\&. \-1 means no code extension element is invoked to that plane\&.
.br
.PP
\fBchar MCodingInfoISO2022::designations[32]\fP
Table of code extension elements\&. The Nth element corresponds to the Nth charset in \fBcharset_names\fP, which is an argument given to the \fBmconv_define_coding()\fP function\&.
.PP
If an element value is 0\&.\&.3, it specifies a graphic register number to designate the corresponds charset\&. In addition, the charset is initially designated to that graphic register\&.
.PP
If the value is \-4\&.\&.\-1, it specifies a graphic register number 0\&.\&.3 respectively to designate the corresponds charset\&. Initially, the charset is not designated to any graphic register\&.
.br
.PP
\fBunsigned MCodingInfoISO2022::flags\fP
Bitwise OR of \fCenum\fP \fCMCodingFlagISO2022\fP \&.
.br
.SS MCodingInfoUTF
.PP
Structure for extra information about a coding system of type \fBMCODING_TYPE_UTF\fP\&.
.ad l
.nh
.PP
\fBFIELD DOCUMENTATION:\fP
.PP
.PP
\fBint MCodingInfoUTF::code_unit_bits\fP
Specify bits of a code unit\&. The value must be 8, 16, or 32\&.
.br
.PP
\fBint MCodingInfoUTF::bom\fP
Specify how to handle the heading BOM (byte order mark)\&. The value must be 0, 1, or 2\&. The meanings are as follows:
.PP
0: On decoding, check the first two byte\&. If they are BOM, decide endian by them\&. If not, decide endian by the member \fCendian\fP\&. On encoding, produce byte sequence according to \fCendian\fP with heading BOM\&.
.PP
1: On decoding, do not handle the first two bytes as BOM, and decide endian by \fCendian\fP\&. On encoding, produce byte sequence according to \fCendian\fP without BOM\&.
.PP
2: On decoding, handle the first two bytes as BOM and decide ending by them\&. On encoding, produce byte sequence according to \fCendian\fP with heading BOM\&.
.PP
If is 8, the value has no meaning\&.
.br
.PP
\fBint MCodingInfoUTF::endian\fP
Specify the endian type\&. The value must be 0 or 1\&. 0 means little endian, and 1 means big endian\&.
.PP
If is 8, the value has no meaning\&.
.br
.SH "Enumeration Type Documentation"
.PP
.SS "enum \fBMConversionResult\fP"
.PP
Codes that represent the result of code conversion\&. One of these values is set in \fCMConverter\->result\fP\&.
.br
.PP
\fBEnumerator\fP
.in +1c
.TP
\fB\fIMCONVERSION_RESULT_SUCCESS \fP\fP
Code conversion is successful\&.
.TP
\fB\fIMCONVERSION_RESULT_INVALID_BYTE \fP\fP
On decoding, the source contains an invalid byte\&.
.TP
\fB\fIMCONVERSION_RESULT_INVALID_CHAR \fP\fP
On encoding, the source contains a character that cannot be encoded by the specified coding system\&.
.br
.TP
\fB\fIMCONVERSION_RESULT_INSUFFICIENT_SRC \fP\fP
On decoding, the source ends with an incomplete byte sequence\&.
.TP
\fB\fIMCONVERSION_RESULT_INSUFFICIENT_DST \fP\fP
On encoding, the destination is too short to store the result\&.
.TP
\fB\fIMCONVERSION_RESULT_IO_ERROR \fP\fP
An I/O error occurred in the conversion\&.
.SS "enum \fBMCodingType\fP"
.PP
Types of coding system\&.
.br
.PP
\fBEnumerator\fP
.in +1c
.TP
\fB\fIMCODING_TYPE_CHARSET \fP\fP
A coding system of this type supports charsets directly\&. The dimension of each charset defines the length of bytes to represent a single character of the charset, and a byte sequence directly represents the code\-point of a character\&. The m17n library provides the default decoding and encoding routines of this type\&.
.br
.TP
\fB\fIMCODING_TYPE_UTF \fP\fP
A coding system of this type supports byte sequences of a UTF (UTF\-8, UTF\-16, UTF\-32) like structure\&. The m17n library provides the default decoding and encoding routines of this type\&.
.br
.TP
\fB\fIMCODING_TYPE_ISO_2022 \fP\fP
A coding system of this type supports byte sequences of an ISO\-2022 like structure\&. The details of each structure are specified by \fBMCodingInfoISO2022\fP \&. The m17n library provides decoding and encoding routines of this type\&.
.br
.TP
\fB\fIMCODING_TYPE_MISC \fP\fP
A coding system of this type is for byte sequences of miscellaneous structures\&. The m17n library does not provide decoding and encoding routines of this type\&. They must be provided by the application program\&.
.br
.SS "enum \fBMCodingFlagISO2022\fP"
.PP
Bit\-masks to specify the detail of coding system whose type is MCODING_TYPE_ISO_2022\&.
.br
.PP
\fBEnumerator\fP
.in +1c
.TP
\fB\fIMCODING_ISO_RESET_AT_EOL \fP\fP
On encoding, reset the invocation and designation status to initial at end of line\&.
.br
.TP
\fB\fIMCODING_ISO_RESET_AT_CNTL \fP\fP
On encoding, reset the invocation and designation status to initial before any control codes\&.
.br
.TP
\fB\fIMCODING_ISO_EIGHT_BIT \fP\fP
Use the right graphic plane\&.
.br
.TP
\fB\fIMCODING_ISO_LONG_FORM \fP\fP
Use the non\-standard 4 bytes format for designation sequence for charsets JISX0208\-1978, GB2312, and JISX0208\-1983\&.
.br
.TP
\fB\fIMCODING_ISO_DESIGNATION_G0 \fP\fP
On encoding, unless explicitly specified, designate charsets to G0\&.
.br
.TP
\fB\fIMCODING_ISO_DESIGNATION_G1 \fP\fP
On encoding, unless explicitly specified, designate charsets except for ASCII to G1\&.
.br
.TP
\fB\fIMCODING_ISO_DESIGNATION_CTEXT \fP\fP
On encoding, unless explicitly specified, designate 94\-chars charsets to G0, 96\-chars charsets to G1\&.
.br
.TP
\fB\fIMCODING_ISO_DESIGNATION_CTEXT_EXT \fP\fP
On encoding, encode such charsets not conforming to ISO\-2022 by ESC % / \&.\&.\&., and encode non\-supported Unicode characters by ESC % G \&.\&.\&. ESC % @ \&. On decoding, handle those escape sequences\&.
.br
.TP
\fB\fIMCODING_ISO_LOCKING_SHIFT \fP\fP
Use locking shift\&.
.br
.TP
\fB\fIMCODING_ISO_SINGLE_SHIFT \fP\fP
Use single shift (SS2 (0x8E or ESC N), SS3 (0x8F or ESC O))\&.
.br
.TP
\fB\fIMCODING_ISO_SINGLE_SHIFT_7 \fP\fP
Use 7\-bit single shift 2 (SS2 (0x19))\&.
.br
.TP
\fB\fIMCODING_ISO_EUC_TW_SHIFT \fP\fP
Use EUC\-TW like special shifting\&.
.br
.TP
\fB\fIMCODING_ISO_ISO6429 \fP\fP
Use ISO\-6429 escape sequences to indicate direction\&. Not yet implemented\&.
.br
.TP
\fB\fIMCODING_ISO_REVISION_NUMBER \fP\fP
On encoding, if a charset has revision number, produce escape sequences to specify the number\&.
.br
.TP
\fB\fIMCODING_ISO_FULL_SUPPORT \fP\fP
Support all ISO\-2022 charsets\&.
.br
.TP
\fB\fIMCODING_ISO_FLAG_MAX \fP\fP
.SH "Variable Documentation"
.PP
.SS "MSymbol Mcoding_us_ascii"
.PP
Symbol for the coding system US\-ASCII\&. The symbol \fBMcoding_us_ascii\fP has name \fC'us\-ascii'\fP and represents a coding system for the CES US\-ASCII\&.
.br
.SS "MSymbol Mcoding_iso_8859_1"
.PP
Symbol for the coding system ISO\-8859\-1\&. The symbol \fBMcoding_iso_8859_1\fP has name \fC'iso\-8859\-1'\fP and represents a coding system for the CES ISO\-8859\-1\&.
.br
.SS "MSymbol Mcoding_utf_8"
.PP
Symbol for the coding system UTF\-8\&. The symbol \fBMcoding_utf_8\fP has name \fC'utf\-8'\fP and represents a coding system for the CES UTF\-8\&.
.br
.SS "MSymbol Mcoding_utf_8_full"
.PP
Symbol for the coding system UTF\-8\-FULL\&. The symbol \fBMcoding_utf_8_full\fP has name \fC'utf\-8\-full'\fP and represents a coding system that is a extension of UTF\-8\&. This coding system uses the same encoding algorithm as UTF\-8 but is not limited to the Unicode characters\&. It can encode all characters supported by the m17n library\&.
.br
.SS "MSymbol Mcoding_utf_16"
.PP
Symbol for the coding system UTF\-16\&. The symbol \fBMcoding_utf_16\fP has name \fC'utf\-16'\fP and represents a coding system for the CES UTF\-16 (RFC 2279)\&.
.br
.SS "MSymbol Mcoding_utf_16be"
.PP
Symbol for the coding system UTF\-16BE\&. The symbol \fBMcoding_utf_16be\fP has name \fC'utf\-16be'\fP and represents a coding system for the CES UTF\-16BE (RFC 2279)\&.
.br
.SS "MSymbol Mcoding_utf_16le"
.PP
Symbol for the coding system UTF\-16LE\&. The symbol \fBMcoding_utf_16le\fP has name \fC'utf\-16le'\fP and represents a coding system for the CES UTF\-16LE (RFC 2279)\&.
.br
.SS "MSymbol Mcoding_utf_32"
.PP
Symbol for the coding system UTF\-32\&. The symbol \fBMcoding_utf_32\fP has name \fC'utf\-32'\fP and represents a coding system for the CES UTF\-32 (RFC 2279)\&.
.br
.SS "MSymbol Mcoding_utf_32be"
.PP
Symbol for the coding system UTF\-32BE\&. The symbol \fBMcoding_utf_32be\fP has name \fC'utf\-32be'\fP and represents a coding system for the CES UTF\-32BE (RFC 2279)\&.
.br
.SS "MSymbol Mcoding_utf_32le"
.PP
Symbol for the coding system UTF\-32LE\&. The symbol \fBMcoding_utf_32le\fP has name \fC'utf\-32le'\fP and represents a coding system for the CES UTF\-32LE (RFC 2279)\&.
.br
.SS "MSymbol Mcoding_sjis"
.PP
Symbol for the coding system SJIS\&. The symbol \fBMcoding_sjis\fP has name \fC'sjis'\fP and represents a coding system for the CES Shift\-JIS\&.
.br
.SS "MSymbol Mtype"
Parameter key for \fBmconv_define_coding()\fP (which see)\&.
.br
.SS "MSymbol Mcharsets"
.SS "MSymbol Mflags"
.SS "MSymbol Mdesignation"
.SS "MSymbol Minvocation"
.SS "MSymbol Mcode_unit"
.SS "MSymbol Mbom"
.SS "MSymbol Mlittle_endian"
.SS "MSymbol Mutf"
Symbol that can be a value of the \fBMtype\fP parameter of a coding system used in an argument to the \fBmconv_define_coding()\fP function (which see)\&.
.br
.SS "MSymbol Miso_2022"
.SS "MSymbol Mreset_at_eol"
.SS "MSymbol Mreset_at_cntl"
.SS "MSymbol Meight_bit"
.SS "MSymbol Mlong_form"
.SS "MSymbol Mdesignation_g0"
.SS "MSymbol Mdesignation_g1"
.SS "MSymbol Mdesignation_ctext"
.SS "MSymbol Mdesignation_ctext_ext"
.SS "MSymbol Mlocking_shift"
.SS "MSymbol Msingle_shift"
.SS "MSymbol Msingle_shift_7"
.SS "MSymbol Meuc_tw_shift"
.SS "MSymbol Miso_6429"
.SS "MSymbol Mrevision_number"
.SS "MSymbol Mfull_support"
.SS "MSymbol Mmaybe"
.PP
Symbol whose name is 'maybe'\&. The variable \fBMmaybe\fP is a symbol of name \fC'maybe'\fP\&. It is used a value of \fBMbom\fP parameter of the function \fBmconv_define_coding()\fP (which see)\&.
.br
.SS "MSymbol Mcoding"
.PP
The symbol \fCMcoding\fP\&. Any decoded M\-text has a text property whose key is the predefined symbol \fCMcoding\fP\&. The name of \fCMcoding\fP is \fC'coding'\fP\&.
.br
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mscript_language_list.3m17n 0000664 0001750 0001750 00000003677 14504322000 016741 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mscript_language_list" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mscript_language_list \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmscript_language_list\fP (MSymbol
\fIscript\fP)
.SH DESCRIPTION
.PP
List languages that use a specified script\&. The
.ft B
mscript_language_list()
.ft R
function lists languages that use
.ft B
script\fP\&.
.ft B
script
.ft R
is a symbol whose name is the lower\-cased version of a script name that appears in the Unicode Character Database\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
.RE
.PP
This function returns a well\-formed plist whose keys are
.ft B
Msymbol
.ft R
and values are symbols whose names are ISO639\-1 2\-letter codes (or ISO639\-2 3\-letter codes, if the former is not available)\&. The caller should not modify nor free it\&. If the m17n library does not know about
.ft B
script\fP,
.ft R
it returns @ c NULL\&.
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmscript_list()\fP,
.ft R
.ft B
mlanguage_list()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_property_mtext.3m17n 0000664 0001750 0001750 00000002674 14504322000 016704 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_property_mtext" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_property_mtext \-
.SH SYNOPSIS
\fBMText\fP*
\fBmtext_property_mtext\fP (\fBMTextProperty\fP *
\fIprop\fP)
.SH DESCRIPTION
.PP
Return the M\-text of a text property\&. The
.ft B
mtext_property_mtext()
.ft R
function returns the M\-text to which text property
.ft B
prop
.ft R
is attached\&. If
.ft B
prop
.ft R
is currently detached, NULL is returned\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdraw_text_items.3m17n 0000664 0001750 0001750 00000003276 14504322000 015734 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdraw_text_items" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdraw_text_items \-
.SH SYNOPSIS
void
\fBmdraw_text_items\fP (\fBMFrame\fP *
\fIframe\fP, \fBMDrawWindow\fP
\fIwin\fP, int
\fIx\fP, int
\fIy\fP, \fBMDrawTextItem\fP *
\fIitems\fP, int
\fInitems\fP)
.SH DESCRIPTION
.PP
Draw one or more textitems\&. The
.ft B
mdraw_text_items()
.ft R
function draws one or more M\-texts on window
.ft B
win
.ft R
of frame
.ft B
frame
.ft R
at coordinate (\fBx\fP,
.ft R
.ft B
y\fP)\&.
.ft B
items
.ft R
is an array of the textitems to be drawn and
.ft B
nitems
.ft R
is the number of textitems in the array\&.
.br
.PP
.SH "SEE ALSO"
.PP
.RS 4
MTextItem,
.ft B
mdraw_text()\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_cat_char.3m17n 0000664 0001750 0001750 00000003214 14504322000 015332 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_cat_char" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_cat_char \-
.SH SYNOPSIS
\fBMText\fP*
\fBmtext_cat_char\fP (\fBMText\fP *
\fImt\fP, int
\fIc\fP)
.SH DESCRIPTION
.PP
Append a character to an M\-text\&. The
.ft B
mtext_cat_char()
.ft R
function appends character
.ft B
c\fP,
.ft R
which has no text properties, to the end of M\-text
.ft B
mt\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a pointer to the resulting M\-text
.ft B
mt\fP\&. If
.ft B
c
.ft R
is an invalid character, it returns
.ft C
NULL\fP\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_cat()\fP,
.ft R
.ft B
mtext_ncat()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mflt_run.3m17n 0000664 0001750 0001750 00000003753 14504322000 014203 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mflt_run" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mflt_run \-
.SH SYNOPSIS
int
\fBmflt_run\fP (\fBMFLTGlyphString\fP *
\fIgstring\fP, int
\fIfrom\fP, int
\fIto\fP, \fBMFLTFont\fP *
\fIfont\fP, \fBMFLT\fP *
\fIflt\fP)
.SH DESCRIPTION
.PP
Layout characters with an FLT\&. The
.ft B
mflt_run()
.ft R
function layouts characters in
.ft B
gstring
.ft R
between
.ft B
from
.ft R
(inclusive) and
.ft B
to
.ft R
(exclusive) with
.ft B
font\fP\&. If
.ft B
flt
.ft R
is nonzero, it is used for all the charaters\&. Otherwise, appropriate FLTs are automatically chosen\&.
.PP
\fBReturn values
.ft R
.RS 4
\fI>=0
.ft R
The operation was successful\&. The value is the index to the glyph, which was previously indexed by
.ft B
to\fP,
.ft R
in
.ft B
gstring\->glyphs\fP\&.
.br
\fI\-2
.ft R
.ft B
gstring\->glyphs
.ft R
is too short to store the result\&. The caller can call this fucntion again with a longer
.ft B
gstring\->glyphs\fP\&.
.br
\fI\-1
.ft R
Some other error occurred\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mface_update.3m17n 0000664 0001750 0001750 00000002571 14504322000 014767 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mface_update" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mface_update \-
.SH SYNOPSIS
void
\fBmface_update\fP (\fBMFrame\fP *
\fIframe\fP, \fBMFace\fP *
\fIface\fP)
.SH DESCRIPTION
.PP
Update a face\&. The
.ft B
mface_update()
.ft R
function update face
.ft B
face
.ft R
on frame
.ft B
frame
.ft R
by calling a hook function of
.ft B
face
.ft R
(if any)\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_list.3m17n 0000664 0001750 0001750 00000004170 14504322000 014525 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_list" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_list \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmfont_list\fP (\fBMFrame\fP *
\fIframe\fP, \fBMFont\fP *
\fIfont\fP, MSymbol
\fIlanguage\fP, int
\fImaxnum\fP)
.SH DESCRIPTION
.PP
Get a list of fonts\&. The
.ft B
mfont_list()
.ft R
functions returns a list of fonts available on frame
.ft B
frame\fP\&.
.ft B
font\fP,
.ft R
if not NULL, limits fonts to ones that match with
.ft B
font\fP\&.
.ft B
language\fP,
.ft R
if not
.ft C
Mnil\fP,
.ft R
limits fonts to ones that support
.ft B
language\fP\&.
.ft B
maxnum\fP,
.ft R
if greater than 0, limits the number of fonts\&.
.PP
\fBlanguage
.ft R
argument exists just for backward compatibility, and the use is deprecated\&. Use
.ft B
Mlanguage
.ft R
font property instead\&. If
.ft B
font
.ft R
already has
.ft B
Mlanguage
.ft R
property,
.ft B
language
.ft R
is ignored\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a plist whose keys are family names and values are pointers to the object
.ft B
MFont\fP\&. The plist must be freed by
.ft B
m17n_object_unref()\fP\&. If no font is found, it returns NULL\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nDatabase.3m17n 0000664 0001750 0001750 00000012003 14504322000 014550 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nDatabase" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nDatabase_\-_Data \- \- The m17n database and API for it\&.
.SH SYNOPSIS
.br
.PP
.SS "Typedefs"
.in +1c
.ti -1c
.RI "typedef struct \fBMDatabase\fP \fBMDatabase\fP"
.br
.RI "Type of database\&. "
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "\fBMDatabase\fP * \fBmdatabase_find\fP (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3)"
.br
.RI "Look for a data in the database\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmdatabase_list\fP (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3)"
.br
.RI "Return a data list of the m17n database\&. "
.ti -1c
.RI "\fBMDatabase\fP * \fBmdatabase_define\fP (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3, void *(*loader)(MSymbol *, void *), void *extra_info)"
.br
.RI "Define a data of the m17n database\&. "
.ti -1c
.RI "void * \fBmdatabase_load\fP (\fBMDatabase\fP *mdb)"
.br
.RI "Load a data from the database\&. "
.ti -1c
.RI "MSymbol * \fBmdatabase_tag\fP (\fBMDatabase\fP *mdb)"
.br
.RI "Get tags of a data\&. "
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "char * \fBmdatabase_dir\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
The m17n database and API for it\&.
Directory for application specific data\&.
.PP
The m17n library acquires various kinds of information from data in the \fI m17n database\fP on demand\&. Application programs can also add/load their original data to/from the m17n database by setting the variable \fBmdatabase_dir\fP to an application\-specific directory and storing data in it\&. Users can overwrite those data by storing preferable data in the directory specified by the environment variable 'M17NDIR', or if it is not set, in the directory '~/\&.m17n\&.d'\&.
.PP
The m17n database contains multiple heterogeneous data, and each data is identified by four tags; TAG0, TAG1, TAG2, TAG3\&. Each tag must be a symbol\&.
.PP
TAG0 specifies the type of data stored in the database as below\&.
.PP
.PD 0
.IP "\(bu" 2
If TAG0 is \fBMchar_table\fP, the data is of the \fIchartable\fP \fItype\fP and provides information about each character\&. In this case, TAG1 specifies the type of the information and must be \fBMsymbol\fP, \fBMinteger\fP, \fBMstring\fP, \fBMtext\fP, or \fBMplist\fP\&. TAG2 and TAG3 can be any symbols\&.
.PP
.PD 0
.IP "\(bu" 2
If TAG0 is \fBMcharset\fP, the data is of the \fIcharset\fP \fItype\fP and provides a decode/encode mapping table for a charset\&. In this case, TAG1 must be a symbol representing a charset\&. TAG2 and TAG3 can be any symbols\&.
.PP
.PD 0
.IP "\(bu" 2
If TAG0 is neither \fBMchar_table\fP nor \fBMcharset\fP, the data is of the \fIplist\fP \fItype\fP\&. See the documentation of the \fBmdatabase_load()\fP function for the details\&.
.br
In this case, TAG1, TAG2, and TAG3 can be any symbols\&.
.PP
The notation means a data with those tags\&.
.PP
Application programs first calls the \fBmdatabase_find()\fP function to get a pointer to an object of the type \fBMDatabase\fP\&. That object holds information about the specified data\&. When it is successfully returned, the \fBmdatabase_load()\fP function loads the data\&. The implementation of the structure \fBMDatabase\fP is concealed from application programs\&.
.PP
.br
.PP
If an application program wants to provide a data specific to the program or a data overriding what supplied by the m17n database, it must set this variable to a name of directory that contains the data files before it calls the macro \fBM17N_INIT()\fP\&. The directory may contain a file 'mdb\&.dir' which contains a list of data definitions in the format described in \fBmdbDir(5)\fP\&.
.PP
The default value is NULL\&.
.br
.SH "Typedef Documentation"
.PP
.SS "typedef struct \fBMDatabase\fP \fBMDatabase\fP"
.PP
Type of database\&. <>
.PP
The type \fBMDatabase\fP is for a database object\&. Its internal structure is concealed from an application program\&.
.br
.SH "Variable Documentation"
.PP
.SS "char* mdatabase_dir"
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_cmp.3m17n 0000664 0001750 0001750 00000003400 14504322000 014342 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_cmp" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_cmp \-
.SH SYNOPSIS
int
\fBmtext_cmp\fP (\fBMText\fP *
\fImt1\fP, \fBMText\fP *
\fImt2\fP)
.SH DESCRIPTION
.PP
Compare two M\-texts character\-by\-character\&. The
.ft B
mtext_cmp()
.ft R
function compares M\-texts
.ft B
mt1
.ft R
and
.ft B
mt2
.ft R
character by character\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns 1, 0, or \-1 if
.ft B
mt1
.ft R
is found greater than, equal to, or less than
.ft B
mt2\fP,
.ft R
respectively\&. Comparison is based on character codes\&.
.br
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmtext_ncmp()\fP,
.ft R
.ft B
mtext_casecmp()\fP,
.ft R
.ft B
mtext_ncasecmp()\fP,
.ft R
.ft B
mtext_compare()\fP,
.ft R
.ft B
mtext_case_compare()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nFontset.3m17n 0000664 0001750 0001750 00000005072 14504322000 014476 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nFontset" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nFontset_\-_Fon \- \- A fontset is an object that maps a character to fonts\&.
.SH SYNOPSIS
.br
.PP
.SS "Functions"
.in +1c
.ti -1c
.RI "\fBMFontset\fP * \fBmfontset\fP (char *name)"
.br
.RI "Return a fontset\&. "
.ti -1c
.RI "MSymbol \fBmfontset_name\fP (\fBMFontset\fP *fontset)"
.br
.RI "Return the name of a fontset\&. "
.ti -1c
.RI "\fBMFontset\fP * \fBmfontset_copy\fP (\fBMFontset\fP *fontset, char *name)"
.br
.RI "Make a copy of a fontset\&. "
.ti -1c
.RI "int \fBmfontset_modify_entry\fP (\fBMFontset\fP *fontset, MSymbol script, MSymbol language, MSymbol charset, \fBMFont\fP *spec, MSymbol layouter_name, int how)"
.br
.RI "Modify the contents of a fontset\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmfontset_lookup\fP (\fBMFontset\fP *fontset, MSymbol script, MSymbol language, MSymbol charset)"
.br
.RI "Lookup a fontset\&. "
.in -1c
.SH "Detailed Description"
.PP
A fontset is an object that maps a character to fonts\&.
.br
.PP
A \fIfontset\fP is an object of the type \fCMFontset\fP\&. When drawing an M\-text, a fontset provides rules to select a font for each character in the M\-text according to the following information\&.
.PP
.PD 0
.IP "\(bu" 2
The script character property of a character\&.
.IP "\(bu" 2
The language text property of a character\&.
.IP "\(bu" 2
The charset text property of a character\&.
.PP
The documentation of \fBmdraw_text()\fP describes how that information is used\&.
.br
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_unparse_name.3m17n 0000664 0001750 0001750 00000003454 14504322000 016233 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_unparse_name" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_unparse_name \-
.SH SYNOPSIS
char*
\fBmfont_unparse_name\fP (\fBMFont\fP *
\fIfont\fP, MSymbol
\fIformat\fP)
.SH DESCRIPTION
.PP
Create a fontname from a font\&. The
.ft B
mfont_unparse_name()
.ft R
function creates a fontname string from font
.ft B
font
.ft R
according to
.ft B
format\fP\&.
.PP
\fBformat
.ft R
must be
.ft B
Mx
.ft R
or
.ft B
Mfontconfig\fP\&. If it is
.ft B
Mx\fP,
.ft R
the fontname is in XLFD (X Logical Font Description) format\&. If it is
.ft B
Mfontconfig\fP,
.ft R
the fontname is in the style of Fontconfig's text representation\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a newly allocated fontname string, which is not freed unless the user explicitly does so by free()\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/m17nLocale.3m17n 0000664 0001750 0001750 00000010003 14504322000 014241 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "m17nLocale" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
m17nLocale_\-_Lo \- \- Locale objects and API for them\&.
.SH SYNOPSIS
.br
.PP
.SS "Typedefs"
.in +1c
.ti -1c
.RI "typedef struct \fBMLocale\fP \fBMLocale\fP"
.br
.RI "\fCstruct\fP \fCMLocale\fP\&. "
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "\fBMPlist\fP * \fBmlanguage_list\fP (void)"
.br
.RI "List 3-letter language codes\&. "
.ti -1c
.RI "MSymbol \fBmlanguage_code\fP (MSymbol language, int len)"
.br
.RI "Get a language code\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmlanguage_name_list\fP (MSymbol language, MSymbol target, MSymbol script, MSymbol territory)"
.br
.RI "Return the language names written in the specified language\&. "
.ti -1c
.RI "\fBMText\fP * \fBmlanguage_text\fP (MSymbol language)"
.br
.RI "Return the language name written in that language\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmscript_list\fP (void)"
.br
.RI "List script names\&. "
.ti -1c
.RI "\fBMPlist\fP * \fBmscript_language_list\fP (MSymbol script)"
.br
.RI "List languages that use a specified script\&. "
.ti -1c
.RI "\fBMLocale\fP * \fBmlocale_set\fP (int category, const char *name)"
.br
.RI "Set the current locale\&. "
.ti -1c
.RI "MSymbol \fBmlocale_get_prop\fP (\fBMLocale\fP *locale, MSymbol key)"
.br
.RI "Get the value of a locale property\&. "
.ti -1c
.RI "int \fBmtext_ftime\fP (\fBMText\fP *mt, const char *format, const struct tm *tm, \fBMLocale\fP *locale)"
.br
.RI "Format date and time\&. "
.ti -1c
.RI "\fBMText\fP * \fBmtext_getenv\fP (const char *name)"
.br
.RI "Get an environment variable\&. "
.ti -1c
.RI "int \fBmtext_putenv\fP (\fBMText\fP *mt)"
.br
.RI "Change or add an environment variable\&. "
.ti -1c
.RI "int \fBmtext_coll\fP (\fBMText\fP *mt1, \fBMText\fP *mt2)"
.br
.RI "Compare two M-texts using the current locale\&. "
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "MSymbol \fBMiso639_1\fP"
.br
.ti -1c
.RI "MSymbol \fBMiso639_2\fP"
.br
.ti -1c
.RI "MSymbol \fBMterritory\fP"
.br
.ti -1c
.RI "MSymbol \fBMmodifier\fP"
.br
.ti -1c
.RI "MSymbol \fBMcodeset\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Locale objects and API for them\&.
The m17n library represents locale related information as objects of type \fBMLocale\fP\&.
.br
.SH "Typedef Documentation"
.PP
.SS "typedef struct \fBMLocale\fP \fBMLocale\fP"
.PP
\fCstruct\fP \fCMLocale\fP\&. The structure \fCMLocale\fP is used to hold information about name, language, territory, modifier, codeset, and the corresponding coding system of locales\&.
.PP
The contents of this structure are implementation dependent\&. Its internal structure is concealed from application programs\&.
.br
.PP
\fBSEE ALSO\fp
.RS 4
\fBmlocale_get_prop()\fP
.br
.RE
.PP
.SH "Variable Documentation"
.PP
.SS "MSymbol Miso639_1"
.SS "MSymbol Miso639_2"
.SS "MSymbol Mterritory"
The symbol whose name is 'territory'\&.
.SS "MSymbol Mmodifier"
The symbol whose name is 'modifier'\&.
.SS "MSymbol Mcodeset"
The symbol whose name is 'codeset'\&.
.SH "Author"
.PP
Generated automatically by Doxygen for The m17n Library from the source code\&.
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mface.3m17n 0000664 0001750 0001750 00000002531 14504322000 013421 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mface" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mface \-
.SH SYNOPSIS
\fBMFace\fP*
\fBmface\fP ()
.SH DESCRIPTION
.PP
Create a new face\&. The
.ft B
mface()
.ft R
function creates a new face object that specifies no property\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a pointer to the created face\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_find.3m17n 0000664 0001750 0001750 00000003143 14504322000 014471 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_find" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_find \-
.SH SYNOPSIS
\fBMFont\fP*
\fBmfont_find\fP (\fBMFrame\fP *
\fIframe\fP, \fBMFont\fP *
\fIspec\fP, int *
\fIscore\fP, int
\fImax_size\fP)
.SH DESCRIPTION
.PP
Find a font\&. The
.ft B
mfont_find()
.ft R
function returns a pointer to the available font that matches best the specification
.ft B
spec
.ft R
on frame
.ft B
frame\fP\&.
.PP
\fBscore\fP,
.ft R
if not NULL, must point to a place to store the score value that indicates how well the found font matches to
.ft B
spec\fP\&. The smaller score means a better match\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/minput_get_command.3m17n 0000664 0001750 0001750 00000010314 14504322000 016215 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "minput_get_command" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
minput_get_command \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBminput_get_command\fP (MSymbol
\fIlanguage\fP, MSymbol
\fIname\fP, MSymbol
\fIcommand\fP)
.SH DESCRIPTION
.PP
.nf
@brief Get information about input method command(s).
The minput_get_command() function returns information about
the command @b command of the input method specified by @b language and
@b name. An input method command is a pseudo key event to which one
or more actual input key sequences are assigned.
There are two kinds of commands, global and local. A global
command has a global definition, and the description and the key
assignment may be inherited by a local command. Each input method
defines a local command which has a local key assignment. It may
also declare a local command that inherits the definition of a
global command of the same name.
If @b language is #Mt and @b name is #Mnil, this function returns
information about a global command. Otherwise information about a
local command is returned.
If @b command is #Mnil, information about all commands is returned.
The return value is a @e well\-formed plist (@ref m17nPlist) of this
format:
.fi
.fi
.PP
.nf
((NAME DESCRIPTION STATUS [KEYSEQ ...]) ...)
.fi
.fi
.ft C
NAME
.ft R
is a symbol representing the command name\&.
.PP
\fCDESCRIPTION
.ft R
is an M\-text describing the command, or
.ft B
Mnil
.ft R
if the command has no description\&.
.PP
\fCSTATUS
.ft R
is a symbol representing how the key assignment is decided\&. The value is
.ft B
Mnil
.ft R
(the default key assignment),
.ft B
Mcustomized
.ft R
(the key assignment is customized by per\-user customization file), or
.ft B
Mconfigured
.ft R
(the key assignment is set by the call of
.ft B
minput_config_command()\fP)\&. For a local command only, it may also be
.ft B
Minherited
.ft R
(the key assignment is inherited from the corresponding global command)\&.
.PP
\fCKEYSEQ
.ft R
is a plist of one or more symbols representing a key sequence assigned to the command\&. If there's no KEYSEQ, the command is currently disabled (i\&.e\&. no key sequence can trigger actions of the command)\&.
.PP
If
.ft B
command
.ft R
is not
.ft B
Mnil\fP,
.ft R
the first element of the returned plist contains the information about
.ft B
command\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
.RE
.PP
If the requested information was found, a pointer to a non\-empty plist is returned\&. As the plist is kept in the library, the caller must not modify nor free it\&.
.PP
Otherwise (the specified input method or the specified command does not exist),
.ft C
NULL
.ft R
is returned\&.
.br
.PP
.SH Example:
.PP
.RS 4
.PP
.nf
MText *
get_im_command_description (MSymbol language, MSymbol name, MSymbol command)
{
/* Return a description of the command COMMAND of the input method
specified by LANGUAGE and NAME\&. */
MPlist *cmd = minput_get_command (language, name, command);
MPlist *plist;
if (! cmds)
return NULL;
plist = mplist_value (cmds); /* (NAME DESCRIPTION STATUS KEY\-SEQ \&.\&.\&.) */
plist = mplist_next (plist); /* (DESCRIPTION STATUS KEY\-SEQ \&.\&.\&.) */
return (mplist_key (plist) == Mtext
? (MText *) mplist_value (plist)
: NULL);
}
.fi
.fi
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_list_codings.3m17n 0000664 0001750 0001750 00000002714 14504322000 016234 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_list_codings" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_list_codings \-
.SH SYNOPSIS
int
\fBmconv_list_codings\fP (MSymbol **
\fIsymbols\fP)
.SH DESCRIPTION
.PP
List symbols representing coding systems\&. The
.ft B
mconv_list_codings()
.ft R
function makes an array of symbols representing a coding system, stores the pointer to the array in a place pointed to by
.ft B
symbols\fP,
.ft R
and returns the length of the array\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_putc.3m17n 0000664 0001750 0001750 00000004140 14504322000 014521 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_putc" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_putc \-
.SH SYNOPSIS
int
\fBmconv_putc\fP (\fBMConverter\fP *
\fIconverter\fP, int
\fIc\fP)
.SH DESCRIPTION
.PP
Write a character via a code converter\&. The
.ft B
mconv_putc()
.ft R
function writes character
.ft B
c
.ft R
to the buffer area or the stream that is currently bound to code converter
.ft B
converter\fP\&. The encoder of
.ft B
converter
.ft R
is used to encode the character\&. The number of bytes actually written is set to the
.ft C
nbytes
.ft R
member of
.ft B
converter\fP\&. The internal status of
.ft B
converter
.ft R
is updated appropriately\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mconv_putc()
.ft R
returns
.ft B
c\fP\&. If an error is detected, it returns
.ft C
EOF
.ft R
and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_CODING\fP,
.ft R
.ft C
MERROR_IO\fP,
.ft R
.ft C
MERROR_CHAR
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmconv_getc()\fP,
.ft R
.ft B
mconv_ungetc()\fP,
.ft R
.ft B
mconv_gets()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_next.3m17n 0000664 0001750 0001750 00000002726 14504322000 014722 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_next" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_next \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmplist_next\fP (\fBMPlist\fP *
\fIplist\fP)
.SH DESCRIPTION
.PP
Return the next sublist of a property list\&. The
.ft B
mplist_next()
.ft R
function returns a pointer to the sublist of property list
.ft B
plist\fP,
.ft R
which begins at the second element in
.ft B
plist\fP\&. If the length of
.ft B
plist
.ft R
is zero, it returns
.ft C
NULL\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mfont_get_prop.3m17n 0000664 0001750 0001750 00000005225 14504322000 015373 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mfont_get_prop" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mfont_get_prop \-
.SH SYNOPSIS
void*
\fBmfont_get_prop\fP (\fBMFont\fP *
\fIfont\fP, MSymbol
\fIkey\fP)
.SH DESCRIPTION
.PP
Get a property value of a font\&. The
.ft B
mfont_get_prop()
.ft R
function gets the value of
.ft B
key
.ft R
property of font
.ft B
font\fP\&.
.ft B
key
.ft R
must be one of the following symbols:
.PP
\fCMfoundry\fP,
.ft R
.ft C
Mfamily\fP,
.ft R
.ft C
Mweight\fP,
.ft R
.ft C
Mstyle\fP,
.ft R
.ft C
Mstretch\fP,
.ft R
.ft C
Madstyle\fP,
.ft R
.ft C
Mregistry\fP,
.ft R
.ft C
Msize\fP,
.ft R
.ft C
Mresolution\fP,
.ft R
.ft C
Mspacing\fP\&.
.PP
If
.ft B
font
.ft R
is a return value of
.ft B
mfont_find()\fP,
.ft R
.ft B
key
.ft R
can also be one of the following symbols:
.PP
\fBMfont_ascent\fP,
.ft R
.ft B
Mfont_descent\fP,
.ft R
.ft B
Mmax_advance\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If
.ft B
key
.ft R
is
.ft C
Mfoundry\fP,
.ft R
.ft C
Mfamily\fP,
.ft R
.ft C
Mweight\fP,
.ft R
.ft C
Mstyle\fP,
.ft R
.ft C
Mstretch\fP,
.ft R
.ft C
Madstyle\fP,
.ft R
.ft C
Mregistry\fP,
.ft R
or
.ft C
Mspacing\fP,
.ft R
this function returns the corresponding value as a symbol\&. If the font does not have
.ft B
key
.ft R
property, it returns
.ft C
Mnil\fP\&. If
.ft B
key
.ft R
is
.ft C
Msize\fP,
.ft R
.ft C
Mresolution\fP,
.ft R
.ft B
Mfont_ascent\fP,
.ft R
Mfont_descent, or
.ft B
Mmax_advance\fP,
.ft R
this function returns the corresponding value as an integer\&. If the font does not have
.ft B
key
.ft R
property, it returns 0\&. If
.ft B
key
.ft R
is something else, it returns
.ft C
NULL
.ft R
and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_get_properties.3m17n 0000664 0001750 0001750 00000004050 14504322000 016620 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_get_properties" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_get_properties \-
.SH SYNOPSIS
int
\fBmtext_get_properties\fP (\fBMText\fP *
\fImt\fP, int
\fIpos\fP, MSymbol
\fIkey\fP, \fBMTextProperty\fP **
\fIprops\fP, int
\fInum\fP)
.SH DESCRIPTION
.PP
Get multiple text properties\&. The
.ft B
mtext_get_properties()
.ft R
function searches the character at
.ft B
pos
.ft R
in M\-text
.ft B
mt
.ft R
for properties whose key is
.ft B
key\fP\&. If such properties are found, they are stored in the memory area pointed to by
.ft B
props\fP\&.
.ft B
num
.ft R
limits the maximum number of stored properties\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
mtext_get_properties()
.ft R
returns the number of actually stored properties\&. If the character at
.ft B
pos
.ft R
does not have a property whose key is
.ft B
key\fP,
.ft R
the return value is 0\&. If an error is detected,
.ft B
mtext_get_properties()
.ft R
returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_property_end.3m17n 0000664 0001750 0001750 00000002752 14504322000 016306 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_property_end" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_property_end \-
.SH SYNOPSIS
int
\fBmtext_property_end\fP (\fBMTextProperty\fP *
\fIprop\fP)
.SH DESCRIPTION
.PP
Return the end position of a text property\&. The
.ft B
mtext_property_end()
.ft R
function returns the end position of text property
.ft B
prop\fP\&. The end position is a character position of an M\-text where
.ft B
prop
.ft R
ends\&. If
.ft B
prop
.ft R
is detached, it returns \-1\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mchartable_map.3m17n 0000664 0001750 0001750 00000004540 14504322000 015307 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mchartable_map \-
.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
.PP
Call a function for characters in a chartable\&. The
.ft B
mchartable_map()
.ft R
function calls function
.ft B
func
.ft R
for characters in chartable
.ft B
table\fP\&. No function call occurs for characters that have value
.ft B
ignore
.ft R
in
.ft B
table\fP\&. Comparison of
.ft B
ignore
.ft R
and character value is done with the operator
.ft C
==\fP\&. 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 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 B
arg
.ft R
is the same as
.ft B
func_arg\fP\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function always returns 0\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mtext_property_key.3m17n 0000664 0001750 0001750 00000002534 14504322000 016326 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mtext_property_key" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mtext_property_key \-
.SH SYNOPSIS
MSymbol
\fBmtext_property_key\fP (\fBMTextProperty\fP *
\fIprop\fP)
.SH DESCRIPTION
.PP
Return the key of a text property\&. The
.ft B
mtext_property_key()
.ft R
function returns the key (symbol) of text property
.ft B
prop\fP\&.
.br
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mconv_define_coding.3m17n 0000664 0001750 0001750 00000002722 14504322000 016327 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mconv_define_coding" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mconv_define_coding \-
.SH SYNOPSIS
MSymbol
\fBmconv_define_coding\fP (const char *
\fIname\fP, \fBMPlist\fP *
\fIplist\fP, int(*)(\fBMConverter\fP *)
\fIresetter\fP, int(*)(const unsigned char *,
\fIint\fP, \fBMText\fP *, \fBMConverter\fP *)
\fIdecoder\fP, int(*)(\fBMText\fP *,
\fIint\fP,
\fIint\fP, unsigned char *,
\fIint\fP, \fBMConverter\fP *)
\fIencoder\fP, void *
\fIextra_info\fP)
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdraw_clear_cache.3m17n 0000664 0001750 0001750 00000003064 14504322000 015753 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdraw_clear_cache" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdraw_clear_cache \-
.SH SYNOPSIS
void
\fBmdraw_clear_cache\fP (\fBMText\fP *
\fImt\fP)
.SH DESCRIPTION
.PP
clear cached information\&.
.br
The
.ft B
mdraw_clear_cache()
.ft R
function clear cached information on M\-text
.ft B
mt
.ft R
that was attached by any of the drawing functions\&. When the behavior of `format' or `line_break' member functions of
.ft B
MDrawControl
.ft R
is changed, the cache must be cleared\&.
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBMDrawControl
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mdraw_default_line_break.3m17n 0000664 0001750 0001750 00000004120 14504322000 017333 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mdraw_default_line_break" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdraw_default_line_break \-
.SH SYNOPSIS
int
\fBmdraw_default_line_break\fP (\fBMText\fP *
\fImt\fP, int
\fIpos\fP, int
\fIfrom\fP, int
\fIto\fP, int
\fIline\fP, int
\fIy\fP)
.SH DESCRIPTION
.PP
Calculate a line breaking position\&. The function
.ft B
mdraw_default_line_break()
.ft R
calculates a line breaking position based on the line number
.ft B
line
.ft R
and the coordinate
.ft B
y\fP,
.ft R
when a line is too long to fit within the width limit\&.
.ft B
pos
.ft R
is the position of the character next to the last one that fits within the limit\&.
.ft B
from
.ft R
is the position of the first character of the line, and
.ft B
to
.ft R
is the position of the last character displayed on the line if there were not width limit\&.
.ft B
line
.ft R
and
.ft B
y
.ft R
are reset to 0 when a line is broken by a newline character, and incremented each time when a long line is broken because of the width limit\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns a character position to break the line\&.
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/mplist_push.3m17n 0000664 0001750 0001750 00000003370 14504322000 014717 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "mplist_push" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mplist_push \-
.SH SYNOPSIS
\fBMPlist\fP*
\fBmplist_push\fP (\fBMPlist\fP *
\fIplist\fP, MSymbol
\fIkey\fP, void *
\fIval\fP)
.SH DESCRIPTION
.PP
Add a property at the beginning of a property list\&. The
.ft B
mplist_push()
.ft R
function inserts at the beginning of property list
.ft B
plist
.ft R
a property whose key is
.ft B
key
.ft R
and value is
.ft B
val\fP\&.
.PP
If
.ft B
key
.ft R
is a managing key,
.ft B
val
.ft R
must be a managed object\&. In this case, the reference count of
.ft B
val
.ft R
is incremented by one\&.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful, this function returns
.ft B
plist\fP\&. Otherwise, it returns
.ft C
NULL\fP\&.
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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
.
m17n-docs-1.8.4/man/man3/msymbol_get_func.3m17n 0000664 0001750 0001750 00000002766 14504322000 015714 0000000 0000000 .\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2011
.\" 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 "msymbol_get_func" 3m17n "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
msymbol_get_func \-
.SH SYNOPSIS
\fBM17NFunc\fP
\fBmsymbol_get_func\fP (MSymbol
\fIsymbol\fP, MSymbol
\fIkey\fP)
.SH DESCRIPTION
.PP
Get the value (function pointer) of a symbol property\&. The
.ft B
msymbol_get_func()
.ft R
function is similar to
.ft B
msymbol_get()
.ft R
but for getting a function pointer form the property of symbol
.ft B
symbol\fP\&.
.br
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmsymbol_get()
.ft R
.br
.RE
.PP
.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2011 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